commit e21880d804c040b237e0902511aa30a0a25bc352 Author: josch Date: Thu Jun 26 09:19:07 2014 +0200 initial commit diff --git a/MANIFEST b/MANIFEST new file mode 100644 index 0000000..848e991 --- /dev/null +++ b/MANIFEST @@ -0,0 +1,400 @@ +hr.py +setup.py +data/cursors/default.png +data/tiles/grass/0.png +data/tiles/water/0 watrtl01.pcx/0.png +data/tiles/water/0 watrtl01.pcx/1.png +data/tiles/water/0 watrtl01.pcx/10.png +data/tiles/water/0 watrtl01.pcx/11.png +data/tiles/water/0 watrtl01.pcx/2.png +data/tiles/water/0 watrtl01.pcx/3.png +data/tiles/water/0 watrtl01.pcx/4.png +data/tiles/water/0 watrtl01.pcx/5.png +data/tiles/water/0 watrtl01.pcx/6.png +data/tiles/water/0 watrtl01.pcx/7.png +data/tiles/water/0 watrtl01.pcx/8.png +data/tiles/water/0 watrtl01.pcx/9.png +data/tiles/water/1 watrtl02.pcx/0.png +data/tiles/water/1 watrtl02.pcx/1.png +data/tiles/water/1 watrtl02.pcx/10.png +data/tiles/water/1 watrtl02.pcx/11.png +data/tiles/water/1 watrtl02.pcx/2.png +data/tiles/water/1 watrtl02.pcx/3.png +data/tiles/water/1 watrtl02.pcx/4.png +data/tiles/water/1 watrtl02.pcx/5.png +data/tiles/water/1 watrtl02.pcx/6.png +data/tiles/water/1 watrtl02.pcx/7.png +data/tiles/water/1 watrtl02.pcx/8.png +data/tiles/water/1 watrtl02.pcx/9.png +data/tiles/water/10 watrtl11.pcx/0.png +data/tiles/water/10 watrtl11.pcx/1.png +data/tiles/water/10 watrtl11.pcx/10.png +data/tiles/water/10 watrtl11.pcx/11.png +data/tiles/water/10 watrtl11.pcx/2.png +data/tiles/water/10 watrtl11.pcx/3.png +data/tiles/water/10 watrtl11.pcx/4.png +data/tiles/water/10 watrtl11.pcx/5.png +data/tiles/water/10 watrtl11.pcx/6.png +data/tiles/water/10 watrtl11.pcx/7.png +data/tiles/water/10 watrtl11.pcx/8.png +data/tiles/water/10 watrtl11.pcx/9.png +data/tiles/water/11 watrtl12.pcx/0.png +data/tiles/water/11 watrtl12.pcx/1.png +data/tiles/water/11 watrtl12.pcx/10.png +data/tiles/water/11 watrtl12.pcx/11.png +data/tiles/water/11 watrtl12.pcx/2.png +data/tiles/water/11 watrtl12.pcx/3.png +data/tiles/water/11 watrtl12.pcx/4.png +data/tiles/water/11 watrtl12.pcx/5.png +data/tiles/water/11 watrtl12.pcx/6.png +data/tiles/water/11 watrtl12.pcx/7.png +data/tiles/water/11 watrtl12.pcx/8.png +data/tiles/water/11 watrtl12.pcx/9.png +data/tiles/water/12 watrtl13.pcx/0.png +data/tiles/water/12 watrtl13.pcx/1.png +data/tiles/water/12 watrtl13.pcx/10.png +data/tiles/water/12 watrtl13.pcx/11.png +data/tiles/water/12 watrtl13.pcx/2.png +data/tiles/water/12 watrtl13.pcx/3.png +data/tiles/water/12 watrtl13.pcx/4.png +data/tiles/water/12 watrtl13.pcx/5.png +data/tiles/water/12 watrtl13.pcx/6.png +data/tiles/water/12 watrtl13.pcx/7.png +data/tiles/water/12 watrtl13.pcx/8.png +data/tiles/water/12 watrtl13.pcx/9.png +data/tiles/water/13 watrtl14.pcx/0.png +data/tiles/water/13 watrtl14.pcx/1.png +data/tiles/water/13 watrtl14.pcx/10.png +data/tiles/water/13 watrtl14.pcx/11.png +data/tiles/water/13 watrtl14.pcx/2.png +data/tiles/water/13 watrtl14.pcx/3.png +data/tiles/water/13 watrtl14.pcx/4.png +data/tiles/water/13 watrtl14.pcx/5.png +data/tiles/water/13 watrtl14.pcx/6.png +data/tiles/water/13 watrtl14.pcx/7.png +data/tiles/water/13 watrtl14.pcx/8.png +data/tiles/water/13 watrtl14.pcx/9.png +data/tiles/water/14 watrtl15.pcx/0.png +data/tiles/water/14 watrtl15.pcx/1.png +data/tiles/water/14 watrtl15.pcx/10.png +data/tiles/water/14 watrtl15.pcx/11.png +data/tiles/water/14 watrtl15.pcx/2.png +data/tiles/water/14 watrtl15.pcx/3.png +data/tiles/water/14 watrtl15.pcx/4.png +data/tiles/water/14 watrtl15.pcx/5.png +data/tiles/water/14 watrtl15.pcx/6.png +data/tiles/water/14 watrtl15.pcx/7.png +data/tiles/water/14 watrtl15.pcx/8.png +data/tiles/water/14 watrtl15.pcx/9.png +data/tiles/water/15 watrtl16.pcx/0.png +data/tiles/water/15 watrtl16.pcx/1.png +data/tiles/water/15 watrtl16.pcx/10.png +data/tiles/water/15 watrtl16.pcx/11.png +data/tiles/water/15 watrtl16.pcx/2.png +data/tiles/water/15 watrtl16.pcx/3.png +data/tiles/water/15 watrtl16.pcx/4.png +data/tiles/water/15 watrtl16.pcx/5.png +data/tiles/water/15 watrtl16.pcx/6.png +data/tiles/water/15 watrtl16.pcx/7.png +data/tiles/water/15 watrtl16.pcx/8.png +data/tiles/water/15 watrtl16.pcx/9.png +data/tiles/water/16 watrtl17.pcx/0.png +data/tiles/water/16 watrtl17.pcx/1.png +data/tiles/water/16 watrtl17.pcx/10.png +data/tiles/water/16 watrtl17.pcx/11.png +data/tiles/water/16 watrtl17.pcx/2.png +data/tiles/water/16 watrtl17.pcx/3.png +data/tiles/water/16 watrtl17.pcx/4.png +data/tiles/water/16 watrtl17.pcx/5.png +data/tiles/water/16 watrtl17.pcx/6.png +data/tiles/water/16 watrtl17.pcx/7.png +data/tiles/water/16 watrtl17.pcx/8.png +data/tiles/water/16 watrtl17.pcx/9.png +data/tiles/water/17 watrtl18.pcx/0.png +data/tiles/water/17 watrtl18.pcx/1.png +data/tiles/water/17 watrtl18.pcx/10.png +data/tiles/water/17 watrtl18.pcx/11.png +data/tiles/water/17 watrtl18.pcx/2.png +data/tiles/water/17 watrtl18.pcx/3.png +data/tiles/water/17 watrtl18.pcx/4.png +data/tiles/water/17 watrtl18.pcx/5.png +data/tiles/water/17 watrtl18.pcx/6.png +data/tiles/water/17 watrtl18.pcx/7.png +data/tiles/water/17 watrtl18.pcx/8.png +data/tiles/water/17 watrtl18.pcx/9.png +data/tiles/water/18 watrtl19.pcx/0.png +data/tiles/water/18 watrtl19.pcx/1.png +data/tiles/water/18 watrtl19.pcx/10.png +data/tiles/water/18 watrtl19.pcx/11.png +data/tiles/water/18 watrtl19.pcx/2.png +data/tiles/water/18 watrtl19.pcx/3.png +data/tiles/water/18 watrtl19.pcx/4.png +data/tiles/water/18 watrtl19.pcx/5.png +data/tiles/water/18 watrtl19.pcx/6.png +data/tiles/water/18 watrtl19.pcx/7.png +data/tiles/water/18 watrtl19.pcx/8.png +data/tiles/water/18 watrtl19.pcx/9.png +data/tiles/water/19 watrtl20.pcx/0.png +data/tiles/water/19 watrtl20.pcx/1.png +data/tiles/water/19 watrtl20.pcx/10.png +data/tiles/water/19 watrtl20.pcx/11.png +data/tiles/water/19 watrtl20.pcx/2.png +data/tiles/water/19 watrtl20.pcx/3.png +data/tiles/water/19 watrtl20.pcx/4.png +data/tiles/water/19 watrtl20.pcx/5.png +data/tiles/water/19 watrtl20.pcx/6.png +data/tiles/water/19 watrtl20.pcx/7.png +data/tiles/water/19 watrtl20.pcx/8.png +data/tiles/water/19 watrtl20.pcx/9.png +data/tiles/water/2 watrtl03.pcx/0.png +data/tiles/water/2 watrtl03.pcx/1.png +data/tiles/water/2 watrtl03.pcx/10.png +data/tiles/water/2 watrtl03.pcx/11.png +data/tiles/water/2 watrtl03.pcx/2.png +data/tiles/water/2 watrtl03.pcx/3.png +data/tiles/water/2 watrtl03.pcx/4.png +data/tiles/water/2 watrtl03.pcx/5.png +data/tiles/water/2 watrtl03.pcx/6.png +data/tiles/water/2 watrtl03.pcx/7.png +data/tiles/water/2 watrtl03.pcx/8.png +data/tiles/water/2 watrtl03.pcx/9.png +data/tiles/water/20 watrtl21.pcx/0.png +data/tiles/water/20 watrtl21.pcx/1.png +data/tiles/water/20 watrtl21.pcx/10.png +data/tiles/water/20 watrtl21.pcx/11.png +data/tiles/water/20 watrtl21.pcx/2.png +data/tiles/water/20 watrtl21.pcx/3.png +data/tiles/water/20 watrtl21.pcx/4.png +data/tiles/water/20 watrtl21.pcx/5.png +data/tiles/water/20 watrtl21.pcx/6.png +data/tiles/water/20 watrtl21.pcx/7.png +data/tiles/water/20 watrtl21.pcx/8.png +data/tiles/water/20 watrtl21.pcx/9.png +data/tiles/water/21 watrtl22.pcx/0.png +data/tiles/water/21 watrtl22.pcx/1.png +data/tiles/water/21 watrtl22.pcx/10.png +data/tiles/water/21 watrtl22.pcx/11.png +data/tiles/water/21 watrtl22.pcx/2.png +data/tiles/water/21 watrtl22.pcx/3.png +data/tiles/water/21 watrtl22.pcx/4.png +data/tiles/water/21 watrtl22.pcx/5.png +data/tiles/water/21 watrtl22.pcx/6.png +data/tiles/water/21 watrtl22.pcx/7.png +data/tiles/water/21 watrtl22.pcx/8.png +data/tiles/water/21 watrtl22.pcx/9.png +data/tiles/water/22 watrtl23.pcx/0.png +data/tiles/water/22 watrtl23.pcx/1.png +data/tiles/water/22 watrtl23.pcx/10.png +data/tiles/water/22 watrtl23.pcx/11.png +data/tiles/water/22 watrtl23.pcx/2.png +data/tiles/water/22 watrtl23.pcx/3.png +data/tiles/water/22 watrtl23.pcx/4.png +data/tiles/water/22 watrtl23.pcx/5.png +data/tiles/water/22 watrtl23.pcx/6.png +data/tiles/water/22 watrtl23.pcx/7.png +data/tiles/water/22 watrtl23.pcx/8.png +data/tiles/water/22 watrtl23.pcx/9.png +data/tiles/water/23 watrtl24.pcx/0.png +data/tiles/water/23 watrtl24.pcx/1.png +data/tiles/water/23 watrtl24.pcx/10.png +data/tiles/water/23 watrtl24.pcx/11.png +data/tiles/water/23 watrtl24.pcx/2.png +data/tiles/water/23 watrtl24.pcx/3.png +data/tiles/water/23 watrtl24.pcx/4.png +data/tiles/water/23 watrtl24.pcx/5.png +data/tiles/water/23 watrtl24.pcx/6.png +data/tiles/water/23 watrtl24.pcx/7.png +data/tiles/water/23 watrtl24.pcx/8.png +data/tiles/water/23 watrtl24.pcx/9.png +data/tiles/water/24 watrtl25.pcx/0.png +data/tiles/water/24 watrtl25.pcx/1.png +data/tiles/water/24 watrtl25.pcx/10.png +data/tiles/water/24 watrtl25.pcx/11.png +data/tiles/water/24 watrtl25.pcx/2.png +data/tiles/water/24 watrtl25.pcx/3.png +data/tiles/water/24 watrtl25.pcx/4.png +data/tiles/water/24 watrtl25.pcx/5.png +data/tiles/water/24 watrtl25.pcx/6.png +data/tiles/water/24 watrtl25.pcx/7.png +data/tiles/water/24 watrtl25.pcx/8.png +data/tiles/water/24 watrtl25.pcx/9.png +data/tiles/water/25 watrtl26.pcx/0.png +data/tiles/water/25 watrtl26.pcx/1.png +data/tiles/water/25 watrtl26.pcx/10.png +data/tiles/water/25 watrtl26.pcx/11.png +data/tiles/water/25 watrtl26.pcx/2.png +data/tiles/water/25 watrtl26.pcx/3.png +data/tiles/water/25 watrtl26.pcx/4.png +data/tiles/water/25 watrtl26.pcx/5.png +data/tiles/water/25 watrtl26.pcx/6.png +data/tiles/water/25 watrtl26.pcx/7.png +data/tiles/water/25 watrtl26.pcx/8.png +data/tiles/water/25 watrtl26.pcx/9.png +data/tiles/water/26 watrtl27.pcx/0.png +data/tiles/water/26 watrtl27.pcx/1.png +data/tiles/water/26 watrtl27.pcx/10.png +data/tiles/water/26 watrtl27.pcx/11.png +data/tiles/water/26 watrtl27.pcx/2.png +data/tiles/water/26 watrtl27.pcx/3.png +data/tiles/water/26 watrtl27.pcx/4.png +data/tiles/water/26 watrtl27.pcx/5.png +data/tiles/water/26 watrtl27.pcx/6.png +data/tiles/water/26 watrtl27.pcx/7.png +data/tiles/water/26 watrtl27.pcx/8.png +data/tiles/water/26 watrtl27.pcx/9.png +data/tiles/water/27 watrtl28.pcx/0.png +data/tiles/water/27 watrtl28.pcx/1.png +data/tiles/water/27 watrtl28.pcx/10.png +data/tiles/water/27 watrtl28.pcx/11.png +data/tiles/water/27 watrtl28.pcx/2.png +data/tiles/water/27 watrtl28.pcx/3.png +data/tiles/water/27 watrtl28.pcx/4.png +data/tiles/water/27 watrtl28.pcx/5.png +data/tiles/water/27 watrtl28.pcx/6.png +data/tiles/water/27 watrtl28.pcx/7.png +data/tiles/water/27 watrtl28.pcx/8.png +data/tiles/water/27 watrtl28.pcx/9.png +data/tiles/water/28 watrtl29.pcx/0.png +data/tiles/water/28 watrtl29.pcx/1.png +data/tiles/water/28 watrtl29.pcx/10.png +data/tiles/water/28 watrtl29.pcx/11.png +data/tiles/water/28 watrtl29.pcx/2.png +data/tiles/water/28 watrtl29.pcx/3.png +data/tiles/water/28 watrtl29.pcx/4.png +data/tiles/water/28 watrtl29.pcx/5.png +data/tiles/water/28 watrtl29.pcx/6.png +data/tiles/water/28 watrtl29.pcx/7.png +data/tiles/water/28 watrtl29.pcx/8.png +data/tiles/water/28 watrtl29.pcx/9.png +data/tiles/water/29 watrtl30.pcx/0.png +data/tiles/water/29 watrtl30.pcx/1.png +data/tiles/water/29 watrtl30.pcx/10.png +data/tiles/water/29 watrtl30.pcx/11.png +data/tiles/water/29 watrtl30.pcx/2.png +data/tiles/water/29 watrtl30.pcx/3.png +data/tiles/water/29 watrtl30.pcx/4.png +data/tiles/water/29 watrtl30.pcx/5.png +data/tiles/water/29 watrtl30.pcx/6.png +data/tiles/water/29 watrtl30.pcx/7.png +data/tiles/water/29 watrtl30.pcx/8.png +data/tiles/water/29 watrtl30.pcx/9.png +data/tiles/water/3 watrtl04.pcx/0.png +data/tiles/water/3 watrtl04.pcx/1.png +data/tiles/water/3 watrtl04.pcx/10.png +data/tiles/water/3 watrtl04.pcx/11.png +data/tiles/water/3 watrtl04.pcx/2.png +data/tiles/water/3 watrtl04.pcx/3.png +data/tiles/water/3 watrtl04.pcx/4.png +data/tiles/water/3 watrtl04.pcx/5.png +data/tiles/water/3 watrtl04.pcx/6.png +data/tiles/water/3 watrtl04.pcx/7.png +data/tiles/water/3 watrtl04.pcx/8.png +data/tiles/water/3 watrtl04.pcx/9.png +data/tiles/water/30 watrtl31.pcx/0.png +data/tiles/water/30 watrtl31.pcx/1.png +data/tiles/water/30 watrtl31.pcx/10.png +data/tiles/water/30 watrtl31.pcx/11.png +data/tiles/water/30 watrtl31.pcx/2.png +data/tiles/water/30 watrtl31.pcx/3.png +data/tiles/water/30 watrtl31.pcx/4.png +data/tiles/water/30 watrtl31.pcx/5.png +data/tiles/water/30 watrtl31.pcx/6.png +data/tiles/water/30 watrtl31.pcx/7.png +data/tiles/water/30 watrtl31.pcx/8.png +data/tiles/water/30 watrtl31.pcx/9.png +data/tiles/water/31 watrtl32.pcx/0.png +data/tiles/water/31 watrtl32.pcx/1.png +data/tiles/water/31 watrtl32.pcx/10.png +data/tiles/water/31 watrtl32.pcx/11.png +data/tiles/water/31 watrtl32.pcx/2.png +data/tiles/water/31 watrtl32.pcx/3.png +data/tiles/water/31 watrtl32.pcx/4.png +data/tiles/water/31 watrtl32.pcx/5.png +data/tiles/water/31 watrtl32.pcx/6.png +data/tiles/water/31 watrtl32.pcx/7.png +data/tiles/water/31 watrtl32.pcx/8.png +data/tiles/water/31 watrtl32.pcx/9.png +data/tiles/water/32 watrtl33.pcx/0.png +data/tiles/water/32 watrtl33.pcx/1.png +data/tiles/water/32 watrtl33.pcx/10.png +data/tiles/water/32 watrtl33.pcx/11.png +data/tiles/water/32 watrtl33.pcx/2.png +data/tiles/water/32 watrtl33.pcx/3.png +data/tiles/water/32 watrtl33.pcx/4.png +data/tiles/water/32 watrtl33.pcx/5.png +data/tiles/water/32 watrtl33.pcx/6.png +data/tiles/water/32 watrtl33.pcx/7.png +data/tiles/water/32 watrtl33.pcx/8.png +data/tiles/water/32 watrtl33.pcx/9.png +data/tiles/water/4 watrtl05.pcx/0.png +data/tiles/water/4 watrtl05.pcx/1.png +data/tiles/water/4 watrtl05.pcx/10.png +data/tiles/water/4 watrtl05.pcx/11.png +data/tiles/water/4 watrtl05.pcx/2.png +data/tiles/water/4 watrtl05.pcx/3.png +data/tiles/water/4 watrtl05.pcx/4.png +data/tiles/water/4 watrtl05.pcx/5.png +data/tiles/water/4 watrtl05.pcx/6.png +data/tiles/water/4 watrtl05.pcx/7.png +data/tiles/water/4 watrtl05.pcx/8.png +data/tiles/water/4 watrtl05.pcx/9.png +data/tiles/water/5 watrtl06.pcx/0.png +data/tiles/water/5 watrtl06.pcx/1.png +data/tiles/water/5 watrtl06.pcx/10.png +data/tiles/water/5 watrtl06.pcx/11.png +data/tiles/water/5 watrtl06.pcx/2.png +data/tiles/water/5 watrtl06.pcx/3.png +data/tiles/water/5 watrtl06.pcx/4.png +data/tiles/water/5 watrtl06.pcx/5.png +data/tiles/water/5 watrtl06.pcx/6.png +data/tiles/water/5 watrtl06.pcx/7.png +data/tiles/water/5 watrtl06.pcx/8.png +data/tiles/water/5 watrtl06.pcx/9.png +data/tiles/water/6 watrtl07.pcx/0.png +data/tiles/water/6 watrtl07.pcx/1.png +data/tiles/water/6 watrtl07.pcx/10.png +data/tiles/water/6 watrtl07.pcx/11.png +data/tiles/water/6 watrtl07.pcx/2.png +data/tiles/water/6 watrtl07.pcx/3.png +data/tiles/water/6 watrtl07.pcx/4.png +data/tiles/water/6 watrtl07.pcx/5.png +data/tiles/water/6 watrtl07.pcx/6.png +data/tiles/water/6 watrtl07.pcx/7.png +data/tiles/water/6 watrtl07.pcx/8.png +data/tiles/water/6 watrtl07.pcx/9.png +data/tiles/water/7 watrtl08.pcx/0.png +data/tiles/water/7 watrtl08.pcx/1.png +data/tiles/water/7 watrtl08.pcx/10.png +data/tiles/water/7 watrtl08.pcx/11.png +data/tiles/water/7 watrtl08.pcx/2.png +data/tiles/water/7 watrtl08.pcx/3.png +data/tiles/water/7 watrtl08.pcx/4.png +data/tiles/water/7 watrtl08.pcx/5.png +data/tiles/water/7 watrtl08.pcx/6.png +data/tiles/water/7 watrtl08.pcx/7.png +data/tiles/water/7 watrtl08.pcx/8.png +data/tiles/water/7 watrtl08.pcx/9.png +data/tiles/water/8 watrtl09.pcx/0.png +data/tiles/water/8 watrtl09.pcx/1.png +data/tiles/water/8 watrtl09.pcx/10.png +data/tiles/water/8 watrtl09.pcx/11.png +data/tiles/water/8 watrtl09.pcx/2.png +data/tiles/water/8 watrtl09.pcx/3.png +data/tiles/water/8 watrtl09.pcx/4.png +data/tiles/water/8 watrtl09.pcx/5.png +data/tiles/water/8 watrtl09.pcx/6.png +data/tiles/water/8 watrtl09.pcx/7.png +data/tiles/water/8 watrtl09.pcx/8.png +data/tiles/water/8 watrtl09.pcx/9.png +data/tiles/water/9 watrtl10.pcx/0.png +data/tiles/water/9 watrtl10.pcx/1.png +data/tiles/water/9 watrtl10.pcx/10.png +data/tiles/water/9 watrtl10.pcx/11.png +data/tiles/water/9 watrtl10.pcx/2.png +data/tiles/water/9 watrtl10.pcx/3.png +data/tiles/water/9 watrtl10.pcx/4.png +data/tiles/water/9 watrtl10.pcx/5.png +data/tiles/water/9 watrtl10.pcx/6.png +data/tiles/water/9 watrtl10.pcx/7.png +data/tiles/water/9 watrtl10.pcx/8.png +data/tiles/water/9 watrtl10.pcx/9.png diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..6e9bc41 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,2 @@ +include hr.py +recursive-include data/ * diff --git a/archive/hr_option1.py b/archive/hr_option1.py new file mode 100644 index 0000000..6f0d346 --- /dev/null +++ b/archive/hr_option1.py @@ -0,0 +1,260 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles, group): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class GrassTile(object): + def __init__(self, tile, group): + self.tile = tile + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.water_tiles = self._load_water_tiles() + self.grass_tiles = self._load_grass_tiles() + + self.tiles = [[None for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == 2: #grass + self.tiles[y][x] = GrassTile(self.grass_tiles[tile[1]], self.grass_group) + elif tile[0] == 8: #water + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]], self.water_group) + + def _load_grass_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas() + self.grass_texture = atlas.texture + self.grass_group = pyglet.graphics.TextureGroup(atlas.texture) + return [atlas.add(pyglet.image.load('data/tiles/grass/0.png'))] + + def _load_water_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas(width=384, height=416) + self.water_texture = atlas.texture + self.water_group = pyglet.graphics.TextureGroup(atlas.texture) + return [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(20, 32)] + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.batch = pyglet.graphics.Batch() + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = {} + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + for vlist in self.vertex_lists.values(): + vlist.delete() + self.vertex_lists = {} + coords = {} + textures = {} + + div_y, mod_y = divmod(self.y, 32) + div_x, mod_x = divmod(self.x, 32) + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + tile = self.mapset.get_tile(x-div_x, y-div_y) + group = tile.get_group() + if group not in coords.keys(): + coords[group] = [] + textures[group] = [] + + coords[group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + textures[group].extend(tile.get_tex_coords()) + + for group in coords.keys(): + self.vertex_lists[group] = self.batch.add((len(coords[group])//8)*4, pyglet.gl.GL_QUADS, group, + ('v2i', coords[group]), + ('t3f', textures[group]), + ('c4B', (255,255,255,255) * (len(coords[group])//8)*4)) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + if update_texture: + self._init_view() + else: + coords = {} + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + + tile = self.mapset.get_tile(x-div_x, y-div_y) + group = tile.get_group() + if group not in coords.keys(): + coords[group] = [] + coords[group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + for group in coords.keys(): + self.vertex_lists[group].vertices = coords[group] + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + water_texture = [] + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.mapset.get_tile(x-self.x//32, y-self.y//32) + if tile.get_group() is self.mapset.water_group: + water_texture.extend(tile.get_next_tex_coords()) + self.vertex_lists[self.mapset.water_group].tex_coords = water_texture + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + loaded_map = [[[8,random.randint(0,11)] for x in xrange(128)] for y in xrange(128)] + loaded_map[10][10] = [2, 0] + loaded_map[0] = [[2,0] for y in xrange(128)] + for x in xrange(128): + loaded_map[x][32] = [2,0] + mapset = MapSet(loaded_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable.py b/archive/hr_stable.py new file mode 100644 index 0000000..2e40461 --- /dev/null +++ b/archive/hr_stable.py @@ -0,0 +1,154 @@ +#!/usr/bin/python + +import pyglet +import random + +class Map(object): + def __init__(self, window): + self.window = window + + #generate map + self.water_map = [[random.randint(0,11) for x in xrange(128)] for y in xrange(128)] + + self.batch = pyglet.graphics.Batch() + + self.animate = 0 + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + + self._load_resources() + self._init_map() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _load_resources(self): + atlas = pyglet.image.atlas.TextureAtlas(width=384, height=416) + self.tiles = [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(20, 32)] + self.water_texture = atlas.texture + + def _init_map(self): + try: + for row in self.vertex_lists: + for vlist in row: + vlist.delete() + except: + raise + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + group = pyglet.graphics.TextureGroup(self.water_texture) + for y in xrange((self.window.height-48)//32): + y1 = y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = x*32 + x2 = x1+32 + tile = self.tiles[self.water_map[y][x]][self.animate] + self.vertex_lists[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.tex_coords), + ('c4B', (255,255,255,255) * 4))) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + self.vertex_lists[y][x].vertices = [x1, y1, x2, y1, x2, y2, x1, y2] + + if update_texture: + tile = self.tiles[self.water_map[y-div_y][x-div_x]][self.animate] + self.vertex_lists[y][x].tex_coords=tile.tex_coords + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_map() + + def animate_water(self, dt): + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.tiles[self.water_map[y-self.y//32][x-self.x//32]][self.animate] + self.vertex_lists[y][x].tex_coords=tile.tex_coords + self.animate = (self.animate+1)%12 + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 4, 28)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + map = Map(window) + window.push_handlers(map) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable0.py b/archive/hr_stable0.py new file mode 100644 index 0000000..78e80c5 --- /dev/null +++ b/archive/hr_stable0.py @@ -0,0 +1,120 @@ +#!/usr/bin/python +""" + homm3h3mview + + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import gzip, os +import struct +import sys +import pygame +from pygame.locals import * + +class Tile(pygame.sprite.Sprite): + def __init__(self, tile_type, tile_seq, x, y, flip_x, flip_y): + pygame.sprite.Sprite.__init__(self) #call Sprite initializer + try: + if tile_type == 8: #water + image = pygame.image.load("/home/josch/fheroes3/tests/69 tiles/3229 Watrtl.def/watrtl%02d.pcx"%(tile_seq+1)) + elif tile_type == 2: #grass + print tile_seq, + path = "/home/josch/fheroes3/tests/69 tiles/3221 GRASTL.def/tgrs%03d.pcx" + if tile_seq == 20: + image = pygame.image.load(path%0) + elif tile_seq == 21: + image = pygame.image.load(path%1) + elif tile_seq == 22: + image = pygame.image.load(path%2) + elif tile_seq == 23: + image = pygame.image.load(path%3) + elif tile_seq == 24: + image = pygame.image.load(path%10) + elif tile_seq == 25: + image = pygame.image.load(path%11) + elif tile_seq == 26: + image = pygame.image.load(path%12) + elif tile_seq == 27: + image = pygame.image.load(path%13) + elif tile_seq == 28: + image = pygame.image.load(path%20) + elif tile_seq == 29: + image = pygame.image.load(path%21) + elif tile_seq == 30: + image = pygame.image.load(path%22) + elif tile_seq == 31: + image = pygame.image.load(path%23) + elif tile_seq == 32: + image = pygame.image.load(path%30) + elif tile_seq == 33: + image = pygame.image.load(path%31) + elif tile_seq == 34: + image = pygame.image.load(path%32) + elif tile_seq == 35: + image = pygame.image.load(path%33) + else: + raise Exception + except: + image = pygame.image.load("/home/josch/fheroes3/tests/69 tiles/3999 Tshre.def/Tshre10.pcx") + image = image.convert() + if flip_x or flip_y: + image = pygame.transform.flip(image, flip_x, flip_y) + self.image = image + self.rect = image.get_rect() + self.rect.topleft = (32*x,32*y) + +def extract(filename): + pygame.init() + screen = pygame.display.set_mode((800, 600)) + pygame.display.set_caption('Heroes Rebirth') + pygame.mouse.set_visible(1) + clock = pygame.time.Clock() + + + h3m_data = gzip.open(filename) + h3m_data.seek(5) + (map_size,) = struct.unpack("i", h3m_data.read(4)) + h3m_data.seek(390) + tiles = [] + for i in xrange(map_size*map_size): + x = i%map_size + y = (i-x)/map_size + tile = struct.unpack("7B", h3m_data.read(7)) + flip_x = tile[6] & 0x1 + flip_y = tile[6] & 0x2 + tile = Tile(tile[0], tile[1], x, y, flip_x, flip_y) + tiles.append(tile) + + allsprites = pygame.sprite.RenderPlain(tiles) + + while 1: + for event in pygame.event.get(): + if event.type == QUIT: + return + elif event.type == KEYDOWN and event.key == K_ESCAPE: + return + allsprites.draw(screen) + pygame.display.flip() + clock.tick(25) + +def main(args): + if len(args) != 2: + print 'usage: %s file' % args[0] + return 2 + extract(args[1]) + +if __name__ == '__main__': + sys.exit(main(sys.argv)) diff --git a/archive/hr_stable1.5.py b/archive/hr_stable1.5.py new file mode 100644 index 0000000..202c310 --- /dev/null +++ b/archive/hr_stable1.5.py @@ -0,0 +1,212 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + @property + def current_frame(self): + return self.frames[self.animation] + + @property + def next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + @property + def current_tex_coords(self): + return self.current_frame.tex_coords + + @property + def next_tex_coords(self): + return self.next_frame.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.alt_water = pyglet.image.TextureGrid(pyglet.image.ImageGrid(pyglet.image.load("water.png"), 20, 16)) + self.water_texture = self.alt_water + + self.tiles = [[None for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + #self.tiles[y][x] = WaterTile(self.water_tiles[tile]) + self.tiles[y][x] = WaterTile(self.alt_water[(0, tile):(19, tile+1)]) + + def __getitem__(self, coords): + x, y = coords + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.batch = pyglet.graphics.Batch() + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + try: + for row in self.vertex_lists: + for vlist in row: + vlist.delete() + except: + raise + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + group = pyglet.graphics.TextureGroup(self.mapset.water_texture) + for y in xrange((self.window.height-48)//32): + y1 = y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = x*32 + x2 = x1+32 + tile = self.mapset[x, y] + self.vertex_lists[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.current_tex_coords), + ('c4B', (255,255,255,255) * 4))) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + self.vertex_lists[y][x].vertices = [x1, y1, x2, y1, x2, y2, x1, y2] + + if update_texture: + tile = self.mapset[x-div_x, y-div_y] + self.vertex_lists[y][x].tex_coords=tile.current_tex_coords + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.mapset[x-self.x//32, y-self.y//32] + self.vertex_lists[y][x].tex_coords=tile.next_tex_coords + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + #img = pyglet.resource.image("cursor.png") + #self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + loaded_map = [[random.randint(0,11) for x in xrange(128)] for y in xrange(128)] + mapset = MapSet(loaded_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable2.py b/archive/hr_stable2.py new file mode 100644 index 0000000..f678d8d --- /dev/null +++ b/archive/hr_stable2.py @@ -0,0 +1,237 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles, group): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class GrassTile(object): + def __init__(self, tile, group): + self.tile = tile + self.group = group + + def get_group(self): + return self.group + + def get_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.water_tiles = self._load_water_tiles() + self.grass_tiles = self._load_grass_tiles() + + self.tiles = [[None for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == 2: #grass + self.tiles[y][x] = GrassTile(self.grass_tiles[tile[1]], self.grass_group) + elif tile[0] == 8: #water + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]], self.water_group) + + def _load_grass_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas() + self.grass_texture = atlas.texture + self.grass_group = pyglet.graphics.TextureGroup(atlas.texture) + return [atlas.add(pyglet.image.load('data/tiles/grass/0.png'))] + + def _load_water_tiles(self): + atlas = pyglet.image.atlas.TextureAtlas(width=384, height=416) + self.water_texture = atlas.texture + self.water_group = pyglet.graphics.TextureGroup(atlas.texture) + return [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(20, 32)] + + def get_tile(self, x, y): + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.batch = pyglet.graphics.Batch() + + self.x = 0 + self.y = 0 + self.dx = 0 + self.dy = 0 + + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + try: + for row in self.vertex_lists: + for vlist in row: + vlist.delete() + except: + raise + self.vertex_lists = [[] for x in xrange((self.window.height-48)//32)] + for y in xrange((self.window.height-48)//32): + y1 = y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = x*32 + x2 = x1+32 + tile = self.mapset.get_tile(x, y) + self.vertex_lists[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, tile.get_group(), + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.get_tex_coords()), + ('c4B', (255,255,255,255) * 4))) + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT | pyglet.gl.GL_DEPTH_BUFFER_BIT) + self.batch.draw() + + def _move(self, dx, dy): + div_y, mod_y = divmod(self.y+dy, 32) + div_x, mod_x = divmod(self.x+dx, 32) + + if div_x != self.x//32 or div_y != self.y//32: + update_texture = True + else: + update_texture = False + + self.x += dx + self.y += dy + + for y in xrange((self.window.height-48)//32): + y1 = mod_y+y*32+48 + y2 = y1+32 + for x in xrange((self.window.width-192)//32): + x1 = mod_x+x*32 + x2 = x1+32 + self.vertex_lists[y][x].vertices = [x1, y1, x2, y1, x2, y2, x1, y2] + + if update_texture: + tile = self.mapset.get_tile(x-div_x, y-div_y) + self.vertex_lists[y][x].tex_coords=tile.get_tex_coords() + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange((self.window.height-48)//32): + for x in xrange((self.window.width-192)//32): + tile = self.mapset.get_tile(x-self.x//32, y-self.y//32) + if isinstance(tile, WaterTile): + self.vertex_lists[y][x].tex_coords=tile.get_next_tex_coords() + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + loaded_map = [[[8,random.randint(0,11)] for x in xrange(128)] for y in xrange(128)] + loaded_map[64][64] = [2, 0] + mapset = MapSet(loaded_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable3.py b/archive/hr_stable3.py new file mode 100644 index 0000000..2c891df --- /dev/null +++ b/archive/hr_stable3.py @@ -0,0 +1,409 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random +import itertools + +import demjson + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class Tile(object): + def __init__(self, tile): + self.tile = tile + + def get_tex_coords(self): + return self.tile.tex_coords + + def get_next_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + atlas = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.group = pyglet.graphics.TextureGroup(atlas.texture) + self.grass_tiles = [atlas.add(pyglet.image.load('data/tiles/grass/%d.png'%i)) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load('data/tiles/dirt/%d.png'%i)) for i in xrange(46)] + self.water_tiles = [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%02d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load('data/tiles/edge/%d EDG%d.PCX'%(i, i+1))) for i in xrange(36)] + + self.tiles = [[Tile(self.grass_tiles[0]) for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[y][x] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]]) + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]]) + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[y][x] = WaterTile(tiles) + else: + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]]) + else: + self.tiles[y][x] = GrassTile(self.grass_tiles[0]) + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self.vertex_list = None + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #drawn tiles + self.tiles_x = min((self.viewport_x//32)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//32)+2, self.mapset.height) + + self.center_x = False + if self.mapset.width*32 < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*32)//2-(self.viewport_x//2) + self.center_y = False + if self.mapset.height*32 < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*32)//2-(self.viewport_y//2) + + #step half the drawn tiles (minus one tile) + self.steps = 32 + + #undrawn map size + self.undrawn_x = 32*(self.mapset.width-self.tiles_x) + self.undrawn_y = 32*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + if self.vertex_list is not None: + self.vertex_list.delete() + else: + #do some first time init stuff + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.global_x = (self.mapset.width*32)//2-(self.viewport_x//2) + self.global_y = (self.mapset.height*32)//2-(self.viewport_y//2) + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + div_x = (trans_global_x-mod_x)//32 + div_y = (trans_global_y-mod_y)//32+self.mapset.height-1 + + vertices = [] + tex_coords = [] + count = 0 + + for y in xrange(self.tiles_y): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.get_tile(x-div_x, div_y-y) + vertices.extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords.extend(tile.get_tex_coords()) + count+=1 + self.vertex_list = self.batch.add(4*count, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', vertices), + ('t3f', tex_coords), + ('c4B', (255,255,255,255)*4*count)) + self.view_x = mod_x-self.steps + self.view_y = mod_y-self.steps + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + + def _move(self, dx, dy): + retex = False + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -32*self.mapset.width+self.viewport_x: + new_global_x = -32*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -32*self.mapset.height+self.viewport_y: + new_global_y = -32*self.mapset.height+self.viewport_y+self.steps + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + div_x = (new_global_x-mod_x)//32 + div_y = (new_global_y-mod_y)//32+self.mapset.height-1 + tex_coords = [] + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-div_x, div_y-y) + tex_coords.extend(tile.get_tex_coords()) + + self.vertex_list.tex_coords = tex_coords + + if not self.center_x: + self.view_x = mod_x-self.steps + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + div_x = (trans_global_x-mod_x)//32 + div_y = (trans_global_y-mod_y)//32+self.mapset.height-1 + tex_coords = [] + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-div_x, div_y-y) + tex_coords.extend(tile.get_next_tex_coords()) + self.vertex_list.tex_coords = tex_coords + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + +# loaded_map = [[[8,random.randint(0,11)] for x in xrange(32)] for y in xrange(12)] +# loaded_map[0] = [[2,0] for y in xrange(32)] +# loaded_map[11] = [[2,0] for y in xrange(32)] +# for x in xrange(12): +# loaded_map[x][0] = [2,0] +# for x in xrange(12): +# loaded_map[x][31] = [2,0] + + h3m = demjson.decode(open("test.h3m").read()) + loaded_map = h3m["upper_terrain"] + + edge_map = [[] for i in xrange(len(loaded_map)+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(loaded_map[num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + mapset = MapSet(edge_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable4.py b/archive/hr_stable4.py new file mode 100644 index 0000000..e489e44 --- /dev/null +++ b/archive/hr_stable4.py @@ -0,0 +1,420 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +import random +import itertools +import sys + +if sys.version_info[:2] >= (2,6): + import json +else: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class Tile(object): + def __init__(self, tile): + self.tile = tile + + def get_tex_coords(self): + return self.tile.tex_coords + + def get_next_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + atlas = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.group = pyglet.graphics.TextureGroup(atlas.texture) + self.grass_tiles = [atlas.add(pyglet.image.load('data/tiles/grass/%d.png'%i)) for i in xrange(79)] + self.snow_tiles = [atlas.add(pyglet.image.load('data/tiles/snow/%d.png'%i)) for i in xrange(79)] + self.lava_tiles = [atlas.add(pyglet.image.load('data/tiles/lava/%d.png'%i)) for i in xrange(79)] + self.swamp_tiles = [atlas.add(pyglet.image.load('data/tiles/swamp/%d.png'%i)) for i in xrange(79)] + self.rough_tiles = [atlas.add(pyglet.image.load('data/tiles/rough/%d.png'%i)) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load('data/tiles/dirt/%d.png'%i)) for i in xrange(46)] + self.rock_tiles = [atlas.add(pyglet.image.load('data/tiles/rock/%d.png'%i)) for i in xrange(48)] + self.sand_tiles = [atlas.add(pyglet.image.load('data/tiles/sand/%d.png'%i)) for i in xrange(24)] + self.water_tiles = [[atlas.add(pyglet.image.load('data/tiles/water/%d watrtl%02d.pcx/%d.png'%(j,j+1,i))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load('data/tiles/edge/%d EDG%d.PCX'%(i, i+1))) for i in xrange(36)] + + self.tiles = [[Tile(self.grass_tiles[0]) for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[y][x] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]]) + elif tile[0] == 1: #sand + self.tiles[y][x] = Tile(self.sand_tiles[tile[1]]) + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]]) + elif tile[0] == 3: #snow + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]]) + elif tile[0] == 4: #swamp + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]]) + elif tile[0] == 5: #rough + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]]) + elif tile[0] == 7: #lava + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]]) + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[y][x] = WaterTile(tiles) + else: + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]]) + elif tile[0] == 9: #rock + self.tiles[y][x] = Tile(self.rock_tiles[tile[1]]) + else: + print tile[0] + self.tiles[y][x] = GrassTile(self.grass_tiles[0]) + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._init_view() + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _init_view(self): + self.tile_size = 32 + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.vertex_list = [[] for i in xrange(self.tiles_y)] + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + vertices = [] + tex_coords = [] + count = 0 + + for y in xrange(self.tiles_y): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.get_tex_coords()), + ('c4B', (255,255,255,255)*4))) + self.view_x = mod_x-self.steps + self.view_y = mod_y-self.steps + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + + def _move(self, dx, dy): + retex = False + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y][x].tex_coords = tile.get_tex_coords() + + if not self.center_x: + self.view_x = mod_x-self.steps + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + if isinstance(tile, WaterTile): + self.vertex_list[y][x].tex_coords = tile.get_next_tex_coords() + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + img = pyglet.resource.image("data/cursors/default.png") + self.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + + def empty(self, dt): + pass + +def main(): + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + + h3m = json.loads(open("test.h3m").read()) + loaded_map = h3m["upper_terrain"] + + edge_map = [[] for i in xrange(len(loaded_map)+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(loaded_map[num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + mapset = MapSet(edge_map) + + mapview = MapView(mapset, window) + window.push_handlers(mapview) + pyglet.clock.schedule(window.empty) + pyglet.app.run() + +if __name__ == '__main__': + main() diff --git a/archive/hr_stable5.py b/archive/hr_stable5.py new file mode 100644 index 0000000..6b57bd1 --- /dev/null +++ b/archive/hr_stable5.py @@ -0,0 +1,516 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.frames = frames + self.animation = 0 + + def get_current_frame(self): + return self.frames[self.animation] + + def get_next_frame(self): + self.animation = (self.animation+1)%len(self.frames) + return self.frames[self.animation] + +class WaterTile(Animation): + def __init__(self, tiles): + super(WaterTile, self).__init__(tiles) + self.tiles = tiles + + def get_tex_coords(self): + return self.get_current_frame().tex_coords + + def get_next_tex_coords(self): + return self.get_next_frame().tex_coords + +class Tile(object): + def __init__(self, tile): + self.tile = tile + + def get_tex_coords(self): + return self.tile.tex_coords + + def get_next_tex_coords(self): + return self.tile.tex_coords + +class MapSet(object): + def __init__(self, loaded_map): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + atlas = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.group = pyglet.graphics.TextureGroup(atlas.texture) + self.grass_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/grass/%d.png'%i))) for i in xrange(79)] + self.snow_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/snow/%d.png'%i))) for i in xrange(79)] + self.lava_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/lava/%d.png'%i))) for i in xrange(79)] + self.swamp_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/swamp/%d.png'%i))) for i in xrange(79)] + self.rough_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rough/%d.png'%i))) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/dirt/%d.png'%i))) for i in xrange(46)] + self.rock_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rock/%d.png'%i))) for i in xrange(48)] + self.sand_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/sand/%d.png'%i))) for i in xrange(24)] + self.water_tiles = [[atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/water/%d watrtl%02d.pcx/%d.png'%(j,j+1,i)))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/edge/%d EDG%d.PCX'%(i, i+1)))) for i in xrange(36)] + self.tiles = [[Tile(self.grass_tiles[0]) for i in xrange(self.width)] for j in xrange(self.height)] + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[y][x] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.dirt_tiles[tile[1]]) + elif tile[0] == 1: #sand + self.tiles[y][x] = Tile(self.sand_tiles[tile[1]]) + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.grass_tiles[tile[1]]) + elif tile[0] == 3: #snow + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.snow_tiles[tile[1]]) + elif tile[0] == 4: #swamp + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.swamp_tiles[tile[1]]) + elif tile[0] == 5: #rough + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.rough_tiles[tile[1]]) + elif tile[0] == 7: #lava + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y)) + else: + self.tiles[y][x] = Tile(self.lava_tiles[tile[1]]) + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[y][x] = WaterTile(tiles) + else: + self.tiles[y][x] = WaterTile(self.water_tiles[tile[1]]) + elif tile[0] == 9: #rock + self.tiles[y][x] = Tile(self.rock_tiles[tile[1]]) + else: + print tile[0] + self.tiles[y][x] = GrassTile(self.grass_tiles[0]) + + def get_tile(self, x, y): + assert x >= 0 and y >= 0 + return self.tiles[y][x] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.vertex_list = [[] for i in xrange(self.tiles_y)] + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + vertices = [] + tex_coords = [] + count = 0 + + for y in xrange(self.tiles_y): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y].append(self.batch.add(4, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.get_tex_coords()), + ('c4B', (255,255,255,255)*4))) + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + self.vertex_list[y][x].tex_coords = tile.get_tex_coords() + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.get_tile(x-self.div_x, self.div_y-y) + if isinstance(tile, WaterTile): + self.vertex_list[y][x].tex_coords = tile.get_next_tex_coords() + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(800, 600, resizable=True, vsync=False ) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png') + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + backgroundimg = pyglet.image.load("data/interface/gamselb1.pcx") + self.background = pyglet.sprite.Sprite(backgroundimg) + + self.label.text = "PARSING MAP FILE..." + pyglet.clock.schedule_once(self.jsonloader, 0.0) + + def on_draw(self): + self.background.draw() + self.label.draw() + + def jsonloader(self, dt): + h3m = json.loads(open("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + pyglet.clock.schedule_once(self.loader2, 0.0, h3m["upper_terrain"]) + + def loader2(self, dt, loaded_map): + edge_map = loaded_map +# edge_map = [[] for i in xrange(len(loaded_map)+16)] +# for num in xrange(len(edge_map)): +# if num < 7 or num > len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) +# elif num == 7: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 16, 0, 0, 0, 0, 0]) +# line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 17, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# elif num == len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 19, 0, 0, 0, 0, 0]) +# line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 18, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# else: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) +# line.extend(loaded_map[num-8]) +# line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# edge_map[num] = line + self.label.text = "INITIATING MAPSET..." + pyglet.clock.schedule_once(self.loader3, 0.0, edge_map) + + def loader3(self, dt, edge_map): + mapset = MapSet(edge_map) + self.label.text = "INITIATING MAPVIEW..." + pyglet.clock.schedule_once(self.loader4, 0.0, mapset) + + def loader4(self, dt, mapset): + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + img = pyglet.resource.image("data/cursors/0.png") + self.window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/1.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable6.py b/archive/hr_stable6.py new file mode 100644 index 0000000..e82b964 --- /dev/null +++ b/archive/hr_stable6.py @@ -0,0 +1,619 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, frames): + self.__frames = frames + self.__animation = 0 + + def get_tex_coords(self): + return self.__frames[self.__animation].tex_coords + + tex_coords = property(get_tex_coords) + + def get_next_tex_coords(self): + self.__animation = (self.__animation+1)%len(self.__frames) + return self.__frames[self.__animation].tex_coords + + next_tex_coords = property(get_next_tex_coords) + +class MapSet(object): + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + #print len(pyglet.resource._default_loader._index) + + atlas = pyglet.image.atlas.TextureAtlas(width=1024, height=1024) + atlas2 = pyglet.image.atlas.TextureAtlas(width=2048, height=2048) + self.texture_group = pyglet.graphics.TextureGroup(atlas.texture) + self.group = pyglet.graphics.OrderedGroup(0, self.texture_group) + self.texture_group2 = pyglet.graphics.TextureGroup(atlas2.texture) + self.group_obj = pyglet.graphics.OrderedGroup(1, self.texture_group2) + self.grass_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/grastl.def/%d.png'%i))) for i in xrange(79)] + self.snow_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/snowtl.def/%d.png'%i))) for i in xrange(79)] + self.lava_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/lavatl.def/%d.png'%i))) for i in xrange(79)] + self.swamp_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/swmptl.def/%d.png'%i))) for i in xrange(79)] + self.rough_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rougtl.def/%d.png'%i))) for i in xrange(79)] + self.dirt_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/dirttl.def/%d.png'%i))) for i in xrange(46)] + self.rock_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/rocktl.def/%d.png'%i))) for i in xrange(48)] + self.sand_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/sandtl.def/%d.png'%i))) for i in xrange(24)] + self.water_tiles = [[atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/watrtl.def/%d/%d.png'%(j,i)))) for i in xrange(12)] for j in xrange(33)] + self.edge_tiles = [atlas.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/edg.def/%d.png'%i))) for i in xrange(36)] + self.tiles = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + self.tiles[x,y] = Tile(self.edge_tiles[tile[1]]) + elif tile[0] == 0: #dirt + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.dirt_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.dirt_tiles[tile[1]] + elif tile[0] == 1: #sand + self.tiles[x,y] = self.sand_tiles[tile[1]] + elif tile[0] == 2: #grass + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.grass_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.grass_tiles[tile[1]] + elif tile[0] == 3: #snow + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.snow_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.snow_tiles[tile[1]] + elif tile[0] == 4: #swamp + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.swamp_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.swamp_tiles[tile[1]] + elif tile[0] == 5: #rough + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.rough_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.rough_tiles[tile[1]] + elif tile[0] == 7: #lava + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + self.tiles[x,y] = self.lava_tiles[tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tiles[x,y] = self.lava_tiles[tile[1]] + elif tile[0] == 8: #water + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for tile in self.water_tiles[tile[1]]: + tiles.append(tile.get_transform(flip_x=flip_x, flip_y=flip_y)) + self.tiles[x,y] = Animation(tiles) + else: + self.tiles[x,y] = Animation(self.water_tiles[tile[1]]) + elif tile[0] == 9: #rock + self.tiles[x,y] = self.rock_tiles[tile[1]] + else: + raise NotImplementedError + + images = [(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/0.png")), i) for i,obj in enumerate(objects)] + self.objects = [(atlas2.add(image[0]), image[1]) for image in sorted(images, key=lambda i:i[0].height, reverse=True)] + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + if self.tunedobj.get((obj["x"], obj["y"]), None) is not None: + self.tunedobj[obj["x"],obj["y"]].append(self.objects[obj["id"]]) + else: + self.tunedobj[obj["x"],obj["y"]] = [self.objects[obj["id"]]] + + self.clrrvr = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/0.png'%i))) for i in xrange(13)] + + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[2] == 1: #clrrvr + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + c = self.clrrvr[tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.clrrvr[tile[3]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + + + self.dirtrd = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/dirtrd.def/%d.png'%i))) for i in xrange(17)] + self.gravrd = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/gravrd.def/%d.png'%i))) for i in xrange(17)] + self.cobbrd = [atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('data/tiles/cobbrd.def/%d.png'%i))) for i in xrange(17)] + + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[4] == 1: #dirtrd + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + c = self.dirtrd[tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.dirtrd[tile[5]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + elif tile[4] == 2: #gravrd + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + c = self.gravrd[tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.gravrd[tile[5]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + elif tile[4] == 3: #cobbrd + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + c = self.cobbrd[tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + else: + c = self.cobbrd[tile[5]] + if self.tunedobj.get((x, y), None) is not None: + self.tunedobj[x, y].append(c) + else: + self.tunedobj[x, y] = [c] + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.vertex_list = [[] for i in xrange(self.tiles_y)] + self.vl_objects = [[] for i in xrange(self.tiles_y+4)] + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + for y in xrange(self.tiles_y-1, -1, -1): + y1 = y*32+IF_BOTTOM + y2 = y1+32 + for x in xrange(self.tiles_x-1, -1, -1): + x1 = x*32+IF_LEFT + x2 = x1+32 + tile = self.mapset.tiles[x-self.div_x, self.div_y-y] + self.vertex_list[y].insert(0, self.batch.add(4, pyglet.gl.GL_QUADS, self.mapset.group, + ('v2i', [x1, y1, x2, y1, x2, y2, x1, y2]), + ('t3f', tile.tex_coords), + ('c4B', (255,255,255,255)*4))) + + vertices = [] + tex_coords = [] + count = 0 + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + o = self.mapset.tunedobj.get((x-self.div_x, self.div_y-y), None) + if(o is not None): + for obj in o: + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices.extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords.extend(obj.tex_coords) + count+=4 + + self.vl_objects = self.batch.add(count, pyglet.gl.GL_QUADS, + self.mapset.group_obj, + ('v2i', vertices), + ('t3f', tex_coords), + ('c4B', (255,255,255,255)*count)) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + for y in xrange(self.tiles_y-1, -1, -1): + for x in xrange(self.tiles_x-1, -1, -1): + tile = self.mapset.tiles[x-self.div_x, self.div_y-y] + self.vertex_list[y][x].tex_coords = tile.tex_coords + vertices = [] + tex_coords = [] + count = 0 + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + o = self.mapset.tunedobj.get((x-self.div_x, self.div_y-y), None) + if(o is not None): + for obj in o: + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords.extend(obj.tex_coords) + vertices.extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count+=4 + self.vl_objects.resize(count) + self.vl_objects.tex_coords = tex_coords + self.vl_objects.vertices = vertices + self.vl_objects.colors = (255,255,255,255)*count + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for y in xrange(self.tiles_y): + for x in xrange(self.tiles_x): + tile = self.mapset.tiles[x-self.div_x, self.div_y-y] + if isinstance(tile, Animation): + self.vertex_list[y][x].tex_coords = tile.next_tex_coords + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1024, 768, resizable=True, vsync=False ) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png') + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." +# edge_map = [[] for i in xrange(len(loaded_map)+16)] +# for num in xrange(len(edge_map)): +# if num < 7 or num > len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0])+18)]) +# elif num == 7: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 16, 0, 0, 0, 0, 0]) +# line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 17, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# elif num == len(edge_map)-8: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 19, 0, 0, 0, 0, 0]) +# line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(loaded_map[0]))]) +# line.append([-1, 18, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# else: +# line = [] +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) +# line.extend(loaded_map[num-8]) +# line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) +# line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) +# edge_map[num] = line + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable7_bigtex-nosplitanim.py b/archive/hr_stable7_bigtex-nosplitanim.py new file mode 100644 index 0000000..2f8fe17 --- /dev/null +++ b/archive/hr_stable7_bigtex-nosplitanim.py @@ -0,0 +1,718 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.__frames = frames + self.__animation = 0 + self.width = frames[0].width + self.height = frames[0].height + + def next_frame(self): + self.__animation = (self.__animation+1)%len(self.__frames) + + def get_tex_coords(self): + return self.__frames[self.__animation].tex_coords + + tex_coords = property(get_tex_coords) + + def get_group(self): + return self.__frames[self.__animation].group + + group = property(get_group) + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(2048, 2048) + print "atlas" + texture_region = self.current_atlas.add(image) + ordered_group = pyglet.graphics.OrderedGroup(order) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(2048, 2048) + print "atlas" + + self.groups = [] + + self.tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water + if "watrtl" not in tile_textures.keys(): + tile_textures["watrtl"] = [] + for j in xrange(33): + tile_textures["watrtl"].append([self.load_map_object('data/tiles/watrtl.def/%d/%d.png'%(j,i), 0) for i in xrange(12)]) + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for watrtl in tile_textures["watrtl"][tile[1]]: + new = watrtl.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = watrtl.group + tiles.append(new) + self.tiles[x,y] = [Animation(tiles)] + else: + self.tiles[x,y] = [Animation(tile_textures["watrtl"][tile[1]])] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr + if "clrrvr" not in tile_textures.keys(): + tile_textures["clrrvr"] = [[self.load_map_object('data/tiles/clrrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for clrrvr in tile_textures["clrrvr"][tile[3]]: + new = clrrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = clrrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["clrrvr"][tile[3]])) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + tile_textures["mudrvr"] = [[self.load_map_object('data/tiles/mudrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for mudrvr in tile_textures["mudrvr"][tile[3]]: + new = mudrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = mudrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["mudrvr"][tile[3]])) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + tile_textures["lavrvr"] = [[self.load_map_object('data/tiles/lavrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(9)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for lavrvr in tile_textures["lavrvr"][tile[3]]: + new = lavrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = lavrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["lavrvr"][tile[3]])) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/%d.png"%i))) + i+=1 + if "data/map_objects/"+obj["filename"]+"/%d.png"%i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + textures = [] + try: + textures = [self.current_atlas.add(img) for img in imgs[0]] + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(2048, 2048) + print "atlas" + textures = [self.current_atlas.add(img) for img in imgs[0]] + ordered_group = pyglet.graphics.OrderedGroup(2) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + for texture in textures: + texture.group = group + self.objects.append((textures, imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + if len(self.objects[obj["id"]]) == 1: + self.tiles[obj["x"]+9,obj["y"]+8].append(self.objects[obj["id"]][0]) + else: + self.tiles[obj["x"]+9,obj["y"]+8].append(Animation(self.objects[obj["id"]])) + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + #pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + self.vl_objects = [None for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords[obj.group].extend(obj.tex_coords) + count[obj.group]+=4 + + for i, group in enumerate(self.mapset.groups): + if count[i] != 0: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + pass + else: + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + if isinstance(obj, Animation): + obj.next_frame() + tex_coords[obj.group].extend(obj.tex_coords) + for i, group in enumerate(self.mapset.groups): + if len(tex_coords[i]) != 0: + self.vl_objects[i].tex_coords = tex_coords[i] + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable7_smalltex-splitanim.py b/archive/hr_stable7_smalltex-splitanim.py new file mode 100644 index 0000000..876dbe8 --- /dev/null +++ b/archive/hr_stable7_smalltex-splitanim.py @@ -0,0 +1,735 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Animation(object): + def __init__(self, frames): + self.__frames = frames + self.__animation = 0 + self.width = frames[0].width + self.height = frames[0].height + + def next_frame(self): + self.__animation = (self.__animation+1)%len(self.__frames) + + def get_tex_coords(self): + return self.__frames[self.__animation].tex_coords + + tex_coords = property(get_tex_coords) + + def get_group(self): + return self.__frames[self.__animation].group + + group = property(get_group) + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(512, 512) + print "atlas" + texture_region = self.current_atlas.add(image) + ordered_group = pyglet.graphics.OrderedGroup(order) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(512, 512) + print "atlas" + + self.groups = [] + + self.tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water + if "watrtl" not in tile_textures.keys(): + tile_textures["watrtl"] = [] + for j in xrange(33): + tile_textures["watrtl"].append([self.load_map_object('data/tiles/watrtl.def/%d/%d.png'%(j,i), 0) for i in xrange(12)]) + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + tiles = [] + for watrtl in tile_textures["watrtl"][tile[1]]: + new = watrtl.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = watrtl.group + tiles.append(new) + self.tiles[x,y] = [Animation(tiles)] + else: + self.tiles[x,y] = [Animation(tile_textures["watrtl"][tile[1]])] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr + if "clrrvr" not in tile_textures.keys(): + tile_textures["clrrvr"] = [[self.load_map_object('data/tiles/clrrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for clrrvr in tile_textures["clrrvr"][tile[3]]: + new = clrrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = clrrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["clrrvr"][tile[3]])) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + tile_textures["mudrvr"] = [[self.load_map_object('data/tiles/mudrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(12)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for mudrvr in tile_textures["mudrvr"][tile[3]]: + new = mudrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = mudrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["mudrvr"][tile[3]])) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + tile_textures["lavrvr"] = [[self.load_map_object('data/tiles/lavrvr.def/%d/%d.png'%(i, j), 1) for j in xrange(9)] for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + tiles = [] + for lavrvr in tile_textures["lavrvr"][tile[3]]: + new = lavrvr.get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = lavrvr.group + tiles.append(new) + self.tiles[x, y].append(Animation(tiles)) + else: + self.tiles[x, y].append(Animation(tile_textures["lavrvr"][tile[3]])) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/%d.png"%i))) + i+=1 + if "data/map_objects/"+obj["filename"]+"/%d.png"%i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + textures = [] + for img in imgs[0]: + try: + textures.append(self.current_atlas.add(img)) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(512, 512) + print "atlas" + textures.append(self.current_atlas.add(img)) + ordered_group = pyglet.graphics.OrderedGroup(2) + group = pyglet.graphics.TextureGroup(self.current_atlas.texture, ordered_group) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + textures[-1].group = group + self.objects.append((textures, imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + if len(self.objects[obj["id"]]) == 1: + self.tiles[obj["x"]+9,obj["y"]+8].append(self.objects[obj["id"]][0]) + else: + self.tiles[obj["x"]+9,obj["y"]+8].append(Animation(self.objects[obj["id"]])) + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x+self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2)+(self.tile_size//2) + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + self.vl_objects = [None for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords[obj.group].extend(obj.tex_coords) + count[obj.group]+=4 + + for i, group in enumerate(self.mapset.groups): + if count[i] != 0: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is not None: + self.vl_objects[i].delete() + self.vl_objects[i] = None + elif count[i] != 0 and self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + if isinstance(obj, Animation): + obj.next_frame() + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is not None: + self.vl_objects[i].delete() + self.vl_objects[i] = None + elif count[i] != 0 and self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable8.py b/archive/hr_stable8.py new file mode 100644 index 0000000..f09864f --- /dev/null +++ b/archive/hr_stable8.py @@ -0,0 +1,775 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet, re +from ctypes import create_string_buffer, memmove +import itertools + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, + self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, + self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, tex_region, frames, flip_x=False, flip_y=False): + self.texgroup = tex_region.group + if flip_x or flip_y: + self.tex = tex_region.get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tex = tex_region + self.__frames = [] + for img in frames: + data_pitch = abs(img._current_pitch) + buf = create_string_buffer(len(img._current_data)) + memmove(buf, img._current_data, len(img._current_data)) + data = buf.raw + rows = [data[i:i+abs(data_pitch)] for i in + xrange(len(img._current_data)-abs(data_pitch), + -1, -abs(data_pitch))] + self.__frames.append(''.join(rows)) + self.__animation = 0 + self.width = self.tex.width + self.height = self.tex.height + self.__hash = hash(self.__frames[0]) + + def next_frame(self): + self.__animation = (self.__animation+1)%len(self.__frames) + return self.__frames[self.__animation] + + def get_tex_coords(self): + return self.tex.tex_coords + + tex_coords = property(get_tex_coords) + + def get_group(self): + return self.texgroup + + group = property(get_group) + + def __hash__(self): + return self.__hash + + def __eq__(self, other): + return self.__hash == other.__hash + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture_region = self.current_atlas.add(image) + group = OrderedTextureGroup(order, self.current_atlas.texture) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + + self.groups = [] + + self.tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.tiles[x,y] = [new] + else: + self.tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water 12 anims + if "watrtl" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/watrtl.def/%d/0.png'%i, 0) for i in xrange(33)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/watrtl.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(33)] + tile_textures["watrtl"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>0)&1 + flip_y = (tile[6]>>1)&1 + self.tiles[x,y] = [tile_textures["watrtl"][flip_x, flip_y][tile[1]]] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr 12 anims + if "clrrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/clrrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["clrrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.tiles[x,y].append(tile_textures["clrrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/mudrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["mudrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.tiles[x,y].append(tile_textures["mudrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/lavrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(9)] for i in xrange(13)] + tile_textures["lavrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.tiles[x,y].append(tile_textures["lavrvr"][flip_x, flip_y][tile[3]]) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.tiles[x, y].append(new) + else: + self.tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/"+obj["filename"]+"/%d.png"%i))) + i+=1 + if "data/map_objects/"+obj["filename"]+"/%d.png"%i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + try: + texture = self.current_atlas.add(imgs[0][0]) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + print "atlas" + texture = self.current_atlas.add(imgs[0][0]) + group = OrderedTextureGroup(2, self.current_atlas.texture) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + texture.group = group + self.objects.append((Animation(texture, imgs[0]), imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + self.tiles[obj["x"]+9,obj["y"]+8].append(self.objects[obj["id"]]) + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + + self._first_time_init() + self._init_view() + + #mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width-10, y=0, + anchor_x='right', anchor_y='bottom') + + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + #center map + self.global_x = (self.mapset.width*self.tile_size-self.viewport_x + +self.tile_size)//2 + self.global_y = (self.mapset.height*self.tile_size-self.viewport_y + +self.tile_size)//2 + + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + #step one tile + self.steps = self.tile_size + + self.viewport_x = self.window.width-IF_RIGHT-IF_LEFT + self.viewport_y = self.window.height-IF_BOTTOM-IF_TOP + + #center map when viewport is too large, else check if map still fills + #whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width*self.tile_size < self.viewport_x: + self.center_x = True + self.global_x = (self.mapset.width*self.tile_size)//2-(self.viewport_x//2) + elif self.global_x > self.tile_size*self.mapset.width-self.viewport_x: + self.global_x = self.tile_size*self.mapset.width-self.viewport_x + elif self.global_x < 0: + self.global_x = 0 + + self.center_y = False + if self.mapset.height*self.tile_size < self.viewport_y: + self.center_y = True + self.global_y = (self.mapset.height*self.tile_size)//2-(self.viewport_y//2) + elif self.global_y > self.tile_size*self.mapset.height-self.viewport_y: + self.global_y = self.tile_size*self.mapset.height-self.viewport_y + elif self.global_y < 0: + self.global_y = 0 + + #drawn tiles + self.tiles_x = min((self.viewport_x//self.tile_size)+2, self.mapset.width) + self.tiles_y = min((self.viewport_y//self.tile_size)+2, self.mapset.height) + + #undrawn map size + self.undrawn_x = self.tile_size*(self.mapset.width-self.tiles_x) + self.undrawn_y = self.tile_size*(self.mapset.height-self.tiles_y) + #size of full undrawn steps + self.undrawn_steps_x = self.steps*(self.undrawn_x//self.steps) + self.undrawn_steps_y = self.steps*(self.undrawn_y//self.steps) + + self.batch = pyglet.graphics.Batch() + + self.view_x = 0 + self.view_y = 0 + self.dx = 0 + self.dy = 0 + + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + if trans_global_x < -self.undrawn_steps_x: + mod_x = trans_global_x+self.undrawn_x + elif trans_global_x < self.steps: + mod_x = trans_global_x%self.steps + else: + mod_x = trans_global_x + + if trans_global_y < -self.undrawn_steps_y: + mod_y = trans_global_y+self.undrawn_y + elif trans_global_y < self.steps: + mod_y = trans_global_y%self.steps + else: + mod_y = trans_global_y + + self.div_x = (trans_global_x-mod_x)//self.tile_size + self.div_y = (trans_global_y-mod_y)//self.tile_size+self.mapset.height-1 + + self.vl_objects = [None for i, value in enumerate(self.mapset.groups)] + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + self.cur_objects = [[] for i, value in enumerate(self.mapset.groups)] + + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + tex_coords[obj.group].extend(obj.tex_coords) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + + for i, group in enumerate(self.mapset.groups): + if count[i] != 0: + self.vl_objects[i] = self.batch.add(count[i], pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + self.cur_objects[i] = list(set(self.cur_objects[i])) + + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + #here we translate the global map position so we can draw with it + trans_global_x = self.steps-self.global_x + trans_global_y = self.steps-self.global_y + + new_global_x = trans_global_x+dx + new_global_y = trans_global_y+dy + + if self.global_x-dx < 0: + new_global_x = self.steps + if self.global_y-dy < 0: + new_global_y = self.steps + if dx-self.global_x < -self.tile_size*self.mapset.width+self.viewport_x: + new_global_x = -self.tile_size*self.mapset.width+self.viewport_x+self.steps + if dy-self.global_y < -self.tile_size*self.mapset.height+self.viewport_y: + new_global_y = -self.tile_size*self.mapset.height+self.viewport_y+self.steps + + retex = False + + if new_global_x < -self.undrawn_steps_x: + mod_x = new_global_x+self.undrawn_x + if trans_global_x >= -self.undrawn_steps_x: + retex = True + elif new_global_x < self.steps: + div_x, mod_x = divmod(new_global_x, self.steps) + retex = div_x != trans_global_x//self.steps or retex + else: + mod_x = new_global_x + + if new_global_y < -self.undrawn_steps_y: + mod_y = new_global_y+self.undrawn_y + if trans_global_y >= -self.undrawn_steps_y: + retex = True + elif new_global_y < self.steps: + div_y, mod_y = divmod(new_global_y, self.steps) + retex = div_y != trans_global_y//self.steps or retex + else: + mod_y = new_global_y + + if retex: + self.div_x = (new_global_x-mod_x)//self.tile_size + self.div_y = (new_global_y-mod_y)//self.tile_size+self.mapset.height-1 + vertices = [[] for i, value in enumerate(self.mapset.groups)] + tex_coords = [[] for i, value in enumerate(self.mapset.groups)] + count = [0 for i, value in enumerate(self.mapset.groups)] + self.cur_objects = [[] for i, value in enumerate(self.mapset.groups)] + for y in xrange(self.tiles_y-1, -6, -1): + y1 = y*32+IF_BOTTOM + for x in xrange(self.tiles_x+5-1, -1, -1): + for obj in self.mapset.tiles.get((x-self.div_x, self.div_y-y), []): + x1 = x*32+IF_LEFT-obj.width+32 + x2 = x1+obj.width + y2 = y1+obj.height + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend([x1, y1, x2, y1, x2, y2, x1, y2]) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + pass + else: + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + self.vl_objects[i] = self.batch.add(count[i], + pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + self.cur_objects[i] = list(set(self.cur_objects[i])) + + + if not self.center_x: + self.view_x = mod_x-self.steps-(self.tile_size-32)//4 + self.global_x = self.steps-new_global_x + if not self.center_y: + self.view_y = mod_y-self.steps-((self.tile_size-32)*3)//2 + self.global_y = self.steps-new_global_y + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + #mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for i, group in enumerate(self.mapset.groups): + if len(self.cur_objects[i]) > 0: + pyglet.gl.glBindTexture(self.cur_objects[i][0].tex.target, + self.cur_objects[i][0].tex.id) + for obj in self.cur_objects[i]: + pyglet.gl.glTexSubImage2D(obj.tex.owner.target, + obj.tex.owner.level, + obj.tex.x, obj.tex.y, + obj.tex.width, obj.tex.height, + pyglet.gl.GL_RGBA, pyglet.gl.GL_UNSIGNED_BYTE, + obj.next_frame()) + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save( + 'screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, + pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/archive/hr_stable9.py b/archive/hr_stable9.py new file mode 100644 index 0000000..9c414b1 --- /dev/null +++ b/archive/hr_stable9.py @@ -0,0 +1,787 @@ +#!/usr/bin/python +""" + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet, re +from ctypes import create_string_buffer, memmove +import itertools + +try: + import json +except ImportError: + try: + import simplejson as json + except ImportError: + import demjson as json + json.loads = json.decode + json.dumps = json.encode + +IF_BOTTOM = 0#48 +IF_RIGHT = 0#200 +IF_TOP = IF_LEFT = 0#8 + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, + self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, + self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, tex_region, frames, flip_x=False, flip_y=False): + self.texgroup = tex_region.group + if flip_x or flip_y: + self.tex = tex_region.get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tex = tex_region + self.__frames = [] + for img in frames: + data_pitch = abs(img._current_pitch) + buf = create_string_buffer(len(img._current_data)) + memmove(buf, img._current_data, len(img._current_data)) + data = buf.raw + rows = [data[i:i + abs(data_pitch)] for i in + xrange(len(img._current_data)-abs(data_pitch), + -1, -abs(data_pitch))] + self.__frames.append(''.join(rows)) + self.__animation = 0 + self.width = self.tex.width + self.height = self.tex.height + self.__hash = hash(self.__frames[0]) + + def next_frame(self): + self.__animation = (self.__animation + 1) % len(self.__frames) + return self.__frames[self.__animation] + + @property + def tex_coords(self): + return self.tex.tex_coords + + @property + def group(self): + return self.texgroup + + def __hash__(self): + return self.__hash + + def __eq__(self, other): + return self.__hash == other.__hash + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture_region = self.current_atlas.add(image) + group = OrderedTextureGroup(order, self.current_atlas.texture) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, loaded_map, objects, tunedobj): + self.width = len(loaded_map[0]) + self.height = len(loaded_map) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + + self.groups = [] + + self.__tiles = {} + tile_textures = {} + for y, line in enumerate(loaded_map): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.__tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.__tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water 12 anims + if "watrtl" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/watrtl.def/%d/0.png'%i, 0) for i in xrange(33)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/watrtl.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(33)] + tile_textures["watrtl"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>0)&1 + flip_y = (tile[6]>>1)&1 + self.__tiles[x,y] = [tile_textures["watrtl"][flip_x, flip_y][tile[1]]] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.__tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr 12 anims + if "clrrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/clrrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["clrrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["clrrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/mudrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["mudrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["mudrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/tiles/lavrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(9)] for i in xrange(13)] + tile_textures["lavrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["lavrvr"][flip_x, flip_y][tile[3]]) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(objects): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/map_objects/" + obj["filename"] + "/%d.png"%i))) + i += 1 + if "data/map_objects/" + obj["filename"] + "/%d.png" % i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + try: + texture = self.current_atlas.add(imgs[0][0]) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + print "atlas" + texture = self.current_atlas.add(imgs[0][0]) + group = OrderedTextureGroup(2, self.current_atlas.texture) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + texture.group = group + self.objects.append((Animation(texture, imgs[0]), imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in tunedobj if i["z"]==0]: + self.__tiles[obj["x"] + 9,obj["y"] + 8].append(self.objects[obj["id"]]) + + def get_tiles(self, tiles_x, tiles_y, div_x, div_y): + for y in xrange(tiles_y - 1, -6, -1): + y1 = y * 32 + IF_BOTTOM + for x in xrange(tiles_x + 5 - 1, -1, -1): + for obj in self.__tiles.get((x - div_x, div_y - y), []): + x1 = x * 32 + IF_LEFT - obj.width + 32 + x2 = x1 + obj.width + y2 = y1 + obj.height + yield obj, [x1, y1, x2, y1, x2, y2, x1, y2] + + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + self._first_time_init() + self._init_view() + # mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width - 10, y=0, + anchor_x='right', anchor_y='bottom') + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + # size of the viewport + self.vp_width = self.window.width-IF_RIGHT-IF_LEFT + self.vp_height = self.window.height-IF_BOTTOM-IF_TOP + # center map + self.x = (self.mapset.width * self.tile_size - self.vp_width + + self.tile_size) // 2 + self.y = (self.mapset.height * self.tile_size - self.vp_height + + self.tile_size) // 2 + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + # initiate new batch + self.batch = pyglet.graphics.Batch() + # initiate new vertex list + self.vl_objects = [None for value in self.mapset.groups] + # size of the viewport + self.vp_width = self.window.width - IF_RIGHT - IF_LEFT + self.vp_height = self.window.height - IF_BOTTOM - IF_TOP + # center map when viewport is too large, else check if map still fills + # whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width * self.tile_size < self.vp_width: + # center the map in x direction + self.center_x = True + self.x = (self.mapset.width * self.tile_size - self.vp_width) // 2 + elif self.x > self.tile_size * self.mapset.width - self.vp_width: + # move map back to the right + self.x = self.tile_size * self.mapset.width - self.vp_width + elif self.x < 0: + # move map to the left + self.x = 0 + self.center_y = False + if self.mapset.height * self.tile_size < self.vp_height: + # center the map in y direction + self.center_y = True + self.y = (self.mapset.height * self.tile_size - + self.vp_height) // 2 + elif self.y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + self.y = self.tile_size * self.mapset.height - self.vp_height + elif self.y < 0: + # move map down + self.y = 0 + # tiles to be drawn with the current viewport size + self.tiles_x = min((self.vp_width // self.tile_size) + 2, + self.mapset.width) + self.tiles_y = min((self.vp_height // self.tile_size) + 2, + self.mapset.height) + # undrawn map size in pixels + self.undrawn_x = self.tile_size * (self.mapset.width - self.tiles_x) + self.undrawn_y = self.tile_size * (self.mapset.height - self.tiles_y) + # reset mouse or keyboard movement + self.dx = 0 + self.dy = 0 + # calculate modulo pixel position of the map + if self.x - self.tile_size > self.undrawn_x: + # dont go right beyond map borders + mod_x = self.tile_size - self.x + self.undrawn_x + elif self.x > 0: + # calculate modulo of current position and tile_size + mod_x = (self.tile_size - self.x) % self.tile_size + else: + # dont go left beyond map borders + mod_x = self.tile_size - self.x + if self.y - self.tile_size > self.undrawn_y: + # dont go up beyond map borders + mod_y = self.tile_size - self.y + self.undrawn_y + elif self.y > 0: + # calculate modulo of current position and tile_size + mod_y = (self.tile_size - self.y) % self.tile_size + else: + # dont go down beyond map borders + mod_y = self.tile_size - self.y + # calculate tile position of the map, turn y coordinates upside down + self.div_x = (self.tile_size - self.x - mod_x) // self.tile_size + self.div_y = (self.tile_size - self.y - mod_y) // self.tile_size + \ + self.mapset.height - 1 + # update vertex lists with the gathered information + self.update_vertex_lists() + # update current current position that is to be glTranslated + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + self.view_x = mod_x - self.tile_size - (self.tile_size - 32) // 4 + self.view_y = mod_y - self.tile_size - ((self.tile_size - 32) * 3) // 2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x, self.view_y, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + # new map position + new_x = self.x - dx + new_y = self.y - dy + # only update textures and vertices when necessary + retex = False + # if x or y jump is too big, adjust new position accordingly + if new_x < 0: + # move map to the left + new_x = 0 + retex = True + if new_x > self.tile_size * self.mapset.width - self.vp_width: + # move map to the right + new_x = self.tile_size * self.mapset.width - self.vp_width + retex = True + if new_y < 0: + # move map down + new_y = 0 + retex = True + if new_y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + new_y = self.tile_size * self.mapset.height - self.vp_height + retex = True + # find out how many steps and pixels we have to move and wether we have + # to retex + if new_x - self.tile_size > self.undrawn_x: + # we are at the right border + mod_x = self.tile_size - new_x + self.undrawn_x + # only retex if the last position was not at the border + if self.x - self.tile_size <= self.undrawn_x: + retex = True + elif new_x > 0: + # normal movement: calculate the amount of steps and the modulo + div_x, mod_x = divmod(self.tile_size - new_x, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_x != (self.tile_size - self.x) // self.tile_size: + retex = True + else: + # we are at the left border + mod_x = self.tile_size - new_x + if new_y - self.tile_size > self.undrawn_y: + # we are at the top + mod_y = self.tile_size - new_y + self.undrawn_y + # only retex if the last position was not at the border + if self.y - self.tile_size <= self.undrawn_y: + retex = True + elif new_y > 0: + # normal movement: calculate the amount of steps and the modulo + div_y, mod_y = divmod(self.tile_size - new_y, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_y != (self.tile_size - self.y) // self.tile_size: + retex = True + else: + # we are at the bottom + mod_y = self.tile_size - new_y + # if we have to update vertices and textures + if retex: + # calculate the current position on the tilemap + self.div_x = (self.tile_size - new_x - mod_x) // \ + self.tile_size + self.div_y = (self.tile_size - new_y - mod_y) // \ + self.tile_size + self.mapset.height - 1 + self.update_vertex_lists() + # update position if not centered + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + if not self.center_x: + self.view_x = mod_x-self.tile_size-(self.tile_size-32)//4 + self.x = new_x + if not self.center_y: + self.view_y = mod_y-self.tile_size-((self.tile_size-32)*3)//2 + self.y = new_y + + def update_vertex_lists(self): + # initiate lists of vertex lists, vertices, texture coords, vertices + # counts and map objects for each group + vertices = [[] for value in self.mapset.groups] + tex_coords = [[] for value in self.mapset.groups] + count = [0 for value in self.mapset.groups] + self.cur_objects = [[] for value in self.mapset.groups] + # for each tile in the viewport, update the list of the specific group + for obj, coords in self.mapset.get_tiles(self.tiles_x, self.tiles_y, + self.div_x, self.div_y): + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend(coords) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + # let the vertex list be None + pass + else: + # there was a vertex list but now no more - delete it + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + # there was no vertex list but ther now is one - create it + self.vl_objects[i] = self.batch.add(count[i], + pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + # there already is a vertex list - resize and refill + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + # make object list unique + self.cur_objects[i] = list(set(self.cur_objects[i])) + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + # mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for i, group in enumerate(self.mapset.groups): + if len(self.cur_objects[i]) > 0: + pyglet.gl.glBindTexture(self.cur_objects[i][0].tex.target, + self.cur_objects[i][0].tex.id) + for obj in self.cur_objects[i]: + pyglet.gl.glTexSubImage2D(obj.tex.owner.target, + obj.tex.owner.level, + obj.tex.x, obj.tex.y, + obj.tex.width, obj.tex.height, + pyglet.gl.GL_RGBA, pyglet.gl.GL_UNSIGNED_BYTE, + obj.next_frame()) + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save( + 'screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) + + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + + self.label.text = "PARSING MAP FILE..." + h3m = json.loads(pyglet.resource.file("test.h3m").read()) + self.label.text = "PARSING MAP FILE..." + edge_map = [[] for i in xrange(len(h3m["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m["upper_terrain"] = edge_map + self.label.text = "INITIATING MAPSET..." + + mapset = MapSet(h3m["upper_terrain"], h3m["objects"], h3m["tunedobj"]) + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, + pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/demjson.py b/demjson.py new file mode 100644 index 0000000..580fbfa --- /dev/null +++ b/demjson.py @@ -0,0 +1,2136 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +r""" A JSON data encoder and decoder. + + This Python module implements the JSON (http://json.org/) data + encoding format; a subset of ECMAScript (aka JavaScript) for encoding + primitive data types (numbers, strings, booleans, lists, and + associative arrays) in a language-neutral simple text-based syntax. + + It can encode or decode between JSON formatted strings and native + Python data types. Normally you would use the encode() and decode() + functions defined by this module, but if you want more control over + the processing you can use the JSON class. + + This implementation tries to be as completely cormforming to all + intricacies of the standards as possible. It can operate in strict + mode (which only allows JSON-compliant syntax) or a non-strict mode + (which allows much more of the whole ECMAScript permitted syntax). + This includes complete support for Unicode strings (including + surrogate-pairs for non-BMP characters), and all number formats + including negative zero and IEEE 754 non-numbers such a NaN or + Infinity. + + The JSON/ECMAScript to Python type mappings are: + ---JSON--- ---Python--- + null None + undefined undefined (note 1) + Boolean (true,false) bool (True or False) + Integer int or long (note 2) + Float float + String str or unicode ( "..." or u"..." ) + Array [a, ...] list ( [...] ) + Object {a:b, ...} dict ( {...} ) + + -- Note 1. an 'undefined' object is declared in this module which + represents the native Python value for this type when in + non-strict mode. + + -- Note 2. some ECMAScript integers may be up-converted to Python + floats, such as 1e+40. Also integer -0 is converted to + float -0, so as to preserve the sign (which ECMAScript requires). + + In addition, when operating in non-strict mode, several IEEE 754 + non-numbers are also handled, and are mapped to specific Python + objects declared in this module: + + NaN (not a number) nan (float('nan')) + Infinity, +Infinity inf (float('inf')) + -Infinity neginf (float('-inf')) + + When encoding Python objects into JSON, you may use types other than + native lists or dictionaries, as long as they support the minimal + interfaces required of all sequences or mappings. This means you can + use generators and iterators, tuples, UserDict subclasses, etc. + + To make it easier to produce JSON encoded representations of user + defined classes, if the object has a method named json_equivalent(), + then it will call that method and attempt to encode the object + returned from it instead. It will do this recursively as needed and + before any attempt to encode the object using it's default + strategies. Note that any json_equivalent() method should return + "equivalent" Python objects to be encoded, not an already-encoded + JSON-formatted string. There is no such aid provided to decode + JSON back into user-defined classes as that would dramatically + complicate the interface. + + When decoding strings with this module it may operate in either + strict or non-strict mode. The strict mode only allows syntax which + is conforming to RFC 4627 (JSON), while the non-strict allows much + more of the permissible ECMAScript syntax. + + The following are permitted when processing in NON-STRICT mode: + + * Unicode format control characters are allowed anywhere in the input. + * All Unicode line terminator characters are recognized. + * All Unicode white space characters are recognized. + * The 'undefined' keyword is recognized. + * Hexadecimal number literals are recognized (e.g., 0xA6, 0177). + * String literals may use either single or double quote marks. + * Strings may contain \x (hexadecimal) escape sequences, as well as the + \v and \0 escape sequences. + * Lists may have omitted (elided) elements, e.g., [,,,,,], with + missing elements interpreted as 'undefined' values. + * Object properties (dictionary keys) can be of any of the + types: string literals, numbers, or identifiers (the later of + which are treated as if they are string literals)---as permitted + by ECMAScript. JSON only permits strings literals as keys. + + Concerning non-strict and non-ECMAScript allowances: + + * Octal numbers: If you allow the 'octal_numbers' behavior (which + is never enabled by default), then you can use octal integers + and octal character escape sequences (per the ECMAScript + standard Annex B.1.2). This behavior is allowed, if enabled, + because it was valid JavaScript at one time. + + * Multi-line string literals: Strings which are more than one + line long (contain embedded raw newline characters) are never + permitted. This is neither valid JSON nor ECMAScript. Some other + JSON implementations may allow this, but this module considers + that behavior to be a mistake. + + References: + * JSON (JavaScript Object Notation) + + * RFC 4627. The application/json Media Type for JavaScript Object Notation (JSON) + + * ECMA-262 3rd edition (1999) + + * IEEE 754-1985: Standard for Binary Floating-Point Arithmetic. + + +""" + +__author__ = "Deron Meranda " +__date__ = "2008-03-19" +__version__ = "1.3" +__credits__ = """Copyright (c) 2006-2008 Deron E. Meranda +Licensed under GNU GPL 3.0 or later. See LICENSE.txt included with this software. + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . + +""" + +# ------------------------------ +# useful global constants + +content_type = 'application/json' +file_ext = 'json' +hexdigits = '0123456789ABCDEFabcdef' +octaldigits = '01234567' + +# ---------------------------------------------------------------------- +# Decimal and float types. +# +# If a JSON number can not be stored in a Python float without loosing +# precision and the Python has the decimal type, then we will try to +# use decimal instead of float. To make this determination we need to +# know the limits of the float type, but Python doesn't have an easy +# way to tell what the largest floating-point number it supports. So, +# we detemine the precision and scale of the float type by testing it. + +try: + # decimal module was introduced in Python 2.4 + import decimal +except ImportError: + decimal = None + +def determine_float_precision(): + """Returns a tuple (significant_digits, max_exponent) for the float type. + """ + import math + # Just count the digits in pi. The last two decimal digits + # may only be partial digits, so discount for them. + whole, frac = repr(math.pi).split('.') + sigdigits = len(whole) + len(frac) - 2 + + # This is a simple binary search. We find the largest exponent + # that the float() type can handle without going infinite or + # raising errors. + maxexp = None + minv = 0; maxv = 1000 + while True: + if minv+1 == maxv: + maxexp = minv - 1 + break + elif maxv < minv: + maxexp = None + break + m = (minv + maxv) // 2 + try: + f = repr(float( '1e+%d' % m )) + except ValueError: + f = None + else: + if not f or f[0] < '0' or f[0] > '9': + f = None + if not f: + # infinite + maxv = m + else: + minv = m + return sigdigits, maxexp + +float_sigdigits, float_maxexp = determine_float_precision() + +# ---------------------------------------------------------------------- +# The undefined value. +# +# ECMAScript has an undefined value (similar to yet distinct from null). +# Neither Python or strict JSON have support undefined, but to allow +# JavaScript behavior we must simulate it. + +class _undefined_class(object): + """Represents the ECMAScript 'undefined' value.""" + __slots__ = [] + def __repr__(self): + return self.__module__ + '.undefined' + def __str__(self): + return 'undefined' + def __nonzero__(self): + return False +undefined = _undefined_class() +del _undefined_class + + +# ---------------------------------------------------------------------- +# Non-Numbers: NaN, Infinity, -Infinity +# +# ECMAScript has official support for non-number floats, although +# strict JSON does not. Python doesn't either. So to support the +# full JavaScript behavior we must try to add them into Python, which +# is unfortunately a bit of black magic. If our python implementation +# happens to be built on top of IEEE 754 we can probably trick python +# into using real floats. Otherwise we must simulate it with classes. + +def _nonnumber_float_constants(): + """Try to return the Nan, Infinity, and -Infinity float values. + + This is unnecessarily complex because there is no standard + platform- independent way to do this in Python as the language + (opposed to some implementation of it) doesn't discuss + non-numbers. We try various strategies from the best to the + worst. + + If this Python interpreter uses the IEEE 754 floating point + standard then the returned values will probably be real instances + of the 'float' type. Otherwise a custom class object is returned + which will attempt to simulate the correct behavior as much as + possible. + + """ + try: + # First, try (mostly portable) float constructor. Works under + # Linux x86 (gcc) and some Unices. + nan = float('nan') + inf = float('inf') + neginf = float('-inf') + except ValueError: + try: + # Try the AIX (PowerPC) float constructors + nan = float('NaNQ') + inf = float('INF') + neginf = float('-INF') + except ValueError: + try: + # Next, try binary unpacking. Should work under + # platforms using IEEE 754 floating point. + import struct, sys + xnan = '7ff8000000000000'.decode('hex') # Quiet NaN + xinf = '7ff0000000000000'.decode('hex') + xcheck = 'bdc145651592979d'.decode('hex') # -3.14159e-11 + # Could use float.__getformat__, but it is a new python feature, + # so we use sys.byteorder. + if sys.byteorder == 'big': + nan = struct.unpack('d', xnan)[0] + inf = struct.unpack('d', xinf)[0] + check = struct.unpack('d', xcheck)[0] + else: + nan = struct.unpack('d', xnan[::-1])[0] + inf = struct.unpack('d', xinf[::-1])[0] + check = struct.unpack('d', xcheck[::-1])[0] + neginf = - inf + if check != -3.14159e-11: + raise ValueError('Unpacking raw IEEE 754 floats does not work') + except (ValueError, TypeError): + # Punt, make some fake classes to simulate. These are + # not perfect though. For instance nan * 1.0 == nan, + # as expected, but 1.0 * nan == 0.0, which is wrong. + class nan(float): + """An approximation of the NaN (not a number) floating point number.""" + def __repr__(self): return 'nan' + def __str__(self): return 'nan' + def __add__(self,x): return self + def __radd__(self,x): return self + def __sub__(self,x): return self + def __rsub__(self,x): return self + def __mul__(self,x): return self + def __rmul__(self,x): return self + def __div__(self,x): return self + def __rdiv__(self,x): return self + def __divmod__(self,x): return (self,self) + def __rdivmod__(self,x): return (self,self) + def __mod__(self,x): return self + def __rmod__(self,x): return self + def __pow__(self,exp): return self + def __rpow__(self,exp): return self + def __neg__(self): return self + def __pos__(self): return self + def __abs__(self): return self + def __lt__(self,x): return False + def __le__(self,x): return False + def __eq__(self,x): return False + def __neq__(self,x): return True + def __ge__(self,x): return False + def __gt__(self,x): return False + def __complex__(self,*a): raise NotImplementedError('NaN can not be converted to a complex') + if decimal: + nan = decimal.Decimal('NaN') + else: + nan = nan() + class inf(float): + """An approximation of the +Infinity floating point number.""" + def __repr__(self): return 'inf' + def __str__(self): return 'inf' + def __add__(self,x): return self + def __radd__(self,x): return self + def __sub__(self,x): return self + def __rsub__(self,x): return self + def __mul__(self,x): + if x is neginf or x < 0: + return neginf + elif x == 0: + return nan + else: + return self + def __rmul__(self,x): return self.__mul__(x) + def __div__(self,x): + if x == 0: + raise ZeroDivisionError('float division') + elif x < 0: + return neginf + else: + return self + def __rdiv__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return 0.0 + def __divmod__(self,x): + if x == 0: + raise ZeroDivisionError('float divmod()') + elif x < 0: + return (nan,nan) + else: + return (self,self) + def __rdivmod__(self,x): + if x is inf or x is neginf or x is nan: + return (nan, nan) + return (0.0, x) + def __mod__(self,x): + if x == 0: + raise ZeroDivisionError('float modulo') + else: + return nan + def __rmod__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return x + def __pow__(self, exp): + if exp == 0: + return 1.0 + else: + return self + def __rpow__(self, x): + if -1 < x < 1: return 0.0 + elif x == 1.0: return 1.0 + elif x is nan or x is neginf or x < 0: + return nan + else: + return self + def __neg__(self): return neginf + def __pos__(self): return self + def __abs__(self): return self + def __lt__(self,x): return False + def __le__(self,x): + if x is self: + return True + else: + return False + def __eq__(self,x): + if x is self: + return True + else: + return False + def __neq__(self,x): + if x is self: + return False + else: + return True + def __ge__(self,x): return True + def __gt__(self,x): return True + def __complex__(self,*a): raise NotImplementedError('Infinity can not be converted to a complex') + if decimal: + inf = decimal.Decimal('Infinity') + else: + inf = inf() + class neginf(float): + """An approximation of the -Infinity floating point number.""" + def __repr__(self): return '-inf' + def __str__(self): return '-inf' + def __add__(self,x): return self + def __radd__(self,x): return self + def __sub__(self,x): return self + def __rsub__(self,x): return self + def __mul__(self,x): + if x is self or x < 0: + return inf + elif x == 0: + return nan + else: + return self + def __rmul__(self,x): return self.__mul__(self) + def __div__(self,x): + if x == 0: + raise ZeroDivisionError('float division') + elif x < 0: + return inf + else: + return self + def __rdiv__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return -0.0 + def __divmod__(self,x): + if x == 0: + raise ZeroDivisionError('float divmod()') + elif x < 0: + return (nan,nan) + else: + return (self,self) + def __rdivmod__(self,x): + if x is inf or x is neginf or x is nan: + return (nan, nan) + return (-0.0, x) + def __mod__(self,x): + if x == 0: + raise ZeroDivisionError('float modulo') + else: + return nan + def __rmod__(self,x): + if x is inf or x is neginf or x is nan: + return nan + return x + def __pow__(self,exp): + if exp == 0: + return 1.0 + else: + return self + def __rpow__(self, x): + if x is nan or x is inf or x is inf: + return nan + return 0.0 + def __neg__(self): return inf + def __pos__(self): return self + def __abs__(self): return inf + def __lt__(self,x): return True + def __le__(self,x): return True + def __eq__(self,x): + if x is self: + return True + else: + return False + def __neq__(self,x): + if x is self: + return False + else: + return True + def __ge__(self,x): + if x is self: + return True + else: + return False + def __gt__(self,x): return False + def __complex__(self,*a): raise NotImplementedError('-Infinity can not be converted to a complex') + if decimal: + neginf = decimal.Decimal('-Infinity') + else: + neginf = neginf(0) + return nan, inf, neginf + +nan, inf, neginf = _nonnumber_float_constants() +del _nonnumber_float_constants + + +# ---------------------------------------------------------------------- +# String processing helpers + +unsafe_string_chars = '"\\' + ''.join([chr(i) for i in range(0x20)]) +def skipstringsafe( s, start=0, end=None ): + i = start + #if end is None: + # end = len(s) + while i < end and s[i] not in unsafe_string_chars: + #c = s[i] + #if c in unsafe_string_chars: + # break + i += 1 + return i +def skipstringsafe_slow( s, start=0, end=None ): + i = start + if end is None: + end = len(s) + while i < end: + c = s[i] + if c == '"' or c == '\\' or ord(c) <= 0x1f: + break + i += 1 + return i + +def extend_list_with_sep( orig_seq, extension_seq, sepchar='' ): + if not sepchar: + orig_seq.extend( extension_seq ) + else: + for i, x in enumerate(extension_seq): + if i > 0: + orig_seq.append( sepchar ) + orig_seq.append( x ) + +def extend_and_flatten_list_with_sep( orig_seq, extension_seq, separator='' ): + for i, part in enumerate(extension_seq): + if i > 0 and separator: + orig_seq.append( separator ) + orig_seq.extend( part ) + + +# ---------------------------------------------------------------------- +# Unicode helpers +# +# JSON requires that all JSON implementations must support the UTF-32 +# encoding (as well as UTF-8 and UTF-16). But earlier versions of +# Python did not provide a UTF-32 codec. So we must implement UTF-32 +# ourselves in case we need it. + +def utf32le_encode( obj, errors='strict' ): + """Encodes a Unicode string into a UTF-32LE encoded byte string.""" + import struct + try: + import cStringIO as sio + except ImportError: + import StringIO as sio + f = sio.StringIO() + write = f.write + pack = struct.pack + for c in obj: + n = ord(c) + if 0xD800 <= n <= 0xDFFF: # surrogate codepoints are prohibited by UTF-32 + if errors == 'ignore': + continue + elif errors == 'replace': + n = ord('?') + else: + cname = 'U+%04X'%n + raise UnicodeError('UTF-32 can not encode surrogate characters',cname) + write( pack('L', n) ) + return f.getvalue() + + +def utf32le_decode( obj, errors='strict' ): + """Decodes a UTF-32LE byte string into a Unicode string.""" + if len(obj) % 4 != 0: + raise UnicodeError('UTF-32 decode error, data length not a multiple of 4 bytes') + import struct + unpack = struct.unpack + chars = [] + i = 0 + for i in range(0, len(obj), 4): + seq = obj[i:i+4] + n = unpack('L',seq)[0] + chars.append( unichr(n) ) + return u''.join( chars ) + + +def auto_unicode_decode( s ): + """Takes a string and tries to convert it to a Unicode string. + + This will return a Python unicode string type corresponding to the + input string (either str or unicode). The character encoding is + guessed by looking for either a Unicode BOM prefix, or by the + rules specified by RFC 4627. When in doubt it is assumed the + input is encoded in UTF-8 (the default for JSON). + + """ + if isinstance(s, unicode): + return s + if len(s) < 4: + return s.decode('utf8') # not enough bytes, assume default of utf-8 + # Look for BOM marker + import codecs + bom2 = s[:2] + bom4 = s[:4] + a, b, c, d = map(ord, s[:4]) # values of first four bytes + if bom4 == codecs.BOM_UTF32_LE: + encoding = 'utf-32le' + s = s[4:] + elif bom4 == codecs.BOM_UTF32_BE: + encoding = 'utf-32be' + s = s[4:] + elif bom2 == codecs.BOM_UTF16_LE: + encoding = 'utf-16le' + s = s[2:] + elif bom2 == codecs.BOM_UTF16_BE: + encoding = 'utf-16be' + s = s[2:] + # No BOM, so autodetect encoding used by looking at first four bytes + # according to RFC 4627 section 3. + elif a==0 and b==0 and c==0 and d!=0: # UTF-32BE + encoding = 'utf-32be' + elif a==0 and b!=0 and c==0 and d!=0: # UTF-16BE + encoding = 'utf-16be' + elif a!=0 and b==0 and c==0 and d==0: # UTF-32LE + encoding = 'utf-32le' + elif a!=0 and b==0 and c!=0 and d==0: # UTF-16LE + encoding = 'utf-16le' + else: #if a!=0 and b!=0 and c!=0 and d!=0: # UTF-8 + # JSON spec says default is UTF-8, so always guess it + # if we can't guess otherwise + encoding = 'utf8' + # Make sure the encoding is supported by Python + try: + cdk = codecs.lookup(encoding) + except LookupError: + if encoding.startswith('utf-32') \ + or encoding.startswith('ucs4') \ + or encoding.startswith('ucs-4'): + # Python doesn't natively have a UTF-32 codec, but JSON + # requires that it be supported. So we must decode these + # manually. + if encoding.endswith('le'): + unis = utf32le_decode(s) + else: + unis = utf32be_decode(s) + else: + raise JSONDecodeError('this python has no codec for this character encoding',encoding) + else: + # Convert to unicode using a standard codec + unis = s.decode(encoding) + return unis + + +def surrogate_pair_as_unicode( c1, c2 ): + """Takes a pair of unicode surrogates and returns the equivalent unicode character. + + The input pair must be a surrogate pair, with c1 in the range + U+D800 to U+DBFF and c2 in the range U+DC00 to U+DFFF. + + """ + n1, n2 = ord(c1), ord(c2) + if n1 < 0xD800 or n1 > 0xDBFF or n2 < 0xDC00 or n2 > 0xDFFF: + raise JSONDecodeError('illegal Unicode surrogate pair',(c1,c2)) + a = n1 - 0xD800 + b = n2 - 0xDC00 + v = (a << 10) | b + v += 0x10000 + return unichr(v) + + +def unicode_as_surrogate_pair( c ): + """Takes a single unicode character and returns a sequence of surrogate pairs. + + The output of this function is a tuple consisting of one or two unicode + characters, such that if the input character is outside the BMP range + then the output is a two-character surrogate pair representing that character. + + If the input character is inside the BMP then the output tuple will have + just a single character...the same one. + + """ + n = ord(c) + if n < 0x10000: + return (unichr(n),) # in BMP, surrogate pair not required + v = n - 0x10000 + vh = (v >> 10) & 0x3ff # highest 10 bits + vl = v & 0x3ff # lowest 10 bits + w1 = 0xD800 | vh + w2 = 0xDC00 | vl + return (unichr(w1), unichr(w2)) + + +# ---------------------------------------------------------------------- +# Type identification + +def isnumbertype( obj ): + """Is the object of a Python number type (excluding complex)?""" + return isinstance(obj, (int,long,float)) \ + and not isinstance(obj, bool) \ + or obj is nan or obj is inf or obj is neginf + + +def isstringtype( obj ): + """Is the object of a Python string type?""" + if isinstance(obj, basestring): + return True + # Must also check for some other pseudo-string types + import types, UserString + return isinstance(obj, types.StringTypes) \ + or isinstance(obj, UserString.UserString) \ + or isinstance(obj, UserString.MutableString) + + +# ---------------------------------------------------------------------- +# Numeric helpers + +def decode_hex( hexstring ): + """Decodes a hexadecimal string into it's integer value.""" + # We don't use the builtin 'hex' codec in python since it can + # not handle odd numbers of digits, nor raise the same type + # of exceptions we want to. + n = 0 + for c in hexstring: + if '0' <= c <= '9': + d = ord(c) - ord('0') + elif 'a' <= c <= 'f': + d = ord(c) - ord('a') + 10 + elif 'A' <= c <= 'F': + d = ord(c) - ord('A') + 10 + else: + raise JSONDecodeError('not a hexadecimal number',hexstring) + # Could use ((n << 4 ) | d), but python 2.3 issues a FutureWarning. + n = (n * 16) + d + return n + + +def decode_octal( octalstring ): + """Decodes an octal string into it's integer value.""" + n = 0 + for c in octalstring: + if '0' <= c <= '7': + d = ord(c) - ord('0') + else: + raise JSONDecodeError('not an octal number',octalstring) + # Could use ((n << 3 ) | d), but python 2.3 issues a FutureWarning. + n = (n * 8) + d + return n + + +# ---------------------------------------------------------------------- +# Exception classes. + +class JSONError(ValueError): + """Our base class for all JSON-related errors. + + """ + def pretty_description(self): + err = self.args[0] + if len(self.args) > 1: + err += ': ' + for anum, a in enumerate(self.args[1:]): + if anum > 1: + err += ', ' + astr = repr(a) + if len(astr) > 20: + astr = astr[:20] + '...' + err += astr + return err + +class JSONDecodeError(JSONError): + """An exception class raised when a JSON decoding error (syntax error) occurs.""" + + +class JSONEncodeError(JSONError): + """An exception class raised when a python object can not be encoded as a JSON string.""" + + +#---------------------------------------------------------------------- +# The main JSON encoder/decoder class. + +class JSON(object): + """An encoder/decoder for JSON data streams. + + Usually you will call the encode() or decode() methods. The other + methods are for lower-level processing. + + Whether the JSON parser runs in strict mode (which enforces exact + compliance with the JSON spec) or the more forgiving non-string mode + can be affected by setting the 'strict' argument in the object's + initialization; or by assigning True or False to the 'strict' + property of the object. + + You can also adjust a finer-grained control over strictness by + allowing or preventing specific behaviors. You can get a list of + all the available behaviors by accessing the 'behaviors' property. + Likewise the allowed_behaviors and prevented_behaviors list which + behaviors will be allowed and which will not. Call the allow() + or prevent() methods to adjust these. + + """ + _escapes_json = { # character escapes in JSON + '"': '"', + '/': '/', + '\\': '\\', + 'b': '\b', + 'f': '\f', + 'n': '\n', + 'r': '\r', + 't': '\t', + } + + _escapes_js = { # character escapes in Javascript + '"': '"', + '\'': '\'', + '\\': '\\', + 'b': '\b', + 'f': '\f', + 'n': '\n', + 'r': '\r', + 't': '\t', + 'v': '\v', + '0': '\x00' + } + + # Following is a reverse mapping of escape characters, used when we + # output JSON. Only those escapes which are always safe (e.g., in JSON) + # are here. It won't hurt if we leave questionable ones out. + _rev_escapes = {'\n': '\\n', + '\t': '\\t', + '\b': '\\b', + '\r': '\\r', + '\f': '\\f', + '"': '\\"', + '\\': '\\\\'} + + def __init__(self, strict=False, compactly=True, escape_unicode=False): + """Creates a JSON encoder/decoder object. + + If 'strict' is set to True, then only strictly-conforming JSON + output will be produced. Note that this means that some types + of values may not be convertable and will result in a + JSONEncodeError exception. + + If 'compactly' is set to True, then the resulting string will + have all extraneous white space removed; if False then the + string will be "pretty printed" with whitespace and indentation + added to make it more readable. + + If 'escape_unicode' is set to True, then all non-ASCII characters + will be represented as a unicode escape sequence; if False then + the actual real unicode character will be inserted if possible. + + The 'escape_unicode' can also be a function, which when called + with a single argument of a unicode character will return True + if the character should be escaped or False if it should not. + + If you wish to extend the encoding to ba able to handle + additional types, you should subclass this class and override + the encode_default() method. + + """ + import sys + self._set_strictness(strict) + self._encode_compactly = compactly + try: + # see if we were passed a predicate function + b = escape_unicode(u'A') + self._encode_unicode_as_escapes = escape_unicode + except (ValueError, NameError, TypeError): + # Just set to True or False. We could use lambda x:True + # to make it more consistent (always a function), but it + # will be too slow, so we'll make explicit tests later. + self._encode_unicode_as_escapes = bool(escape_unicode) + self._sort_dictionary_keys = True + + # The following is a boolean map of the first 256 characters + # which will quickly tell us which of those characters never + # need to be escaped. + + self._asciiencodable = [32 <= c < 128 and not self._rev_escapes.has_key(chr(c)) + for c in range(0,255)] + + def _set_strictness(self, strict): + """Changes the strictness behavior. + + Pass True to be very strict about JSON syntax, or False to be looser. + """ + self._allow_any_type_at_start = not strict + self._allow_all_numeric_signs = not strict + self._allow_comments = not strict + self._allow_control_char_in_string = not strict + self._allow_hex_numbers = not strict + self._allow_initial_decimal_point = not strict + self._allow_js_string_escapes = not strict + self._allow_non_numbers = not strict + self._allow_nonescape_characters = not strict # "\z" -> "z" + self._allow_nonstring_keys = not strict + self._allow_omitted_array_elements = not strict + self._allow_single_quoted_strings = not strict + self._allow_trailing_comma_in_literal = not strict + self._allow_undefined_values = not strict + self._allow_unicode_format_control_chars = not strict + self._allow_unicode_whitespace = not strict + # Always disable this by default + self._allow_octal_numbers = False + + def allow(self, behavior): + """Allow the specified behavior (turn off a strictness check). + + The list of all possible behaviors is available in the behaviors property. + You can see which behaviors are currently allowed by accessing the + allowed_behaviors property. + + """ + p = '_allow_' + behavior + if hasattr(self, p): + setattr(self, p, True) + else: + raise AttributeError('Behavior is not known',behavior) + + def prevent(self, behavior): + """Prevent the specified behavior (turn on a strictness check). + + The list of all possible behaviors is available in the behaviors property. + You can see which behaviors are currently prevented by accessing the + prevented_behaviors property. + + """ + p = '_allow_' + behavior + if hasattr(self, p): + setattr(self, p, False) + else: + raise AttributeError('Behavior is not known',behavior) + + def _get_behaviors(self): + return sorted([ n[len('_allow_'):] for n in self.__dict__ \ + if n.startswith('_allow_')]) + behaviors = property(_get_behaviors, + doc='List of known behaviors that can be passed to allow() or prevent() methods') + + def _get_allowed_behaviors(self): + return sorted([ n[len('_allow_'):] for n in self.__dict__ \ + if n.startswith('_allow_') and getattr(self,n)]) + allowed_behaviors = property(_get_allowed_behaviors, + doc='List of known behaviors that are currently allowed') + + def _get_prevented_behaviors(self): + return sorted([ n[len('_allow_'):] for n in self.__dict__ \ + if n.startswith('_allow_') and not getattr(self,n)]) + prevented_behaviors = property(_get_prevented_behaviors, + doc='List of known behaviors that are currently prevented') + + def _is_strict(self): + return not self.allowed_behaviors + strict = property(_is_strict, _set_strictness, + doc='True if adherence to RFC 4627 syntax is strict, or False is more generous ECMAScript syntax is permitted') + + + def isws(self, c): + """Determines if the given character is considered as white space. + + Note that Javscript is much more permissive on what it considers + to be whitespace than does JSON. + + Ref. ECMAScript section 7.2 + + """ + if not self._allow_unicode_whitespace: + return c in ' \t\n\r' + else: + if not isinstance(c,unicode): + c = unicode(c) + if c in u' \t\n\r\f\v': + return True + import unicodedata + return unicodedata.category(c) == 'Zs' + + def islineterm(self, c): + """Determines if the given character is considered a line terminator. + + Ref. ECMAScript section 7.3 + + """ + if c == '\r' or c == '\n': + return True + if c == u'\u2028' or c == u'\u2029': # unicodedata.category(c) in ['Zl', 'Zp'] + return True + return False + + def strip_format_control_chars(self, txt): + """Filters out all Unicode format control characters from the string. + + ECMAScript permits any Unicode "format control characters" to + appear at any place in the source code. They are to be + ignored as if they are not there before any other lexical + tokenization occurs. Note that JSON does not allow them. + + Ref. ECMAScript section 7.1. + + """ + import unicodedata + txt2 = filter( lambda c: unicodedata.category(unicode(c)) != 'Cf', + txt ) + return txt2 + + + def decode_null(self, s, i=0): + """Intermediate-level decoder for ECMAScript 'null' keyword. + + Takes a string and a starting index, and returns a Python + None object and the index of the next unparsed character. + + """ + if i < len(s) and s[i:i+4] == 'null': + return None, i+4 + raise JSONDecodeError('literal is not the JSON "null" keyword', s) + + def encode_undefined(self): + """Produces the ECMAScript 'undefined' keyword.""" + return 'undefined' + + def encode_null(self): + """Produces the JSON 'null' keyword.""" + return 'null' + + def decode_boolean(self, s, i=0): + """Intermediate-level decode for JSON boolean literals. + + Takes a string and a starting index, and returns a Python bool + (True or False) and the index of the next unparsed character. + + """ + if s[i:i+4] == 'true': + return True, i+4 + elif s[i:i+5] == 'false': + return False, i+5 + raise JSONDecodeError('literal value is not a JSON boolean keyword',s) + + def encode_boolean(self, b): + """Encodes the Python boolean into a JSON Boolean literal.""" + if bool(b): + return 'true' + return 'false' + + def decode_number(self, s, i=0, imax=None): + """Intermediate-level decoder for JSON numeric literals. + + Takes a string and a starting index, and returns a Python + suitable numeric type and the index of the next unparsed character. + + The returned numeric type can be either of a Python int, + long, or float. In addition some special non-numbers may + also be returned such as nan, inf, and neginf (technically + which are Python floats, but have no numeric value.) + + Ref. ECMAScript section 8.5. + + """ + if imax is None: + imax = len(s) + # Detect initial sign character(s) + if not self._allow_all_numeric_signs: + if s[i] == '+' or (s[i] == '-' and i+1 < imax and \ + s[i+1] in '+-'): + raise JSONDecodeError('numbers in strict JSON may only have a single "-" as a sign prefix',s[i:]) + sign = +1 + j = i # j will point after the sign prefix + while j < imax and s[j] in '+-': + if s[j] == '-': sign = sign * -1 + j += 1 + # Check for ECMAScript symbolic non-numbers + if s[j:j+3] == 'NaN': + if self._allow_non_numbers: + return nan, j+3 + else: + raise JSONDecodeError('NaN literals are not allowed in strict JSON') + elif s[j:j+8] == 'Infinity': + if self._allow_non_numbers: + if sign < 0: + return neginf, j+8 + else: + return inf, j+8 + else: + raise JSONDecodeError('Infinity literals are not allowed in strict JSON') + elif s[j:j+2] in ('0x','0X'): + if self._allow_hex_numbers: + k = j+2 + while k < imax and s[k] in hexdigits: + k += 1 + n = sign * decode_hex( s[j+2:k] ) + return n, k + else: + raise JSONDecodeError('hexadecimal literals are not allowed in strict JSON',s[i:]) + else: + # Decimal (or octal) number, find end of number. + # General syntax is: \d+[\.\d+][e[+-]?\d+] + k = j # will point to end of digit sequence + could_be_octal = ( k+1 < imax and s[k] == '0' ) # first digit is 0 + decpt = None # index into number of the decimal point, if any + ept = None # index into number of the e|E exponent start, if any + esign = '+' # sign of exponent + sigdigits = 0 # number of significant digits (approx, counts end zeros) + while k < imax and (s[k].isdigit() or s[k] in '.+-eE'): + c = s[k] + if c not in octaldigits: + could_be_octal = False + if c == '.': + if decpt is not None or ept is not None: + break + else: + decpt = k-j + elif c in 'eE': + if ept is not None: + break + else: + ept = k-j + elif c in '+-': + if not ept: + break + esign = c + else: #digit + if not ept: + sigdigits += 1 + k += 1 + number = s[j:k] # The entire number as a string + #print 'NUMBER IS: ', repr(number), ', sign', sign, ', esign', esign, \ + # ', sigdigits', sigdigits, \ + # ', decpt', decpt, ', ept', ept + + # Handle octal integers first as an exception. If octal + # is not enabled (the ECMAScipt standard) then just do + # nothing and treat the string as a decimal number. + if could_be_octal and self._allow_octal_numbers: + n = sign * decode_octal( number ) + return n, k + + # A decimal number. Do a quick check on JSON syntax restrictions. + if number[0] == '.' and not self._allow_initial_decimal_point: + raise JSONDecodeError('numbers in strict JSON must have at least one digit before the decimal point',s[i:]) + elif number[0] == '0' and \ + len(number) > 1 and number[1].isdigit(): + if self._allow_octal_numbers: + raise JSONDecodeError('initial zero digit is only allowed for octal integers',s[i:]) + else: + raise JSONDecodeError('initial zero digit must not be followed by other digits (octal numbers are not permitted)',s[i:]) + # Make sure decimal point is followed by a digit + if decpt is not None: + if decpt+1 >= len(number) or not number[decpt+1].isdigit(): + raise JSONDecodeError('decimal point must be followed by at least one digit',s[i:]) + # Determine the exponential part + if ept is not None: + if ept+1 >= len(number): + raise JSONDecodeError('exponent in number is truncated',s[i:]) + try: + exponent = int(number[ept+1:]) + except ValueError: + raise JSONDecodeError('not a valid exponent in number',s[i:]) + ##print 'EXPONENT', exponent + else: + exponent = 0 + # Try to make an int/long first. + if decpt is None and exponent >= 0: + # An integer + if ept: + n = int(number[:ept]) + else: + n = int(number) + n *= sign + if exponent: + n *= 10**exponent + if n == 0 and sign < 0: + # minus zero, must preserve negative sign so make a float + n = -0.0 + else: + try: + if decimal and (abs(exponent) > float_maxexp or sigdigits > float_sigdigits): + try: + n = decimal.Decimal(number) + n = n.normalize() + except decimal.Overflow: + if sign<0: + n = neginf + else: + n = inf + else: + n *= sign + else: + n = float(number) * sign + except ValueError: + raise JSONDecodeError('not a valid JSON numeric literal', s[i:j]) + return n, k + + def encode_number(self, n): + """Encodes a Python numeric type into a JSON numeric literal. + + The special non-numeric values of float('nan'), float('inf') + and float('-inf') are translated into appropriate JSON + literals. + + Note that Python complex types are not handled, as there is no + ECMAScript equivalent type. + + """ + if isinstance(n, complex): + if n.imag: + raise JSONEncodeError('Can not encode a complex number that has a non-zero imaginary part',n) + n = n.real + if isinstance(n, (int,long)): + return str(n) + if decimal and isinstance(n, decimal.Decimal): + return str(n) + global nan, inf, neginf + if n is nan: + return 'NaN' + elif n is inf: + return 'Infinity' + elif n is neginf: + return '-Infinity' + elif isinstance(n, float): + # Check for non-numbers. + # In python nan == inf == -inf, so must use repr() to distinguish + reprn = repr(n).lower() + if ('inf' in reprn and '-' in reprn) or n == neginf: + return '-Infinity' + elif 'inf' in reprn or n is inf: + return 'Infinity' + elif 'nan' in reprn or n is nan: + return 'NaN' + return repr(n) + else: + raise TypeError('encode_number expected an integral, float, or decimal number type',type(n)) + + def decode_string(self, s, i=0, imax=None): + """Intermediate-level decoder for JSON string literals. + + Takes a string and a starting index, and returns a Python + string (or unicode string) and the index of the next unparsed + character. + + """ + if imax is None: + imax = len(s) + if imax < i+2 or s[i] not in '"\'': + raise JSONDecodeError('string literal must be properly quoted',s[i:]) + closer = s[i] + if closer == '\'' and not self._allow_single_quoted_strings: + raise JSONDecodeError('string literals must use double quotation marks in strict JSON',s[i:]) + i += 1 # skip quote + if self._allow_js_string_escapes: + escapes = self._escapes_js + else: + escapes = self._escapes_json + ccallowed = self._allow_control_char_in_string + chunks = [] + _append = chunks.append + done = False + high_surrogate = None + while i < imax: + c = s[i] + # Make sure a high surrogate is immediately followed by a low surrogate + if high_surrogate and (i+1 >= imax or s[i:i+2] != '\\u'): + raise JSONDecodeError('High unicode surrogate must be followed by a low surrogate',s[i:]) + if c == closer: + i += 1 # skip end quote + done = True + break + elif c == '\\': + # Escaped character + i += 1 + if i >= imax: + raise JSONDecodeError('escape in string literal is incomplete',s[i-1:]) + c = s[i] + + if '0' <= c <= '7' and self._allow_octal_numbers: + # Handle octal escape codes first so special \0 doesn't kick in yet. + # Follow Annex B.1.2 of ECMAScript standard. + if '0' <= c <= '3': + maxdigits = 3 + else: + maxdigits = 2 + for k in range(i, i+maxdigits+1): + if k >= imax or s[k] not in octaldigits: + break + n = decode_octal(s[i:k]) + if n < 128: + _append( chr(n) ) + else: + _append( unichr(n) ) + i = k + continue + + if escapes.has_key(c): + _append(escapes[c]) + i += 1 + elif c == 'u' or c == 'x': + i += 1 + if c == 'u': + digits = 4 + else: # c== 'x' + if not self._allow_js_string_escapes: + raise JSONDecodeError(r'string literals may not use the \x hex-escape in strict JSON',s[i-1:]) + digits = 2 + if i+digits >= imax: + raise JSONDecodeError('numeric character escape sequence is truncated',s[i-1:]) + n = decode_hex( s[i:i+digits] ) + if high_surrogate: + # Decode surrogate pair and clear high surrogate + _append( surrogate_pair_as_unicode( high_surrogate, unichr(n) ) ) + high_surrogate = None + elif n < 128: + # ASCII chars always go in as a str + _append( chr(n) ) + elif 0xd800 <= n <= 0xdbff: # high surrogate + if imax < i + digits + 2 or s[i+digits] != '\\' or s[i+digits+1] != 'u': + raise JSONDecodeError('High unicode surrogate must be followed by a low surrogate',s[i-2:]) + high_surrogate = unichr(n) # remember until we get to the low surrogate + elif 0xdc00 <= n <= 0xdfff: # low surrogate + raise JSONDecodeError('Low unicode surrogate must be proceeded by a high surrogate',s[i-2:]) + else: + # Other chars go in as a unicode char + _append( unichr(n) ) + i += digits + else: + # Unknown escape sequence + if self._allow_nonescape_characters: + _append( c ) + i += 1 + else: + raise JSONDecodeError('unsupported escape code in JSON string literal',s[i-1:]) + elif ord(c) <= 0x1f: # A control character + if self.islineterm(c): + raise JSONDecodeError('line terminator characters must be escaped inside string literals',s[i:]) + elif ccallowed: + _append( c ) + i += 1 + else: + raise JSONDecodeError('control characters must be escaped inside JSON string literals',s[i:]) + else: # A normal character; not an escape sequence or end-quote. + # Find a whole sequence of "safe" characters so we can append them + # all at once rather than one a time, for speed. + j = i + i += 1 + while i < imax and s[i] not in unsafe_string_chars and s[i] != closer: + i += 1 + _append(s[j:i]) + if not done: + raise JSONDecodeError('string literal is not terminated with a quotation mark',s) + s = ''.join( chunks ) + return s, i + + def encode_string(self, s): + """Encodes a Python string into a JSON string literal. + + """ + # Must handle instances of UserString specially in order to be + # able to use ord() on it's simulated "characters". + import UserString + if isinstance(s, (UserString.UserString, UserString.MutableString)): + def tochar(c): + return c.data + else: + # Could use "lambda c:c", but that is too slow. So we set to None + # and use an explicit if test inside the loop. + tochar = None + + chunks = [] + chunks.append('"') + revesc = self._rev_escapes + asciiencodable = self._asciiencodable + encunicode = self._encode_unicode_as_escapes + i = 0 + imax = len(s) + while i < imax: + if tochar: + c = tochar(s[i]) + else: + c = s[i] + cord = ord(c) + if cord < 256 and asciiencodable[cord] and isinstance(encunicode, bool): + # Contiguous runs of plain old printable ASCII can be copied + # directly to the JSON output without worry (unless the user + # has supplied a custom is-encodable function). + j = i + i += 1 + while i < imax: + if tochar: + c = tochar(s[i]) + else: + c = s[i] + cord = ord(c) + if cord < 256 and asciiencodable[cord]: + i += 1 + else: + break + chunks.append( unicode(s[j:i]) ) + elif revesc.has_key(c): + # Has a shortcut escape sequence, like "\n" + chunks.append(revesc[c]) + i += 1 + elif cord <= 0x1F: + # Always unicode escape ASCII-control characters + chunks.append(r'\u%04x' % cord) + i += 1 + elif 0xD800 <= cord <= 0xDFFF: + # A raw surrogate character! This should never happen + # and there's no way to include it in the JSON output. + # So all we can do is complain. + cname = 'U+%04X' % cord + raise JSONEncodeError('can not include or escape a Unicode surrogate character',cname) + elif cord <= 0xFFFF: + # Other BMP Unicode character + if isinstance(encunicode, bool): + doesc = encunicode + else: + doesc = encunicode( c ) + if doesc: + chunks.append(r'\u%04x' % cord) + else: + chunks.append( c ) + i += 1 + else: # ord(c) >= 0x10000 + # Non-BMP Unicode + if isinstance(encunicode, bool): + doesc = encunicode + else: + doesc = encunicode( c ) + if doesc: + for surrogate in unicode_as_surrogate_pair(c): + chunks.append(r'\u%04x' % ord(surrogate)) + else: + chunks.append( c ) + i += 1 + chunks.append('"') + return ''.join( chunks ) + + def skip_comment(self, txt, i=0): + """Skips an ECMAScript comment, either // or /* style. + + The contents of the comment are returned as a string, as well + as the index of the character immediately after the comment. + + """ + if i+1 >= len(txt) or txt[i] != '/' or txt[i+1] not in '/*': + return None, i + if not self._allow_comments: + raise JSONDecodeError('comments are not allowed in strict JSON',txt[i:]) + multiline = (txt[i+1] == '*') + istart = i + i += 2 + while i < len(txt): + if multiline: + if txt[i] == '*' and i+1 < len(txt) and txt[i+1] == '/': + j = i+2 + break + elif txt[i] == '/' and i+1 < len(txt) and txt[i+1] == '*': + raise JSONDecodeError('multiline /* */ comments may not nest',txt[istart:i+1]) + else: + if self.islineterm(txt[i]): + j = i # line terminator is not part of comment + break + i += 1 + + if i >= len(txt): + if not multiline: + j = len(txt) # // comment terminated by end of file is okay + else: + raise JSONDecodeError('comment was never terminated',txt[istart:]) + return txt[istart:j], j + + def skipws(self, txt, i=0, imax=None, skip_comments=True): + """Skips whitespace. + """ + if not self._allow_comments and not self._allow_unicode_whitespace: + if imax is None: + imax = len(txt) + while i < imax and txt[i] in ' \r\n\t': + i += 1 + return i + else: + return self.skipws_any(txt, i, imax, skip_comments) + + def skipws_any(self, txt, i=0, imax=None, skip_comments=True): + """Skips all whitespace, including comments and unicode whitespace + + Takes a string and a starting index, and returns the index of the + next non-whitespace character. + + If skip_comments is True and not running in strict JSON mode, then + comments will be skipped over just like whitespace. + + """ + if imax is None: + imax = len(txt) + while i < imax: + if txt[i] == '/': + cmt, i = self.skip_comment(txt, i) + if i < imax and self.isws(txt[i]): + i += 1 + else: + break + return i + + def decode_composite(self, txt, i=0, imax=None): + """Intermediate-level JSON decoder for composite literal types (array and object). + + Takes text and a starting index, and returns either a Python list or + dictionary and the index of the next unparsed character. + + """ + if imax is None: + imax = len(txt) + i = self.skipws(txt, i, imax) + starti = i + if i >= imax or txt[i] not in '{[': + raise JSONDecodeError('composite object must start with "[" or "{"',txt[i:]) + if txt[i] == '[': + isdict = False + closer = ']' + obj = [] + else: + isdict = True + closer = '}' + obj = {} + i += 1 # skip opener + i = self.skipws(txt, i, imax) + + if i < imax and txt[i] == closer: + # empty composite + i += 1 + done = True + else: + saw_value = False # set to false at beginning and after commas + done = False + while i < imax: + i = self.skipws(txt, i, imax) + if i < imax and (txt[i] == ',' or txt[i] == closer): + c = txt[i] + i += 1 + if c == ',': + if not saw_value: + # no preceeding value, an elided (omitted) element + if isdict: + raise JSONDecodeError('can not omit elements of an object (dictionary)') + if self._allow_omitted_array_elements: + if self._allow_undefined_values: + obj.append( undefined ) + else: + obj.append( None ) + else: + raise JSONDecodeError('strict JSON does not permit omitted array (list) elements',txt[i:]) + saw_value = False + continue + else: # c == closer + if not saw_value and not self._allow_trailing_comma_in_literal: + if isdict: + raise JSONDecodeError('strict JSON does not allow a final comma in an object (dictionary) literal',txt[i-2:]) + else: + raise JSONDecodeError('strict JSON does not allow a final comma in an array (list) literal',txt[i-2:]) + done = True + break + + # Decode the item + if isdict and self._allow_nonstring_keys: + r = self.decodeobj(txt, i, identifier_as_string=True) + else: + r = self.decodeobj(txt, i, identifier_as_string=False) + if r: + if saw_value: + # two values without a separating comma + raise JSONDecodeError('values must be separated by a comma', txt[i:r[1]]) + saw_value = True + i = self.skipws(txt, r[1], imax) + if isdict: + key = r[0] # Ref 11.1.5 + if not isstringtype(key): + if isnumbertype(key): + if not self._allow_nonstring_keys: + raise JSONDecodeError('strict JSON only permits string literals as object properties (dictionary keys)',txt[starti:]) + else: + raise JSONDecodeError('object properties (dictionary keys) must be either string literals or numbers',txt[starti:]) + if i >= imax or txt[i] != ':': + raise JSONDecodeError('object property (dictionary key) has no value, expected ":"',txt[starti:]) + i += 1 + i = self.skipws(txt, i, imax) + rval = self.decodeobj(txt, i) + if rval: + i = self.skipws(txt, rval[1], imax) + obj[key] = rval[0] + else: + raise JSONDecodeError('object property (dictionary key) has no value',txt[starti:]) + else: # list + obj.append( r[0] ) + else: # not r + if isdict: + raise JSONDecodeError('expected a value, or "}"',txt[i:]) + elif not self._allow_omitted_array_elements: + raise JSONDecodeError('expected a value or "]"',txt[i:]) + else: + raise JSONDecodeError('expected a value, "," or "]"',txt[i:]) + # end while + if not done: + if isdict: + raise JSONDecodeError('object literal (dictionary) is not terminated',txt[starti:]) + else: + raise JSONDecodeError('array literal (list) is not terminated',txt[starti:]) + return obj, i + + def decode_javascript_identifier(self, name): + """Convert a JavaScript identifier into a Python string object. + + This method can be overriden by a subclass to redefine how JavaScript + identifiers are turned into Python objects. By default this just + converts them into strings. + + """ + return name + + def decodeobj(self, txt, i=0, imax=None, identifier_as_string=False, only_object_or_array=False): + """Intermediate-level JSON decoder. + + Takes a string and a starting index, and returns a two-tuple consting + of a Python object and the index of the next unparsed character. + + If there is no value at all (empty string, etc), the None is + returned instead of a tuple. + + """ + if imax is None: + imax = len(txt) + obj = None + i = self.skipws(txt, i, imax) + if i >= imax: + raise JSONDecodeError('Unexpected end of input') + c = txt[i] + + if c == '[' or c == '{': + obj, i = self.decode_composite(txt, i, imax) + elif only_object_or_array: + raise JSONDecodeError('JSON document must start with an object or array type only', txt[i:i+20]) + elif c == '"' or c == '\'': + obj, i = self.decode_string(txt, i, imax) + elif c.isdigit() or c in '.+-': + obj, i = self.decode_number(txt, i, imax) + elif c.isalpha() or c in'_$': + j = i + while j < imax and (txt[j].isalnum() or txt[j] in '_$'): + j += 1 + kw = txt[i:j] + if kw == 'null': + obj, i = None, j + elif kw == 'true': + obj, i = True, j + elif kw == 'false': + obj, i = False, j + elif kw == 'undefined': + if self._allow_undefined_values: + obj, i = undefined, j + else: + raise JSONDecodeError('strict JSON does not allow undefined elements',txt[i:]) + elif kw == 'NaN' or kw == 'Infinity': + obj, i = self.decode_number(txt, i) + else: + if identifier_as_string: + obj, i = self.decode_javascript_identifier(kw), j + else: + raise JSONDecodeError('unknown keyword or identifier',kw) + else: + raise JSONDecodeError('can not decode value',txt[i:]) + return obj, i + + + + def decode(self, txt): + """Decodes a JSON-endoded string into a Python object.""" + if self._allow_unicode_format_control_chars: + txt = self.strip_format_control_chars(txt) + r = self.decodeobj(txt, 0, only_object_or_array=not self._allow_any_type_at_start) + if not r: + raise JSONDecodeError('can not decode value',txt) + else: + obj, i = r + i = self.skipws(txt, i) + if i < len(txt): + raise JSONDecodeError('unexpected or extra text',txt[i:]) + return obj + + def encode(self, obj, nest_level=0): + """Encodes the Python object into a JSON string representation. + + This method will first attempt to encode an object by seeing + if it has a json_equivalent() method. If so than it will + call that method and then recursively attempt to encode + the object resulting from that call. + + Next it will attempt to determine if the object is a native + type or acts like a squence or dictionary. If so it will + encode that object directly. + + Finally, if no other strategy for encoding the object of that + type exists, it will call the encode_default() method. That + method currently raises an error, but it could be overridden + by subclasses to provide a hook for extending the types which + can be encoded. + + """ + chunks = [] + self.encode_helper(chunks, obj, nest_level) + return ''.join( chunks ) + + def encode_helper(self, chunklist, obj, nest_level): + #print 'encode_helper(chunklist=%r, obj=%r, nest_level=%r)'%(chunklist,obj,nest_level) + if hasattr(obj, 'json_equivalent'): + json = self.encode_equivalent( obj, nest_level=nest_level ) + if json is not None: + chunklist.append( json ) + return + if obj is None: + chunklist.append( self.encode_null() ) + elif obj is undefined: + if self._allow_undefined_values: + chunklist.append( self.encode_undefined() ) + else: + raise JSONEncodeError('strict JSON does not permit "undefined" values') + elif isinstance(obj, bool): + chunklist.append( self.encode_boolean(obj) ) + elif isinstance(obj, (int,long,float,complex)) or \ + (decimal and isinstance(obj, decimal.Decimal)): + chunklist.append( self.encode_number(obj) ) + elif isinstance(obj, basestring) or isstringtype(obj): + chunklist.append( self.encode_string(obj) ) + else: + self.encode_composite(chunklist, obj, nest_level) + + def encode_composite(self, chunklist, obj, nest_level): + """Encodes just dictionaries, lists, or sequences. + + Basically handles any python type for which iter() can create + an iterator object. + + This method is not intended to be called directly. Use the + encode() method instead. + + """ + #print 'encode_complex_helper(chunklist=%r, obj=%r, nest_level=%r)'%(chunklist,obj,nest_level) + try: + # Is it a dictionary or UserDict? Try iterkeys method first. + it = obj.iterkeys() + except AttributeError: + try: + # Is it a sequence? Try to make an iterator for it. + it = iter(obj) + except TypeError: + it = None + if it is not None: + # Does it look like a dictionary? Check for a minimal dict or + # UserDict interface. + isdict = hasattr(obj, '__getitem__') and hasattr(obj, 'keys') + compactly = self._encode_compactly + if isdict: + chunklist.append('{') + if compactly: + dictcolon = ':' + else: + dictcolon = ' : ' + else: + chunklist.append('[') + #print nest_level, 'opening sequence:', repr(chunklist) + if not compactly: + indent0 = ' ' * nest_level + indent = ' ' * (nest_level+1) + chunklist.append(' ') + sequence_chunks = [] # use this to allow sorting afterwards if dict + try: # while not StopIteration + numitems = 0 + while True: + obj2 = it.next() + if obj2 is obj: + raise JSONEncodeError('trying to encode an infinite sequence',obj) + if isdict and not isstringtype(obj2): + # Check JSON restrictions on key types + if isnumbertype(obj2): + if not self._allow_nonstring_keys: + raise JSONEncodeError('object properties (dictionary keys) must be strings in strict JSON',obj2) + else: + raise JSONEncodeError('object properties (dictionary keys) can only be strings or numbers in ECMAScript',obj2) + + # Encode this item in the sequence and put into item_chunks + item_chunks = [] + self.encode_helper( item_chunks, obj2, nest_level=nest_level+1 ) + if isdict: + item_chunks.append(dictcolon) + obj3 = obj[obj2] + self.encode_helper(item_chunks, obj3, nest_level=nest_level+2) + + #print nest_level, numitems, 'item:', repr(obj2) + #print nest_level, numitems, 'sequence_chunks:', repr(sequence_chunks) + #print nest_level, numitems, 'item_chunks:', repr(item_chunks) + #extend_list_with_sep(sequence_chunks, item_chunks) + sequence_chunks.append(item_chunks) + #print nest_level, numitems, 'new sequence_chunks:', repr(sequence_chunks) + numitems += 1 + except StopIteration: + pass + + if isdict and self._sort_dictionary_keys: + sequence_chunks.sort() # Note sorts by JSON repr, not original Python object + if compactly: + sep = ',' + else: + sep = ',\n' + indent + + #print nest_level, 'closing sequence' + #print nest_level, 'chunklist:', repr(chunklist) + #print nest_level, 'sequence_chunks:', repr(sequence_chunks) + extend_and_flatten_list_with_sep( chunklist, sequence_chunks, sep ) + #print nest_level, 'new chunklist:', repr(chunklist) + + if not compactly: + if numitems > 1: + chunklist.append('\n' + indent0) + else: + chunklist.append(' ') + if isdict: + chunklist.append('}') + else: + chunklist.append(']') + else: # Can't create an iterator for the object + json2 = self.encode_default( obj, nest_level=nest_level ) + chunklist.append( json2 ) + + def encode_equivalent( self, obj, nest_level=0 ): + """This method is used to encode user-defined class objects. + + The object being encoded should have a json_equivalent() + method defined which returns another equivalent object which + is easily JSON-encoded. If the object in question has no + json_equivalent() method available then None is returned + instead of a string so that the encoding will attempt the next + strategy. + + If a caller wishes to disable the calling of json_equivalent() + methods, then subclass this class and override this method + to just return None. + + """ + if hasattr(obj, 'json_equivalent') \ + and callable(getattr(obj,'json_equivalent')): + obj2 = obj.json_equivalent() + if obj2 is obj: + # Try to prevent careless infinite recursion + raise JSONEncodeError('object has a json_equivalent() method that returns itself',obj) + json2 = self.encode( obj2, nest_level=nest_level ) + return json2 + else: + return None + + def encode_default( self, obj, nest_level=0 ): + """This method is used to encode objects into JSON which are not straightforward. + + This method is intended to be overridden by subclasses which wish + to extend this encoder to handle additional types. + + """ + raise JSONEncodeError('can not encode object into a JSON representation',obj) + + +# ------------------------------ + +def encode( obj, strict=False, compactly=True, escape_unicode=False, encoding=None ): + """Encodes a Python object into a JSON-encoded string. + + If 'strict' is set to True, then only strictly-conforming JSON + output will be produced. Note that this means that some types + of values may not be convertable and will result in a + JSONEncodeError exception. + + If 'compactly' is set to True, then the resulting string will + have all extraneous white space removed; if False then the + string will be "pretty printed" with whitespace and indentation + added to make it more readable. + + If 'escape_unicode' is set to True, then all non-ASCII characters + will be represented as a unicode escape sequence; if False then + the actual real unicode character will be inserted. + + If no encoding is specified (encoding=None) then the output will + either be a Python string (if entirely ASCII) or a Python unicode + string type. + + However if an encoding name is given then the returned value will + be a python string which is the byte sequence encoding the JSON + value. As the default/recommended encoding for JSON is UTF-8, + you should almost always pass in encoding='utf8'. + + """ + import sys + encoder = None # Custom codec encoding function + bom = None # Byte order mark to prepend to final output + cdk = None # Codec to use + if encoding is not None: + import codecs + try: + cdk = codecs.lookup(encoding) + except LookupError: + cdk = None + + if cdk: + pass + elif not cdk: + # No built-in codec was found, see if it is something we + # can do ourself. + encoding = encoding.lower() + if encoding.startswith('utf-32') or encoding.startswith('utf32') \ + or encoding.startswith('ucs4') \ + or encoding.startswith('ucs-4'): + # Python doesn't natively have a UTF-32 codec, but JSON + # requires that it be supported. So we must decode these + # manually. + if encoding.endswith('le'): + encoder = utf32le_encode + elif encoding.endswith('be'): + encoder = utf32be_encode + else: + encoder = utf32be_encode + bom = codecs.BOM_UTF32_BE + elif encoding.startswith('ucs2') or encoding.startswith('ucs-2'): + # Python has no UCS-2, but we can simulate with + # UTF-16. We just need to force us to not try to + # encode anything past the BMP. + encoding = 'utf-16' + if not escape_unicode and not callable(escape_unicode): + escape_unicode = lambda c: (0xD800 <= ord(c) <= 0xDFFF) or ord(c) >= 0x10000 + else: + raise JSONEncodeError('this python has no codec for this character encoding',encoding) + + if not escape_unicode and not callable(escape_unicode): + if encoding and encoding.startswith('utf'): + # All UTF-x encodings can do the whole Unicode repertoire, so + # do nothing special. + pass + else: + # Even though we don't want to escape all unicode chars, + # the encoding being used may force us to do so anyway. + # We must pass in a function which says which characters + # the encoding can handle and which it can't. + def in_repertoire( c, encoding_func ): + try: + x = encoding_func( c, errors='strict' ) + except UnicodeError: + return False + return True + if encoder: + escape_unicode = lambda c: not in_repertoire(c, encoder) + elif cdk: + escape_unicode = lambda c: not in_repertoire(c, cdk[0]) + else: + pass # Let the JSON object deal with it + + j = JSON( strict=strict, compactly=compactly, escape_unicode=escape_unicode ) + + unitxt = j.encode( obj ) + if encoder: + txt = encoder( unitxt ) + elif encoding is not None: + txt = unitxt.encode( encoding ) + else: + txt = unitxt + if bom: + txt = bom + txt + return txt + + +def decode( txt, strict=False, encoding=None, **kw ): + """Decodes a JSON-encoded string into a Python object. + + If 'strict' is set to True, then those strings that are not + entirely strictly conforming to JSON will result in a + JSONDecodeError exception. + + The input string can be either a python string or a python unicode + string. If it is already a unicode string, then it is assumed + that no character set decoding is required. + + However, if you pass in a non-Unicode text string (i.e., a python + type 'str') then an attempt will be made to auto-detect and decode + the character encoding. This will be successful if the input was + encoded in any of UTF-8, UTF-16 (BE or LE), or UTF-32 (BE or LE), + and of course plain ASCII works too. + + Note though that if you know the character encoding, then you + should convert to a unicode string yourself, or pass it the name + of the 'encoding' to avoid the guessing made by the auto + detection, as with + + python_object = demjson.decode( input_bytes, encoding='utf8' ) + + Optional keywords arguments must be of the form + allow_xxxx=True/False + or + prevent_xxxx=True/False + where each will allow or prevent the specific behavior, after the + evaluation of the 'strict' argument. For example, if strict=True + then by also passing 'allow_comments=True' then comments will be + allowed. If strict=False then prevent_comments=True will allow + everything except comments. + + """ + # Initialize the JSON object + j = JSON( strict=strict ) + for keyword, value in kw.items(): + if keyword.startswith('allow_'): + behavior = keyword[6:] + allow = bool(value) + elif keyword.startswith('prevent_'): + behavior = keyword[8:] + allow = not bool(value) + else: + raise ValueError('unknown keyword argument', keyword) + if allow: + j.allow(behavior) + else: + j.prevent(behavior) + + # Convert the input string into unicode if needed. + if isinstance(txt,unicode): + unitxt = txt + else: + if encoding is None: + unitxt = auto_unicode_decode( txt ) + else: + cdk = None # codec + decoder = None + import codecs + try: + cdk = codecs.lookup(encoding) + except LookupError: + encoding = encoding.lower() + decoder = None + if encoding.startswith('utf-32') \ + or encoding.startswith('ucs4') \ + or encoding.startswith('ucs-4'): + # Python doesn't natively have a UTF-32 codec, but JSON + # requires that it be supported. So we must decode these + # manually. + if encoding.endswith('le'): + decoder = utf32le_decode + elif encoding.endswith('be'): + decoder = utf32be_decode + else: + if txt.startswith( codecs.BOM_UTF32_BE ): + decoder = utf32be_decode + txt = txt[4:] + elif txt.startswith( codecs.BOM_UTF32_LE ): + decoder = utf32le_decode + txt = txt[4:] + else: + if encoding.startswith('ucs'): + raise JSONDecodeError('UCS-4 encoded string must start with a BOM') + decoder = utf32be_decode # Default BE for UTF, per unicode spec + elif encoding.startswith('ucs2') or encoding.startswith('ucs-2'): + # Python has no UCS-2, but we can simulate with + # UTF-16. We just need to force us to not try to + # encode anything past the BMP. + encoding = 'utf-16' + + if decoder: + unitxt = decoder(txt) + elif encoding: + unitxt = txt.decode(encoding) + else: + raise JSONDecodeError('this python has no codec for this character encoding',encoding) + + # Check that the decoding seems sane. Per RFC 4627 section 3: + # "Since the first two characters of a JSON text will + # always be ASCII characters [RFC0020], ..." + # + # This check is probably not necessary, but it allows us to + # raise a suitably descriptive error rather than an obscure + # syntax error later on. + # + # Note that the RFC requirements of two ASCII characters seems + # to be an incorrect statement as a JSON string literal may + # have as it's first character any unicode character. Thus + # the first two characters will always be ASCII, unless the + # first character is a quotation mark. And in non-strict + # mode we can also have a few other characters too. + if len(unitxt) > 2: + first, second = unitxt[:2] + if first in '"\'': + pass # second can be anything inside string literal + else: + if ((ord(first) < 0x20 or ord(first) > 0x7f) or \ + (ord(second) < 0x20 or ord(second) > 0x7f)) and \ + (not j.isws(first) and not j.isws(second)): + # Found non-printable ascii, must check unicode + # categories to see if the character is legal. + # Only whitespace, line and paragraph separators, + # and format control chars are legal here. + import unicodedata + catfirst = unicodedata.category(unicode(first)) + catsecond = unicodedata.category(unicode(second)) + if catfirst not in ('Zs','Zl','Zp','Cf') or \ + catsecond not in ('Zs','Zl','Zp','Cf'): + raise JSONDecodeError('the decoded string is gibberish, is the encoding correct?',encoding) + # Now ready to do the actual decoding + obj = j.decode( unitxt ) + return obj + +# end file diff --git a/demjson.pyc b/demjson.pyc new file mode 100644 index 0000000..669253b Binary files /dev/null and b/demjson.pyc differ diff --git a/h3mtest.py b/h3mtest.py new file mode 100644 index 0000000..9736acd --- /dev/null +++ b/h3mtest.py @@ -0,0 +1,40 @@ +#!/usr/bin/python +""" + homm3hmtest + + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import gzip, os +import struct +import sys + +def extract(filename): + h3m_data = gzip.open(filename) + map_data = {} + #read general info + (map_data["version"], ) = struct.unpack(" + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +from lib.mapset import * +from lib.interface import * +from lib.mapview import * +from lib.window import Window + +class LoadScreen(object): + def __init__(self, window): + self.window = window + self.label = pyglet.text.Label('', + font_name="Linux Libertine", + font_size=28, + x=self.window.width-10, y=10, + anchor_x='right', anchor_y='bottom') + self.label.text = "INITIATING MAPSET..." + mapset = MapSet("Deluge") + self.label.text = "INITIATING MAPVIEW..." + mapview = MapView(mapset, self.window) + interface = Interface(self.window) + self.window.pop_handlers() + self.window.push_handlers(mapview) + self.window.push_handlers(interface) + self.window.push_handlers(self.window.keys) + +if __name__ == '__main__': + pyglet.gl.glBlendFunc(pyglet.gl.GL_SRC_ALPHA, + pyglet.gl.GL_ONE_MINUS_SRC_ALPHA) + window = Window() + window.push_handlers(LoadScreen(window)) + img = pyglet.resource.image("data/cursors/cradvntr.def/0.png") + window.set_mouse_cursor(pyglet.window.ImageMouseCursor(img, 0, 40)) + pyglet.app.run() diff --git a/lib/__init__.py b/lib/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/lib/h3m.py b/lib/h3m.py new file mode 100644 index 0000000..3cb8405 --- /dev/null +++ b/lib/h3m.py @@ -0,0 +1,596 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import gzip +import struct +import pyglet + +def extract(filename): + h3m_data = gzip.open(filename) + map_data = {} + #read general info + (map_data["version"], ) = struct.unpack(" 0: + map_data[color]["heroes"] = {} + for i in xrange(map_data[color]["heroes_count"]): + (map_data[color]["heroes"]["portrait"], ) = struct.unpack(" 0: + map_data["commands"] = struct.unpack("<8B", h3m_data.read(8)) + + #Free Heroes + h3m_data.read(20) #free heroes + h3m_data.read(4) #junk + (map_data["heroes_count"], ) = struct.unpack(" 0: + map_data["free_heroes"] = [] + for i in xrange(map_data["heroes_count"]): + (hero_id, ) = struct.unpack(" 0: + map_data["rumors"] = [] + for i in xrange(map_data["rumor_count"]): + (name_length, ) = struct.unpack(" 0: + for i in xrange(knapsack_count): + (knapsackID, ) = struct.unpack(" 0: + for i in xrange(eventQuantity): + (length, ) = struct.unpack(" 0: + for i in xrange(secSkills): + (skill_id, skill_lvl) = struct.unpack(" 0: + for i in xrange(artefacts): + (artID, ) = struct.unpack(" 0: + for i in xrange(spells): + (spellID, ) = struct.unpack(" 0: + for i in xrange(monsters): + (guard_id, guard_count) = struct.unpack(" 0: + for i in xrange(secSkills): + (skill_id, skill_lvl) = struct.unpack(" 0: + for i in xrange(artefacts): + (artID, ) = struct.unpack(" 0: + for i in xrange(spells): + (spellID, ) = struct.unpack(" 0: + for i in xrange(monsters): + (guard_id, guard_count) = struct.unpack(" + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +IF_BOTTOM = 48 +IF_RIGHT = 200 +IF_TOP = IF_LEFT = 8 + +class Interface(object): + def __init__(self, window): + self.window = window + + def on_mouse_motion(self, x, y, dx, dy): + if IF_LEFT < x < (self.window.width-IF_RIGHT): + pass + else: + return pyglet.event.EVENT_HANDLED + if IF_BOTTOM < y < (self.window.height-IF_TOP): + pass + else: + return pyglet.event.EVENT_HANDLED diff --git a/lib/mapset.py b/lib/mapset.py new file mode 100644 index 0000000..2ef74f6 --- /dev/null +++ b/lib/mapset.py @@ -0,0 +1,382 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +from ctypes import create_string_buffer, memmove +from lib import h3m +import os + +class OrderedTextureGroup(pyglet.graphics.Group): + def __init__(self, order, texture, parent=None): + super(OrderedTextureGroup, self).__init__(parent) + self.texture = texture + self.order = order + + def set_state(self): + pyglet.gl.glEnable(self.texture.target) + pyglet.gl.glBindTexture(self.texture.target, self.texture.id) + + def unset_state(self): + pyglet.gl.glDisable(self.texture.target) + + def __hash__(self): + return hash((self.order, self.texture.target, self.texture.id, + self.parent)) + + def __eq__(self, other): + return (self.__class__ is other.__class__ and + self.order == other.order and + self.texture.target == other.texture.target and + self.texture.id == other.texture.id and + self.parent == self.parent) + + def __repr__(self): + return '%s(id=%d)' % (self.__class__.__name__, self.order, + self.texture.id) + + def __cmp__(self, other): + if isinstance(other, OrderedTextureGroup): + return cmp(self.order, other.order) + return -1 + +class Animation(object): + def __init__(self, tex_region, frames, flip_x=False, flip_y=False): + self.texgroup = tex_region.group + if flip_x or flip_y: + self.tex = tex_region.get_transform(flip_x=flip_x, flip_y=flip_y) + else: + self.tex = tex_region + self.__frames = [] + for img in frames: + data_pitch = abs(img._current_pitch) + buf = create_string_buffer(len(img._current_data)) + memmove(buf, img._current_data, len(img._current_data)) + data = buf.raw + rows = [data[i:i + abs(data_pitch)] for i in + xrange(len(img._current_data)-abs(data_pitch), + -1, -abs(data_pitch))] + self.__frames.append(''.join(rows)) + self.__animation = 0 + self.width = self.tex.width + self.height = self.tex.height + self.__hash = hash(self.__frames[0]) + + def next_frame(self): + self.__animation = (self.__animation + 1) % len(self.__frames) + return self.__frames[self.__animation] + + @property + def tex_coords(self): + return self.tex.tex_coords + + @property + def group(self): + return self.texgroup + + def __hash__(self): + return self.__hash + + def __eq__(self, other): + return self.__hash == other.__hash + +class MapSet(object): + def load_map_object(self, file, order=0): + image = pyglet.image.load(None, file=pyglet.resource.file(file)) + try: + texture_region = self.current_atlas.add(image) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture_region = self.current_atlas.add(image) + group = OrderedTextureGroup(order, self.current_atlas.texture) + + if group not in self.groups: + self.groups.append(group) + + texture_region.group = self.groups.index(group) + return texture_region + + def __init__(self, map_name): + h3m_data = h3m.extract(os.path.join(pyglet.resource._default_loader._script_home,"maps","%s.h3m" % map_name)) + edge_map = [[] for i in xrange(len(h3m_data["upper_terrain"])+16)] + for num in xrange(len(edge_map)): + if num < 7 or num > len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(len(h3m_data["upper_terrain"][0])+18)]) + elif num == 7: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 16, 0, 0, 0, 0, 0]) + line.extend([[-1, 20+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m_data["upper_terrain"][0]))]) + line.append([-1, 17, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + elif num == len(edge_map)-8: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 19, 0, 0, 0, 0, 0]) + line.extend([[-1, 28+i%4, 0, 0, 0, 0, 0] for i in xrange(len(h3m_data["upper_terrain"][0]))]) + line.append([-1, 18, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + else: + line = [] + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + line.append([-1, 32+num%4, 0, 0, 0, 0, 0]) + line.extend(h3m_data["upper_terrain"][num-8]) + line.append([-1, 24+num%4, 0, 0, 0, 0, 0]) + line.extend([[-1, 0+(i-1)%4+4*(num%4), 0, 0, 0, 0, 0] for i in xrange(8)]) + edge_map[num] = line + h3m_data["upper_terrain"] = edge_map + + self.width = len(h3m_data["upper_terrain"][0]) + self.height = len(h3m_data["upper_terrain"]) + + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + + self.groups = [] + + self.__tiles = {} + tile_textures = {} + for y, line in enumerate(h3m_data["upper_terrain"]): + for x, tile in enumerate(line): + if tile[0] == -1: #edge + if "edg" not in tile_textures.keys(): + tile_textures["edg"] = [self.load_map_object('data/advmap_tiles/edg.def/%d.png'%i, 100) for i in xrange(36)] + self.__tiles[x,y] = [tile_textures["edg"][tile[1]]] + elif tile[0] == 0: #dirt + if "dirttl" not in tile_textures.keys(): + tile_textures["dirttl"] = [self.load_map_object('data/advmap_tiles/dirttl.def/%d.png'%i, 0) for i in xrange(46)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["dirttl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirttl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["dirttl"][tile[1]]] + elif tile[0] == 1: #sand + if "sandtl" not in tile_textures.keys(): + tile_textures["sandtl"] = [self.load_map_object('data/advmap_tiles/sandtl.def/%d.png'%i, 0) for i in xrange(24)] + self.__tiles[x,y] = [tile_textures["sandtl"][tile[1]]] + elif tile[0] == 2: #grass + if "grastl" not in tile_textures.keys(): + tile_textures["grastl"] = [self.load_map_object('data/advmap_tiles/grastl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["grastl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["grastl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["grastl"][tile[1]]] + elif tile[0] == 3: #snow + if "snowtl" not in tile_textures.keys(): + tile_textures["snowtl"] = [self.load_map_object('data/advmap_tiles/snowtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["snowtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["snowtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["snowtl"][tile[1]]] + elif tile[0] == 4: #swamp + if "swmptl" not in tile_textures.keys(): + tile_textures["swmptl"] = [self.load_map_object('data/advmap_tiles/swmptl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["swmptl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["swmptl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["swmptl"][tile[1]]] + elif tile[0] == 5: #rough + if "rougtl" not in tile_textures.keys(): + tile_textures["rougtl"] = [self.load_map_object('data/advmap_tiles/rougtl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["rougtl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["rougtl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["rougtl"][tile[1]]] + elif tile[0] == 7: #lava + if "lavatl" not in tile_textures.keys(): + tile_textures["lavatl"] = [self.load_map_object('data/advmap_tiles/lavatl.def/%d.png'%i, 0) for i in xrange(79)] + flip_x = bool(tile[6] & 1) + flip_y = bool(tile[6] & 2) + if flip_x or flip_y: + new = tile_textures["lavatl"][tile[1]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["lavatl"][tile[1]].group + self.__tiles[x,y] = [new] + else: + self.__tiles[x,y] = [tile_textures["lavatl"][tile[1]]] + elif tile[0] == 8: #water 12 anims + if "watrtl" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/watrtl.def/%d/0.png'%i, 0) for i in xrange(33)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/watrtl.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(33)] + tile_textures["watrtl"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>0)&1 + flip_y = (tile[6]>>1)&1 + self.__tiles[x,y] = [tile_textures["watrtl"][flip_x, flip_y][tile[1]]] + elif tile[0] == 9: #rock + if "rocktl" not in tile_textures.keys(): + tile_textures["rocktl"] = [self.load_map_object('data/advmap_tiles/rocktl.def/%d.png'%i, 0) for i in xrange(48)] + self.__tiles[x,y] = [tile_textures["rocktl"][tile[1]]] + else: + raise NotImplementedError + + if tile[2] == 0: #no river + pass + elif tile[2] == 1: #clrrvr 12 anims + if "clrrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/clrrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["clrrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["clrrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 2: #icyrvr + if "icyrvr" not in tile_textures.keys(): + tile_textures["icyrvr"] = [self.load_map_object('data/advmap_tiles/icyrvr.def/%d.png'%i, 1) for i in xrange(13)] + flip_x = bool(tile[6] & 4) + flip_y = bool(tile[6] & 8) + if flip_x or flip_y: + new = tile_textures["icyrvr"][tile[3]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["icyrvr"][tile[3]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["icyrvr"][tile[3]]) + elif tile[2] == 3: #mudrvr + if "mudrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/mudrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(12)] for i in xrange(13)] + tile_textures["mudrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["mudrvr"][flip_x, flip_y][tile[3]]) + elif tile[2] == 4: #lavrvr + if "lavrvr" not in tile_textures.keys(): + textures = [self.load_map_object('data/advmap_tiles/lavrvr.def/%d/0.png'%i, 1) for i in xrange(13)] + images = [[pyglet.image.load(None, file=pyglet.resource.file('data/advmap_tiles/clrrvr.def/%d/%d.png'%(i,j))) for j in xrange(9)] for i in xrange(13)] + tile_textures["lavrvr"] = { + (0,0):[Animation(texture, images[i]) for i, texture in enumerate(textures)], + (1,0):[Animation(texture, images[i], flip_x=True) for i, texture in enumerate(textures)], + (0,1):[Animation(texture, images[i], flip_y=True) for i, texture in enumerate(textures)], + (1,1):[Animation(texture, images[i], flip_x=True, flip_y=True) for i, texture in enumerate(textures)], + } + flip_x = (tile[6]>>2)&1 + flip_y = (tile[6]>>3)&1 + self.__tiles[x,y].append(tile_textures["lavrvr"][flip_x, flip_y][tile[3]]) + else: + raise NotImplementedError, tile[2] + + if tile[4] == 0: #no road + pass + elif tile[4] == 1: #dirtrd + if "dirtrd" not in tile_textures.keys(): + tile_textures["dirtrd"] = [self.load_map_object('data/advmap_tiles/dirtrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["dirtrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["dirtrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["dirtrd"][tile[5]]) + elif tile[4] == 2: #gravrd + if "gravrd" not in tile_textures.keys(): + tile_textures["gravrd"] = [self.load_map_object('data/advmap_tiles/gravrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["gravrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["gravrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["gravrd"][tile[5]]) + elif tile[4] == 3: #cobbrd + if "cobbrd" not in tile_textures.keys(): + tile_textures["cobbrd"] = [self.load_map_object('data/advmap_tiles/cobbrd.def/%d.png'%i, 1) for i in xrange(17)] + flip_x = bool(tile[6] & 16) + flip_y = bool(tile[6] & 32) + if flip_x or flip_y: + new = tile_textures["cobbrd"][tile[5]].get_transform(flip_x=flip_x, flip_y=flip_y) + new.group = tile_textures["cobbrd"][tile[5]].group + self.__tiles[x, y].append(new) + else: + self.__tiles[x, y].append(tile_textures["cobbrd"][tile[5]]) + else: + raise NotImplementedError, tile[4] + + images = [] + for order, obj in enumerate(h3m_data["objects"]): + imgs = [] + i = 0 + while 1: + imgs.append(pyglet.image.load(None, file=pyglet.resource.file("data/advmap_objects/" + obj["filename"] + "/%d.png"%i))) + i += 1 + if "data/advmap_objects/" + obj["filename"] + "/%d.png" % i not in pyglet.resource._default_loader._index.keys(): + break; + images.append((imgs, order)) + + self.objects = [] + for imgs in sorted(images, key=lambda i:i[0][0].height, reverse=True): + try: + texture = self.current_atlas.add(imgs[0][0]) + except pyglet.image.atlas.AllocatorException: + self.current_atlas = pyglet.image.atlas.TextureAtlas(1024, 1024) + texture = self.current_atlas.add(imgs[0][0]) + group = OrderedTextureGroup(2, self.current_atlas.texture) + if group not in self.groups: + self.groups.append(group) + group = self.groups.index(group) + texture.group = group + self.objects.append((Animation(texture, imgs[0]), imgs[1])) + + self.objects = [i[0] for i in sorted(self.objects, key=lambda i:i[1])] + + self.tunedobj = {} + for obj in [i for i in h3m_data["tunedobj"] if i["z"]==0]: + self.__tiles[obj["x"] + 9,obj["y"] + 8].append(self.objects[obj["id"]]) + + def get_tiles(self, tiles_x, tiles_y, div_x, div_y): + for y in xrange(tiles_y - 1, -6, -1): + y1 = y * 32 + for x in xrange(tiles_x + 5 - 1, -1, -1): + for obj in self.__tiles.get((x - div_x, div_y - y), []): + x1 = x * 32 - obj.width + 32 + x2 = x1 + obj.width + y2 = y1 + obj.height + yield obj, [x1, y1, x2, y1, x2, y2, x1, y2] diff --git a/lib/mapview.py b/lib/mapview.py new file mode 100644 index 0000000..d3c0e32 --- /dev/null +++ b/lib/mapview.py @@ -0,0 +1,335 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet +from lib.interface import * +from lib.mapset import * + +class MapView(object): + def __init__(self, mapset, window): + self.window = window + self.mapset = mapset + self._first_time_init() + self._init_view() + # mouse position + self.label = pyglet.text.Label('', + font_name="", + font_size=36, + bold=True, + color=(128, 128, 128, 128), + x=self.window.width - 10, y=0, + anchor_x='right', anchor_y='bottom') + pyglet.clock.schedule_interval(self.animate_water, 1/6.0) + pyglet.clock.schedule_interval(self.update, 1/60.0) + + def _first_time_init(self): + self.tile_size = 32 + # size of the viewport + self.vp_width = self.window.width-IF_RIGHT-IF_LEFT + self.vp_height = self.window.height-IF_BOTTOM-IF_TOP + # center map + self.x = (self.mapset.width * self.tile_size - self.vp_width + + self.tile_size) // 2 + self.y = (self.mapset.height * self.tile_size - self.vp_height + + self.tile_size) // 2 + self.mouse_x = self.mouse_dx = 0 + self.mouse_y = self.mouse_dy = 0 + + def _init_view(self): + # initiate new batch + self.batch = pyglet.graphics.Batch() + # initiate new vertex list + self.vl_objects = [None for value in self.mapset.groups] + # size of the viewport + self.vp_width = self.window.width - IF_RIGHT - IF_LEFT + self.vp_height = self.window.height - IF_BOTTOM - IF_TOP + # center map when viewport is too large, else check if map still fills + # whole viewport and if not adjust position accordingly + self.center_x = False + if self.mapset.width * self.tile_size < self.vp_width: + # center the map in x direction + self.center_x = True + self.x = (self.mapset.width * self.tile_size - self.vp_width) // 2 + elif self.x > self.tile_size * self.mapset.width - self.vp_width: + # move map back to the right + self.x = self.tile_size * self.mapset.width - self.vp_width + elif self.x < 0: + # move map to the left + self.x = 0 + self.center_y = False + if self.mapset.height * self.tile_size < self.vp_height: + # center the map in y direction + self.center_y = True + self.y = (self.mapset.height * self.tile_size - + self.vp_height) // 2 + elif self.y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + self.y = self.tile_size * self.mapset.height - self.vp_height + elif self.y < 0: + # move map down + self.y = 0 + # tiles to be drawn with the current viewport size + self.tiles_x = min((self.vp_width // self.tile_size) + 2, + self.mapset.width) + self.tiles_y = min((self.vp_height // self.tile_size) + 2, + self.mapset.height) + # undrawn map size in pixels + self.undrawn_x = self.tile_size * (self.mapset.width - self.tiles_x) + self.undrawn_y = self.tile_size * (self.mapset.height - self.tiles_y) + # reset mouse or keyboard movement + self.dx = 0 + self.dy = 0 + # calculate modulo pixel position of the map + if self.x - self.tile_size > self.undrawn_x: + # dont go right beyond map borders + mod_x = self.tile_size - self.x + self.undrawn_x + elif self.x > 0: + # calculate modulo of current position and tile_size + mod_x = (self.tile_size - self.x) % self.tile_size + else: + # dont go left beyond map borders + mod_x = self.tile_size - self.x + if self.y - self.tile_size > self.undrawn_y: + # dont go up beyond map borders + mod_y = self.tile_size - self.y + self.undrawn_y + elif self.y > 0: + # calculate modulo of current position and tile_size + mod_y = (self.tile_size - self.y) % self.tile_size + else: + # dont go down beyond map borders + mod_y = self.tile_size - self.y + # calculate tile position of the map, turn y coordinates upside down + self.div_x = (self.tile_size - self.x - mod_x) // self.tile_size + self.div_y = (self.tile_size - self.y - mod_y) // self.tile_size + \ + self.mapset.height - 1 + # update vertex lists with the gathered information + self.update_vertex_lists() + # update current current position that is to be glTranslated + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + self.view_x = mod_x - self.tile_size - (self.tile_size - 32) // 4 + self.view_y = mod_y - self.tile_size - ((self.tile_size - 32) * 3) // 2 + + def on_draw(self): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + pyglet.gl.glPushMatrix() + pyglet.gl.glTranslatef(self.view_x+IF_LEFT, self.view_y+IF_BOTTOM, 0) + pyglet.gl.glScalef(self.tile_size/32.0, self.tile_size/32.0, 0.0) + self.batch.draw() + pyglet.gl.glPopMatrix() + pyglet.gl.glLoadIdentity() + pyglet.gl.glEnable(pyglet.gl.GL_BLEND) + pyglet.gl.glColor4f(1, 0, 1, 1) + pyglet.gl.glRectf(0, 0, self.window.width, IF_BOTTOM) + pyglet.gl.glRectf(self.window.width-IF_RIGHT, 0, self.window.width, self.window.height) + pyglet.gl.glRectf(0, self.window.height-IF_TOP, self.window.width, self.window.height) + pyglet.gl.glRectf(0, 0, IF_LEFT, self.window.height) + self.label.draw() + + def _move(self, dx, dy): + # new map position + new_x = self.x - dx + new_y = self.y - dy + # only update textures and vertices when necessary + retex = False + # if x or y jump is too big, adjust new position accordingly + if new_x < 0: + # move map to the left + new_x = 0 + retex = True + if new_x > self.tile_size * self.mapset.width - self.vp_width: + # move map to the right + new_x = self.tile_size * self.mapset.width - self.vp_width + retex = True + if new_y < 0: + # move map down + new_y = 0 + retex = True + if new_y > self.tile_size * self.mapset.height - self.vp_height: + # move map up + new_y = self.tile_size * self.mapset.height - self.vp_height + retex = True + # find out how many steps and pixels we have to move and wether we have + # to retex + if new_x - self.tile_size > self.undrawn_x: + # we are at the right border + mod_x = self.tile_size - new_x + self.undrawn_x + # only retex if the last position was not at the border + if self.x - self.tile_size <= self.undrawn_x: + retex = True + elif new_x > 0: + # normal movement: calculate the amount of steps and the modulo + div_x, mod_x = divmod(self.tile_size - new_x, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_x != (self.tile_size - self.x) // self.tile_size: + retex = True + else: + # we are at the left border + mod_x = self.tile_size - new_x + if new_y - self.tile_size > self.undrawn_y: + # we are at the top + mod_y = self.tile_size - new_y + self.undrawn_y + # only retex if the last position was not at the border + if self.y - self.tile_size <= self.undrawn_y: + retex = True + elif new_y > 0: + # normal movement: calculate the amount of steps and the modulo + div_y, mod_y = divmod(self.tile_size - new_y, self.tile_size) + # only retex if the number of moved steps is not equal to last + if div_y != (self.tile_size - self.y) // self.tile_size: + retex = True + else: + # we are at the bottom + mod_y = self.tile_size - new_y + # if we have to update vertices and textures + if retex: + # calculate the current position on the tilemap + self.div_x = (self.tile_size - new_x - mod_x) // \ + self.tile_size + self.div_y = (self.tile_size - new_y - mod_y) // \ + self.tile_size + self.mapset.height - 1 + self.update_vertex_lists() + # update position if not centered + # XXX: dont ask me why i have to add 1/4 and 3/2 but when i do not + # there are black borders when zooming out + # plz explain wtf is going on there + if not self.center_x: + self.view_x = mod_x-self.tile_size-(self.tile_size-32)//4 + self.x = new_x + if not self.center_y: + self.view_y = mod_y-self.tile_size-((self.tile_size-32)*3)//2 + self.y = new_y + + def update_vertex_lists(self): + # initiate lists of vertex lists, vertices, texture coords, vertices + # counts and map objects for each group + vertices = [[] for value in self.mapset.groups] + tex_coords = [[] for value in self.mapset.groups] + count = [0 for value in self.mapset.groups] + self.cur_objects = [[] for value in self.mapset.groups] + # for each tile in the viewport, update the list of the specific group + for obj, coords in self.mapset.get_tiles(self.tiles_x, self.tiles_y, + self.div_x, self.div_y): + tex_coords[obj.group].extend(obj.tex_coords) + vertices[obj.group].extend(coords) + count[obj.group]+=4 + if isinstance(obj, Animation): + self.cur_objects[obj.group].append(obj) + for i, group in enumerate(self.mapset.groups): + if count[i] == 0: + if self.vl_objects[i] is None: + # let the vertex list be None + pass + else: + # there was a vertex list but now no more - delete it + self.vl_objects[i].delete() + self.vl_objects[i] = None + else: + if self.vl_objects[i] is None: + # there was no vertex list but ther now is one - create it + self.vl_objects[i] = self.batch.add(count[i], + pyglet.gl.GL_QUADS, + group, + ('v2i', vertices[i]), + ('t3f', tex_coords[i]), + ('c4B', (255,255,255,255)*count[i])) + else: + # there already is a vertex list - resize and refill + self.vl_objects[i].resize(count[i]) + self.vl_objects[i].tex_coords = tex_coords[i] + self.vl_objects[i].vertices = vertices[i] + self.vl_objects[i].colors = (255,255,255,255)*count[i] + # make object list unique + self.cur_objects[i] = list(set(self.cur_objects[i])) + + def update(self, dt): + try: + if self.window.keys[pyglet.window.key.LCTRL] and \ + any([self.window.keys[pyglet.window.key.UP], + self.window.keys[pyglet.window.key.DOWN], + self.window.keys[pyglet.window.key.LEFT], + self.window.keys[pyglet.window.key.RIGHT]]): + + if self.window.keys[pyglet.window.key.LEFT]: + x = 1 + elif self.window.keys[pyglet.window.key.RIGHT]: + x = -1 + else: + x = 0 + + if self.window.keys[pyglet.window.key.UP]: + y = -1 + elif self.window.keys[pyglet.window.key.DOWN]: + y = 1 + else: + y = 0 + self.dx += x*8 + self.dy += y*8 + elif self.window.keys[pyglet.window.key.PLUS] and \ + self.tile_size < 32: + self.tile_size+=8 + self._init_view() + elif self.window.keys[pyglet.window.key.MINUS] and \ + self.tile_size > 16: + self.tile_size-=8 + self._init_view() + except KeyError: + pass + if self.dx or self.dy: + self._move(self.dx, self.dy) + self.dx = 0 + self.dy = 0 + # mouse position: + if self.mouse_x != self.mouse_dx or self.mouse_y != self.mouse_dy: + self.mouse_x = self.mouse_dx + self.mouse_y = self.mouse_dy + x = (self.mouse_x-IF_LEFT-self.view_x + -(self.tile_size-32)//4)//self.tile_size + y = (self.mouse_y-IF_BOTTOM-self.view_y + -((self.tile_size-32)*3)//2)//self.tile_size + self.label.text = "%03d %03d"%(x-self.div_x, self.div_y-y) + + def on_mouse_drag(self, x, y, dx, dy, buttons, modifiers): + self.dx += dx + self.dy += dy + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_mouse_motion(self, x, y, dx, dy): + self.mouse_dx = x + self.mouse_dy = y + return pyglet.event.EVENT_HANDLED + + def on_resize(self, width, height): + self._init_view() + + def animate_water(self, dt): + for i, group in enumerate(self.mapset.groups): + if len(self.cur_objects[i]) > 0: + pyglet.gl.glBindTexture(self.cur_objects[i][0].tex.target, + self.cur_objects[i][0].tex.id) + for obj in self.cur_objects[i]: + pyglet.gl.glTexSubImage2D(obj.tex.owner.target, + obj.tex.owner.level, + obj.tex.x, obj.tex.y, + obj.tex.width, obj.tex.height, + pyglet.gl.GL_RGBA, pyglet.gl.GL_UNSIGNED_BYTE, + obj.next_frame()) diff --git a/lib/window.py b/lib/window.py new file mode 100644 index 0000000..bb97b48 --- /dev/null +++ b/lib/window.py @@ -0,0 +1,52 @@ +#!/usr/bin/env python +""" + heroes renaissance + copyright 2008 - Johannes 'josch' Schauer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +""" + +import pyglet + +class Window(pyglet.window.Window): + def __init__(self, *args, **kwargs): + super(Window, self).__init__(1280, 1024, resizable=True, vsync=False) + self.keys = pyglet.window.key.KeyStateHandler() + self.push_handlers(self.keys) + self.fps = pyglet.clock.ClockDisplay() + pyglet.clock.schedule(lambda dt: None) + + def on_draw(self): + self.fps.draw() + + def on_key_press(self, symbol, modifiers): + if symbol == pyglet.window.key.F11: + self.set_fullscreen(fullscreen=not self.fullscreen) + elif symbol == pyglet.window.key.P: + pyglet.image.get_buffer_manager().get_color_buffer().save( + 'screenshot.png', encoder=PNGRGBEncoder()) + +class PNGRGBEncoder(pyglet.image.codecs.ImageEncoder): + def encode(self, image, file, filename): + import Image + image = image.get_image_data() + format = image.format + pitch = -(image.width * len(format)) + pil_image = Image.fromstring( + format, (image.width, image.height), image.get_data(format, pitch)) + try: + #.convert('P', palette=Image.WEB) + pil_image.convert("RGB").save(file) + except Exception, e: + raise ImageEncodeException(e) diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..158f26b --- /dev/null +++ b/setup.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +# An example setup.py that can be used to create both standalone Windows +# executables (requires py2exe) and Mac OS X applications (requires py2app). +# +# On Windows:: +# +# python setup.py py2exe +# +# On Mac OS X:: +# +# python setup.py py2app +# + +from distutils.core import setup + +import os + +# The main entry point of the program +script_file = 'hr.py' + +# Setup args that apply to all setups, including ordinary distutils. +setup_args = dict( + data_files=[] +) + +# py2exe options +try: + import py2exe + setup_args.update(dict( + windows=[dict( + script=script_file, + icon_resources=[(1, 'assets/app.ico')], + )], + )) +except ImportError: + pass + +# py2app options +try: + import py2app + setup_args.update(dict( + app=[script_file], + options=dict(py2app=dict( + argv_emulation=True, + iconfile='assets/app.icns', + )), + )) +except ImportError: + pass + +setup(**setup_args) + +""" +Metadata-Version: 1.0 +Name: UNKNOWN +Version: 0.0.0 +Summary: UNKNOWN +Home-page: UNKNOWN +Author: UNKNOWN +Author-email: UNKNOWN +License: UNKNOWN +Description: UNKNOWN +Platform: UNKNOWN +""" diff --git a/test b/test new file mode 100755 index 0000000..83130de Binary files /dev/null and b/test differ diff --git a/test.h3m b/test.h3m new file mode 100644 index 0000000..21a0910 --- /dev/null +++ b/test.h3m @@ -0,0 +1 @@ +{"Blue": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "Pink": {"randomCity": 0, "is_computer": 0, "is_human": 0, "isCityTypesOpt": 0, "cityTypes": 0, "hero_type": 255, "behaviour": 0, "random_hero": 0, "heroes_count": 0}, "map_size": 144, "Purple": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "Orange": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "upper_terrain": [[[8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 25, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 23, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 38, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 5, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [3, 36, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 63, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 1, 15, 0], [3, 64, 0, 0, 1, 3, 16], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 58, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 1, 4, 32], [3, 49, 0, 0, 1, 13, 0], [3, 71, 0, 0, 1, 1, 16], [3, 57, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 24, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 3, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 53, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 1, 10, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 1, 14, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 22, 0, 0, 0, 0, 66], [3, 23, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 32, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 1, 4, 32], [3, 52, 0, 0, 1, 2, 16], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 1, 10, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 67, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 33, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 32, 0, 0, 0, 0, 65], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 1, 10, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 1, 11, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 25, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 1, 1, 32], [3, 59, 0, 0, 1, 13, 0], [3, 56, 0, 0, 1, 9, 32], [3, 56, 0, 0, 1, 4, 16], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 25, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 1, 4, 32], [3, 58, 0, 0, 1, 5, 16], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 61, 0, 0, 1, 14, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 63, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 3, 14, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 20, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 1, 3, 32], [3, 61, 0, 0, 1, 3, 16], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 1, 10, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 3, 11, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 3, 14, 0], [3, 50, 0, 0, 0, 0, 0], [3, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 2, 14, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 38, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 5, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 1, 4, 32], [3, 62, 0, 0, 1, 12, 0], [3, 55, 0, 0, 1, 0, 48]], [[8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 3, 4, 0], [3, 51, 0, 0, 3, 13, 0], [3, 51, 0, 0, 3, 1, 48], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 34, 0, 0, 3, 1, 64], [3, 29, 0, 0, 3, 13, 66], [3, 28, 0, 0, 3, 1, 114], [3, 38, 0, 0, 0, 0, 65], [3, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 2, 11, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 3, 5, 0], [3, 70, 0, 0, 3, 5, 48], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 25, 0, 0, 3, 11, 65], [8, 1, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 21, 0, 0, 0, 0, 67], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 12, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 58, 0, 0, 2, 10, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 66], [3, 21, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 3, 4, 0], [3, 57, 0, 0, 3, 5, 48], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 25, 0, 0, 3, 11, 65], [8, 7, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 23, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 20, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 2, 10, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 3], [8, 7, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 59, 0, 0, 3, 11, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 27, 0, 0, 3, 10, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 7, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 61, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 2, 14, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 2, 10, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 3, 14, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 3, 5, 32], [3, 55, 0, 0, 3, 3, 16], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 3, 0], [3, 38, 0, 0, 3, 5, 114], [3, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 2, 10, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 2, 10, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 0, 32], [3, 63, 0, 0, 3, 12, 0], [3, 60, 0, 0, 3, 3, 16], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 3, 14, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 70, 0, 0, 3, 10, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 3, 10, 0], [3, 49, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 24, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 15, 0, 0, 0, 0, 1], [8, 5, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 2, 11, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 2, 2, 0], [3, 49, 0, 0, 2, 9, 32], [3, 51, 0, 0, 2, 12, 0], [3, 59, 0, 0, 2, 2, 16], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 2, 5, 0], [3, 60, 0, 0, 2, 15, 16], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 3, 2, 32], [3, 54, 0, 0, 3, 3, 16], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 3, 11, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 3, 5, 32], [3, 50, 0, 0, 3, 4, 16], [3, 66, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 3, 10, 0], [3, 60, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 22, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 2, 10, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 2, 11, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 2, 3, 32], [3, 58, 0, 0, 2, 12, 0], [3, 52, 0, 0, 2, 13, 0], [3, 53, 0, 0, 2, 13, 0], [3, 71, 0, 0, 2, 3, 48], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [3, 36, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 35, 0, 0, 0, 0, 65], [3, 71, 0, 0, 0, 0, 0], [3, 56, 0, 0, 3, 5, 32], [3, 71, 0, 0, 3, 2, 16], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 3, 11, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 69, 0, 0, 3, 11, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 3, 14, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 3, 2, 0], [3, 54, 0, 0, 3, 3, 48], [3, 56, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 2, 0, 32], [3, 67, 0, 0, 2, 12, 0], [3, 51, 0, 0, 2, 1, 48], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 5, 32], [3, 49, 0, 0, 3, 12, 0], [3, 51, 0, 0, 3, 13, 0], [3, 71, 0, 0, 3, 7, 16], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 3, 4, 32], [3, 71, 0, 0, 3, 4, 16], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 3, 10, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 3, 10, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 22, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 3, 3, 32], [3, 51, 0, 0, 3, 12, 0], [3, 62, 0, 0, 3, 5, 16], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 3, 14, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 3, 3, 32], [3, 57, 0, 0, 3, 12, 0], [3, 49, 0, 0, 3, 13, 0], [3, 57, 0, 0, 3, 13, 0], [3, 62, 0, 0, 3, 13, 0], [3, 54, 0, 0, 3, 6, 16], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 3, 4, 0], [3, 55, 0, 0, 3, 5, 48], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [3, 26, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 0, 0, 0, 0, 0, 3], [3, 24, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 3, 4, 32], [3, 61, 0, 0, 3, 13, 0], [3, 50, 0, 0, 3, 12, 0], [3, 57, 0, 0, 3, 12, 0], [3, 55, 0, 0, 3, 12, 0], [3, 56, 0, 0, 3, 1, 48], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 3, 4, 32], [3, 56, 0, 0, 3, 13, 0], [3, 55, 0, 0, 3, 5, 48], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 34, 0, 0, 0, 0, 67], [3, 61, 0, 0, 0, 0, 0], [3, 33, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 64], [3, 35, 0, 0, 0, 0, 67], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 65, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 42, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 17, 0, 0, 0, 0, 3], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [3, 17, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 34, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 20, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 24, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 35, 0, 0, 0, 0, 65], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 2], [3, 31, 0, 0, 0, 0, 2], [3, 29, 0, 0, 0, 0, 2], [3, 28, 0, 0, 0, 0, 2], [3, 48, 0, 0, 0, 0, 0], [0, 9, 0, 0, 0, 0, 2], [0, 10, 0, 0, 0, 0, 2], [0, 8, 0, 0, 0, 0, 2], [0, 13, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [3, 16, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 69, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 1, 0, 0, 0, 0, 1], [3, 27, 0, 0, 0, 0, 64], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [1, 3, 0, 0, 0, 0, 64], [1, 17, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 4, 0, 0, 0, 0, 0], [1, 6, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [0, 5, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 18, 0, 0, 0, 0, 1], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [1, 6, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 4, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [0, 6, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 3], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 47, 0, 0, 0, 0, 64], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 31, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 10, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 13, 0, 0, 0, 0, 1], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 15, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 0], [1, 12, 0, 0, 0, 0, 0], [1, 9, 0, 0, 0, 0, 0], [1, 7, 0, 0, 0, 0, 0], [1, 4, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [0, 4, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 46, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 48, 0, 0, 0, 0, 66], [3, 44, 0, 0, 0, 0, 65], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 18, 0, 0, 0, 0, 1], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 57, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 12, 0, 0, 0, 0, 0], [3, 8, 0, 0, 0, 0, 2], [3, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 3, 0, 0, 0, 0, 1], [3, 4, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [5, 26, 0, 0, 0, 0, 64], [5, 61, 0, 0, 1, 14, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 16, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 21, 0, 0, 0, 0, 0], [1, 3, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 6, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [0, 16, 0, 0, 0, 0, 0], [0, 11, 0, 0, 0, 0, 0], [0, 12, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 47, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 1], [3, 7, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 38, 0, 0, 1, 10, 64], [5, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 5, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 0], [1, 23, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 16, 0, 0, 0, 0, 0], [1, 9, 0, 0, 0, 0, 0], [0, 17, 0, 0, 0, 0, 0], [0, 19, 0, 0, 0, 0, 3], [0, 29, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 47, 0, 0, 0, 0, 66], [8, 7, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 55, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [3, 17, 0, 0, 0, 0, 2], [3, 19, 0, 0, 0, 0, 1], [3, 65, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 47, 0, 0, 0, 0, 65], [5, 11, 0, 0, 1, 5, 2], [5, 47, 0, 0, 1, 2, 112], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [1, 7, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 0], [0, 16, 0, 0, 0, 0, 0], [0, 16, 0, 0, 0, 0, 1], [1, 16, 0, 0, 0, 0, 0], [1, 6, 0, 0, 0, 0, 0], [0, 17, 0, 0, 0, 0, 0], [0, 19, 0, 0, 0, 0, 3], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [3, 7, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 47, 0, 0, 0, 0, 67], [2, 8, 0, 0, 1, 11, 0], [2, 47, 0, 0, 0, 0, 66], [8, 3, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [2, 37, 0, 0, 0, 0, 64], [2, 48, 0, 0, 0, 0, 66], [0, 9, 0, 0, 0, 0, 0], [0, 19, 0, 0, 0, 0, 3], [0, 18, 0, 0, 0, 0, 2], [0, 10, 0, 0, 0, 0, 0], [0, 10, 0, 0, 0, 0, 0], [0, 18, 0, 0, 0, 0, 3], [0, 25, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 66], [5, 29, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 13, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [3, 0, 0, 0, 0, 0, 2], [3, 8, 0, 0, 0, 0, 2], [3, 10, 0, 0, 0, 0, 2], [3, 12, 0, 0, 0, 0, 1]], [[8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 24, 0, 0, 0, 0, 64], [2, 53, 0, 0, 1, 11, 0], [2, 39, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 41, 0, 0, 0, 0, 67], [2, 16, 0, 0, 0, 0, 3], [0, 29, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 12, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 21, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [3, 5, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 65, 0, 0, 1, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 1, 5, 0], [0, 22, 0, 0, 1, 15, 16], [0, 42, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 12, 0, 0, 0, 0, 1], [5, 62, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 66, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 66], [5, 29, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 42, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 50, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [3, 0, 0, 0, 0, 0, 2]], [[8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 24, 0, 0, 0, 0, 64], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 1, 11, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 5, 0, 0, 1, 14, 1], [0, 39, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 1, 2, 0], [0, 26, 0, 0, 1, 4, 48], [0, 37, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 18, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 40, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 69, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 16, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 71, 0, 0, 0, 0, 0], [2, 60, 0, 0, 1, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 1, 11, 3], [0, 23, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 28, 0, 0, 1, 4, 0], [0, 22, 0, 0, 1, 5, 48], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [5, 27, 0, 0, 0, 0, 64], [5, 49, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 61, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 27, 0, 0, 0, 0, 64], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 1, 1, 32], [2, 50, 0, 0, 1, 13, 0], [2, 5, 0, 0, 1, 12, 1], [0, 38, 0, 0, 1, 7, 16], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 1, 4, 0], [0, 38, 0, 0, 1, 3, 48], [0, 42, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 40, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 16, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 51, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 3], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 63, 0, 0, 0, 0, 0], [5, 32, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 13, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 29, 0, 0, 0, 0, 66], [3, 30, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 50, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 19, 0, 0, 0, 0, 0], [3, 8, 0, 0, 0, 0, 2], [3, 0, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [0, 24, 0, 0, 1, 4, 32], [0, 39, 0, 0, 1, 12, 0], [0, 22, 0, 0, 1, 12, 0], [0, 27, 0, 0, 1, 13, 0], [0, 25, 0, 0, 1, 13, 0], [0, 22, 0, 0, 1, 2, 48], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [2, 2, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 6, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 22, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 66, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 64, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 15, 0, 0, 0, 0, 0], [3, 11, 0, 0, 0, 0, 2], [3, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 66]], [[8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 25, 0, 0, 0, 0, 64], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [0, 31, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 66], [5, 31, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 38, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 59, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 37, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 56, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [0, 27, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 71, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 71, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 38, 0, 0, 0, 0, 66], [5, 30, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 33, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 71, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 40, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 44, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 60, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 59, 1, 9, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 0, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 19, 0, 0, 0, 0, 0], [3, 10, 0, 0, 0, 0, 2], [3, 11, 0, 0, 0, 0, 2], [3, 9, 0, 0, 0, 0, 2], [3, 2, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 63, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 1, 9, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 19, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 14, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 49, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 63, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 17, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 27, 0, 0, 0, 0, 64], [2, 60, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 40, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 57, 1, 9, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 36, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 22, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 24, 0, 0, 0, 0, 64], [3, 51, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 40, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 66], [2, 38, 0, 0, 0, 0, 65], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 3, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 54, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 14, 0], [5, 57, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 1, 10, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 64], [5, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 70, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 21, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [3, 37, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 67], [3, 53, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 18, 0, 0, 0, 0, 0], [3, 16, 0, 0, 0, 0, 3], [5, 2, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [0, 23, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 71, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [0, 30, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 1, 4, 0], [5, 10, 0, 0, 1, 12, 0], [5, 1, 0, 0, 1, 15, 17], [2, 2, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 2, 32], [5, 53, 0, 0, 1, 3, 16], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 1, 10, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 64], [2, 65, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [3, 24, 0, 0, 0, 0, 64], [3, 38, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 49, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 70, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 1, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 2], [5, 8, 0, 0, 1, 14, 0], [5, 9, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 52, 0, 0, 0, 0, 0], [5, 71, 0, 0, 1, 3, 0], [5, 53, 0, 0, 1, 13, 0], [5, 12, 0, 0, 1, 2, 48], [5, 10, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 1, 2, 32], [5, 54, 0, 0, 1, 3, 16], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 59, 1, 10, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 50, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 66], [3, 39, 0, 0, 0, 0, 65], [3, 49, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 68, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 29, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 48, 0, 0, 0, 0, 64], [0, 9, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 58, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 61, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 43, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 1, 6, 0], [5, 51, 0, 0, 1, 12, 0], [5, 51, 0, 0, 1, 13, 0], [5, 66, 0, 0, 1, 13, 0], [5, 55, 0, 0, 1, 4, 48], [5, 55, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 10, 0], [5, 62, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 1, 9, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 47, 0, 0, 0, 0, 64], [8, 7, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 26, 0, 0, 0, 0, 64], [3, 53, 0, 0, 0, 0, 0], [3, 50, 0, 0, 0, 0, 0], [3, 61, 0, 0, 0, 0, 0], [3, 51, 0, 0, 0, 0, 0], [3, 60, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 72, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 0, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 27, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 65], [2, 10, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 4, 0], [5, 54, 0, 0, 1, 5, 48], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 11, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 55, 1, 1, 0, 0, 8], [5, 52, 1, 0, 0, 0, 4], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 47, 0, 0, 0, 0, 66], [8, 5, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 24, 0, 0, 0, 0, 64], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [3, 36, 0, 0, 0, 0, 66], [3, 38, 0, 0, 0, 0, 65], [3, 65, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 32, 0, 0, 0, 0, 64], [3, 28, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [5, 47, 0, 0, 0, 0, 67], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 14, 0, 0, 0, 0, 3], [5, 67, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 36, 0, 0, 0, 0, 64], [2, 43, 0, 0, 0, 0, 66], [0, 28, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 3], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 1, 10, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 66, 0, 0, 1, 14, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 1, 6, 0], [5, 70, 0, 0, 1, 13, 0], [5, 49, 0, 0, 1, 13, 0], [5, 49, 0, 0, 1, 13, 0], [5, 55, 0, 0, 1, 2, 16], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 1, 14, 0], [5, 66, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 63, 1, 10, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [3, 25, 0, 0, 0, 0, 64], [3, 52, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 26, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 19, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 65], [2, 16, 0, 0, 0, 0, 3], [0, 24, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 2, 14, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 1, 14, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 1, 5, 0], [5, 50, 0, 0, 1, 4, 48], [5, 66, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 3, 14, 0], [2, 53, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 51, 0, 0, 1, 6, 0], [5, 62, 0, 0, 1, 12, 0], [5, 53, 0, 0, 1, 5, 48], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 1, 2, 32], [5, 49, 0, 0, 1, 13, 0], [5, 54, 0, 0, 1, 13, 0], [5, 56, 0, 0, 1, 1, 48], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 1, 3, 0, 0, 8], [5, 15, 1, 3, 0, 0, 4], [5, 10, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 65, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 5, 0, 0, 0, 0, 1], [2, 20, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 61, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 57, 0, 0, 0, 0, 0], [3, 27, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [5, 37, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 64], [2, 43, 0, 0, 0, 0, 66], [5, 2, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 1], [0, 23, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 2, 10, 0], [5, 62, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 1, 4, 0], [5, 54, 0, 0, 1, 2, 48], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 1, 4, 0], [5, 51, 0, 0, 1, 4, 48], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 2, 0], [2, 60, 0, 0, 3, 2, 48], [2, 53, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 66, 0, 0, 1, 14, 32], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 6, 1, 10, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 39, 0, 0, 0, 0, 65], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 0, 0, 0, 0, 0, 3], [2, 25, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 66], [2, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [3, 37, 0, 0, 0, 0, 64], [3, 39, 0, 0, 0, 0, 67], [3, 69, 0, 0, 0, 0, 0], [3, 67, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 66, 0, 0, 0, 0, 0], [3, 35, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 64], [3, 48, 0, 0, 0, 0, 66], [5, 48, 0, 0, 0, 0, 67], [5, 29, 0, 0, 0, 0, 64], [5, 28, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 52, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 2, 5, 2], [5, 8, 0, 0, 2, 12, 2], [5, 8, 0, 0, 2, 0, 50], [5, 9, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 1, 11, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 1, 4, 0], [5, 55, 0, 0, 1, 13, 0], [5, 54, 0, 0, 1, 4, 48], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 10, 0], [2, 61, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 4, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 1, 10, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 34, 0, 0, 0, 0, 66], [2, 28, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 64], [2, 33, 0, 0, 0, 0, 67], [2, 56, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 2], [8, 0, 0, 0, 0, 0, 3], [3, 27, 0, 0, 0, 0, 64], [3, 55, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 65, 0, 0, 0, 0, 0], [3, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 22, 0, 0, 0, 0, 66], [2, 48, 0, 0, 0, 0, 64], [5, 45, 0, 0, 0, 0, 65], [5, 5, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 19, 0, 0, 2, 2, 2], [2, 9, 0, 0, 2, 2, 48], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 14, 0, 0, 0, 0, 1], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 1, 1, 32], [5, 50, 0, 0, 1, 12, 0], [5, 71, 0, 0, 1, 12, 0], [5, 56, 0, 0, 1, 2, 48], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 56, 0, 0, 3, 14, 0], [2, 52, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 3, 5, 0], [2, 56, 0, 0, 3, 5, 48], [2, 49, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 1, 0, 0, 0, 3], [2, 16, 1, 0, 0, 0, 12], [2, 18, 0, 0, 0, 0, 3], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 45, 0, 0, 0, 0, 66], [3, 48, 0, 0, 0, 0, 67], [3, 29, 0, 0, 0, 0, 64], [3, 32, 0, 0, 0, 0, 67], [3, 71, 0, 0, 0, 0, 0], [3, 53, 0, 0, 0, 0, 0], [3, 54, 0, 0, 0, 0, 0], [3, 62, 0, 0, 0, 0, 0], [3, 56, 0, 0, 0, 0, 0], [3, 58, 0, 0, 0, 0, 0], [3, 39, 0, 0, 0, 0, 64], [3, 48, 0, 0, 0, 0, 64], [5, 48, 0, 0, 0, 0, 65], [5, 38, 0, 0, 0, 0, 65], [5, 51, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 2, 0, 0, 0, 0, 1], [5, 47, 0, 0, 0, 0, 65], [5, 1, 0, 0, 0, 0, 3], [2, 16, 0, 0, 2, 14, 0], [2, 9, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 3], [2, 54, 0, 0, 2, 2, 0], [2, 50, 0, 0, 2, 3, 48], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 3, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 3, 10, 0], [2, 54, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 5, 0], [2, 53, 0, 0, 3, 2, 48], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 1, 10, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 25, 0, 0, 0, 0, 64], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [3, 4, 0, 0, 0, 0, 0], [3, 52, 0, 0, 0, 0, 0], [3, 70, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 49, 0, 0, 0, 0, 0], [3, 69, 0, 0, 0, 0, 0], [3, 55, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 66], [3, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 1, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 67], [2, 11, 0, 0, 0, 0, 0], [2, 19, 0, 0, 2, 10, 3], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 2, 4, 0], [2, 55, 0, 0, 2, 2, 48], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 3, 10, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 5, 0], [2, 53, 0, 0, 3, 5, 48], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 19, 1, 10, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [3, 4, 0, 0, 0, 0, 0], [3, 59, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 30, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 31, 0, 0, 0, 0, 66], [3, 28, 0, 0, 0, 0, 66], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 4, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 66], [2, 22, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 11, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 10, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 6, 0], [2, 65, 0, 0, 3, 13, 0], [2, 56, 0, 0, 3, 4, 48], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 56, 1, 2, 0, 0, 8], [2, 57, 1, 2, 0, 0, 4], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [2, 27, 0, 0, 0, 0, 64], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [3, 6, 0, 0, 0, 0, 0], [3, 38, 0, 0, 0, 0, 64], [3, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [5, 26, 0, 0, 0, 0, 64], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 47, 0, 0, 0, 0, 65], [2, 10, 0, 0, 0, 0, 2], [2, 13, 0, 0, 0, 0, 1], [2, 56, 0, 0, 2, 1, 32], [2, 56, 0, 0, 2, 13, 0], [2, 55, 0, 0, 2, 7, 16], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 3, 11, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 1, 10, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [2, 36, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 45, 0, 0, 0, 0, 64], [3, 48, 0, 0, 0, 0, 65], [3, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 64], [5, 34, 0, 0, 0, 0, 67], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 23, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1]], [[8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 47, 0, 0, 0, 0, 67], [5, 1, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 2, 3, 32], [2, 55, 0, 0, 2, 3, 16], [2, 53, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 10, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 1, 9, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 71, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 1, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 38, 0, 0, 0, 0, 65], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 6, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 2, 2, 32], [2, 54, 0, 0, 2, 3, 16], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 51, 0, 0, 3, 11, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 1, 9, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [5, 36, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 21, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 41, 0, 0, 0, 0, 65], [5, 17, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 2, 11, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 51, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 52, 0, 0, 3, 14, 0], [2, 53, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 11, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 1, 2, 0, 0, 8], [2, 49, 1, 3, 0, 0, 4], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 48, 0, 0, 0, 0, 66], [5, 48, 0, 0, 0, 0, 67], [5, 28, 0, 0, 0, 0, 64], [5, 29, 0, 0, 0, 0, 64], [5, 30, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 38, 0, 0, 0, 0, 67], [5, 59, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 3]], [[8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 4, 0, 0, 0, 0, 1], [0, 42, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 2, 11, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 60, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 1, 32], [2, 51, 0, 0, 3, 13, 0], [2, 55, 0, 0, 3, 13, 0], [2, 53, 0, 0, 3, 1, 48], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 1, 9, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 5, 0, 0, 0, 0, 1], [0, 28, 0, 0, 2, 14, 0], [0, 37, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 10, 0], [2, 65, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 1, 9, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 5, 0, 0, 0, 0, 1], [0, 34, 0, 0, 2, 11, 0], [0, 27, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 3, 0], [2, 71, 0, 0, 2, 4, 48], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 1, 9, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 21, 0, 0, 0, 0, 66], [5, 43, 0, 0, 0, 0, 64], [0, 42, 0, 0, 2, 0, 32], [0, 23, 0, 0, 2, 13, 0], [2, 4, 0, 0, 2, 12, 0], [2, 55, 0, 0, 2, 4, 48], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 1, 1, 0, 0, 8], [2, 57, 1, 3, 0, 0, 4], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 62, 0, 0, 2, 14, 0], [5, 64, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 21, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 61, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 1, 3, 0, 0, 8], [2, 51, 1, 3, 0, 0, 4], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 12, 0, 0, 0, 0, 1], [5, 54, 0, 0, 2, 10, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 35, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 66], [2, 35, 0, 0, 0, 0, 65], [2, 70, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 65, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 0, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 1, 9, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 12, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 55, 0, 0, 2, 10, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 56, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 35, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 1, 9, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 59, 0, 0, 2, 10, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 27, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 38, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 70, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 1, 2, 0, 0, 8], [2, 60, 1, 1, 0, 0, 4], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 2, 10, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 2], [8, 1, 0, 0, 0, 0, 3], [2, 23, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 29, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [0, 23, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 19, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 1, 10, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 2], [5, 11, 0, 0, 2, 10, 2], [5, 18, 0, 0, 0, 0, 1], [5, 19, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 32, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 64], [2, 21, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [0, 6, 0, 0, 0, 0, 64], [0, 28, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 44, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [5, 16, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 1], [0, 26, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 1, 9, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 30, 0, 0, 0, 0, 0], [0, 23, 0, 0, 2, 10, 0], [5, 16, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [0, 26, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 4, 0, 0, 0, 0, 64], [0, 22, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 4, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 41, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 1, 12, 0, 0, 0], [2, 56, 1, 11, 0, 0, 0], [2, 54, 1, 0, 0, 0, 4], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 1, 0, 0, 0, 0], [2, 52, 1, 0, 0, 0, 12], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 2, 5, 32], [0, 28, 0, 0, 2, 2, 16], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [2, 5, 0, 0, 2, 14, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [0, 16, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 27, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 19, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [0, 24, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 72, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 1, 3, 0, 0, 8], [2, 53, 1, 3, 0, 0, 4], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 50, 1, 0, 0, 0, 0], [2, 71, 1, 1, 0, 0, 12], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 2, 11, 0], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [2, 4, 0, 0, 2, 10, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [0, 7, 0, 0, 0, 0, 64], [0, 22, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 2], [5, 0, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [0, 40, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 44, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [0, 37, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 55, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 1, 2, 0, 0, 8], [2, 49, 1, 0, 0, 0, 4], [2, 52, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 7, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 1, 10, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 2, 0, 32], [0, 44, 0, 0, 2, 12, 0], [0, 26, 0, 0, 2, 13, 0], [0, 37, 0, 0, 2, 13, 0], [0, 25, 0, 0, 2, 12, 0], [2, 16, 0, 0, 2, 12, 0], [2, 18, 0, 0, 2, 7, 19], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 44, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 1, 14, 0], [0, 27, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 72, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [0, 28, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 1, 10, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 28, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 3, 0, 0, 0, 0, 3], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 2, 11, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [0, 17, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 34, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 1, 14, 0], [2, 5, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 1, 2, 0], [2, 18, 0, 0, 1, 13, 0], [2, 17, 0, 0, 1, 12, 3], [0, 40, 0, 0, 1, 13, 0], [0, 22, 0, 0, 1, 12, 0], [0, 24, 0, 0, 1, 0, 48], [0, 44, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 1], [0, 34, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 1, 3, 0, 0, 8], [2, 18, 1, 0, 0, 0, 4], [2, 17, 0, 0, 0, 0, 3], [5, 6, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 1, 1, 0, 0, 8], [2, 51, 1, 0, 0, 0, 4], [2, 50, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 1, 0, 0, 0, 0, 3], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 2, 4, 32], [2, 52, 0, 0, 2, 2, 16], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [0, 17, 0, 0, 0, 0, 66], [0, 18, 0, 0, 0, 0, 65], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 1, 10, 0], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 1, 3, 1], [2, 19, 0, 0, 1, 5, 48], [2, 17, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 29, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 1, 1, 0, 0, 9], [5, 17, 1, 1, 0, 0, 4], [5, 18, 0, 0, 0, 0, 3], [5, 51, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 1, 9, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 10, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [0, 5, 0, 0, 0, 0, 64], [0, 21, 0, 0, 1, 2, 0], [5, 0, 0, 0, 1, 8, 32], [5, 1, 0, 0, 1, 12, 1], [2, 17, 0, 0, 1, 2, 50], [2, 16, 0, 0, 0, 0, 3], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 2], [5, 40, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [0, 35, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 1, 1, 0, 0, 10], [5, 19, 1, 1, 0, 0, 5], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 1, 2, 0, 0, 0], [2, 56, 1, 0, 0, 0, 12], [2, 51, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 30, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 4, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 64, 0, 0, 2, 11, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [0, 3, 0, 0, 0, 0, 66], [0, 18, 0, 0, 1, 11, 1], [5, 4, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 35, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 29, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 43, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 14, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [5, 6, 1, 1, 0, 0, 8], [5, 63, 1, 2, 0, 0, 4], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 1, 9, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 14, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 5, 0], [2, 51, 0, 0, 2, 5, 48], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 4, 0, 0, 0, 0, 64], [1, 9, 0, 0, 0, 0, 64], [5, 47, 0, 0, 1, 10, 3], [5, 19, 0, 0, 0, 0, 3], [5, 5, 0, 0, 0, 0, 1], [0, 31, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 67, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 72, 1, 2, 0, 0, 8], [5, 56, 1, 0, 0, 0, 4], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 68, 1, 9, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 2, 10, 0], [2, 59, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 28, 0, 0, 0, 0, 66], [2, 23, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 0, 64], [1, 19, 0, 0, 0, 0, 64], [5, 27, 0, 0, 1, 10, 64], [5, 52, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [0, 25, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 37, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 55, 0, 0, 0, 0, 0], [5, 61, 1, 10, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 14, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 1, 2, 0, 0, 8], [2, 50, 1, 2, 0, 0, 4], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 2, 0, 32], [2, 51, 0, 0, 2, 13, 0], [2, 61, 0, 0, 2, 1, 48], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [5, 36, 0, 0, 1, 1, 98], [5, 39, 0, 0, 1, 13, 65], [5, 7, 0, 0, 1, 4, 17], [0, 23, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [0, 27, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [0, 35, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 12, 0, 0, 0, 0, 3], [5, 55, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 14, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 0, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 1, 10, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 38, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 36, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 34, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 48, 0, 0, 1, 2, 96], [5, 75, 0, 0, 1, 3, 81], [0, 26, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 25, 0, 0, 1, 14, 0], [0, 37, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 0], [5, 8, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 3], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 1], [0, 22, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 50, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 3], [5, 7, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 1, 10, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [0, 40, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 2, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [5, 76, 0, 0, 1, 2, 98], [5, 75, 0, 0, 1, 13, 65], [0, 22, 0, 0, 1, 13, 0], [0, 31, 0, 0, 1, 12, 0], [0, 28, 0, 0, 1, 13, 0], [5, 17, 0, 0, 1, 0, 48], [5, 10, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 63, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [0, 33, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 44, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 14, 0, 0, 0, 0, 1], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 62, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 3], [5, 49, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 56, 1, 2, 0, 0, 8], [2, 64, 1, 2, 0, 0, 4], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 31, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 42, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 0, 0], [0, 33, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 76, 0, 0, 0, 0, 66], [5, 44, 0, 0, 0, 0, 67], [5, 8, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 3], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 2, 0, 0, 0, 0, 3], [0, 28, 0, 0, 0, 0, 0], [0, 34, 0, 0, 0, 0, 0], [0, 32, 0, 0, 0, 0, 0], [5, 3, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [0, 39, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 13, 0, 0, 0, 0, 1], [5, 57, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 71, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [0, 44, 0, 0, 0, 0, 0], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 26, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 21, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 58, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 2, 0, 0, 0, 0, 1], [0, 26, 0, 0, 0, 0, 0], [0, 39, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 69, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 5, 0, 0, 2, 15, 0], [2, 53, 0, 0, 2, 1, 16], [2, 49, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 1, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 1, 10, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [0, 23, 0, 0, 0, 0, 0], [0, 22, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 40, 0, 0, 0, 0, 0], [0, 27, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 61, 0, 0, 0, 0, 0], [5, 15, 0, 0, 0, 0, 0], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [0, 24, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 49, 0, 0, 2, 11, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 53, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 57, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 65, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 1], [0, 21, 0, 0, 0, 0, 0], [0, 28, 0, 0, 0, 0, 0], [0, 23, 0, 0, 0, 0, 0], [0, 31, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 65, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 0, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 4, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 2, 11, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 50, 0, 0, 0, 0, 0], [5, 64, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 1, 10, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 15, 0, 0, 0, 0, 3], [2, 49, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 27, 0, 0, 0, 0, 64], [5, 49, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 6, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 72, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 68, 0, 0, 0, 0, 0], [5, 63, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 17, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 2, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 49, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 67, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 62, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 1, 3, 0, 0, 8], [2, 52, 1, 1, 0, 0, 4], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 70, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 13, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 65, 0, 0, 2, 10, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 1], [5, 4, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 66, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 18, 0, 0, 0, 0, 1], [5, 61, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 50, 1, 1, 0, 0, 8], [2, 57, 1, 12, 0, 0, 0], [2, 72, 1, 0, 0, 0, 4], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [5, 26, 0, 0, 0, 0, 64], [5, 51, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [7, 16, 0, 0, 0, 0, 0], [7, 1, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 6, 0, 0, 0, 0, 1], [5, 5, 0, 0, 0, 0, 0], [5, 51, 0, 0, 0, 0, 0], [5, 56, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 55, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 7, 0, 0, 0, 0, 1], [2, 1, 0, 0, 2, 14, 0], [2, 10, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 11, 0], [2, 64, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 1, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 11, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 16, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 40, 0, 0, 0, 0, 2], [5, 16, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 1, 10, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 67], [5, 51, 0, 0, 0, 0, 0], [5, 6, 0, 0, 0, 0, 1], [7, 17, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 3], [7, 4, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [5, 4, 0, 0, 0, 0, 0], [5, 60, 0, 0, 0, 0, 0], [5, 70, 0, 0, 0, 0, 0], [5, 61, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 19, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 4, 0, 0, 2, 0, 32], [2, 54, 0, 0, 2, 12, 0], [2, 60, 0, 0, 2, 13, 0], [2, 55, 0, 0, 2, 12, 0], [2, 51, 0, 0, 2, 12, 0], [2, 68, 0, 0, 2, 13, 0], [2, 50, 0, 0, 2, 6, 16], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 8, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 19, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 1], [5, 17, 0, 0, 0, 0, 2], [5, 1, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 1, 10, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 19, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 19, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 58, 0, 0, 0, 0, 0], [5, 45, 0, 0, 0, 0, 64], [7, 48, 0, 0, 0, 0, 65], [7, 28, 0, 0, 0, 0, 66], [7, 41, 0, 0, 0, 0, 65], [7, 8, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [5, 3, 0, 0, 0, 0, 2], [5, 10, 0, 0, 0, 0, 2], [5, 19, 0, 0, 0, 0, 1], [5, 52, 0, 0, 0, 0, 0], [5, 18, 0, 0, 0, 0, 0], [5, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 69, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 2, 10, 0], [2, 66, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 59, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 3], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 1, 0, 0, 0, 0], [2, 49, 1, 0, 0, 0, 12], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 0], [2, 17, 0, 0, 0, 0, 3], [4, 16, 0, 0, 0, 0, 0], [4, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 16, 0, 0, 0, 0, 3], [4, 16, 0, 0, 0, 0, 0], [4, 11, 0, 0, 0, 0, 0], [4, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 17, 0, 0, 0, 0, 3], [4, 16, 0, 0, 0, 0, 0], [4, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 47, 0, 0, 0, 0, 64], [8, 4, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 49, 0, 0, 0, 0, 0], [5, 27, 0, 0, 0, 0, 65], [8, 3, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 8, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [5, 16, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 17, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 2, 10, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 0], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 67, 1, 9, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [4, 16, 0, 0, 0, 0, 0], [4, 19, 0, 0, 0, 0, 3], [4, 18, 0, 0, 0, 0, 2], [4, 11, 0, 0, 0, 0, 0], [4, 10, 0, 0, 0, 0, 0], [4, 19, 0, 0, 0, 0, 3], [4, 54, 0, 0, 0, 0, 0], [4, 18, 0, 0, 0, 0, 2], [4, 9, 0, 0, 0, 0, 0], [4, 10, 0, 0, 0, 0, 0], [4, 18, 0, 0, 0, 0, 3], [4, 18, 0, 0, 0, 0, 2], [4, 10, 0, 0, 0, 0, 0], [4, 47, 0, 0, 0, 0, 66], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 55, 0, 0, 0, 0, 0], [5, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 64, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 2, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 51, 0, 0, 2, 10, 0], [2, 63, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 0], [5, 9, 0, 0, 0, 0, 0], [5, 2, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 1, 9, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 66], [2, 30, 0, 0, 0, 0, 66], [2, 39, 0, 0, 0, 0, 65], [2, 4, 0, 0, 0, 0, 1], [4, 5, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 64], [4, 30, 0, 0, 0, 0, 66], [4, 29, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 58, 0, 0, 0, 0, 0], [4, 54, 0, 0, 0, 0, 0], [4, 69, 0, 0, 0, 0, 0], [4, 52, 0, 0, 3, 14, 0], [4, 50, 0, 0, 0, 0, 0], [4, 60, 0, 0, 0, 0, 0], [4, 54, 0, 0, 0, 0, 0], [4, 66, 0, 0, 0, 0, 0], [4, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 51, 0, 0, 0, 0, 0], [5, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 18, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 52, 0, 0, 2, 11, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 67, 0, 0, 2, 14, 0], [2, 68, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 7, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 2], [5, 9, 0, 0, 0, 0, 2], [5, 3, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 1, 10, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 48, 0, 0, 0, 0, 64], [4, 48, 0, 0, 0, 0, 65], [4, 37, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 53, 0, 0, 0, 0, 0], [4, 49, 0, 0, 0, 0, 0], [4, 58, 0, 0, 3, 2, 32], [4, 52, 0, 0, 3, 5, 16], [4, 52, 0, 0, 0, 0, 0], [4, 58, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 61, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 68, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 71, 0, 0, 2, 2, 32], [2, 52, 0, 0, 2, 3, 16], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 2, 10, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 0], [2, 14, 0, 0, 0, 0, 3], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 57, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 55, 1, 10, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 65, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 72, 0, 0, 3, 11, 0], [4, 62, 0, 0, 0, 0, 0], [4, 55, 0, 0, 0, 0, 0], [4, 63, 0, 0, 0, 0, 0], [4, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 55, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 25, 0, 0, 0, 0, 64], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 70, 0, 0, 2, 3, 32], [2, 51, 0, 0, 2, 13, 0], [2, 51, 0, 0, 2, 1, 48], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 13, 0, 0, 0, 0, 0], [2, 11, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 14, 0, 0, 0, 0, 1], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 31, 0, 0, 0, 0, 66], [2, 28, 0, 0, 0, 0, 66], [2, 38, 0, 0, 0, 0, 65], [2, 55, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 31, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 65, 0, 0, 3, 4, 32], [4, 51, 0, 0, 3, 4, 16], [4, 57, 0, 0, 0, 0, 0], [4, 51, 0, 0, 0, 0, 0], [4, 39, 0, 0, 0, 0, 66], [4, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 51, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 68, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 5, 0, 0, 0, 0, 1], [5, 2, 0, 0, 0, 0, 0], [5, 11, 0, 0, 0, 0, 0], [5, 1, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 65, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 29, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 71, 0, 0, 3, 5, 32], [4, 52, 0, 0, 3, 5, 16], [4, 69, 0, 0, 0, 0, 0], [4, 56, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 66], [4, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 38, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 53, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 1, 14, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [5, 0, 0, 0, 0, 0, 2], [5, 8, 0, 0, 0, 0, 2], [5, 2, 0, 0, 0, 0, 3], [2, 2, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 62, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 61, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 38, 0, 0, 0, 0, 65], [4, 67, 0, 0, 3, 3, 32], [4, 71, 0, 0, 3, 3, 16], [4, 70, 0, 0, 0, 0, 0], [4, 55, 0, 0, 0, 0, 0], [4, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 56, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 61, 0, 0, 1, 14, 0], [7, 56, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 1, 10, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 4, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0, 1], [7, 0, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 52, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 66], [2, 21, 0, 0, 0, 0, 67], [8, 6, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 54, 0, 0, 0, 0, 0], [4, 49, 0, 0, 3, 11, 0], [4, 51, 0, 0, 0, 0, 0], [4, 58, 0, 0, 0, 0, 0], [4, 39, 0, 0, 0, 0, 66], [4, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 52, 0, 0, 0, 0, 0], [5, 50, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 50, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 50, 0, 0, 1, 11, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 1, 3, 0], [7, 55, 0, 0, 1, 4, 48], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 12, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 10, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 1], [7, 7, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 0, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 66, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 65, 0, 0, 0, 0, 0], [4, 49, 0, 0, 3, 10, 0], [4, 58, 0, 0, 0, 0, 0], [4, 56, 0, 0, 0, 0, 0], [4, 58, 0, 0, 3, 14, 0], [4, 39, 0, 0, 0, 0, 66], [4, 37, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 54, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 1, 0, 32], [7, 69, 0, 0, 1, 12, 0], [7, 50, 0, 0, 1, 13, 0], [7, 58, 0, 0, 1, 12, 0], [7, 52, 0, 0, 1, 2, 48], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 2, 0, 0, 0, 0, 3], [7, 6, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 5, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 19, 0, 0, 0, 0, 1], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 34, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [4, 26, 0, 0, 0, 0, 64], [4, 59, 0, 0, 0, 0, 0], [4, 51, 0, 0, 3, 10, 0], [4, 50, 0, 0, 0, 0, 0], [4, 64, 0, 0, 0, 0, 0], [4, 72, 0, 0, 3, 10, 0], [4, 49, 0, 0, 0, 0, 0], [4, 26, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 72, 0, 0, 0, 0, 0], [5, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 13, 0, 0, 0, 0, 3], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 11, 0, 0, 0, 0, 2], [2, 13, 0, 0, 0, 0, 1], [2, 61, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 50, 0, 0, 3, 7, 0], [4, 72, 0, 0, 3, 12, 0], [4, 54, 0, 0, 3, 13, 0], [4, 56, 0, 0, 3, 1, 48], [4, 52, 0, 0, 0, 0, 0], [4, 24, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 56, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 2, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 69, 0, 0, 3, 11, 0], [4, 56, 0, 0, 0, 0, 0], [4, 52, 0, 0, 0, 0, 0], [4, 70, 0, 0, 0, 0, 0], [4, 59, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 66], [4, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [1, 5, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 14, 0, 0, 0, 0, 1], [8, 4, 0, 0, 0, 0, 1], [1, 8, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 25, 0, 0, 0, 0, 64], [5, 26, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 52, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 6, 0, 0, 0, 0, 1], [2, 6, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 38, 0, 0, 3, 4, 97], [4, 63, 0, 0, 3, 5, 16], [4, 53, 0, 0, 0, 0, 0], [4, 49, 0, 0, 0, 0, 0], [4, 69, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 4, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 20, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [8, 4, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 7, 0, 0, 0, 0, 64], [1, 1, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 3, 0, 0, 0, 0, 3], [5, 24, 0, 0, 0, 0, 64], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 5, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 72, 0, 0, 0, 0, 0], [2, 69, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 27, 0, 0, 0, 0, 64], [4, 54, 0, 0, 3, 11, 0], [4, 68, 0, 0, 0, 0, 0], [4, 49, 0, 0, 0, 0, 0], [4, 68, 0, 0, 0, 0, 0], [4, 50, 0, 0, 0, 0, 0], [4, 24, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 17, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [1, 21, 0, 0, 0, 0, 64], [8, 5, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [1, 10, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [8, 7, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 23, 0, 0, 0, 0, 64], [5, 31, 0, 0, 0, 0, 64], [5, 32, 0, 0, 0, 0, 67], [5, 49, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 59, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 4, 0, 0, 0, 0, 1], [2, 0, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 64, 0, 0, 0, 0, 0], [2, 58, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 39, 0, 0, 3, 0, 97], [4, 55, 0, 0, 3, 12, 0], [4, 68, 0, 0, 3, 15, 16], [4, 50, 0, 0, 0, 0, 0], [4, 38, 0, 0, 0, 0, 64], [4, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 3], [8, 26, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 55, 0, 0, 0, 0, 0], [5, 58, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 12, 0, 0, 0, 0, 2], [7, 9, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 17, 0, 0, 0, 0, 2], [2, 8, 0, 0, 0, 0, 2], [2, 15, 0, 0, 0, 0, 1], [2, 72, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 37, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 54, 0, 0, 0, 0, 0], [4, 57, 0, 0, 0, 0, 0], [4, 27, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 55, 0, 0, 0, 0, 0], [5, 59, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 66, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 11, 0, 0, 0, 0, 0], [7, 0, 0, 0, 0, 0, 1], [2, 5, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 39, 0, 0, 0, 0, 65], [4, 39, 0, 0, 0, 0, 64], [4, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 52, 0, 0, 0, 0, 0], [5, 52, 0, 0, 0, 0, 0], [5, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 32, 0, 0, 0, 0, 65], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 6, 0, 0, 0, 0, 1], [2, 3, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 10, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 27, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [4, 36, 0, 0, 0, 0, 66], [4, 37, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 23, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 38, 0, 0, 0, 0, 65], [5, 54, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 0, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 51, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 14, 0, 0, 0, 0, 2], [7, 11, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [2, 43, 0, 0, 0, 0, 65], [2, 23, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 6, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 13, 0, 0, 0, 0, 1], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 52, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 47, 0, 0, 0, 0, 66], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 5, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [8, 5, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 56, 0, 0, 0, 0, 0], [5, 49, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 52, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 24, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [1, 10, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 24, 0, 0, 0, 0, 64], [5, 53, 0, 0, 0, 0, 0], [5, 53, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 64], [7, 36, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 3], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 62, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 25, 0, 0, 0, 0, 64], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 64], [7, 36, 0, 0, 0, 0, 67], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 50, 0, 0, 0, 0, 0], [5, 54, 0, 0, 0, 0, 0], [5, 39, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [5, 22, 0, 0, 0, 0, 66], [5, 30, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 49, 0, 0, 0, 0, 0], [5, 24, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 24, 0, 0, 0, 0, 64], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 15, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 38, 0, 0, 0, 0, 66], [5, 36, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 22, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 27, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 26, 0, 0, 0, 0, 64], [5, 50, 0, 0, 0, 0, 0], [5, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 69, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 26, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0]], [[8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [5, 36, 0, 0, 0, 0, 66], [5, 39, 0, 0, 0, 0, 65], [5, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [1, 23, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [5, 37, 0, 0, 0, 0, 66], [5, 20, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 57, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [1, 7, 0, 0, 0, 0, 64], [1, 14, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 64], [1, 21, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 13, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [1, 8, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 14, 0, 0, 0, 0, 3], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [7, 26, 0, 0, 0, 0, 64], [7, 55, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 37, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 8, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 14, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 15, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 64], [1, 20, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [1, 23, 0, 0, 0, 0, 0], [1, 11, 0, 0, 0, 0, 64], [1, 23, 0, 0, 0, 0, 64], [1, 1, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [1, 1, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 64], [7, 38, 0, 0, 0, 0, 67], [7, 65, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 27, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 64], [1, 19, 0, 0, 0, 0, 64], [8, 17, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 1, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [1, 0, 0, 0, 0, 0, 0], [1, 15, 0, 0, 0, 0, 0], [1, 16, 0, 0, 0, 0, 64], [1, 2, 0, 0, 0, 0, 64], [1, 8, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1]], [[8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 13, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 5, 0, 0, 0, 0, 64], [1, 21, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64], [1, 5, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 0], [1, 14, 0, 0, 0, 0, 0], [1, 1, 0, 0, 0, 0, 0], [1, 13, 0, 0, 0, 0, 0], [1, 7, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [8, 16, 0, 0, 0, 0, 2]], [[8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 26, 0, 0, 0, 0, 64], [7, 66, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 1, 14, 0], [7, 59, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [1, 20, 0, 0, 0, 0, 64], [1, 18, 0, 0, 0, 0, 64], [1, 6, 0, 0, 0, 0, 0], [1, 22, 0, 0, 0, 0, 0], [1, 2, 0, 0, 0, 0, 0], [1, 18, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 64]], [[8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 1, 10, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 3], [2, 37, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [1, 2, 0, 0, 0, 0, 64], [1, 22, 0, 0, 0, 0, 64], [1, 16, 0, 0, 0, 0, 0], [1, 3, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0], [1, 5, 0, 0, 0, 0, 0], [1, 0, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 3], [7, 26, 0, 0, 0, 0, 64], [7, 58, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 1, 1, 0], [7, 67, 0, 0, 1, 13, 0], [7, 51, 0, 0, 1, 13, 0], [7, 62, 0, 0, 1, 13, 0], [7, 52, 0, 0, 1, 1, 48], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 12, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [2, 36, 0, 0, 0, 0, 64], [2, 30, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 55, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 28, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [1, 22, 0, 0, 0, 0, 64], [1, 3, 0, 0, 0, 0, 64], [1, 13, 0, 0, 0, 0, 64], [1, 7, 0, 0, 0, 0, 64], [1, 17, 0, 0, 0, 0, 64], [1, 4, 0, 0, 0, 0, 64]], [[8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 5, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 64], [7, 38, 0, 0, 0, 0, 67], [7, 56, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 1, 10, 0], [7, 51, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 64], [7, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [2, 22, 0, 0, 0, 0, 64], [2, 31, 0, 0, 0, 0, 64], [2, 29, 0, 0, 0, 0, 64], [2, 38, 0, 0, 0, 0, 67], [2, 63, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 39, 0, 0, 3, 14, 66], [2, 36, 0, 0, 0, 0, 65], [8, 7, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [7, 25, 0, 0, 0, 0, 64], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 1, 5, 32], [7, 61, 0, 0, 1, 5, 16], [7, 54, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 26, 0, 0, 0, 0, 64], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 62, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 4, 0], [2, 67, 0, 0, 3, 13, 0], [2, 53, 0, 0, 3, 12, 0], [2, 66, 0, 0, 3, 13, 0], [2, 56, 0, 0, 3, 12, 0], [2, 38, 0, 0, 3, 0, 112], [2, 37, 0, 0, 0, 0, 67], [8, 4, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 4, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 50, 0, 0, 1, 10, 0], [7, 72, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 1, 14, 0], [7, 53, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 68, 0, 0, 1, 1, 0], [7, 51, 0, 0, 1, 15, 16], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 39, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 7, 0, 0, 0, 0, 1], [2, 37, 0, 0, 0, 0, 64], [2, 39, 0, 0, 0, 0, 67], [2, 60, 0, 0, 0, 0, 0], [2, 49, 0, 0, 3, 0, 0], [2, 52, 0, 0, 3, 12, 0], [2, 50, 0, 0, 3, 5, 48], [2, 55, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 17, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0]], [[8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 71, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 1, 3, 32], [7, 59, 0, 0, 1, 4, 16], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 1, 11, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 1, 10, 0], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 38, 0, 0, 0, 0, 66], [7, 36, 0, 0, 0, 0, 65], [8, 6, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 6, 0, 0, 0, 0, 1], [2, 26, 0, 0, 0, 0, 64], [2, 52, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 10, 0], [2, 64, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 1, 2, 32], [7, 56, 0, 0, 1, 13, 0], [7, 57, 0, 0, 1, 9, 32], [7, 50, 0, 0, 1, 13, 0], [7, 49, 0, 0, 1, 2, 16], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 1, 10, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 25, 0, 0, 0, 0, 65], [8, 0, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 3], [2, 47, 0, 0, 0, 0, 65], [2, 11, 0, 0, 0, 0, 2], [2, 12, 0, 0, 0, 0, 1], [2, 51, 0, 0, 3, 11, 0], [2, 69, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0]], [[8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 70, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 52, 0, 0, 1, 4, 32], [7, 54, 0, 0, 1, 13, 0], [7, 62, 0, 0, 1, 12, 0], [7, 64, 0, 0, 1, 0, 48], [7, 50, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 61, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 33, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 64], [7, 20, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 19, 0, 0, 0, 0, 1], [8, 28, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [4, 36, 0, 0, 0, 0, 64], [4, 46, 0, 0, 0, 0, 67], [4, 0, 0, 0, 0, 0, 1], [2, 4, 0, 0, 0, 0, 0], [2, 52, 0, 0, 3, 10, 0], [2, 59, 0, 0, 0, 0, 0], [2, 60, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 24, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 38, 0, 0, 0, 0, 65], [7, 52, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 45, 0, 0, 0, 0, 66], [4, 48, 0, 0, 0, 0, 67], [4, 29, 0, 0, 0, 0, 64], [4, 31, 0, 0, 0, 0, 64], [4, 37, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 2], [8, 16, 0, 0, 0, 0, 3], [4, 36, 0, 0, 0, 0, 64], [4, 28, 0, 0, 0, 0, 64], [4, 30, 0, 0, 0, 0, 64], [4, 38, 0, 0, 0, 0, 67], [4, 18, 0, 0, 0, 0, 0], [4, 17, 0, 0, 0, 0, 3], [2, 6, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 10, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 72, 0, 0, 3, 14, 0], [2, 38, 0, 0, 0, 0, 64], [2, 37, 0, 0, 0, 0, 67], [8, 5, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 54, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 60, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 6, 0, 0, 0, 0, 1], [4, 17, 0, 0, 0, 0, 2], [4, 18, 0, 0, 0, 0, 1], [4, 58, 0, 0, 0, 0, 0], [4, 39, 0, 0, 0, 0, 66], [4, 28, 0, 0, 0, 0, 64], [4, 30, 0, 0, 0, 0, 64], [4, 29, 0, 0, 0, 0, 64], [4, 38, 0, 0, 0, 0, 67], [4, 49, 0, 0, 0, 0, 0], [4, 18, 0, 0, 0, 0, 0], [4, 8, 0, 0, 0, 0, 2], [4, 16, 0, 0, 0, 0, 3], [2, 17, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 50, 0, 0, 3, 1, 32], [2, 55, 0, 0, 3, 12, 0], [2, 56, 0, 0, 3, 9, 0], [2, 55, 0, 0, 3, 12, 0], [2, 56, 0, 0, 3, 0, 48], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 3], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 50, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 70, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 67, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [4, 17, 0, 0, 0, 0, 2], [4, 19, 0, 0, 0, 0, 1], [4, 54, 0, 0, 0, 0, 0], [4, 69, 0, 0, 0, 0, 0], [4, 59, 0, 0, 0, 0, 0], [4, 56, 0, 0, 0, 0, 0], [4, 52, 0, 0, 0, 0, 0], [4, 19, 0, 0, 0, 0, 0], [4, 16, 0, 0, 0, 0, 3], [2, 16, 0, 0, 0, 0, 0], [2, 9, 0, 0, 0, 0, 0], [2, 19, 0, 0, 0, 0, 3], [2, 54, 0, 0, 0, 0, 0], [2, 52, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 10, 0], [2, 52, 0, 0, 0, 0, 0], [2, 39, 0, 0, 0, 0, 64], [2, 36, 0, 0, 0, 0, 67], [8, 7, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 9, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 57, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 57, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 68, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [4, 16, 0, 0, 0, 0, 2], [4, 18, 0, 0, 0, 0, 1], [4, 56, 0, 0, 0, 0, 0], [4, 51, 0, 0, 0, 0, 0], [4, 66, 0, 0, 0, 0, 0], [4, 53, 0, 0, 0, 0, 0], [4, 6, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 0], [2, 18, 0, 0, 0, 0, 3], [2, 71, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 68, 0, 0, 0, 0, 0], [2, 56, 0, 0, 3, 11, 0], [2, 54, 0, 0, 0, 0, 0], [2, 26, 0, 0, 0, 0, 65], [8, 16, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 3], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0]], [[8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 17, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 71, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 54, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 56, 0, 0, 0, 0, 0], [7, 72, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 17, 0, 0, 0, 0, 1], [4, 17, 0, 0, 0, 0, 2], [4, 11, 0, 0, 0, 0, 2], [4, 9, 0, 0, 0, 0, 2], [4, 10, 0, 0, 0, 0, 2], [4, 11, 0, 0, 0, 0, 2], [4, 3, 0, 0, 0, 0, 3], [2, 7, 0, 0, 0, 0, 0], [2, 53, 0, 0, 0, 0, 0], [2, 51, 0, 0, 0, 0, 0], [2, 63, 0, 0, 0, 0, 0], [2, 55, 0, 0, 0, 0, 0], [2, 54, 0, 0, 3, 14, 0], [2, 51, 0, 0, 0, 0, 0], [2, 71, 0, 0, 3, 10, 0], [2, 50, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0]], [[8, 24, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 18, 0, 0, 0, 0, 2], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 17, 0, 0, 0, 0, 1], [7, 37, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 39, 0, 0, 0, 0, 65], [7, 51, 0, 0, 0, 0, 0], [7, 63, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 65, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 59, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 50, 0, 0, 0, 0, 0], [7, 66, 0, 0, 0, 0, 0], [7, 19, 0, 0, 0, 0, 2], [7, 10, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 8, 0, 0, 0, 0, 0], [7, 11, 0, 0, 0, 0, 0], [7, 9, 0, 0, 0, 0, 0], [7, 16, 0, 0, 0, 0, 1], [2, 1, 0, 0, 0, 0, 2], [2, 9, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 63, 0, 0, 0, 0, 0], [2, 71, 0, 0, 0, 0, 0], [2, 50, 0, 0, 3, 0, 32], [2, 71, 0, 0, 3, 12, 0], [2, 53, 0, 0, 3, 1, 48], [2, 50, 0, 0, 0, 0, 0], [2, 25, 0, 0, 0, 0, 65], [8, 4, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 11, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 16, 0, 0, 0, 0, 1], [7, 36, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 31, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 30, 0, 0, 0, 0, 66], [7, 29, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 28, 0, 0, 0, 0, 66], [7, 34, 0, 0, 0, 0, 65], [7, 53, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 58, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 62, 0, 0, 0, 0, 0], [7, 52, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 8, 0, 0, 0, 0, 0], [7, 17, 0, 0, 0, 0, 1], [2, 16, 0, 0, 0, 0, 2], [2, 18, 0, 0, 0, 0, 1], [2, 51, 0, 0, 0, 0, 0], [2, 54, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 64, 0, 0, 0, 0, 0], [2, 67, 0, 0, 0, 0, 0], [2, 27, 0, 0, 0, 0, 65], [8, 17, 0, 0, 0, 0, 2], [8, 18, 0, 0, 0, 0, 1], [8, 27, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0]], [[8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 19, 0, 0, 0, 0, 2], [8, 8, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 9, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 11, 0, 0, 0, 0, 0], [8, 10, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 8, 0, 0, 0, 0, 0], [8, 3, 0, 0, 0, 0, 1], [7, 27, 0, 0, 0, 0, 64], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 69, 0, 0, 0, 0, 0], [7, 51, 0, 0, 0, 0, 0], [7, 71, 0, 0, 0, 0, 0], [7, 49, 0, 0, 0, 0, 0], [7, 53, 0, 0, 0, 0, 0], [7, 64, 0, 0, 0, 0, 0], [7, 55, 0, 0, 0, 0, 0], [7, 18, 0, 0, 0, 0, 2], [7, 16, 0, 0, 0, 0, 1], [2, 7, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 49, 0, 0, 0, 0, 0], [2, 56, 0, 0, 0, 0, 0], [2, 70, 0, 0, 0, 0, 0], [2, 50, 0, 0, 0, 0, 0], [2, 38, 0, 0, 0, 0, 66], [2, 37, 0, 0, 0, 0, 65], [8, 5, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 30, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 29, 0, 0, 0, 0, 0], [8, 22, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 23, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 24, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0], [8, 21, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 25, 0, 0, 0, 0, 0], [8, 27, 0, 0, 0, 0, 0], [8, 31, 0, 0, 0, 0, 0], [8, 26, 0, 0, 0, 0, 0], [8, 28, 0, 0, 0, 0, 0], [8, 32, 0, 0, 0, 0, 0]]], "Red": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "object_count": 619, "underworld": 0, "victory_conditions": 255, "tunedobj_count": 4686, "version": 28, "rumor_count": 0, "map_desc": "Eons ago, three nations were defeated by invaders and driven from their ancestral lands. The victorious nation has since split into several smaller kingdoms. Now, the ancient peoples of the land are returning to seize back their homelands. However, you refuse to let them take back what you own.", "hero_present": 1, "difficulty": 1, "objects": [{"group": 2, "number": 0, "class": 71, "filename": "avwmrnd0.def"}, {"group": 0, "number": 0, "class": 124, "filename": "avlholg0.def"}, {"group": 1, "number": 0, "class": 77, "filename": "avcranx0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr3.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr5.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr7.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr2.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avltr3d0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt03.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr4.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawd0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmordr0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr6.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgogr0.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawg0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorro0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn1.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr3.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr6.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr2.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf10g0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf1.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf4.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro01.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro2.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro1.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro7.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro08.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro3.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro10.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr1.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn5.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf6.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr8.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr01.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr02.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr7.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgn4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw4.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr5.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl8d0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtrf5.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead6.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr8.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr1.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav90.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv210.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav30.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol20.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu09.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo2.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct9l0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct1l0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlc10l0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo5.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh3g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro12.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct1g0.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav20.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro05.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol40.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr07r0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl3d0.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman30.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh9r0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt10.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avltr1d0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro06.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlroug2.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh1d0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr02r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr5.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr4.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca040.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu06.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh1r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr08r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr04r0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc4r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh4d0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc3r0.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro04.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds04.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct1r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls03s0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtdr7.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu07.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead7.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr6.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc2r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw5.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc3d0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh6d0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk5d0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr7.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl2d0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr4.def"}, {"group": 0, "number": 0, "class": 132, "filename": "avlmoss0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro00.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr4.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl7d0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr2.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr06r0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt07.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk3g0.def"}, {"group": 0, "number": 0, "class": 151, "filename": "avlskul0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr09r0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca030.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlbuzr0.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh7d0.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk2s0.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro07.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro06.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro02.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu01.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct2r0.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd1g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt12.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt08.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc3g0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtgr5.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc1g0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw6.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh4g0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt11.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp6.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr8.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk3d0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw05.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw2.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct3g0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsw1.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl4d0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc2d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf07g0.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk1s0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct6r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro5.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk2d0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avlo3sn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr2.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr6.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr4.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr5sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld4sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld7sn0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn1.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr8sn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn5.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn4.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn2.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn7.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn1.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr3.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld8sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld1sn0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn6.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr5.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr7.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn2.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn5.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld2sn0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtsn3.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr1.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr1sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn4.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld5sn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld6sn0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr6sn0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr2sn0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avlo1sn0.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlp2sn0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls08s0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlwlw20.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead5.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk1g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro05.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct2g0.def"}, {"group": 0, "number": 0, "class": 121, "filename": "avlflk10.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld9sn0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk1s0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr0.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd2g0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlswp40.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldt1s0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw03.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr08.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt02.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh1g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr6.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp3.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls09s0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldt3s0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr11r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr3.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref30.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp4.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr12r0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr3.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls04s0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead2.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrd04.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls10s0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh2r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt11.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr7.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu03.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avlswp50.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca060.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk3d0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr7sn0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avlo2sn0.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlpntr0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrd02.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct8r0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlddsn0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avld3sn0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltrro6.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlroug1.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct9r0.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc1r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh2d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf02g0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt15.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc2g0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw10.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr5.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct5g0.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref10.def"}, {"group": 0, "number": 0, "class": 137, "filename": "avlsntr1.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr4sn0.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlp1sn0.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu05.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd3r0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds03.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrd01.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr13r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrr01.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrr05.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr03r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro07.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh6r0.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu10.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca110.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr14r0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct3r0.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlstm1.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd2r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr10r0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr15r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt17.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg11.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt09.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh7r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt19.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct4l0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo3.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo4.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv130.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv100.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv180.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav40.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv240.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv200.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlroug0.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd1r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro01.def"}, {"group": 0, "number": 0, "class": 136, "filename": "avloc1d0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds09.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh8d0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh4r0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro11.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlstm2.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro03.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro04.def"}, {"group": 0, "number": 0, "class": 153, "filename": "avlstm3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr3sn0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca130.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca2r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls05s0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg09.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg08.def"}, {"group": 0, "number": 0, "class": 133, "filename": "avlmd1d0.def"}, {"group": 0, "number": 0, "class": 121, "filename": "avlflk30.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro09.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca010.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds11.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca070.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh3d0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh5r0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct4r0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh6g0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh3r0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh5d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl9d0.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf04g0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp2.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg07.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt01.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt06.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg03.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf06g0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead1.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm40.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlctrr0.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv150.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk3s0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg06.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg05.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm30.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt00.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr10.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlswmp1.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt13.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlstg30.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr01u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlstg20.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm10.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr08u0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlctds0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca1r0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds1.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlsh8r0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct7r0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca090.def"}, {"group": 0, "number": 0, "class": 121, "filename": "avlflk20.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm20.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avltro03.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avltr2d0.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca120.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlf01g0.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr07.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg04.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk4s0.def"}, {"group": 0, "number": 0, "class": 130, "filename": "avldlog.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt08.def"}, {"group": 0, "number": 0, "class": 148, "filename": "avldun20.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls1sn0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls3sn0.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avls2sn0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt02.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlswp60.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr03.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldead0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds5.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr03u0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds4.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds6.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr05u0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtds3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr09u0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds07.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlwlw30.def"}, {"group": 0, "number": 0, "class": 33, "filename": "avcgar10.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol50.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo1.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol30.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv110.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav80.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllav60.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawl0.def"}, {"group": 0, "number": 0, "class": 134, "filename": "avlmtvo6.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgovo0.def"}, {"group": 0, "number": 0, "class": 158, "filename": "avlvol10.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrvo0.def"}, {"group": 0, "number": 3, "class": 53, "filename": "avmsulf0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorlv0.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv190.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv260.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgelv0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalch0.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlc14l0.def"}, {"group": 0, "number": 0, "class": 128, "filename": "avllav10.def"}, {"group": 0, "number": 0, "class": 127, "filename": "avllv120.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlc13l0.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avlswp70.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswt05.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds05.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds06.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds01.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds02.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds10.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlyuc20.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlyuc30.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref20.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref60.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref40.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr02u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr07u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlr06u0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk1w0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgosn0.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmswsn0.def"}, {"group": 0, "number": 7, "class": 220, "filename": "avxamsn.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorsn0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalcs0.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt05.def"}, {"group": 0, "number": 0, "class": 207, "filename": "avlxdt01.def"}, {"group": 0, "number": 3, "class": 53, "filename": "avmsulf0.def"}, {"group": 0, "number": 0, "class": 109, "filename": "avmwwsn0.def"}, {"group": 0, "number": 0, "class": 87, "filename": "avxshyd0.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrsn0.def"}, {"group": 0, "number": 0, "class": 39, "filename": "avmlean0.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgesn0.def"}, {"group": 0, "number": 0, "class": 57, "filename": "avxoblp.def"}, {"group": 0, "number": 0, "class": 221, "filename": "avxpssn.def"}, {"group": 0, "number": 0, "class": 112, "filename": "avmwmsn0.def"}, {"group": 0, "number": 0, "class": 58, "filename": "avxreds0.def"}, {"group": 0, "number": 0, "class": 84, "filename": "avxgysn0.def"}, {"group": 0, "number": 0, "class": 12, "filename": "avxcfsn0.def"}, {"group": 0, "number": 0, "class": 91, "filename": "avxsnsn0.def"}, {"group": 0, "number": 0, "class": 16, "filename": "avxbnk10.def"}, {"group": 0, "number": 0, "class": 53, "filename": "avmsawr0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmore0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgorf0.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrdr0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgodr0.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr06.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr04.def"}, {"group": 0, "number": 3, "class": 53, "filename": "avmsulf0.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman40.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgold0.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrys0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalch0.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgerf0.def"}, {"group": 0, "number": 7, "class": 53, "filename": "avmabmg.def"}, {"group": 0, "number": 0, "class": 150, "filename": "avlswp20.def"}, {"group": 0, "number": 4, "class": 53, "filename": "avmcrrf0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr1.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk2g0.def"}, {"group": 0, "number": 7, "class": 220, "filename": "avxamro.def"}, {"group": 0, "number": 0, "class": 110, "filename": "avxwtrh0.def"}, {"group": 0, "number": 1, "class": 53, "filename": "avmalch0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlwlw10.def"}, {"group": 0, "number": 0, "class": 85, "filename": "avawre20.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrg01.def"}, {"group": 0, "number": 0, "class": 216, "filename": "avrcgen0.def"}, {"group": 0, "number": 0, "class": 105, "filename": "avtwagn0.def"}, {"group": 0, "number": 0, "class": 91, "filename": "avxsndg0.def"}, {"group": 0, "number": 0, "class": 47, "filename": "avsschm0.def"}, {"group": 0, "number": 0, "class": 42, "filename": "avxlths0.def"}, {"group": 0, "number": 0, "class": 106, "filename": "avgsieg0.def"}, {"group": 0, "number": 0, "class": 100, "filename": "avsgzbo0.def"}, {"group": 0, "number": 0, "class": 38, "filename": "avsidol0.def"}, {"group": 0, "number": 0, "class": 4, "filename": "avsarna0.def"}, {"group": 0, "number": 0, "class": 61, "filename": "avsaxis0.def"}, {"group": 0, "number": 0, "class": 113, "filename": "avswtch0.def"}, {"group": 0, "number": 0, "class": 78, "filename": "avgrefg0.def"}, {"group": 0, "number": 0, "class": 51, "filename": "avsmerc0.def"}, {"group": 0, "number": 0, "class": 32, "filename": "avsgrdn0.def"}, {"group": 0, "number": 0, "class": 80, "filename": "avxsanc0.def"}, {"group": 0, "number": 0, "class": 81, "filename": "avxschl0.def"}, {"group": 0, "number": 0, "class": 49, "filename": "avxwlsn0.def"}, {"group": 0, "number": 0, "class": 88, "filename": "avxl1sh0.def"}, {"group": 0, "number": 0, "class": 23, "filename": "avsmarl.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman10.def"}, {"group": 0, "number": 0, "class": 25, "filename": "avsutop0.def"}, {"group": 0, "number": 4, "class": 16, "filename": "avxbnk50.def"}, {"group": 0, "number": 0, "class": 96, "filename": "avstmpl0.def"}, {"group": 0, "number": 0, "class": 94, "filename": "avxstbl0.def"}, {"group": 0, "number": 0, "class": 161, "filename": "avlref50.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk2s0.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro11.def"}, {"group": 0, "number": 0, "class": 116, "filename": "avlca080.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro12.def"}, {"group": 0, "number": 0, "class": 120, "filename": "avlfl6d0.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlautr1.def"}, {"group": 0, "number": 3, "class": 16, "filename": "avxbnk40.def"}, {"group": 0, "number": 0, "class": 7, "filename": "avxmktb0.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr11.def"}, {"group": 0, "number": 0, "class": 131, "filename": "avlman50.def"}, {"group": 0, "number": 0, "class": 58, "filename": "avxredw.def"}, {"group": 2, "number": 0, "class": 72, "filename": "avwmon1.def"}, {"group": 0, "number": 0, "class": 27, "filename": "avxeyem0.def"}, {"group": 0, "number": 0, "class": 37, "filename": "avxhutm0.def"}, {"group": 2, "number": 0, "class": 75, "filename": "avwmon4.def"}, {"group": 0, "number": 0, "class": 97, "filename": "avxdent.def"}, {"group": 0, "number": 6, "class": 16, "filename": "avxbnk70.def"}, {"group": 2, "number": 0, "class": 71, "filename": "avwmrnd0.def"}, {"group": 0, "number": 0, "class": 213, "filename": "avxfgld.def"}, {"group": 0, "number": 0, "class": 49, "filename": "avxwelr0.def"}, {"group": 0, "number": 0, "class": 95, "filename": "avxtvrn0.def"}, {"group": 0, "number": 0, "class": 89, "filename": "avxl2sh0.def"}, {"group": 0, "number": 0, "class": 2, "filename": "avxaltar.def"}, {"group": 0, "number": 1, "class": 16, "filename": "avxbnk20.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro10.def"}, {"group": 0, "number": 0, "class": 90, "filename": "avxl3sh0.def"}, {"group": 0, "number": 0, "class": 107, "filename": "avswar20.def"}, {"group": 0, "number": 0, "class": 210, "filename": "avlxsu11.def"}, {"group": 0, "number": 0, "class": 209, "filename": "avlxro08.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr2.def"}, {"group": 0, "number": 0, "class": 135, "filename": "avlsptr1.def"}, {"group": 0, "number": 0, "class": 97, "filename": "avxdend0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw07.def"}, {"group": 0, "number": 2, "class": 83, "filename": "avxseeb0.def"}, {"group": 0, "number": 0, "class": 57, "filename": "avxobly.def"}, {"group": 0, "number": 0, "class": 12, "filename": "avxcflv0.def"}, {"group": 0, "number": 0, "class": 102, "filename": "avxtrek0.def"}, {"group": 0, "number": 0, "class": 30, "filename": "avsfntn0.def"}, {"group": 0, "number": 0, "class": 31, "filename": "avxfyth0.def"}, {"group": 0, "number": 0, "class": 84, "filename": "avxgyne0.def"}, {"group": 0, "number": 0, "class": 14, "filename": "avsclvg0.def"}, {"group": 0, "number": 0, "class": 55, "filename": "avtmyst0.def"}, {"group": 0, "number": 0, "class": 49, "filename": "avxwelg0.def"}, {"group": 0, "number": 0, "class": 57, "filename": "avxoblb.def"}, {"group": 0, "number": 2, "class": 44, "filename": "avxmx1y0.def"}, {"group": 0, "number": 2, "class": 10, "filename": "avxkey20.def"}, {"group": 0, "number": 5, "class": 53, "filename": "avmgedr0.def"}, {"group": 0, "number": 0, "class": 35, "filename": "avxhilg0.def"}, {"group": 2, "number": 0, "class": 162, "filename": "avwmon5.def"}, {"group": 0, "number": 7, "class": 212, "filename": "avxbgt70.def"}, {"group": 0, "number": 7, "class": 10, "filename": "avxkey70.def"}, {"group": 0, "number": 0, "class": 12, "filename": "adcfra.def"}, {"group": 0, "number": 0, "class": 119, "filename": "avldt2s0.def"}, {"group": 5, "number": 0, "class": 76, "filename": "avtrndm0.def"}, {"group": 5, "number": 0, "class": 101, "filename": "avtchst0.def"}, {"group": 0, "number": 2, "class": 212, "filename": "avxbgt20.def"}, {"group": 4, "number": 12, "class": 5, "filename": "ava0012.def"}, {"group": 4, "number": 18, "class": 5, "filename": "ava0018.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk4w0.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk3w0.def"}, {"group": 0, "number": 0, "class": 155, "filename": "avlplm50.def"}, {"group": 0, "number": 0, "class": 62, "filename": "avxprsn0.def"}, {"group": 0, "number": 0, "class": 24, "filename": "avadlic0.def"}, {"group": 0, "number": 2, "class": 53, "filename": "avmorsw0.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr0.def"}, {"group": 2, "number": 0, "class": 73, "filename": "avwmon2.def"}, {"group": 0, "number": 0, "class": 143, "filename": "clrdelt1.def"}, {"group": 0, "number": 0, "class": 143, "filename": "clrdelt2.def"}, {"group": 0, "number": 0, "class": 219, "filename": "avcvgr.def"}, {"group": 0, "number": 6, "class": 217, "filename": "avrcgen7.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr05.def"}, {"group": 0, "number": 2, "class": 9, "filename": "avxbor20.def"}, {"group": 0, "number": 2, "class": 43, "filename": "avxmn1y0.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw08.def"}, {"group": 4, "number": 0, "class": 66, "filename": "avarnd1.def"}, {"group": 4, "number": 0, "class": 69, "filename": "avarnd4.def"}, {"group": 2, "number": 0, "class": 74, "filename": "avwmon3.def"}, {"group": 2, "number": 0, "class": 164, "filename": "avwmon7.def"}, {"group": 0, "number": 0, "class": 64, "filename": "avxrlly0.def"}, {"group": 4, "number": 0, "class": 65, "filename": "avarand.def"}, {"group": 4, "number": 0, "class": 67, "filename": "avarnd2.def"}, {"group": 4, "number": 0, "class": 68, "filename": "avarnd3.def"}, {"group": 0, "number": 0, "class": 147, "filename": "avlrk2w0.def"}, {"group": 3, "number": 0, "class": 70, "filename": "ahrandom.def"}, {"group": 0, "number": 0, "class": 125, "filename": "avlklp20.def"}, {"group": 0, "number": 1, "class": 212, "filename": "avxbgt10.def"}, {"group": 0, "number": 0, "class": 215, "filename": "avxbor80.def"}, {"group": 0, "number": 0, "class": 208, "filename": "avlxgr09.def"}, {"group": 0, "number": 2, "class": 45, "filename": "avxmn2p0.def"}, {"group": 0, "number": 0, "class": 206, "filename": "avlxds08.def"}, {"group": 0, "number": 1, "class": 10, "filename": "avxkey10.def"}, {"group": 0, "number": 0, "class": 108, "filename": "avxtomb0.def"}, {"group": 5, "number": 2, "class": 79, "filename": "avtore0.def"}, {"group": 5, "number": 0, "class": 79, "filename": "avtwood0.def"}, {"group": 5, "number": 1, "class": 79, "filename": "avtmerc0.def"}, {"group": 2, "number": 0, "class": 163, "filename": "avwmon6.def"}, {"group": 0, "number": 5, "class": 16, "filename": "avxbnk60.def"}, {"group": 0, "number": 0, "class": 118, "filename": "avlct4g0.def"}, {"group": 0, "number": 0, "class": 126, "filename": "avllk3s0.def"}, {"group": 5, "number": 4, "class": 79, "filename": "avtcrys0.def"}, {"group": 2, "number": 115, "class": 54, "filename": "avwelmw0.def"}, {"group": 5, "number": 6, "class": 79, "filename": "avtgold0.def"}, {"group": 5, "number": 3, "class": 79, "filename": "avtsulf0.def"}, {"group": 0, "number": 6, "class": 53, "filename": "avmgosw0.def"}, {"group": 0, "number": 0, "class": 111, "filename": "avxwhrl0.def"}, {"group": 0, "number": 0, "class": 13, "filename": "avxmapw0.def"}, {"group": 2, "number": 123, "class": 54, "filename": "avwicee.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr9.def"}, {"group": 0, "number": 0, "class": 199, "filename": "avlswtr4.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw01.def"}, {"group": 0, "number": 0, "class": 211, "filename": "avlxsw06.def"}, {"group": 0, "number": 0, "class": 85, "filename": "avawrek0.def"}, {"group": 0, "number": 0, "class": 29, "filename": "avaflot0.def"}, {"group": 0, "number": 0, "class": 86, "filename": "avasurv0.def"}, {"group": 0, "number": 0, "class": 82, "filename": "avxccht0.def"}, {"group": 0, "number": 1, "class": 13, "filename": "avxmaps0.def"}, {"group": 0, "number": 0, "class": 222, "filename": "avxcf2.def"}, {"group": 0, "number": 0, "class": 222, "filename": "avxcf1.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef2.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef3.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef5.def"}, {"group": 0, "number": 0, "class": 224, "filename": "avxef6.def"}, {"group": 0, "number": 0, "class": 227, "filename": "avxhg2.def"}, {"group": 0, "number": 0, "class": 226, "filename": "avxff1.def"}, {"group": 0, "number": 0, "class": 226, "filename": "avxff0.def"}, {"group": 0, "number": 6, "class": 45, "filename": "avxmn7b0.def"}, {"group": 0, "number": 7, "class": 45, "filename": "avxmn8b0.def"}, {"group": 0, "number": 0, "class": 223, "filename": "avxcg2.def"}, {"group": 0, "number": 0, "class": 228, "filename": "avxlp2.def"}, {"group": 0, "number": 0, "class": 228, "filename": "avxlp0.def"}, {"group": 0, "number": 0, "class": 223, "filename": "avxcg1.def"}, {"group": 0, "number": 0, "class": 226, "filename": "avxff5.def"}, {"group": 2, "number": 114, "class": 54, "filename": "avwelmf0.def"}, {"group": 0, "number": 0, "class": 222, "filename": "avxcf5.def"}], "Green": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "Teal": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}, "level_limit": 0, "tunedobj": [{"y": 38, "x": 16, "z": 0, "id": 2}, {"y": 57, "x": 10, "z": 0, "id": 2}, {"y": 62, "x": 49, "z": 0, "id": 2}, {"y": 47, "x": 136, "z": 0, "id": 2}, {"y": 104, "x": 116, "z": 0, "id": 2}, {"y": 63, "x": 95, "z": 0, "id": 2}, {"y": 20, "x": 49, "z": 0, "id": 2}, {"y": 38, "x": 128, "z": 0, "id": 2}, {"y": 136, "x": 105, "z": 0, "id": 2}, {"y": 18, "x": 23, "z": 0, "id": 2}, {"y": 6, "x": 140, "z": 0, "id": 2}, {"y": 76, "x": 12, "z": 0, "id": 3}, {"y": 75, "x": 14, "z": 0, "id": 4}, {"y": 76, "x": 15, "z": 0, "id": 5}, {"y": 76, "x": 10, "z": 0, "id": 6}, {"y": 76, "x": 10, "z": 0, "id": 7}, {"y": 77, "x": 14, "z": 0, "id": 8}, {"y": 76, "x": 9, "z": 0, "id": 9}, {"y": 74, "x": 13, "z": 0, "id": 10}, {"y": 72, "x": 11, "z": 0, "id": 11}, {"y": 71, "x": 13, "z": 0, "id": 12}, {"y": 70, "x": 9, "z": 0, "id": 13}, {"y": 76, "x": 21, "z": 0, "id": 14}, {"y": 84, "x": 20, "z": 0, "id": 15}, {"y": 55, "x": 6, "z": 0, "id": 13}, {"y": 71, "x": 12, "z": 0, "id": 16}, {"y": 71, "x": 14, "z": 0, "id": 17}, {"y": 52, "x": 16, "z": 0, "id": 18}, {"y": 31, "x": 13, "z": 0, "id": 19}, {"y": 55, "x": 49, "z": 0, "id": 10}, {"y": 55, "x": 53, "z": 0, "id": 20}, {"y": 57, "x": 44, "z": 0, "id": 21}, {"y": 55, "x": 53, "z": 0, "id": 6}, {"y": 54, "x": 50, "z": 0, "id": 16}, {"y": 56, "x": 46, "z": 0, "id": 22}, {"y": 55, "x": 54, "z": 0, "id": 23}, {"y": 55, "x": 49, "z": 0, "id": 24}, {"y": 52, "x": 53, "z": 0, "id": 13}, {"y": 51, "x": 57, "z": 0, "id": 11}, {"y": 57, "x": 46, "z": 0, "id": 25}, {"y": 57, "x": 47, "z": 0, "id": 11}, {"y": 59, "x": 44, "z": 0, "id": 26}, {"y": 60, "x": 42, "z": 0, "id": 25}, {"y": 63, "x": 35, "z": 0, "id": 27}, {"y": 62, "x": 38, "z": 0, "id": 28}, {"y": 60, "x": 41, "z": 0, "id": 29}, {"y": 61, "x": 39, "z": 0, "id": 30}, {"y": 62, "x": 36, "z": 0, "id": 31}, {"y": 57, "x": 41, "z": 0, "id": 30}, {"y": 58, "x": 40, "z": 0, "id": 32}, {"y": 56, "x": 42, "z": 0, "id": 33}, {"y": 55, "x": 42, "z": 0, "id": 34}, {"y": 60, "x": 43, "z": 0, "id": 35}, {"y": 58, "x": 44, "z": 0, "id": 36}, {"y": 63, "x": 34, "z": 0, "id": 37}, {"y": 54, "x": 49, "z": 0, "id": 30}, {"y": 53, "x": 51, "z": 0, "id": 23}, {"y": 51, "x": 53, "z": 0, "id": 20}, {"y": 47, "x": 48, "z": 0, "id": 10}, {"y": 45, "x": 52, "z": 0, "id": 38}, {"y": 46, "x": 47, "z": 0, "id": 39}, {"y": 45, "x": 46, "z": 0, "id": 40}, {"y": 43, "x": 49, "z": 0, "id": 20}, {"y": 44, "x": 44, "z": 0, "id": 13}, {"y": 43, "x": 43, "z": 0, "id": 10}, {"y": 41, "x": 50, "z": 0, "id": 38}, {"y": 39, "x": 46, "z": 0, "id": 10}, {"y": 38, "x": 48, "z": 0, "id": 41}, {"y": 36, "x": 43, "z": 0, "id": 38}, {"y": 33, "x": 42, "z": 0, "id": 10}, {"y": 32, "x": 43, "z": 0, "id": 11}, {"y": 29, "x": 43, "z": 0, "id": 20}, {"y": 36, "x": 49, "z": 0, "id": 38}, {"y": 34, "x": 49, "z": 0, "id": 11}, {"y": 32, "x": 48, "z": 0, "id": 20}, {"y": 33, "x": 46, "z": 0, "id": 27}, {"y": 41, "x": 45, "z": 0, "id": 28}, {"y": 49, "x": 53, "z": 0, "id": 42}, {"y": 37, "x": 45, "z": 0, "id": 27}, {"y": 35, "x": 45, "z": 0, "id": 41}, {"y": 34, "x": 45, "z": 0, "id": 20}, {"y": 40, "x": 44, "z": 0, "id": 10}, {"y": 36, "x": 45, "z": 0, "id": 6}, {"y": 38, "x": 44, "z": 0, "id": 16}, {"y": 43, "x": 46, "z": 0, "id": 6}, {"y": 46, "x": 49, "z": 0, "id": 6}, {"y": 45, "x": 48, "z": 0, "id": 43}, {"y": 43, "x": 46, "z": 0, "id": 44}, {"y": 49, "x": 52, "z": 0, "id": 45}, {"y": 49, "x": 51, "z": 0, "id": 44}, {"y": 48, "x": 53, "z": 0, "id": 45}, {"y": 51, "x": 53, "z": 0, "id": 43}, {"y": 42, "x": 45, "z": 0, "id": 46}, {"y": 40, "x": 47, "z": 0, "id": 46}, {"y": 35, "x": 43, "z": 0, "id": 46}, {"y": 34, "x": 47, "z": 0, "id": 22}, {"y": 30, "x": 42, "z": 0, "id": 47}, {"y": 31, "x": 46, "z": 0, "id": 23}, {"y": 62, "x": 42, "z": 0, "id": 48}, {"y": 64, "x": 43, "z": 0, "id": 48}, {"y": 66, "x": 45, "z": 0, "id": 20}, {"y": 68, "x": 47, "z": 0, "id": 49}, {"y": 71, "x": 48, "z": 0, "id": 16}, {"y": 73, "x": 49, "z": 0, "id": 43}, {"y": 73, "x": 51, "z": 0, "id": 46}, {"y": 73, "x": 52, "z": 0, "id": 50}, {"y": 70, "x": 47, "z": 0, "id": 16}, {"y": 69, "x": 46, "z": 0, "id": 51}, {"y": 67, "x": 46, "z": 0, "id": 13}, {"y": 68, "x": 44, "z": 0, "id": 39}, {"y": 63, "x": 42, "z": 0, "id": 52}, {"y": 64, "x": 41, "z": 0, "id": 39}, {"y": 60, "x": 58, "z": 0, "id": 21}, {"y": 62, "x": 60, "z": 0, "id": 53}, {"y": 65, "x": 62, "z": 0, "id": 3}, {"y": 67, "x": 63, "z": 0, "id": 26}, {"y": 69, "x": 61, "z": 0, "id": 25}, {"y": 70, "x": 59, "z": 0, "id": 28}, {"y": 70, "x": 56, "z": 0, "id": 20}, {"y": 70, "x": 54, "z": 0, "id": 54}, {"y": 70, "x": 57, "z": 0, "id": 11}, {"y": 67, "x": 59, "z": 0, "id": 55}, {"y": 68, "x": 56, "z": 0, "id": 11}, {"y": 63, "x": 62, "z": 0, "id": 3}, {"y": 61, "x": 61, "z": 0, "id": 56}, {"y": 61, "x": 58, "z": 0, "id": 40}, {"y": 96, "x": 38, "z": 0, "id": 25}, {"y": 97, "x": 40, "z": 0, "id": 57}, {"y": 97, "x": 41, "z": 0, "id": 58}, {"y": 98, "x": 42, "z": 0, "id": 42}, {"y": 97, "x": 45, "z": 0, "id": 59}, {"y": 99, "x": 46, "z": 0, "id": 26}, {"y": 100, "x": 49, "z": 0, "id": 26}, {"y": 101, "x": 50, "z": 0, "id": 60}, {"y": 102, "x": 51, "z": 0, "id": 42}, {"y": 96, "x": 43, "z": 0, "id": 28}, {"y": 94, "x": 40, "z": 0, "id": 61}, {"y": 97, "x": 42, "z": 0, "id": 26}, {"y": 94, "x": 38, "z": 0, "id": 27}, {"y": 95, "x": 35, "z": 0, "id": 25}, {"y": 104, "x": 57, "z": 0, "id": 62}, {"y": 104, "x": 59, "z": 0, "id": 63}, {"y": 104, "x": 62, "z": 0, "id": 28}, {"y": 105, "x": 63, "z": 0, "id": 64}, {"y": 106, "x": 65, "z": 0, "id": 65}, {"y": 107, "x": 67, "z": 0, "id": 66}, {"y": 111, "x": 73, "z": 0, "id": 67}, {"y": 112, "x": 74, "z": 0, "id": 68}, {"y": 114, "x": 76, "z": 0, "id": 25}, {"y": 114, "x": 76, "z": 0, "id": 28}, {"y": 112, "x": 73, "z": 0, "id": 27}, {"y": 113, "x": 75, "z": 0, "id": 26}, {"y": 111, "x": 70, "z": 0, "id": 27}, {"y": 110, "x": 72, "z": 0, "id": 69}, {"y": 111, "x": 70, "z": 0, "id": 26}, {"y": 108, "x": 68, "z": 0, "id": 27}, {"y": 109, "x": 67, "z": 0, "id": 28}, {"y": 108, "x": 66, "z": 0, "id": 70}, {"y": 108, "x": 67, "z": 0, "id": 26}, {"y": 106, "x": 66, "z": 0, "id": 26}, {"y": 103, "x": 63, "z": 0, "id": 26}, {"y": 105, "x": 61, "z": 0, "id": 25}, {"y": 104, "x": 58, "z": 0, "id": 42}, {"y": 92, "x": 19, "z": 0, "id": 71}, {"y": 93, "x": 21, "z": 0, "id": 42}, {"y": 94, "x": 24, "z": 0, "id": 28}, {"y": 95, "x": 30, "z": 0, "id": 28}, {"y": 95, "x": 32, "z": 0, "id": 25}, {"y": 93, "x": 30, "z": 0, "id": 72}, {"y": 94, "x": 25, "z": 0, "id": 27}, {"y": 93, "x": 22, "z": 0, "id": 25}, {"y": 36, "x": 51, "z": 0, "id": 38}, {"y": 38, "x": 53, "z": 0, "id": 10}, {"y": 40, "x": 54, "z": 0, "id": 46}, {"y": 46, "x": 59, "z": 0, "id": 56}, {"y": 50, "x": 59, "z": 0, "id": 6}, {"y": 52, "x": 59, "z": 0, "id": 16}, {"y": 54, "x": 60, "z": 0, "id": 35}, {"y": 55, "x": 60, "z": 0, "id": 73}, {"y": 56, "x": 59, "z": 0, "id": 27}, {"y": 53, "x": 58, "z": 0, "id": 74}, {"y": 51, "x": 59, "z": 0, "id": 7}, {"y": 40, "x": 55, "z": 0, "id": 38}, {"y": 38, "x": 51, "z": 0, "id": 26}, {"y": 40, "x": 51, "z": 0, "id": 75}, {"y": 43, "x": 56, "z": 0, "id": 26}, {"y": 44, "x": 55, "z": 0, "id": 27}, {"y": 46, "x": 55, "z": 0, "id": 27}, {"y": 47, "x": 58, "z": 0, "id": 25}, {"y": 48, "x": 58, "z": 0, "id": 76}, {"y": 48, "x": 58, "z": 0, "id": 26}, {"y": 48, "x": 56, "z": 0, "id": 77}, {"y": 44, "x": 54, "z": 0, "id": 78}, {"y": 43, "x": 57, "z": 0, "id": 26}, {"y": 43, "x": 52, "z": 0, "id": 79}, {"y": 42, "x": 51, "z": 0, "id": 80}, {"y": 42, "x": 53, "z": 0, "id": 31}, {"y": 66, "x": 40, "z": 0, "id": 81}, {"y": 67, "x": 43, "z": 0, "id": 82}, {"y": 69, "x": 42, "z": 0, "id": 41}, {"y": 71, "x": 40, "z": 0, "id": 83}, {"y": 72, "x": 38, "z": 0, "id": 84}, {"y": 74, "x": 37, "z": 0, "id": 56}, {"y": 76, "x": 38, "z": 0, "id": 85}, {"y": 79, "x": 41, "z": 0, "id": 56}, {"y": 81, "x": 42, "z": 0, "id": 4}, {"y": 83, "x": 44, "z": 0, "id": 4}, {"y": 85, "x": 48, "z": 0, "id": 56}, {"y": 86, "x": 48, "z": 0, "id": 86}, {"y": 87, "x": 47, "z": 0, "id": 87}, {"y": 88, "x": 48, "z": 0, "id": 83}, {"y": 89, "x": 48, "z": 0, "id": 27}, {"y": 90, "x": 48, "z": 0, "id": 88}, {"y": 91, "x": 48, "z": 0, "id": 56}, {"y": 91, "x": 47, "z": 0, "id": 56}, {"y": 91, "x": 44, "z": 0, "id": 89}, {"y": 88, "x": 44, "z": 0, "id": 90}, {"y": 87, "x": 45, "z": 0, "id": 91}, {"y": 88, "x": 46, "z": 0, "id": 83}, {"y": 88, "x": 47, "z": 0, "id": 84}, {"y": 87, "x": 48, "z": 0, "id": 3}, {"y": 87, "x": 45, "z": 0, "id": 27}, {"y": 86, "x": 45, "z": 0, "id": 85}, {"y": 82, "x": 48, "z": 0, "id": 28}, {"y": 81, "x": 46, "z": 0, "id": 26}, {"y": 81, "x": 43, "z": 0, "id": 4}, {"y": 81, "x": 42, "z": 0, "id": 28}, {"y": 81, "x": 40, "z": 0, "id": 92}, {"y": 78, "x": 43, "z": 0, "id": 90}, {"y": 81, "x": 43, "z": 0, "id": 3}, {"y": 81, "x": 40, "z": 0, "id": 27}, {"y": 78, "x": 37, "z": 0, "id": 47}, {"y": 77, "x": 41, "z": 0, "id": 93}, {"y": 77, "x": 38, "z": 0, "id": 3}, {"y": 76, "x": 35, "z": 0, "id": 4}, {"y": 74, "x": 35, "z": 0, "id": 37}, {"y": 75, "x": 35, "z": 0, "id": 4}, {"y": 71, "x": 34, "z": 0, "id": 94}, {"y": 71, "x": 39, "z": 0, "id": 41}, {"y": 70, "x": 37, "z": 0, "id": 39}, {"y": 71, "x": 40, "z": 0, "id": 41}, {"y": 69, "x": 43, "z": 0, "id": 39}, {"y": 70, "x": 41, "z": 0, "id": 41}, {"y": 70, "x": 40, "z": 0, "id": 38}, {"y": 68, "x": 42, "z": 0, "id": 11}, {"y": 56, "x": 67, "z": 0, "id": 95}, {"y": 57, "x": 69, "z": 0, "id": 29}, {"y": 59, "x": 70, "z": 0, "id": 42}, {"y": 60, "x": 72, "z": 0, "id": 26}, {"y": 61, "x": 73, "z": 0, "id": 96}, {"y": 64, "x": 75, "z": 0, "id": 56}, {"y": 66, "x": 75, "z": 0, "id": 4}, {"y": 71, "x": 74, "z": 0, "id": 26}, {"y": 77, "x": 72, "z": 0, "id": 26}, {"y": 78, "x": 69, "z": 0, "id": 55}, {"y": 79, "x": 66, "z": 0, "id": 56}, {"y": 81, "x": 66, "z": 0, "id": 97}, {"y": 83, "x": 64, "z": 0, "id": 98}, {"y": 84, "x": 55, "z": 0, "id": 49}, {"y": 84, "x": 53, "z": 0, "id": 27}, {"y": 83, "x": 51, "z": 0, "id": 99}, {"y": 84, "x": 51, "z": 0, "id": 3}, {"y": 82, "x": 53, "z": 0, "id": 25}, {"y": 80, "x": 56, "z": 0, "id": 48}, {"y": 81, "x": 58, "z": 0, "id": 100}, {"y": 81, "x": 59, "z": 0, "id": 16}, {"y": 83, "x": 61, "z": 0, "id": 3}, {"y": 81, "x": 58, "z": 0, "id": 101}, {"y": 82, "x": 51, "z": 0, "id": 25}, {"y": 83, "x": 58, "z": 0, "id": 53}, {"y": 83, "x": 55, "z": 0, "id": 25}, {"y": 83, "x": 60, "z": 0, "id": 25}, {"y": 84, "x": 57, "z": 0, "id": 26}, {"y": 85, "x": 59, "z": 0, "id": 25}, {"y": 83, "x": 61, "z": 0, "id": 26}, {"y": 85, "x": 62, "z": 0, "id": 3}, {"y": 83, "x": 62, "z": 0, "id": 55}, {"y": 82, "x": 66, "z": 0, "id": 3}, {"y": 81, "x": 63, "z": 0, "id": 56}, {"y": 78, "x": 65, "z": 0, "id": 25}, {"y": 76, "x": 66, "z": 0, "id": 3}, {"y": 79, "x": 64, "z": 0, "id": 84}, {"y": 77, "x": 69, "z": 0, "id": 3}, {"y": 74, "x": 70, "z": 0, "id": 101}, {"y": 76, "x": 70, "z": 0, "id": 26}, {"y": 71, "x": 73, "z": 0, "id": 3}, {"y": 68, "x": 72, "z": 0, "id": 4}, {"y": 70, "x": 74, "z": 0, "id": 25}, {"y": 67, "x": 74, "z": 0, "id": 27}, {"y": 68, "x": 75, "z": 0, "id": 56}, {"y": 65, "x": 74, "z": 0, "id": 56}, {"y": 65, "x": 74, "z": 0, "id": 3}, {"y": 63, "x": 72, "z": 0, "id": 56}, {"y": 61, "x": 74, "z": 0, "id": 102}, {"y": 60, "x": 74, "z": 0, "id": 101}, {"y": 60, "x": 73, "z": 0, "id": 3}, {"y": 60, "x": 68, "z": 0, "id": 27}, {"y": 58, "x": 71, "z": 0, "id": 25}, {"y": 42, "x": 11, "z": 0, "id": 21}, {"y": 43, "x": 12, "z": 0, "id": 103}, {"y": 43, "x": 14, "z": 0, "id": 26}, {"y": 43, "x": 16, "z": 0, "id": 27}, {"y": 43, "x": 18, "z": 0, "id": 25}, {"y": 44, "x": 19, "z": 0, "id": 27}, {"y": 45, "x": 22, "z": 0, "id": 30}, {"y": 44, "x": 23, "z": 0, "id": 101}, {"y": 44, "x": 14, "z": 0, "id": 104}, {"y": 49, "x": 20, "z": 0, "id": 105}, {"y": 50, "x": 20, "z": 0, "id": 88}, {"y": 51, "x": 21, "z": 0, "id": 53}, {"y": 53, "x": 23, "z": 0, "id": 84}, {"y": 55, "x": 25, "z": 0, "id": 56}, {"y": 55, "x": 30, "z": 0, "id": 25}, {"y": 53, "x": 33, "z": 0, "id": 42}, {"y": 53, "x": 35, "z": 0, "id": 16}, {"y": 52, "x": 36, "z": 0, "id": 6}, {"y": 38, "x": 41, "z": 0, "id": 30}, {"y": 40, "x": 43, "z": 0, "id": 106}, {"y": 42, "x": 41, "z": 0, "id": 25}, {"y": 43, "x": 36, "z": 0, "id": 107}, {"y": 45, "x": 36, "z": 0, "id": 3}, {"y": 45, "x": 33, "z": 0, "id": 108}, {"y": 45, "x": 31, "z": 0, "id": 12}, {"y": 43, "x": 35, "z": 0, "id": 3}, {"y": 42, "x": 37, "z": 0, "id": 3}, {"y": 42, "x": 36, "z": 0, "id": 3}, {"y": 40, "x": 38, "z": 0, "id": 56}, {"y": 43, "x": 30, "z": 0, "id": 109}, {"y": 44, "x": 31, "z": 0, "id": 110}, {"y": 41, "x": 35, "z": 0, "id": 55}, {"y": 42, "x": 39, "z": 0, "id": 25}, {"y": 39, "x": 41, "z": 0, "id": 42}, {"y": 38, "x": 43, "z": 0, "id": 10}, {"y": 40, "x": 42, "z": 0, "id": 26}, {"y": 67, "x": 18, "z": 0, "id": 111}, {"y": 70, "x": 20, "z": 0, "id": 46}, {"y": 72, "x": 23, "z": 0, "id": 5}, {"y": 73, "x": 23, "z": 0, "id": 36}, {"y": 75, "x": 23, "z": 0, "id": 22}, {"y": 73, "x": 22, "z": 0, "id": 12}, {"y": 74, "x": 15, "z": 0, "id": 51}, {"y": 73, "x": 17, "z": 0, "id": 46}, {"y": 73, "x": 19, "z": 0, "id": 112}, {"y": 72, "x": 22, "z": 0, "id": 46}, {"y": 72, "x": 19, "z": 0, "id": 51}, {"y": 71, "x": 21, "z": 0, "id": 26}, {"y": 68, "x": 18, "z": 0, "id": 113}, {"y": 69, "x": 20, "z": 0, "id": 22}, {"y": 64, "x": 17, "z": 0, "id": 30}, {"y": 65, "x": 16, "z": 0, "id": 114}, {"y": 66, "x": 16, "z": 0, "id": 115}, {"y": 67, "x": 15, "z": 0, "id": 112}, {"y": 66, "x": 14, "z": 0, "id": 23}, {"y": 64, "x": 16, "z": 0, "id": 116}, {"y": 64, "x": 14, "z": 0, "id": 117}, {"y": 59, "x": 7, "z": 0, "id": 118}, {"y": 60, "x": 8, "z": 0, "id": 119}, {"y": 61, "x": 9, "z": 0, "id": 101}, {"y": 63, "x": 11, "z": 0, "id": 16}, {"y": 65, "x": 11, "z": 0, "id": 27}, {"y": 63, "x": 10, "z": 0, "id": 120}, {"y": 63, "x": 9, "z": 0, "id": 6}, {"y": 60, "x": 23, "z": 0, "id": 98}, {"y": 61, "x": 24, "z": 0, "id": 121}, {"y": 61, "x": 27, "z": 0, "id": 42}, {"y": 63, "x": 31, "z": 0, "id": 101}, {"y": 64, "x": 31, "z": 0, "id": 122}, {"y": 65, "x": 31, "z": 0, "id": 85}, {"y": 70, "x": 26, "z": 0, "id": 123}, {"y": 70, "x": 28, "z": 0, "id": 4}, {"y": 63, "x": 29, "z": 0, "id": 124}, {"y": 63, "x": 30, "z": 0, "id": 28}, {"y": 62, "x": 29, "z": 0, "id": 26}, {"y": 61, "x": 24, "z": 0, "id": 105}, {"y": 61, "x": 22, "z": 0, "id": 95}, {"y": 79, "x": 26, "z": 0, "id": 33}, {"y": 80, "x": 28, "z": 0, "id": 6}, {"y": 82, "x": 30, "z": 0, "id": 125}, {"y": 87, "x": 32, "z": 0, "id": 3}, {"y": 88, "x": 27, "z": 0, "id": 126}, {"y": 90, "x": 26, "z": 0, "id": 3}, {"y": 91, "x": 26, "z": 0, "id": 127}, {"y": 93, "x": 26, "z": 0, "id": 26}, {"y": 89, "x": 24, "z": 0, "id": 27}, {"y": 87, "x": 25, "z": 0, "id": 42}, {"y": 87, "x": 26, "z": 0, "id": 3}, {"y": 85, "x": 29, "z": 0, "id": 3}, {"y": 83, "x": 29, "z": 0, "id": 84}, {"y": 82, "x": 27, "z": 0, "id": 43}, {"y": 85, "x": 27, "z": 0, "id": 101}, {"y": 87, "x": 29, "z": 0, "id": 55}, {"y": 86, "x": 30, "z": 0, "id": 101}, {"y": 83, "x": 39, "z": 0, "id": 3}, {"y": 81, "x": 38, "z": 0, "id": 84}, {"y": 80, "x": 36, "z": 0, "id": 4}, {"y": 80, "x": 33, "z": 0, "id": 128}, {"y": 80, "x": 33, "z": 0, "id": 56}, {"y": 81, "x": 37, "z": 0, "id": 3}, {"y": 80, "x": 39, "z": 0, "id": 3}, {"y": 82, "x": 32, "z": 0, "id": 42}, {"y": 82, "x": 34, "z": 0, "id": 101}, {"y": 85, "x": 30, "z": 0, "id": 91}, {"y": 84, "x": 34, "z": 0, "id": 3}, {"y": 80, "x": 34, "z": 0, "id": 55}, {"y": 82, "x": 29, "z": 0, "id": 55}, {"y": 80, "x": 29, "z": 0, "id": 101}, {"y": 85, "x": 34, "z": 0, "id": 55}, {"y": 87, "x": 36, "z": 0, "id": 3}, {"y": 90, "x": 39, "z": 0, "id": 26}, {"y": 90, "x": 37, "z": 0, "id": 129}, {"y": 91, "x": 36, "z": 0, "id": 130}, {"y": 88, "x": 38, "z": 0, "id": 28}, {"y": 86, "x": 38, "z": 0, "id": 68}, {"y": 88, "x": 35, "z": 0, "id": 28}, {"y": 88, "x": 35, "z": 0, "id": 25}, {"y": 87, "x": 37, "z": 0, "id": 56}, {"y": 37, "x": 61, "z": 0, "id": 35}, {"y": 44, "x": 71, "z": 0, "id": 26}, {"y": 45, "x": 74, "z": 0, "id": 85}, {"y": 47, "x": 75, "z": 0, "id": 4}, {"y": 48, "x": 76, "z": 0, "id": 92}, {"y": 49, "x": 77, "z": 0, "id": 131}, {"y": 51, "x": 77, "z": 0, "id": 56}, {"y": 47, "x": 77, "z": 0, "id": 56}, {"y": 49, "x": 78, "z": 0, "id": 3}, {"y": 49, "x": 73, "z": 0, "id": 56}, {"y": 48, "x": 75, "z": 0, "id": 3}, {"y": 46, "x": 72, "z": 0, "id": 91}, {"y": 46, "x": 71, "z": 0, "id": 4}, {"y": 45, "x": 71, "z": 0, "id": 55}, {"y": 45, "x": 73, "z": 0, "id": 3}, {"y": 43, "x": 72, "z": 0, "id": 28}, {"y": 41, "x": 72, "z": 0, "id": 105}, {"y": 40, "x": 72, "z": 0, "id": 132}, {"y": 40, "x": 69, "z": 0, "id": 56}, {"y": 42, "x": 71, "z": 0, "id": 4}, {"y": 42, "x": 72, "z": 0, "id": 3}, {"y": 41, "x": 60, "z": 0, "id": 11}, {"y": 40, "x": 59, "z": 0, "id": 11}, {"y": 38, "x": 55, "z": 0, "id": 133}, {"y": 40, "x": 63, "z": 0, "id": 3}, {"y": 42, "x": 60, "z": 0, "id": 42}, {"y": 44, "x": 61, "z": 0, "id": 130}, {"y": 45, "x": 66, "z": 0, "id": 25}, {"y": 46, "x": 70, "z": 0, "id": 25}, {"y": 47, "x": 70, "z": 0, "id": 3}, {"y": 47, "x": 68, "z": 0, "id": 25}, {"y": 42, "x": 63, "z": 0, "id": 3}, {"y": 45, "x": 63, "z": 0, "id": 3}, {"y": 43, "x": 64, "z": 0, "id": 55}, {"y": 44, "x": 60, "z": 0, "id": 55}, {"y": 40, "x": 65, "z": 0, "id": 25}, {"y": 43, "x": 65, "z": 0, "id": 56}, {"y": 40, "x": 66, "z": 0, "id": 55}, {"y": 42, "x": 67, "z": 0, "id": 27}, {"y": 41, "x": 66, "z": 0, "id": 26}, {"y": 54, "x": 84, "z": 0, "id": 134}, {"y": 55, "x": 86, "z": 0, "id": 135}, {"y": 56, "x": 83, "z": 0, "id": 136}, {"y": 59, "x": 87, "z": 0, "id": 38}, {"y": 60, "x": 87, "z": 0, "id": 137}, {"y": 61, "x": 89, "z": 0, "id": 138}, {"y": 62, "x": 88, "z": 0, "id": 21}, {"y": 64, "x": 89, "z": 0, "id": 10}, {"y": 67, "x": 91, "z": 0, "id": 38}, {"y": 68, "x": 92, "z": 0, "id": 139}, {"y": 70, "x": 92, "z": 0, "id": 106}, {"y": 74, "x": 96, "z": 0, "id": 110}, {"y": 75, "x": 97, "z": 0, "id": 140}, {"y": 76, "x": 97, "z": 0, "id": 141}, {"y": 77, "x": 96, "z": 0, "id": 31}, {"y": 78, "x": 96, "z": 0, "id": 142}, {"y": 80, "x": 96, "z": 0, "id": 103}, {"y": 83, "x": 96, "z": 0, "id": 11}, {"y": 82, "x": 96, "z": 0, "id": 41}, {"y": 79, "x": 93, "z": 0, "id": 103}, {"y": 78, "x": 92, "z": 0, "id": 143}, {"y": 77, "x": 91, "z": 0, "id": 144}, {"y": 78, "x": 89, "z": 0, "id": 43}, {"y": 79, "x": 88, "z": 0, "id": 77}, {"y": 80, "x": 86, "z": 0, "id": 95}, {"y": 81, "x": 87, "z": 0, "id": 145}, {"y": 74, "x": 91, "z": 0, "id": 146}, {"y": 75, "x": 91, "z": 0, "id": 46}, {"y": 75, "x": 91, "z": 0, "id": 16}, {"y": 72, "x": 92, "z": 0, "id": 147}, {"y": 70, "x": 89, "z": 0, "id": 41}, {"y": 76, "x": 92, "z": 0, "id": 40}, {"y": 81, "x": 92, "z": 0, "id": 148}, {"y": 80, "x": 94, "z": 0, "id": 149}, {"y": 79, "x": 95, "z": 0, "id": 146}, {"y": 77, "x": 95, "z": 0, "id": 127}, {"y": 76, "x": 94, "z": 0, "id": 150}, {"y": 75, "x": 98, "z": 0, "id": 151}, {"y": 76, "x": 99, "z": 0, "id": 112}, {"y": 78, "x": 100, "z": 0, "id": 10}, {"y": 80, "x": 104, "z": 0, "id": 152}, {"y": 76, "x": 101, "z": 0, "id": 13}, {"y": 75, "x": 97, "z": 0, "id": 82}, {"y": 74, "x": 96, "z": 0, "id": 48}, {"y": 73, "x": 95, "z": 0, "id": 20}, {"y": 75, "x": 93, "z": 0, "id": 103}, {"y": 70, "x": 96, "z": 0, "id": 150}, {"y": 70, "x": 99, "z": 0, "id": 147}, {"y": 67, "x": 101, "z": 0, "id": 153}, {"y": 67, "x": 101, "z": 0, "id": 46}, {"y": 71, "x": 90, "z": 0, "id": 147}, {"y": 69, "x": 93, "z": 0, "id": 154}, {"y": 68, "x": 91, "z": 0, "id": 38}, {"y": 69, "x": 88, "z": 0, "id": 54}, {"y": 67, "x": 88, "z": 0, "id": 49}, {"y": 67, "x": 88, "z": 0, "id": 11}, {"y": 66, "x": 91, "z": 0, "id": 20}, {"y": 64, "x": 87, "z": 0, "id": 48}, {"y": 63, "x": 85, "z": 0, "id": 38}, {"y": 64, "x": 88, "z": 0, "id": 20}, {"y": 62, "x": 88, "z": 0, "id": 11}, {"y": 61, "x": 86, "z": 0, "id": 103}, {"y": 61, "x": 86, "z": 0, "id": 20}, {"y": 60, "x": 85, "z": 0, "id": 38}, {"y": 55, "x": 85, "z": 0, "id": 13}, {"y": 57, "x": 73, "z": 0, "id": 28}, {"y": 59, "x": 74, "z": 0, "id": 27}, {"y": 62, "x": 77, "z": 0, "id": 56}, {"y": 66, "x": 76, "z": 0, "id": 27}, {"y": 69, "x": 77, "z": 0, "id": 25}, {"y": 71, "x": 75, "z": 0, "id": 28}, {"y": 72, "x": 74, "z": 0, "id": 155}, {"y": 74, "x": 72, "z": 0, "id": 27}, {"y": 73, "x": 73, "z": 0, "id": 42}, {"y": 73, "x": 74, "z": 0, "id": 25}, {"y": 70, "x": 77, "z": 0, "id": 27}, {"y": 59, "x": 76, "z": 0, "id": 156}, {"y": 58, "x": 75, "z": 0, "id": 56}, {"y": 79, "x": 70, "z": 0, "id": 4}, {"y": 80, "x": 72, "z": 0, "id": 26}, {"y": 83, "x": 69, "z": 0, "id": 101}, {"y": 84, "x": 68, "z": 0, "id": 56}, {"y": 86, "x": 62, "z": 0, "id": 3}, {"y": 86, "x": 59, "z": 0, "id": 25}, {"y": 87, "x": 57, "z": 0, "id": 26}, {"y": 86, "x": 54, "z": 0, "id": 26}, {"y": 87, "x": 53, "z": 0, "id": 26}, {"y": 82, "x": 72, "z": 0, "id": 25}, {"y": 61, "x": 80, "z": 0, "id": 48}, {"y": 63, "x": 84, "z": 0, "id": 11}, {"y": 65, "x": 84, "z": 0, "id": 41}, {"y": 67, "x": 84, "z": 0, "id": 157}, {"y": 69, "x": 80, "z": 0, "id": 41}, {"y": 66, "x": 79, "z": 0, "id": 39}, {"y": 68, "x": 84, "z": 0, "id": 20}, {"y": 65, "x": 86, "z": 0, "id": 48}, {"y": 67, "x": 84, "z": 0, "id": 11}, {"y": 66, "x": 81, "z": 0, "id": 103}, {"y": 65, "x": 80, "z": 0, "id": 10}, {"y": 63, "x": 83, "z": 0, "id": 11}, {"y": 64, "x": 80, "z": 0, "id": 3}, {"y": 16, "x": 136, "z": 0, "id": 7}, {"y": 19, "x": 135, "z": 0, "id": 158}, {"y": 21, "x": 135, "z": 0, "id": 159}, {"y": 23, "x": 135, "z": 0, "id": 159}, {"y": 24, "x": 134, "z": 0, "id": 16}, {"y": 24, "x": 130, "z": 0, "id": 160}, {"y": 25, "x": 128, "z": 0, "id": 161}, {"y": 26, "x": 126, "z": 0, "id": 162}, {"y": 27, "x": 127, "z": 0, "id": 160}, {"y": 26, "x": 126, "z": 0, "id": 5}, {"y": 21, "x": 130, "z": 0, "id": 163}, {"y": 22, "x": 131, "z": 0, "id": 164}, {"y": 22, "x": 135, "z": 0, "id": 165}, {"y": 19, "x": 135, "z": 0, "id": 5}, {"y": 18, "x": 136, "z": 0, "id": 166}, {"y": 25, "x": 113, "z": 0, "id": 167}, {"y": 29, "x": 119, "z": 0, "id": 166}, {"y": 26, "x": 113, "z": 0, "id": 168}, {"y": 29, "x": 125, "z": 0, "id": 159}, {"y": 30, "x": 126, "z": 0, "id": 7}, {"y": 31, "x": 123, "z": 0, "id": 169}, {"y": 30, "x": 122, "z": 0, "id": 170}, {"y": 13, "x": 98, "z": 0, "id": 171}, {"y": 19, "x": 99, "z": 0, "id": 172}, {"y": 21, "x": 98, "z": 0, "id": 171}, {"y": 25, "x": 97, "z": 0, "id": 173}, {"y": 28, "x": 102, "z": 0, "id": 174}, {"y": 29, "x": 102, "z": 0, "id": 175}, {"y": 30, "x": 102, "z": 0, "id": 12}, {"y": 31, "x": 103, "z": 0, "id": 176}, {"y": 32, "x": 102, "z": 0, "id": 16}, {"y": 29, "x": 102, "z": 0, "id": 177}, {"y": 35, "x": 106, "z": 0, "id": 159}, {"y": 36, "x": 108, "z": 0, "id": 178}, {"y": 35, "x": 109, "z": 0, "id": 167}, {"y": 37, "x": 112, "z": 0, "id": 179}, {"y": 36, "x": 113, "z": 0, "id": 178}, {"y": 38, "x": 115, "z": 0, "id": 174}, {"y": 40, "x": 117, "z": 0, "id": 7}, {"y": 42, "x": 119, "z": 0, "id": 6}, {"y": 43, "x": 118, "z": 0, "id": 112}, {"y": 40, "x": 117, "z": 0, "id": 164}, {"y": 39, "x": 118, "z": 0, "id": 166}, {"y": 40, "x": 117, "z": 0, "id": 6}, {"y": 39, "x": 117, "z": 0, "id": 16}, {"y": 37, "x": 114, "z": 0, "id": 16}, {"y": 35, "x": 110, "z": 0, "id": 6}, {"y": 34, "x": 109, "z": 0, "id": 169}, {"y": 4, "x": 130, "z": 0, "id": 161}, {"y": 6, "x": 126, "z": 0, "id": 112}, {"y": 6, "x": 126, "z": 0, "id": 12}, {"y": 6, "x": 127, "z": 0, "id": 180}, {"y": 9, "x": 121, "z": 0, "id": 16}, {"y": 10, "x": 121, "z": 0, "id": 5}, {"y": 7, "x": 120, "z": 0, "id": 169}, {"y": 5, "x": 122, "z": 0, "id": 178}, {"y": 4, "x": 122, "z": 0, "id": 181}, {"y": 3, "x": 125, "z": 0, "id": 165}, {"y": 5, "x": 119, "z": 0, "id": 7}, {"y": 6, "x": 120, "z": 0, "id": 182}, {"y": 6, "x": 120, "z": 0, "id": 183}, {"y": 7, "x": 122, "z": 0, "id": 170}, {"y": 5, "x": 124, "z": 0, "id": 170}, {"y": 3, "x": 122, "z": 0, "id": 171}, {"y": 3, "x": 132, "z": 0, "id": 7}, {"y": 1, "x": 133, "z": 0, "id": 184}, {"y": 2, "x": 134, "z": 0, "id": 12}, {"y": 2, "x": 136, "z": 0, "id": 185}, {"y": 5, "x": 143, "z": 0, "id": 172}, {"y": 7, "x": 144, "z": 0, "id": 5}, {"y": 8, "x": 145, "z": 0, "id": 12}, {"y": 8, "x": 143, "z": 0, "id": 16}, {"y": 7, "x": 144, "z": 0, "id": 16}, {"y": 3, "x": 143, "z": 0, "id": 165}, {"y": 0, "x": 143, "z": 0, "id": 186}, {"y": 2, "x": 145, "z": 0, "id": 165}, {"y": 2, "x": 140, "z": 0, "id": 180}, {"y": 2, "x": 139, "z": 0, "id": 180}, {"y": 0, "x": 137, "z": 0, "id": 158}, {"y": 0, "x": 134, "z": 0, "id": 166}, {"y": 2, "x": 134, "z": 0, "id": 183}, {"y": 0, "x": 134, "z": 0, "id": 6}, {"y": 1, "x": 133, "z": 0, "id": 171}, {"y": 2, "x": 130, "z": 0, "id": 180}, {"y": 3, "x": 131, "z": 0, "id": 181}, {"y": 1, "x": 131, "z": 0, "id": 187}, {"y": 3, "x": 125, "z": 0, "id": 180}, {"y": 0, "x": 122, "z": 0, "id": 165}, {"y": 0, "x": 123, "z": 0, "id": 188}, {"y": 0, "x": 126, "z": 0, "id": 165}, {"y": 4, "x": 128, "z": 0, "id": 178}, {"y": 8, "x": 123, "z": 0, "id": 178}, {"y": 8, "x": 123, "z": 0, "id": 183}, {"y": 7, "x": 129, "z": 0, "id": 6}, {"y": 8, "x": 131, "z": 0, "id": 5}, {"y": 9, "x": 129, "z": 0, "id": 179}, {"y": 9, "x": 132, "z": 0, "id": 185}, {"y": 10, "x": 123, "z": 0, "id": 178}, {"y": 13, "x": 124, "z": 0, "id": 7}, {"y": 14, "x": 123, "z": 0, "id": 5}, {"y": 15, "x": 124, "z": 0, "id": 16}, {"y": 15, "x": 125, "z": 0, "id": 178}, {"y": 12, "x": 129, "z": 0, "id": 176}, {"y": 12, "x": 132, "z": 0, "id": 174}, {"y": 11, "x": 138, "z": 0, "id": 187}, {"y": 12, "x": 140, "z": 0, "id": 5}, {"y": 13, "x": 142, "z": 0, "id": 112}, {"y": 15, "x": 145, "z": 0, "id": 5}, {"y": 17, "x": 147, "z": 0, "id": 165}, {"y": 21, "x": 144, "z": 0, "id": 180}, {"y": 22, "x": 142, "z": 0, "id": 185}, {"y": 24, "x": 143, "z": 0, "id": 179}, {"y": 25, "x": 144, "z": 0, "id": 165}, {"y": 18, "x": 143, "z": 0, "id": 170}, {"y": 16, "x": 143, "z": 0, "id": 112}, {"y": 15, "x": 143, "z": 0, "id": 171}, {"y": 14, "x": 147, "z": 0, "id": 180}, {"y": 13, "x": 104, "z": 0, "id": 174}, {"y": 14, "x": 102, "z": 0, "id": 179}, {"y": 15, "x": 101, "z": 0, "id": 183}, {"y": 16, "x": 100, "z": 0, "id": 189}, {"y": 17, "x": 100, "z": 0, "id": 181}, {"y": 16, "x": 99, "z": 0, "id": 12}, {"y": 12, "x": 102, "z": 0, "id": 7}, {"y": 20, "x": 97, "z": 0, "id": 112}, {"y": 22, "x": 96, "z": 0, "id": 16}, {"y": 23, "x": 95, "z": 0, "id": 7}, {"y": 26, "x": 91, "z": 0, "id": 6}, {"y": 25, "x": 90, "z": 0, "id": 179}, {"y": 21, "x": 95, "z": 0, "id": 7}, {"y": 18, "x": 107, "z": 0, "id": 183}, {"y": 19, "x": 107, "z": 0, "id": 190}, {"y": 20, "x": 108, "z": 0, "id": 167}, {"y": 21, "x": 109, "z": 0, "id": 165}, {"y": 22, "x": 110, "z": 0, "id": 183}, {"y": 24, "x": 110, "z": 0, "id": 183}, {"y": 25, "x": 111, "z": 0, "id": 176}, {"y": 25, "x": 110, "z": 0, "id": 191}, {"y": 25, "x": 109, "z": 0, "id": 161}, {"y": 25, "x": 108, "z": 0, "id": 169}, {"y": 23, "x": 107, "z": 0, "id": 164}, {"y": 20, "x": 111, "z": 0, "id": 183}, {"y": 22, "x": 110, "z": 0, "id": 177}, {"y": 23, "x": 110, "z": 0, "id": 165}, {"y": 21, "x": 119, "z": 0, "id": 6}, {"y": 23, "x": 121, "z": 0, "id": 165}, {"y": 24, "x": 121, "z": 0, "id": 16}, {"y": 24, "x": 119, "z": 0, "id": 191}, {"y": 24, "x": 122, "z": 0, "id": 169}, {"y": 22, "x": 124, "z": 0, "id": 166}, {"y": 23, "x": 124, "z": 0, "id": 172}, {"y": 21, "x": 122, "z": 0, "id": 178}, {"y": 19, "x": 124, "z": 0, "id": 180}, {"y": 19, "x": 132, "z": 0, "id": 112}, {"y": 23, "x": 127, "z": 0, "id": 176}, {"y": 26, "x": 120, "z": 0, "id": 183}, {"y": 27, "x": 119, "z": 0, "id": 192}, {"y": 17, "x": 132, "z": 0, "id": 16}, {"y": 18, "x": 131, "z": 0, "id": 7}, {"y": 28, "x": 131, "z": 0, "id": 193}, {"y": 31, "x": 132, "z": 0, "id": 6}, {"y": 34, "x": 135, "z": 0, "id": 16}, {"y": 34, "x": 137, "z": 0, "id": 16}, {"y": 35, "x": 138, "z": 0, "id": 13}, {"y": 36, "x": 138, "z": 0, "id": 39}, {"y": 39, "x": 138, "z": 0, "id": 35}, {"y": 40, "x": 137, "z": 0, "id": 194}, {"y": 41, "x": 134, "z": 0, "id": 195}, {"y": 43, "x": 136, "z": 0, "id": 10}, {"y": 43, "x": 132, "z": 0, "id": 40}, {"y": 44, "x": 130, "z": 0, "id": 6}, {"y": 43, "x": 135, "z": 0, "id": 196}, {"y": 43, "x": 133, "z": 0, "id": 39}, {"y": 43, "x": 135, "z": 0, "id": 197}, {"y": 39, "x": 139, "z": 0, "id": 46}, {"y": 45, "x": 132, "z": 0, "id": 46}, {"y": 46, "x": 131, "z": 0, "id": 104}, {"y": 48, "x": 130, "z": 0, "id": 43}, {"y": 48, "x": 127, "z": 0, "id": 46}, {"y": 48, "x": 124, "z": 0, "id": 198}, {"y": 48, "x": 124, "z": 0, "id": 32}, {"y": 47, "x": 128, "z": 0, "id": 25}, {"y": 37, "x": 141, "z": 0, "id": 49}, {"y": 39, "x": 143, "z": 0, "id": 50}, {"y": 39, "x": 145, "z": 0, "id": 199}, {"y": 39, "x": 142, "z": 0, "id": 43}, {"y": 37, "x": 143, "z": 0, "id": 51}, {"y": 4, "x": 87, "z": 0, "id": 177}, {"y": 6, "x": 88, "z": 0, "id": 170}, {"y": 8, "x": 93, "z": 0, "id": 180}, {"y": 10, "x": 95, "z": 0, "id": 165}, {"y": 9, "x": 96, "z": 0, "id": 165}, {"y": 9, "x": 97, "z": 0, "id": 165}, {"y": 10, "x": 101, "z": 0, "id": 200}, {"y": 10, "x": 102, "z": 0, "id": 163}, {"y": 12, "x": 104, "z": 0, "id": 6}, {"y": 12, "x": 107, "z": 0, "id": 178}, {"y": 11, "x": 106, "z": 0, "id": 185}, {"y": 10, "x": 104, "z": 0, "id": 172}, {"y": 10, "x": 102, "z": 0, "id": 6}, {"y": 8, "x": 101, "z": 0, "id": 12}, {"y": 9, "x": 99, "z": 0, "id": 172}, {"y": 10, "x": 90, "z": 0, "id": 170}, {"y": 11, "x": 89, "z": 0, "id": 160}, {"y": 13, "x": 89, "z": 0, "id": 165}, {"y": 14, "x": 88, "z": 0, "id": 172}, {"y": 15, "x": 86, "z": 0, "id": 174}, {"y": 15, "x": 84, "z": 0, "id": 174}, {"y": 14, "x": 83, "z": 0, "id": 161}, {"y": 11, "x": 84, "z": 0, "id": 179}, {"y": 11, "x": 82, "z": 0, "id": 184}, {"y": 13, "x": 83, "z": 0, "id": 161}, {"y": 13, "x": 85, "z": 0, "id": 178}, {"y": 10, "x": 86, "z": 0, "id": 16}, {"y": 10, "x": 88, "z": 0, "id": 165}, {"y": 8, "x": 87, "z": 0, "id": 181}, {"y": 7, "x": 91, "z": 0, "id": 181}, {"y": 8, "x": 90, "z": 0, "id": 165}, {"y": 7, "x": 88, "z": 0, "id": 165}, {"y": 5, "x": 89, "z": 0, "id": 181}, {"y": 6, "x": 90, "z": 0, "id": 180}, {"y": 5, "x": 92, "z": 0, "id": 191}, {"y": 6, "x": 94, "z": 0, "id": 161}, {"y": 7, "x": 95, "z": 0, "id": 177}, {"y": 7, "x": 96, "z": 0, "id": 165}, {"y": 8, "x": 105, "z": 0, "id": 201}, {"y": 9, "x": 107, "z": 0, "id": 191}, {"y": 10, "x": 107, "z": 0, "id": 179}, {"y": 46, "x": 97, "z": 0, "id": 202}, {"y": 47, "x": 98, "z": 0, "id": 203}, {"y": 48, "x": 99, "z": 0, "id": 20}, {"y": 49, "x": 100, "z": 0, "id": 204}, {"y": 50, "x": 101, "z": 0, "id": 205}, {"y": 51, "x": 101, "z": 0, "id": 31}, {"y": 52, "x": 101, "z": 0, "id": 46}, {"y": 54, "x": 100, "z": 0, "id": 110}, {"y": 51, "x": 98, "z": 0, "id": 51}, {"y": 53, "x": 96, "z": 0, "id": 16}, {"y": 51, "x": 97, "z": 0, "id": 112}, {"y": 50, "x": 95, "z": 0, "id": 206}, {"y": 50, "x": 100, "z": 0, "id": 157}, {"y": 49, "x": 101, "z": 0, "id": 80}, {"y": 50, "x": 99, "z": 0, "id": 41}, {"y": 50, "x": 96, "z": 0, "id": 103}, {"y": 49, "x": 100, "z": 0, "id": 38}, {"y": 56, "x": 102, "z": 0, "id": 110}, {"y": 57, "x": 104, "z": 0, "id": 9}, {"y": 59, "x": 103, "z": 0, "id": 207}, {"y": 60, "x": 105, "z": 0, "id": 208}, {"y": 61, "x": 106, "z": 0, "id": 209}, {"y": 62, "x": 107, "z": 0, "id": 119}, {"y": 63, "x": 108, "z": 0, "id": 210}, {"y": 64, "x": 108, "z": 0, "id": 142}, {"y": 66, "x": 108, "z": 0, "id": 211}, {"y": 68, "x": 109, "z": 0, "id": 27}, {"y": 69, "x": 110, "z": 0, "id": 40}, {"y": 70, "x": 110, "z": 0, "id": 139}, {"y": 72, "x": 110, "z": 0, "id": 20}, {"y": 74, "x": 108, "z": 0, "id": 212}, {"y": 72, "x": 108, "z": 0, "id": 213}, {"y": 72, "x": 108, "z": 0, "id": 20}, {"y": 72, "x": 106, "z": 0, "id": 147}, {"y": 72, "x": 101, "z": 0, "id": 48}, {"y": 71, "x": 100, "z": 0, "id": 214}, {"y": 72, "x": 109, "z": 0, "id": 11}, {"y": 68, "x": 107, "z": 0, "id": 8}, {"y": 67, "x": 106, "z": 0, "id": 215}, {"y": 67, "x": 109, "z": 0, "id": 56}, {"y": 64, "x": 107, "z": 0, "id": 216}, {"y": 62, "x": 107, "z": 0, "id": 217}, {"y": 59, "x": 105, "z": 0, "id": 218}, {"y": 57, "x": 102, "z": 0, "id": 219}, {"y": 56, "x": 103, "z": 0, "id": 21}, {"y": 59, "x": 97, "z": 0, "id": 16}, {"y": 62, "x": 102, "z": 0, "id": 16}, {"y": 64, "x": 103, "z": 0, "id": 30}, {"y": 68, "x": 122, "z": 0, "id": 22}, {"y": 69, "x": 121, "z": 0, "id": 47}, {"y": 71, "x": 121, "z": 0, "id": 220}, {"y": 70, "x": 119, "z": 0, "id": 221}, {"y": 70, "x": 116, "z": 0, "id": 84}, {"y": 72, "x": 117, "z": 0, "id": 85}, {"y": 69, "x": 118, "z": 0, "id": 37}, {"y": 70, "x": 118, "z": 0, "id": 55}, {"y": 69, "x": 120, "z": 0, "id": 222}, {"y": 68, "x": 119, "z": 0, "id": 110}, {"y": 73, "x": 114, "z": 0, "id": 104}, {"y": 74, "x": 115, "z": 0, "id": 223}, {"y": 71, "x": 113, "z": 0, "id": 224}, {"y": 71, "x": 114, "z": 0, "id": 225}, {"y": 52, "x": 130, "z": 0, "id": 226}, {"y": 53, "x": 130, "z": 0, "id": 227}, {"y": 54, "x": 130, "z": 0, "id": 228}, {"y": 57, "x": 126, "z": 0, "id": 229}, {"y": 57, "x": 125, "z": 0, "id": 97}, {"y": 61, "x": 126, "z": 0, "id": 230}, {"y": 63, "x": 127, "z": 0, "id": 6}, {"y": 65, "x": 125, "z": 0, "id": 12}, {"y": 58, "x": 124, "z": 0, "id": 231}, {"y": 60, "x": 122, "z": 0, "id": 232}, {"y": 61, "x": 122, "z": 0, "id": 27}, {"y": 62, "x": 123, "z": 0, "id": 35}, {"y": 55, "x": 111, "z": 0, "id": 166}, {"y": 55, "x": 114, "z": 0, "id": 179}, {"y": 54, "x": 115, "z": 0, "id": 163}, {"y": 55, "x": 116, "z": 0, "id": 160}, {"y": 55, "x": 120, "z": 0, "id": 3}, {"y": 54, "x": 122, "z": 0, "id": 152}, {"y": 55, "x": 124, "z": 0, "id": 3}, {"y": 54, "x": 106, "z": 0, "id": 10}, {"y": 55, "x": 106, "z": 0, "id": 106}, {"y": 56, "x": 107, "z": 0, "id": 47}, {"y": 57, "x": 108, "z": 0, "id": 233}, {"y": 57, "x": 108, "z": 0, "id": 220}, {"y": 4, "x": 78, "z": 0, "id": 170}, {"y": 6, "x": 82, "z": 0, "id": 165}, {"y": 7, "x": 83, "z": 0, "id": 184}, {"y": 7, "x": 85, "z": 0, "id": 112}, {"y": 8, "x": 83, "z": 0, "id": 112}, {"y": 8, "x": 78, "z": 0, "id": 172}, {"y": 12, "x": 77, "z": 0, "id": 170}, {"y": 9, "x": 75, "z": 0, "id": 6}, {"y": 6, "x": 77, "z": 0, "id": 183}, {"y": 6, "x": 79, "z": 0, "id": 180}, {"y": 7, "x": 76, "z": 0, "id": 170}, {"y": 4, "x": 76, "z": 0, "id": 172}, {"y": 4, "x": 81, "z": 0, "id": 165}, {"y": 6, "x": 65, "z": 0, "id": 164}, {"y": 9, "x": 68, "z": 0, "id": 16}, {"y": 15, "x": 70, "z": 0, "id": 160}, {"y": 16, "x": 72, "z": 0, "id": 161}, {"y": 17, "x": 75, "z": 0, "id": 160}, {"y": 17, "x": 76, "z": 0, "id": 192}, {"y": 17, "x": 78, "z": 0, "id": 185}, {"y": 15, "x": 79, "z": 0, "id": 233}, {"y": 16, "x": 80, "z": 0, "id": 160}, {"y": 15, "x": 78, "z": 0, "id": 176}, {"y": 15, "x": 79, "z": 0, "id": 7}, {"y": 15, "x": 78, "z": 0, "id": 16}, {"y": 16, "x": 77, "z": 0, "id": 177}, {"y": 17, "x": 72, "z": 0, "id": 170}, {"y": 17, "x": 69, "z": 0, "id": 183}, {"y": 15, "x": 68, "z": 0, "id": 159}, {"y": 14, "x": 67, "z": 0, "id": 234}, {"y": 14, "x": 68, "z": 0, "id": 16}, {"y": 10, "x": 67, "z": 0, "id": 171}, {"y": 9, "x": 69, "z": 0, "id": 185}, {"y": 8, "x": 66, "z": 0, "id": 5}, {"y": 7, "x": 69, "z": 0, "id": 189}, {"y": 8, "x": 70, "z": 0, "id": 6}, {"y": 7, "x": 70, "z": 0, "id": 166}, {"y": 7, "x": 68, "z": 0, "id": 159}, {"y": 6, "x": 67, "z": 0, "id": 112}, {"y": 10, "x": 93, "z": 0, "id": 161}, {"y": 11, "x": 94, "z": 0, "id": 183}, {"y": 19, "x": 80, "z": 0, "id": 6}, {"y": 21, "x": 82, "z": 0, "id": 187}, {"y": 23, "x": 85, "z": 0, "id": 185}, {"y": 27, "x": 86, "z": 0, "id": 160}, {"y": 26, "x": 83, "z": 0, "id": 183}, {"y": 25, "x": 82, "z": 0, "id": 177}, {"y": 24, "x": 85, "z": 0, "id": 180}, {"y": 24, "x": 82, "z": 0, "id": 165}, {"y": 21, "x": 83, "z": 0, "id": 192}, {"y": 21, "x": 80, "z": 0, "id": 158}, {"y": 21, "x": 82, "z": 0, "id": 170}, {"y": 20, "x": 84, "z": 0, "id": 178}, {"y": 18, "x": 82, "z": 0, "id": 187}, {"y": 21, "x": 80, "z": 0, "id": 5}, {"y": 21, "x": 83, "z": 0, "id": 180}, {"y": 22, "x": 92, "z": 0, "id": 179}, {"y": 23, "x": 92, "z": 0, "id": 235}, {"y": 24, "x": 91, "z": 0, "id": 174}, {"y": 23, "x": 94, "z": 0, "id": 179}, {"y": 23, "x": 92, "z": 0, "id": 5}, {"y": 22, "x": 94, "z": 0, "id": 6}, {"y": 20, "x": 92, "z": 0, "id": 235}, {"y": 23, "x": 79, "z": 0, "id": 177}, {"y": 24, "x": 80, "z": 0, "id": 183}, {"y": 25, "x": 80, "z": 0, "id": 183}, {"y": 26, "x": 80, "z": 0, "id": 189}, {"y": 27, "x": 80, "z": 0, "id": 165}, {"y": 25, "x": 78, "z": 0, "id": 181}, {"y": 2, "x": 76, "z": 0, "id": 165}, {"y": 1, "x": 78, "z": 0, "id": 178}, {"y": 2, "x": 79, "z": 0, "id": 177}, {"y": 2, "x": 80, "z": 0, "id": 170}, {"y": 2, "x": 80, "z": 0, "id": 180}, {"y": 3, "x": 75, "z": 0, "id": 170}, {"y": 33, "x": 78, "z": 0, "id": 98}, {"y": 34, "x": 77, "z": 0, "id": 236}, {"y": 34, "x": 78, "z": 0, "id": 25}, {"y": 37, "x": 73, "z": 0, "id": 25}, {"y": 39, "x": 70, "z": 0, "id": 229}, {"y": 36, "x": 70, "z": 0, "id": 27}, {"y": 34, "x": 72, "z": 0, "id": 96}, {"y": 35, "x": 72, "z": 0, "id": 4}, {"y": 36, "x": 75, "z": 0, "id": 25}, {"y": 34, "x": 73, "z": 0, "id": 28}, {"y": 23, "x": 70, "z": 0, "id": 178}, {"y": 24, "x": 68, "z": 0, "id": 166}, {"y": 25, "x": 67, "z": 0, "id": 182}, {"y": 28, "x": 65, "z": 0, "id": 172}, {"y": 27, "x": 62, "z": 0, "id": 168}, {"y": 28, "x": 62, "z": 0, "id": 178}, {"y": 29, "x": 59, "z": 0, "id": 83}, {"y": 31, "x": 60, "z": 0, "id": 53}, {"y": 32, "x": 62, "z": 0, "id": 84}, {"y": 31, "x": 59, "z": 0, "id": 237}, {"y": 31, "x": 58, "z": 0, "id": 81}, {"y": 32, "x": 57, "z": 0, "id": 28}, {"y": 30, "x": 54, "z": 0, "id": 27}, {"y": 28, "x": 53, "z": 0, "id": 83}, {"y": 28, "x": 54, "z": 0, "id": 28}, {"y": 28, "x": 53, "z": 0, "id": 27}, {"y": 29, "x": 60, "z": 0, "id": 179}, {"y": 26, "x": 63, "z": 0, "id": 163}, {"y": 26, "x": 66, "z": 0, "id": 5}, {"y": 25, "x": 66, "z": 0, "id": 6}, {"y": 37, "x": 63, "z": 0, "id": 85}, {"y": 29, "x": 62, "z": 0, "id": 178}, {"y": 30, "x": 65, "z": 0, "id": 3}, {"y": 30, "x": 66, "z": 0, "id": 85}, {"y": 31, "x": 79, "z": 0, "id": 56}, {"y": 32, "x": 80, "z": 0, "id": 42}, {"y": 32, "x": 83, "z": 0, "id": 56}, {"y": 31, "x": 138, "z": 0, "id": 16}, {"y": 32, "x": 139, "z": 0, "id": 16}, {"y": 33, "x": 140, "z": 0, "id": 184}, {"y": 35, "x": 142, "z": 0, "id": 23}, {"y": 34, "x": 140, "z": 0, "id": 104}, {"y": 32, "x": 136, "z": 0, "id": 110}, {"y": 29, "x": 138, "z": 0, "id": 5}, {"y": 33, "x": 138, "z": 0, "id": 110}, {"y": 36, "x": 139, "z": 0, "id": 146}, {"y": 36, "x": 143, "z": 0, "id": 223}, {"y": 32, "x": 129, "z": 0, "id": 171}, {"y": 33, "x": 129, "z": 0, "id": 184}, {"y": 34, "x": 130, "z": 0, "id": 167}, {"y": 35, "x": 131, "z": 0, "id": 190}, {"y": 36, "x": 132, "z": 0, "id": 191}, {"y": 37, "x": 131, "z": 0, "id": 191}, {"y": 38, "x": 131, "z": 0, "id": 164}, {"y": 38, "x": 130, "z": 0, "id": 168}, {"y": 36, "x": 130, "z": 0, "id": 188}, {"y": 32, "x": 128, "z": 0, "id": 163}, {"y": 33, "x": 126, "z": 0, "id": 187}, {"y": 34, "x": 127, "z": 0, "id": 238}, {"y": 34, "x": 128, "z": 0, "id": 238}, {"y": 34, "x": 126, "z": 0, "id": 183}, {"y": 39, "x": 123, "z": 0, "id": 112}, {"y": 41, "x": 123, "z": 0, "id": 173}, {"y": 41, "x": 122, "z": 0, "id": 238}, {"y": 33, "x": 127, "z": 0, "id": 184}, {"y": 33, "x": 125, "z": 0, "id": 7}, {"y": 33, "x": 122, "z": 0, "id": 239}, {"y": 37, "x": 122, "z": 0, "id": 16}, {"y": 36, "x": 122, "z": 0, "id": 166}, {"y": 42, "x": 119, "z": 0, "id": 235}, {"y": 43, "x": 121, "z": 0, "id": 178}, {"y": 44, "x": 121, "z": 0, "id": 12}, {"y": 46, "x": 121, "z": 0, "id": 185}, {"y": 46, "x": 119, "z": 0, "id": 7}, {"y": 47, "x": 116, "z": 0, "id": 239}, {"y": 47, "x": 117, "z": 0, "id": 6}, {"y": 46, "x": 108, "z": 0, "id": 189}, {"y": 48, "x": 110, "z": 0, "id": 159}, {"y": 49, "x": 112, "z": 0, "id": 170}, {"y": 50, "x": 114, "z": 0, "id": 170}, {"y": 47, "x": 108, "z": 0, "id": 175}, {"y": 48, "x": 68, "z": 0, "id": 3}, {"y": 50, "x": 70, "z": 0, "id": 3}, {"y": 51, "x": 66, "z": 0, "id": 240}, {"y": 52, "x": 65, "z": 0, "id": 241}, {"y": 53, "x": 65, "z": 0, "id": 242}, {"y": 46, "x": 64, "z": 0, "id": 28}, {"y": 50, "x": 60, "z": 0, "id": 156}, {"y": 51, "x": 60, "z": 0, "id": 7}, {"y": 51, "x": 72, "z": 0, "id": 31}, {"y": 51, "x": 74, "z": 0, "id": 4}, {"y": 79, "x": 72, "z": 0, "id": 28}, {"y": 80, "x": 73, "z": 0, "id": 53}, {"y": 81, "x": 75, "z": 0, "id": 28}, {"y": 83, "x": 76, "z": 0, "id": 3}, {"y": 84, "x": 73, "z": 0, "id": 85}, {"y": 84, "x": 69, "z": 0, "id": 243}, {"y": 85, "x": 69, "z": 0, "id": 244}, {"y": 85, "x": 71, "z": 0, "id": 55}, {"y": 84, "x": 79, "z": 0, "id": 10}, {"y": 89, "x": 82, "z": 0, "id": 142}, {"y": 90, "x": 82, "z": 0, "id": 6}, {"y": 88, "x": 79, "z": 0, "id": 10}, {"y": 87, "x": 79, "z": 0, "id": 39}, {"y": 86, "x": 79, "z": 0, "id": 103}, {"y": 83, "x": 79, "z": 0, "id": 38}, {"y": 83, "x": 72, "z": 0, "id": 3}, {"y": 81, "x": 77, "z": 0, "id": 21}, {"y": 79, "x": 75, "z": 0, "id": 53}, {"y": 80, "x": 75, "z": 0, "id": 55}, {"y": 75, "x": 74, "z": 0, "id": 88}, {"y": 76, "x": 73, "z": 0, "id": 68}, {"y": 77, "x": 76, "z": 0, "id": 25}, {"y": 76, "x": 78, "z": 0, "id": 20}, {"y": 86, "x": 93, "z": 0, "id": 34}, {"y": 87, "x": 94, "z": 0, "id": 245}, {"y": 89, "x": 93, "z": 0, "id": 50}, {"y": 90, "x": 91, "z": 0, "id": 230}, {"y": 91, "x": 91, "z": 0, "id": 49}, {"y": 93, "x": 88, "z": 0, "id": 246}, {"y": 94, "x": 88, "z": 0, "id": 38}, {"y": 96, "x": 85, "z": 0, "id": 11}, {"y": 95, "x": 81, "z": 0, "id": 21}, {"y": 96, "x": 79, "z": 0, "id": 6}, {"y": 97, "x": 77, "z": 0, "id": 5}, {"y": 96, "x": 76, "z": 0, "id": 110}, {"y": 94, "x": 73, "z": 0, "id": 104}, {"y": 93, "x": 73, "z": 0, "id": 30}, {"y": 91, "x": 72, "z": 0, "id": 31}, {"y": 89, "x": 70, "z": 0, "id": 83}, {"y": 90, "x": 70, "z": 0, "id": 122}, {"y": 91, "x": 71, "z": 0, "id": 4}, {"y": 91, "x": 86, "z": 0, "id": 54}, {"y": 88, "x": 86, "z": 0, "id": 113}, {"y": 87, "x": 89, "z": 0, "id": 35}, {"y": 90, "x": 88, "z": 0, "id": 50}, {"y": 88, "x": 87, "z": 0, "id": 247}, {"y": 99, "x": 77, "z": 0, "id": 7}, {"y": 100, "x": 76, "z": 0, "id": 16}, {"y": 103, "x": 76, "z": 0, "id": 41}, {"y": 104, "x": 73, "z": 0, "id": 21}, {"y": 104, "x": 73, "z": 0, "id": 20}, {"y": 88, "x": 75, "z": 0, "id": 248}, {"y": 89, "x": 76, "z": 0, "id": 40}, {"y": 90, "x": 75, "z": 0, "id": 144}, {"y": 91, "x": 76, "z": 0, "id": 5}, {"y": 93, "x": 78, "z": 0, "id": 16}, {"y": 94, "x": 78, "z": 0, "id": 115}, {"y": 93, "x": 80, "z": 0, "id": 222}, {"y": 93, "x": 81, "z": 0, "id": 21}, {"y": 93, "x": 83, "z": 0, "id": 82}, {"y": 93, "x": 83, "z": 0, "id": 39}, {"y": 96, "x": 92, "z": 0, "id": 249}, {"y": 97, "x": 92, "z": 0, "id": 11}, {"y": 97, "x": 86, "z": 0, "id": 13}, {"y": 99, "x": 78, "z": 0, "id": 16}, {"y": 100, "x": 80, "z": 0, "id": 103}, {"y": 100, "x": 80, "z": 0, "id": 227}, {"y": 75, "x": 89, "z": 0, "id": 22}, {"y": 76, "x": 88, "z": 0, "id": 115}, {"y": 76, "x": 87, "z": 0, "id": 46}, {"y": 77, "x": 80, "z": 0, "id": 13}, {"y": 79, "x": 83, "z": 0, "id": 250}, {"y": 77, "x": 86, "z": 0, "id": 219}, {"y": 1, "x": 13, "z": 0, "id": 178}, {"y": 3, "x": 15, "z": 0, "id": 171}, {"y": 3, "x": 26, "z": 0, "id": 160}, {"y": 3, "x": 28, "z": 0, "id": 182}, {"y": 1, "x": 31, "z": 0, "id": 159}, {"y": 1, "x": 30, "z": 0, "id": 165}, {"y": 3, "x": 31, "z": 0, "id": 160}, {"y": 2, "x": 28, "z": 0, "id": 165}, {"y": 1, "x": 25, "z": 0, "id": 161}, {"y": 1, "x": 19, "z": 0, "id": 172}, {"y": 3, "x": 19, "z": 0, "id": 180}, {"y": 6, "x": 16, "z": 0, "id": 180}, {"y": 4, "x": 12, "z": 0, "id": 251}, {"y": 4, "x": 18, "z": 0, "id": 180}, {"y": 1, "x": 16, "z": 0, "id": 180}, {"y": 5, "x": 16, "z": 0, "id": 165}, {"y": 1, "x": 18, "z": 0, "id": 180}, {"y": 2, "x": 12, "z": 0, "id": 251}, {"y": 6, "x": 26, "z": 0, "id": 180}, {"y": 7, "x": 29, "z": 0, "id": 6}, {"y": 8, "x": 31, "z": 0, "id": 166}, {"y": 9, "x": 32, "z": 0, "id": 201}, {"y": 10, "x": 35, "z": 0, "id": 177}, {"y": 12, "x": 34, "z": 0, "id": 177}, {"y": 14, "x": 35, "z": 0, "id": 183}, {"y": 15, "x": 34, "z": 0, "id": 121}, {"y": 16, "x": 34, "z": 0, "id": 183}, {"y": 21, "x": 34, "z": 0, "id": 165}, {"y": 21, "x": 33, "z": 0, "id": 180}, {"y": 18, "x": 32, "z": 0, "id": 165}, {"y": 17, "x": 32, "z": 0, "id": 180}, {"y": 15, "x": 34, "z": 0, "id": 181}, {"y": 16, "x": 32, "z": 0, "id": 172}, {"y": 13, "x": 32, "z": 0, "id": 181}, {"y": 15, "x": 33, "z": 0, "id": 180}, {"y": 14, "x": 35, "z": 0, "id": 165}, {"y": 10, "x": 33, "z": 0, "id": 174}, {"y": 9, "x": 34, "z": 0, "id": 183}, {"y": 9, "x": 32, "z": 0, "id": 187}, {"y": 9, "x": 30, "z": 0, "id": 187}, {"y": 10, "x": 30, "z": 0, "id": 160}, {"y": 9, "x": 29, "z": 0, "id": 177}, {"y": 8, "x": 33, "z": 0, "id": 187}, {"y": 8, "x": 27, "z": 0, "id": 183}, {"y": 9, "x": 26, "z": 0, "id": 180}, {"y": 8, "x": 23, "z": 0, "id": 165}, {"y": 8, "x": 28, "z": 0, "id": 165}, {"y": 7, "x": 23, "z": 0, "id": 165}, {"y": 13, "x": 48, "z": 0, "id": 159}, {"y": 14, "x": 49, "z": 0, "id": 187}, {"y": 16, "x": 50, "z": 0, "id": 165}, {"y": 17, "x": 49, "z": 0, "id": 239}, {"y": 18, "x": 49, "z": 0, "id": 165}, {"y": 19, "x": 46, "z": 0, "id": 180}, {"y": 18, "x": 47, "z": 0, "id": 165}, {"y": 16, "x": 46, "z": 0, "id": 165}, {"y": 16, "x": 51, "z": 0, "id": 7}, {"y": 14, "x": 51, "z": 0, "id": 160}, {"y": 14, "x": 51, "z": 0, "id": 180}, {"y": 11, "x": 47, "z": 0, "id": 179}, {"y": 12, "x": 47, "z": 0, "id": 185}, {"y": 14, "x": 46, "z": 0, "id": 171}, {"y": 11, "x": 41, "z": 0, "id": 179}, {"y": 13, "x": 40, "z": 0, "id": 174}, {"y": 12, "x": 40, "z": 0, "id": 7}, {"y": 2, "x": 33, "z": 0, "id": 6}, {"y": 4, "x": 33, "z": 0, "id": 161}, {"y": 3, "x": 34, "z": 0, "id": 166}, {"y": 2, "x": 35, "z": 0, "id": 5}, {"y": 3, "x": 36, "z": 0, "id": 174}, {"y": 3, "x": 37, "z": 0, "id": 166}, {"y": 2, "x": 39, "z": 0, "id": 179}, {"y": 3, "x": 44, "z": 0, "id": 200}, {"y": 2, "x": 46, "z": 0, "id": 177}, {"y": 1, "x": 44, "z": 0, "id": 160}, {"y": 0, "x": 42, "z": 0, "id": 158}, {"y": 1, "x": 46, "z": 0, "id": 171}, {"y": 1, "x": 43, "z": 0, "id": 182}, {"y": 1, "x": 41, "z": 0, "id": 166}, {"y": 0, "x": 36, "z": 0, "id": 238}, {"y": 2, "x": 37, "z": 0, "id": 165}, {"y": 1, "x": 47, "z": 0, "id": 187}, {"y": 2, "x": 48, "z": 0, "id": 183}, {"y": 3, "x": 48, "z": 0, "id": 181}, {"y": 2, "x": 50, "z": 0, "id": 187}, {"y": 1, "x": 50, "z": 0, "id": 165}, {"y": 5, "x": 40, "z": 0, "id": 201}, {"y": 6, "x": 40, "z": 0, "id": 164}, {"y": 6, "x": 39, "z": 0, "id": 167}, {"y": 6, "x": 40, "z": 0, "id": 182}, {"y": 5, "x": 36, "z": 0, "id": 162}, {"y": 6, "x": 37, "z": 0, "id": 252}, {"y": 8, "x": 37, "z": 0, "id": 188}, {"y": 5, "x": 38, "z": 0, "id": 252}, {"y": 14, "x": 38, "z": 0, "id": 168}, {"y": 17, "x": 39, "z": 0, "id": 173}, {"y": 18, "x": 39, "z": 0, "id": 186}, {"y": 19, "x": 39, "z": 0, "id": 253}, {"y": 21, "x": 40, "z": 0, "id": 178}, {"y": 22, "x": 41, "z": 0, "id": 176}, {"y": 24, "x": 42, "z": 0, "id": 182}, {"y": 24, "x": 39, "z": 0, "id": 172}, {"y": 24, "x": 41, "z": 0, "id": 159}, {"y": 23, "x": 38, "z": 0, "id": 169}, {"y": 21, "x": 38, "z": 0, "id": 163}, {"y": 19, "x": 38, "z": 0, "id": 175}, {"y": 5, "x": 56, "z": 0, "id": 191}, {"y": 5, "x": 56, "z": 0, "id": 159}, {"y": 6, "x": 55, "z": 0, "id": 169}, {"y": 6, "x": 51, "z": 0, "id": 189}, {"y": 6, "x": 52, "z": 0, "id": 182}, {"y": 4, "x": 46, "z": 0, "id": 253}, {"y": 5, "x": 48, "z": 0, "id": 5}, {"y": 4, "x": 48, "z": 0, "id": 191}, {"y": 6, "x": 59, "z": 0, "id": 12}, {"y": 10, "x": 55, "z": 0, "id": 239}, {"y": 11, "x": 55, "z": 0, "id": 173}, {"y": 10, "x": 54, "z": 0, "id": 5}, {"y": 9, "x": 51, "z": 0, "id": 235}, {"y": 9, "x": 50, "z": 0, "id": 254}, {"y": 9, "x": 52, "z": 0, "id": 159}, {"y": 9, "x": 52, "z": 0, "id": 181}, {"y": 40, "x": 87, "z": 0, "id": 8}, {"y": 43, "x": 91, "z": 0, "id": 255}, {"y": 44, "x": 88, "z": 0, "id": 256}, {"y": 45, "x": 86, "z": 0, "id": 37}, {"y": 46, "x": 86, "z": 0, "id": 132}, {"y": 48, "x": 86, "z": 0, "id": 42}, {"y": 49, "x": 85, "z": 0, "id": 257}, {"y": 49, "x": 86, "z": 0, "id": 28}, {"y": 48, "x": 84, "z": 0, "id": 73}, {"y": 47, "x": 85, "z": 0, "id": 124}, {"y": 46, "x": 85, "z": 0, "id": 258}, {"y": 44, "x": 82, "z": 0, "id": 84}, {"y": 42, "x": 80, "z": 0, "id": 259}, {"y": 41, "x": 78, "z": 0, "id": 260}, {"y": 45, "x": 85, "z": 0, "id": 236}, {"y": 45, "x": 84, "z": 0, "id": 55}, {"y": 44, "x": 86, "z": 0, "id": 42}, {"y": 44, "x": 87, "z": 0, "id": 55}, {"y": 44, "x": 88, "z": 0, "id": 156}, {"y": 41, "x": 92, "z": 0, "id": 261}, {"y": 41, "x": 93, "z": 0, "id": 109}, {"y": 42, "x": 91, "z": 0, "id": 236}, {"y": 40, "x": 89, "z": 0, "id": 34}, {"y": 41, "x": 90, "z": 0, "id": 92}, {"y": 42, "x": 89, "z": 0, "id": 262}, {"y": 42, "x": 87, "z": 0, "id": 36}, {"y": 42, "x": 86, "z": 0, "id": 263}, {"y": 43, "x": 84, "z": 0, "id": 264}, {"y": 43, "x": 83, "z": 0, "id": 83}, {"y": 42, "x": 81, "z": 0, "id": 265}, {"y": 42, "x": 85, "z": 0, "id": 88}, {"y": 42, "x": 89, "z": 0, "id": 4}, {"y": 42, "x": 78, "z": 0, "id": 266}, {"y": 43, "x": 79, "z": 0, "id": 123}, {"y": 45, "x": 83, "z": 0, "id": 91}, {"y": 45, "x": 81, "z": 0, "id": 4}, {"y": 70, "x": 42, "z": 0, "id": 21}, {"y": 71, "x": 43, "z": 0, "id": 50}, {"y": 72, "x": 43, "z": 0, "id": 29}, {"y": 73, "x": 42, "z": 0, "id": 109}, {"y": 75, "x": 45, "z": 0, "id": 25}, {"y": 75, "x": 45, "z": 0, "id": 229}, {"y": 64, "x": 53, "z": 0, "id": 48}, {"y": 65, "x": 56, "z": 0, "id": 20}, {"y": 62, "x": 54, "z": 0, "id": 10}, {"y": 62, "x": 53, "z": 0, "id": 48}, {"y": 87, "x": 58, "z": 0, "id": 256}, {"y": 88, "x": 60, "z": 0, "id": 4}, {"y": 90, "x": 63, "z": 0, "id": 84}, {"y": 91, "x": 64, "z": 0, "id": 84}, {"y": 93, "x": 65, "z": 0, "id": 56}, {"y": 90, "x": 61, "z": 0, "id": 267}, {"y": 91, "x": 65, "z": 0, "id": 56}, {"y": 87, "x": 63, "z": 0, "id": 118}, {"y": 89, "x": 63, "z": 0, "id": 130}, {"y": 88, "x": 61, "z": 0, "id": 84}, {"y": 87, "x": 61, "z": 0, "id": 268}, {"y": 89, "x": 56, "z": 0, "id": 264}, {"y": 90, "x": 57, "z": 0, "id": 219}, {"y": 91, "x": 59, "z": 0, "id": 236}, {"y": 92, "x": 58, "z": 0, "id": 36}, {"y": 93, "x": 58, "z": 0, "id": 215}, {"y": 94, "x": 59, "z": 0, "id": 215}, {"y": 94, "x": 59, "z": 0, "id": 236}, {"y": 91, "x": 61, "z": 0, "id": 268}, {"y": 91, "x": 57, "z": 0, "id": 68}, {"y": 91, "x": 56, "z": 0, "id": 96}, {"y": 91, "x": 57, "z": 0, "id": 42}, {"y": 89, "x": 57, "z": 0, "id": 80}, {"y": 91, "x": 66, "z": 0, "id": 243}, {"y": 94, "x": 68, "z": 0, "id": 260}, {"y": 96, "x": 69, "z": 0, "id": 85}, {"y": 97, "x": 70, "z": 0, "id": 269}, {"y": 98, "x": 69, "z": 0, "id": 31}, {"y": 98, "x": 67, "z": 0, "id": 91}, {"y": 98, "x": 66, "z": 0, "id": 32}, {"y": 98, "x": 66, "z": 0, "id": 4}, {"y": 97, "x": 69, "z": 0, "id": 90}, {"y": 96, "x": 69, "z": 0, "id": 232}, {"y": 96, "x": 66, "z": 0, "id": 80}, {"y": 92, "x": 66, "z": 0, "id": 270}, {"y": 90, "x": 66, "z": 0, "id": 271}, {"y": 92, "x": 57, "z": 0, "id": 198}, {"y": 92, "x": 60, "z": 0, "id": 272}, {"y": 95, "x": 66, "z": 0, "id": 68}, {"y": 88, "x": 51, "z": 0, "id": 273}, {"y": 89, "x": 52, "z": 0, "id": 206}, {"y": 90, "x": 51, "z": 0, "id": 203}, {"y": 88, "x": 52, "z": 0, "id": 246}, {"y": 92, "x": 46, "z": 0, "id": 86}, {"y": 92, "x": 47, "z": 0, "id": 274}, {"y": 92, "x": 48, "z": 0, "id": 275}, {"y": 91, "x": 49, "z": 0, "id": 276}, {"y": 98, "x": 49, "z": 0, "id": 277}, {"y": 100, "x": 50, "z": 0, "id": 272}, {"y": 100, "x": 51, "z": 0, "id": 138}, {"y": 101, "x": 53, "z": 0, "id": 206}, {"y": 99, "x": 43, "z": 0, "id": 278}, {"y": 100, "x": 45, "z": 0, "id": 28}, {"y": 102, "x": 45, "z": 0, "id": 28}, {"y": 102, "x": 49, "z": 0, "id": 27}, {"y": 106, "x": 56, "z": 0, "id": 27}, {"y": 107, "x": 56, "z": 0, "id": 72}, {"y": 108, "x": 55, "z": 0, "id": 279}, {"y": 107, "x": 62, "z": 0, "id": 27}, {"y": 98, "x": 36, "z": 0, "id": 279}, {"y": 100, "x": 39, "z": 0, "id": 280}, {"y": 98, "x": 39, "z": 0, "id": 281}, {"y": 99, "x": 37, "z": 0, "id": 282}, {"y": 101, "x": 36, "z": 0, "id": 283}, {"y": 120, "x": 52, "z": 0, "id": 62}, {"y": 119, "x": 53, "z": 0, "id": 72}, {"y": 121, "x": 66, "z": 0, "id": 284}, {"y": 120, "x": 68, "z": 0, "id": 285}, {"y": 119, "x": 69, "z": 0, "id": 64}, {"y": 118, "x": 72, "z": 0, "id": 66}, {"y": 116, "x": 53, "z": 0, "id": 286}, {"y": 117, "x": 52, "z": 0, "id": 286}, {"y": 119, "x": 58, "z": 0, "id": 66}, {"y": 119, "x": 58, "z": 0, "id": 284}, {"y": 50, "x": 61, "z": 0, "id": 224}, {"y": 51, "x": 62, "z": 0, "id": 78}, {"y": 53, "x": 63, "z": 0, "id": 33}, {"y": 54, "x": 63, "z": 0, "id": 260}, {"y": 55, "x": 63, "z": 0, "id": 287}, {"y": 56, "x": 64, "z": 0, "id": 80}, {"y": 54, "x": 71, "z": 0, "id": 31}, {"y": 55, "x": 72, "z": 0, "id": 81}, {"y": 55, "x": 71, "z": 0, "id": 288}, {"y": 55, "x": 70, "z": 0, "id": 236}, {"y": 54, "x": 77, "z": 0, "id": 71}, {"y": 55, "x": 78, "z": 0, "id": 118}, {"y": 56, "x": 78, "z": 0, "id": 114}, {"y": 57, "x": 76, "z": 0, "id": 236}, {"y": 56, "x": 77, "z": 0, "id": 289}, {"y": 56, "x": 77, "z": 0, "id": 105}, {"y": 56, "x": 79, "z": 0, "id": 28}, {"y": 54, "x": 80, "z": 0, "id": 290}, {"y": 54, "x": 81, "z": 0, "id": 255}, {"y": 54, "x": 78, "z": 0, "id": 291}, {"y": 63, "x": 69, "z": 0, "id": 292}, {"y": 64, "x": 69, "z": 0, "id": 270}, {"y": 65, "x": 68, "z": 0, "id": 224}, {"y": 66, "x": 67, "z": 0, "id": 219}, {"y": 67, "x": 67, "z": 0, "id": 219}, {"y": 68, "x": 67, "z": 0, "id": 232}, {"y": 69, "x": 65, "z": 0, "id": 293}, {"y": 68, "x": 66, "z": 0, "id": 261}, {"y": 64, "x": 69, "z": 0, "id": 92}, {"y": 70, "x": 59, "z": 0, "id": 153}, {"y": 72, "x": 59, "z": 0, "id": 6}, {"y": 73, "x": 58, "z": 0, "id": 10}, {"y": 72, "x": 55, "z": 0, "id": 219}, {"y": 72, "x": 66, "z": 0, "id": 237}, {"y": 74, "x": 66, "z": 0, "id": 91}, {"y": 75, "x": 63, "z": 0, "id": 91}, {"y": 76, "x": 61, "z": 0, "id": 232}, {"y": 78, "x": 61, "z": 0, "id": 42}, {"y": 78, "x": 58, "z": 0, "id": 118}, {"y": 78, "x": 57, "z": 0, "id": 92}, {"y": 78, "x": 58, "z": 0, "id": 5}, {"y": 78, "x": 58, "z": 0, "id": 42}, {"y": 78, "x": 61, "z": 0, "id": 55}, {"y": 73, "x": 64, "z": 0, "id": 93}, {"y": 71, "x": 55, "z": 0, "id": 196}, {"y": 71, "x": 56, "z": 0, "id": 215}, {"y": 71, "x": 55, "z": 0, "id": 21}, {"y": 69, "x": 60, "z": 0, "id": 294}, {"y": 70, "x": 68, "z": 0, "id": 295}, {"y": 71, "x": 68, "z": 0, "id": 289}, {"y": 71, "x": 67, "z": 0, "id": 33}, {"y": 60, "x": 62, "z": 0, "id": 290}, {"y": 62, "x": 63, "z": 0, "id": 296}, {"y": 63, "x": 65, "z": 0, "id": 236}, {"y": 63, "x": 63, "z": 0, "id": 261}, {"y": 62, "x": 64, "z": 0, "id": 231}, {"y": 65, "x": 63, "z": 0, "id": 84}, {"y": 64, "x": 63, "z": 0, "id": 215}, {"y": 47, "x": 63, "z": 0, "id": 267}, {"y": 49, "x": 65, "z": 0, "id": 215}, {"y": 56, "x": 61, "z": 0, "id": 156}, {"y": 57, "x": 59, "z": 0, "id": 297}, {"y": 56, "x": 61, "z": 0, "id": 298}, {"y": 16, "x": 109, "z": 0, "id": 192}, {"y": 17, "x": 109, "z": 0, "id": 253}, {"y": 18, "x": 109, "z": 0, "id": 254}, {"y": 15, "x": 108, "z": 0, "id": 162}, {"y": 18, "x": 103, "z": 0, "id": 168}, {"y": 19, "x": 103, "z": 0, "id": 121}, {"y": 20, "x": 103, "z": 0, "id": 254}, {"y": 22, "x": 105, "z": 0, "id": 12}, {"y": 23, "x": 104, "z": 0, "id": 233}, {"y": 24, "x": 104, "z": 0, "id": 164}, {"y": 25, "x": 104, "z": 0, "id": 299}, {"y": 26, "x": 105, "z": 0, "id": 163}, {"y": 25, "x": 103, "z": 0, "id": 253}, {"y": 24, "x": 103, "z": 0, "id": 192}, {"y": 24, "x": 102, "z": 0, "id": 190}, {"y": 23, "x": 103, "z": 0, "id": 162}, {"y": 21, "x": 102, "z": 0, "id": 235}, {"y": 20, "x": 103, "z": 0, "id": 190}, {"y": 20, "x": 103, "z": 0, "id": 181}, {"y": 20, "x": 113, "z": 0, "id": 235}, {"y": 22, "x": 115, "z": 0, "id": 173}, {"y": 22, "x": 115, "z": 0, "id": 161}, {"y": 22, "x": 112, "z": 0, "id": 252}, {"y": 21, "x": 113, "z": 0, "id": 190}, {"y": 21, "x": 111, "z": 0, "id": 188}, {"y": 10, "x": 114, "z": 0, "id": 232}, {"y": 10, "x": 111, "z": 0, "id": 238}, {"y": 12, "x": 114, "z": 0, "id": 5}, {"y": 13, "x": 115, "z": 0, "id": 5}, {"y": 13, "x": 115, "z": 0, "id": 12}, {"y": 13, "x": 114, "z": 0, "id": 187}, {"y": 11, "x": 114, "z": 0, "id": 176}, {"y": 11, "x": 111, "z": 0, "id": 238}, {"y": 10, "x": 112, "z": 0, "id": 184}, {"y": 27, "x": 109, "z": 0, "id": 239}, {"y": 28, "x": 110, "z": 0, "id": 233}, {"y": 29, "x": 110, "z": 0, "id": 191}, {"y": 30, "x": 110, "z": 0, "id": 172}, {"y": 31, "x": 108, "z": 0, "id": 174}, {"y": 30, "x": 108, "z": 0, "id": 177}, {"y": 28, "x": 110, "z": 0, "id": 12}, {"y": 28, "x": 108, "z": 0, "id": 234}, {"y": 29, "x": 106, "z": 0, "id": 161}, {"y": 21, "x": 98, "z": 0, "id": 185}, {"y": 22, "x": 98, "z": 0, "id": 5}, {"y": 23, "x": 99, "z": 0, "id": 178}, {"y": 24, "x": 99, "z": 0, "id": 179}, {"y": 25, "x": 99, "z": 0, "id": 176}, {"y": 25, "x": 99, "z": 0, "id": 161}, {"y": 21, "x": 99, "z": 0, "id": 188}, {"y": 21, "x": 99, "z": 0, "id": 169}, {"y": 23, "x": 96, "z": 0, "id": 235}, {"y": 28, "x": 94, "z": 0, "id": 235}, {"y": 30, "x": 97, "z": 0, "id": 171}, {"y": 31, "x": 98, "z": 0, "id": 186}, {"y": 32, "x": 98, "z": 0, "id": 253}, {"y": 33, "x": 99, "z": 0, "id": 234}, {"y": 34, "x": 100, "z": 0, "id": 299}, {"y": 35, "x": 101, "z": 0, "id": 191}, {"y": 36, "x": 101, "z": 0, "id": 162}, {"y": 34, "x": 100, "z": 0, "id": 5}, {"y": 31, "x": 98, "z": 0, "id": 163}, {"y": 26, "x": 116, "z": 0, "id": 178}, {"y": 27, "x": 116, "z": 0, "id": 179}, {"y": 28, "x": 117, "z": 0, "id": 178}, {"y": 29, "x": 118, "z": 0, "id": 191}, {"y": 31, "x": 120, "z": 0, "id": 177}, {"y": 32, "x": 117, "z": 0, "id": 176}, {"y": 33, "x": 116, "z": 0, "id": 168}, {"y": 32, "x": 116, "z": 0, "id": 234}, {"y": 31, "x": 117, "z": 0, "id": 7}, {"y": 31, "x": 118, "z": 0, "id": 181}, {"y": 31, "x": 119, "z": 0, "id": 7}, {"y": 29, "x": 117, "z": 0, "id": 174}, {"y": 29, "x": 115, "z": 0, "id": 5}, {"y": 28, "x": 115, "z": 0, "id": 161}, {"y": 28, "x": 114, "z": 0, "id": 183}, {"y": 33, "x": 113, "z": 0, "id": 167}, {"y": 34, "x": 113, "z": 0, "id": 235}, {"y": 34, "x": 111, "z": 0, "id": 235}, {"y": 35, "x": 119, "z": 0, "id": 235}, {"y": 16, "x": 16, "z": 0, "id": 175}, {"y": 15, "x": 16, "z": 0, "id": 190}, {"y": 15, "x": 16, "z": 0, "id": 171}, {"y": 14, "x": 15, "z": 0, "id": 181}, {"y": 21, "x": 19, "z": 0, "id": 193}, {"y": 21, "x": 9, "z": 0, "id": 167}, {"y": 22, "x": 11, "z": 0, "id": 234}, {"y": 24, "x": 12, "z": 0, "id": 166}, {"y": 25, "x": 13, "z": 0, "id": 168}, {"y": 26, "x": 13, "z": 0, "id": 171}, {"y": 22, "x": 9, "z": 0, "id": 189}, {"y": 21, "x": 10, "z": 0, "id": 233}, {"y": 29, "x": 13, "z": 0, "id": 83}, {"y": 30, "x": 14, "z": 0, "id": 300}, {"y": 31, "x": 14, "z": 0, "id": 301}, {"y": 32, "x": 10, "z": 0, "id": 224}, {"y": 33, "x": 11, "z": 0, "id": 90}, {"y": 34, "x": 10, "z": 0, "id": 302}, {"y": 35, "x": 10, "z": 0, "id": 277}, {"y": 36, "x": 10, "z": 0, "id": 205}, {"y": 37, "x": 9, "z": 0, "id": 287}, {"y": 38, "x": 9, "z": 0, "id": 67}, {"y": 39, "x": 8, "z": 0, "id": 263}, {"y": 35, "x": 9, "z": 0, "id": 303}, {"y": 32, "x": 11, "z": 0, "id": 261}, {"y": 31, "x": 29, "z": 0, "id": 94}, {"y": 32, "x": 30, "z": 0, "id": 304}, {"y": 33, "x": 31, "z": 0, "id": 236}, {"y": 34, "x": 31, "z": 0, "id": 272}, {"y": 31, "x": 30, "z": 0, "id": 305}, {"y": 38, "x": 24, "z": 0, "id": 289}, {"y": 18, "x": 15, "z": 0, "id": 164}, {"y": 19, "x": 15, "z": 0, "id": 299}, {"y": 20, "x": 16, "z": 0, "id": 167}, {"y": 20, "x": 16, "z": 0, "id": 306}, {"y": 27, "x": 31, "z": 0, "id": 8}, {"y": 28, "x": 32, "z": 0, "id": 9}, {"y": 29, "x": 33, "z": 0, "id": 307}, {"y": 30, "x": 34, "z": 0, "id": 293}, {"y": 31, "x": 35, "z": 0, "id": 53}, {"y": 32, "x": 35, "z": 0, "id": 308}, {"y": 33, "x": 35, "z": 0, "id": 309}, {"y": 31, "x": 36, "z": 0, "id": 310}, {"y": 31, "x": 36, "z": 0, "id": 125}, {"y": 31, "x": 34, "z": 0, "id": 255}, {"y": 29, "x": 35, "z": 0, "id": 311}, {"y": 27, "x": 30, "z": 0, "id": 114}, {"y": 28, "x": 33, "z": 0, "id": 293}, {"y": 29, "x": 32, "z": 0, "id": 276}, {"y": 29, "x": 36, "z": 0, "id": 215}, {"y": 32, "x": 34, "z": 0, "id": 298}, {"y": 44, "x": 24, "z": 0, "id": 312}, {"y": 45, "x": 25, "z": 0, "id": 88}, {"y": 46, "x": 26, "z": 0, "id": 198}, {"y": 47, "x": 26, "z": 0, "id": 105}, {"y": 49, "x": 28, "z": 0, "id": 293}, {"y": 48, "x": 28, "z": 0, "id": 313}, {"y": 44, "x": 25, "z": 0, "id": 243}, {"y": 46, "x": 13, "z": 0, "id": 241}, {"y": 49, "x": 13, "z": 0, "id": 145}, {"y": 50, "x": 12, "z": 0, "id": 294}, {"y": 49, "x": 12, "z": 0, "id": 78}, {"y": 47, "x": 14, "z": 0, "id": 115}, {"y": 46, "x": 25, "z": 0, "id": 307}, {"y": 48, "x": 11, "z": 0, "id": 267}, {"y": 47, "x": 11, "z": 0, "id": 259}, {"y": 50, "x": 35, "z": 0, "id": 35}, {"y": 51, "x": 33, "z": 0, "id": 314}, {"y": 52, "x": 31, "z": 0, "id": 8}, {"y": 52, "x": 31, "z": 0, "id": 93}, {"y": 52, "x": 29, "z": 0, "id": 83}, {"y": 52, "x": 27, "z": 0, "id": 315}, {"y": 53, "x": 27, "z": 0, "id": 42}, {"y": 52, "x": 24, "z": 0, "id": 271}, {"y": 52, "x": 23, "z": 0, "id": 271}, {"y": 51, "x": 24, "z": 0, "id": 260}, {"y": 51, "x": 23, "z": 0, "id": 109}, {"y": 49, "x": 36, "z": 0, "id": 80}, {"y": 54, "x": 32, "z": 0, "id": 261}, {"y": 55, "x": 32, "z": 0, "id": 224}, {"y": 56, "x": 32, "z": 0, "id": 107}, {"y": 57, "x": 31, "z": 0, "id": 27}, {"y": 58, "x": 30, "z": 0, "id": 313}, {"y": 57, "x": 29, "z": 0, "id": 95}, {"y": 57, "x": 32, "z": 0, "id": 25}, {"y": 60, "x": 17, "z": 0, "id": 226}, {"y": 61, "x": 18, "z": 0, "id": 68}, {"y": 62, "x": 19, "z": 0, "id": 36}, {"y": 66, "x": 22, "z": 0, "id": 23}, {"y": 67, "x": 21, "z": 0, "id": 264}, {"y": 65, "x": 23, "z": 0, "id": 36}, {"y": 65, "x": 23, "z": 0, "id": 91}, {"y": 66, "x": 21, "z": 0, "id": 12}, {"y": 63, "x": 20, "z": 0, "id": 31}, {"y": 60, "x": 18, "z": 0, "id": 36}, {"y": 74, "x": 29, "z": 0, "id": 304}, {"y": 75, "x": 29, "z": 0, "id": 316}, {"y": 75, "x": 29, "z": 0, "id": 37}, {"y": 76, "x": 25, "z": 0, "id": 317}, {"y": 75, "x": 28, "z": 0, "id": 35}, {"y": 75, "x": 25, "z": 0, "id": 198}, {"y": 66, "x": 22, "z": 0, "id": 263}, {"y": 56, "x": 27, "z": 0, "id": 240}, {"y": 78, "x": 107, "z": 0, "id": 27}, {"y": 77, "x": 109, "z": 0, "id": 53}, {"y": 84, "x": 107, "z": 0, "id": 131}, {"y": 85, "x": 106, "z": 0, "id": 312}, {"y": 86, "x": 107, "z": 0, "id": 240}, {"y": 87, "x": 109, "z": 0, "id": 56}, {"y": 88, "x": 110, "z": 0, "id": 10}, {"y": 90, "x": 111, "z": 0, "id": 38}, {"y": 89, "x": 108, "z": 0, "id": 20}, {"y": 88, "x": 104, "z": 0, "id": 3}, {"y": 87, "x": 101, "z": 0, "id": 85}, {"y": 85, "x": 101, "z": 0, "id": 267}, {"y": 86, "x": 102, "z": 0, "id": 4}, {"y": 89, "x": 107, "z": 0, "id": 41}, {"y": 85, "x": 107, "z": 0, "id": 4}, {"y": 85, "x": 110, "z": 0, "id": 3}, {"y": 83, "x": 111, "z": 0, "id": 48}, {"y": 82, "x": 109, "z": 0, "id": 98}, {"y": 81, "x": 113, "z": 0, "id": 84}, {"y": 79, "x": 110, "z": 0, "id": 84}, {"y": 78, "x": 103, "z": 0, "id": 40}, {"y": 80, "x": 102, "z": 0, "id": 212}, {"y": 79, "x": 102, "z": 0, "id": 103}, {"y": 81, "x": 98, "z": 0, "id": 13}, {"y": 82, "x": 98, "z": 0, "id": 21}, {"y": 90, "x": 104, "z": 0, "id": 20}, {"y": 91, "x": 106, "z": 0, "id": 24}, {"y": 93, "x": 107, "z": 0, "id": 197}, {"y": 95, "x": 107, "z": 0, "id": 43}, {"y": 95, "x": 108, "z": 0, "id": 139}, {"y": 92, "x": 108, "z": 0, "id": 38}, {"y": 90, "x": 102, "z": 0, "id": 48}, {"y": 77, "x": 111, "z": 0, "id": 91}, {"y": 79, "x": 111, "z": 0, "id": 28}, {"y": 77, "x": 111, "z": 0, "id": 318}, {"y": 79, "x": 113, "z": 0, "id": 99}, {"y": 80, "x": 114, "z": 0, "id": 83}, {"y": 83, "x": 114, "z": 0, "id": 319}, {"y": 86, "x": 112, "z": 0, "id": 3}, {"y": 79, "x": 118, "z": 0, "id": 50}, {"y": 81, "x": 117, "z": 0, "id": 11}, {"y": 80, "x": 114, "z": 0, "id": 27}, {"y": 98, "x": 112, "z": 0, "id": 150}, {"y": 100, "x": 114, "z": 0, "id": 320}, {"y": 101, "x": 115, "z": 0, "id": 321}, {"y": 101, "x": 114, "z": 0, "id": 322}, {"y": 95, "x": 109, "z": 0, "id": 48}, {"y": 96, "x": 111, "z": 0, "id": 20}, {"y": 100, "x": 112, "z": 0, "id": 106}, {"y": 88, "x": 91, "z": 0, "id": 262}, {"y": 88, "x": 94, "z": 0, "id": 323}, {"y": 88, "x": 99, "z": 0, "id": 34}, {"y": 90, "x": 92, "z": 0, "id": 274}, {"y": 91, "x": 95, "z": 0, "id": 80}, {"y": 92, "x": 95, "z": 0, "id": 240}, {"y": 95, "x": 95, "z": 0, "id": 43}, {"y": 95, "x": 96, "z": 0, "id": 324}, {"y": 95, "x": 97, "z": 0, "id": 9}, {"y": 93, "x": 97, "z": 0, "id": 203}, {"y": 95, "x": 95, "z": 0, "id": 325}, {"y": 95, "x": 97, "z": 0, "id": 37}, {"y": 94, "x": 89, "z": 0, "id": 295}, {"y": 95, "x": 99, "z": 0, "id": 326}, {"y": 94, "x": 94, "z": 0, "id": 23}, {"y": 91, "x": 110, "z": 0, "id": 13}, {"y": 92, "x": 102, "z": 0, "id": 327}, {"y": 99, "x": 111, "z": 0, "id": 106}, {"y": 44, "x": 39, "z": 0, "id": 328}, {"y": 46, "x": 40, "z": 0, "id": 32}, {"y": 47, "x": 41, "z": 0, "id": 32}, {"y": 49, "x": 40, "z": 0, "id": 243}, {"y": 50, "x": 40, "z": 0, "id": 34}, {"y": 51, "x": 40, "z": 0, "id": 4}, {"y": 52, "x": 41, "z": 0, "id": 73}, {"y": 53, "x": 39, "z": 0, "id": 267}, {"y": 54, "x": 39, "z": 0, "id": 290}, {"y": 54, "x": 38, "z": 0, "id": 118}, {"y": 55, "x": 36, "z": 0, "id": 113}, {"y": 56, "x": 36, "z": 0, "id": 117}, {"y": 56, "x": 35, "z": 0, "id": 114}, {"y": 55, "x": 35, "z": 0, "id": 68}, {"y": 53, "x": 39, "z": 0, "id": 78}, {"y": 52, "x": 40, "z": 0, "id": 258}, {"y": 52, "x": 40, "z": 0, "id": 42}, {"y": 48, "x": 40, "z": 0, "id": 85}, {"y": 48, "x": 39, "z": 0, "id": 4}, {"y": 47, "x": 35, "z": 0, "id": 289}, {"y": 47, "x": 37, "z": 0, "id": 84}, {"y": 45, "x": 39, "z": 0, "id": 93}, {"y": 44, "x": 40, "z": 0, "id": 289}, {"y": 84, "x": 42, "z": 0, "id": 2}, {"y": 96, "x": 37, "z": 0, "id": 285}, {"y": 101, "x": 44, "z": 0, "id": 53}, {"y": 102, "x": 44, "z": 0, "id": 42}, {"y": 101, "x": 44, "z": 0, "id": 280}, {"y": 96, "x": 32, "z": 0, "id": 60}, {"y": 96, "x": 33, "z": 0, "id": 329}, {"y": 105, "x": 71, "z": 0, "id": 10}, {"y": 107, "x": 72, "z": 0, "id": 82}, {"y": 109, "x": 73, "z": 0, "id": 103}, {"y": 110, "x": 75, "z": 0, "id": 156}, {"y": 111, "x": 76, "z": 0, "id": 302}, {"y": 111, "x": 76, "z": 0, "id": 31}, {"y": 110, "x": 73, "z": 0, "id": 40}, {"y": 109, "x": 74, "z": 0, "id": 46}, {"y": 106, "x": 74, "z": 0, "id": 47}, {"y": 106, "x": 74, "z": 0, "id": 20}, {"y": 108, "x": 72, "z": 0, "id": 11}, {"y": 107, "x": 71, "z": 0, "id": 25}, {"y": 104, "x": 70, "z": 0, "id": 106}, {"y": 106, "x": 69, "z": 0, "id": 21}, {"y": 105, "x": 70, "z": 0, "id": 39}, {"y": 105, "x": 69, "z": 0, "id": 39}, {"y": 104, "x": 67, "z": 0, "id": 330}, {"y": 101, "x": 78, "z": 0, "id": 10}, {"y": 102, "x": 79, "z": 0, "id": 228}, {"y": 103, "x": 77, "z": 0, "id": 108}, {"y": 104, "x": 76, "z": 0, "id": 104}, {"y": 101, "x": 72, "z": 0, "id": 79}, {"y": 104, "x": 76, "z": 0, "id": 40}, {"y": 101, "x": 79, "z": 0, "id": 21}, {"y": 106, "x": 117, "z": 0, "id": 331}, {"y": 107, "x": 117, "z": 0, "id": 332}, {"y": 109, "x": 117, "z": 0, "id": 324}, {"y": 101, "x": 108, "z": 0, "id": 333}, {"y": 102, "x": 109, "z": 0, "id": 209}, {"y": 103, "x": 110, "z": 0, "id": 334}, {"y": 104, "x": 110, "z": 0, "id": 298}, {"y": 105, "x": 110, "z": 0, "id": 327}, {"y": 106, "x": 110, "z": 0, "id": 335}, {"y": 107, "x": 111, "z": 0, "id": 211}, {"y": 108, "x": 111, "z": 0, "id": 336}, {"y": 109, "x": 111, "z": 0, "id": 337}, {"y": 110, "x": 112, "z": 0, "id": 209}, {"y": 111, "x": 113, "z": 0, "id": 277}, {"y": 111, "x": 114, "z": 0, "id": 195}, {"y": 105, "x": 109, "z": 0, "id": 336}, {"y": 104, "x": 109, "z": 0, "id": 277}, {"y": 101, "x": 109, "z": 0, "id": 330}, {"y": 106, "x": 121, "z": 0, "id": 310}, {"y": 107, "x": 122, "z": 0, "id": 338}, {"y": 108, "x": 124, "z": 0, "id": 339}, {"y": 108, "x": 125, "z": 0, "id": 340}, {"y": 107, "x": 125, "z": 0, "id": 267}, {"y": 107, "x": 124, "z": 0, "id": 341}, {"y": 107, "x": 124, "z": 0, "id": 122}, {"y": 107, "x": 122, "z": 0, "id": 73}, {"y": 106, "x": 122, "z": 0, "id": 308}, {"y": 108, "x": 130, "z": 0, "id": 272}, {"y": 108, "x": 130, "z": 0, "id": 124}, {"y": 112, "x": 125, "z": 0, "id": 73}, {"y": 113, "x": 126, "z": 0, "id": 342}, {"y": 114, "x": 127, "z": 0, "id": 84}, {"y": 115, "x": 128, "z": 0, "id": 343}, {"y": 114, "x": 128, "z": 0, "id": 339}, {"y": 113, "x": 124, "z": 0, "id": 344}, {"y": 127, "x": 142, "z": 0, "id": 345}, {"y": 40, "x": 93, "z": 0, "id": 236}, {"y": 40, "x": 94, "z": 0, "id": 236}, {"y": 40, "x": 95, "z": 0, "id": 126}, {"y": 40, "x": 96, "z": 0, "id": 265}, {"y": 41, "x": 98, "z": 0, "id": 313}, {"y": 42, "x": 98, "z": 0, "id": 346}, {"y": 42, "x": 98, "z": 0, "id": 232}, {"y": 41, "x": 99, "z": 0, "id": 34}, {"y": 40, "x": 99, "z": 0, "id": 34}, {"y": 40, "x": 98, "z": 0, "id": 236}, {"y": 40, "x": 90, "z": 0, "id": 36}, {"y": 40, "x": 91, "z": 0, "id": 96}, {"y": 41, "x": 94, "z": 0, "id": 114}, {"y": 42, "x": 94, "z": 0, "id": 96}, {"y": 43, "x": 94, "z": 0, "id": 42}, {"y": 44, "x": 92, "z": 0, "id": 295}, {"y": 45, "x": 91, "z": 0, "id": 91}, {"y": 45, "x": 88, "z": 0, "id": 289}, {"y": 45, "x": 90, "z": 0, "id": 84}, {"y": 43, "x": 89, "z": 0, "id": 347}, {"y": 42, "x": 92, "z": 0, "id": 348}, {"y": 36, "x": 90, "z": 0, "id": 42}, {"y": 37, "x": 89, "z": 0, "id": 79}, {"y": 39, "x": 90, "z": 0, "id": 37}, {"y": 39, "x": 89, "z": 0, "id": 42}, {"y": 39, "x": 86, "z": 0, "id": 271}, {"y": 38, "x": 88, "z": 0, "id": 311}, {"y": 38, "x": 89, "z": 0, "id": 28}, {"y": 37, "x": 90, "z": 0, "id": 32}, {"y": 8, "x": 134, "z": 0, "id": 253}, {"y": 9, "x": 134, "z": 0, "id": 168}, {"y": 10, "x": 134, "z": 0, "id": 239}, {"y": 11, "x": 134, "z": 0, "id": 184}, {"y": 12, "x": 135, "z": 0, "id": 349}, {"y": 13, "x": 136, "z": 0, "id": 175}, {"y": 13, "x": 133, "z": 0, "id": 188}, {"y": 7, "x": 135, "z": 0, "id": 162}, {"y": 29, "x": 130, "z": 0, "id": 184}, {"y": 30, "x": 133, "z": 0, "id": 5}, {"y": 31, "x": 133, "z": 0, "id": 235}, {"y": 32, "x": 132, "z": 0, "id": 235}, {"y": 31, "x": 132, "z": 0, "id": 235}, {"y": 35, "x": 134, "z": 0, "id": 184}, {"y": 36, "x": 134, "z": 0, "id": 184}, {"y": 37, "x": 134, "z": 0, "id": 239}, {"y": 38, "x": 133, "z": 0, "id": 238}, {"y": 37, "x": 133, "z": 0, "id": 235}, {"y": 41, "x": 131, "z": 0, "id": 51}, {"y": 43, "x": 129, "z": 0, "id": 12}, {"y": 44, "x": 127, "z": 0, "id": 76}, {"y": 44, "x": 126, "z": 0, "id": 90}, {"y": 44, "x": 128, "z": 0, "id": 28}, {"y": 41, "x": 130, "z": 0, "id": 92}, {"y": 40, "x": 133, "z": 0, "id": 334}, {"y": 40, "x": 132, "z": 0, "id": 124}, {"y": 48, "x": 137, "z": 0, "id": 235}, {"y": 49, "x": 137, "z": 0, "id": 331}, {"y": 50, "x": 137, "z": 0, "id": 350}, {"y": 52, "x": 138, "z": 0, "id": 48}, {"y": 53, "x": 136, "z": 0, "id": 226}, {"y": 54, "x": 136, "z": 0, "id": 12}, {"y": 52, "x": 138, "z": 0, "id": 94}, {"y": 52, "x": 137, "z": 0, "id": 48}, {"y": 55, "x": 127, "z": 0, "id": 81}, {"y": 57, "x": 130, "z": 0, "id": 138}, {"y": 58, "x": 132, "z": 0, "id": 50}, {"y": 59, "x": 130, "z": 0, "id": 241}, {"y": 57, "x": 134, "z": 0, "id": 139}, {"y": 57, "x": 134, "z": 0, "id": 49}, {"y": 56, "x": 134, "z": 0, "id": 23}, {"y": 55, "x": 134, "z": 0, "id": 319}, {"y": 56, "x": 133, "z": 0, "id": 119}, {"y": 55, "x": 128, "z": 0, "id": 118}, {"y": 50, "x": 130, "z": 0, "id": 351}, {"y": 51, "x": 132, "z": 0, "id": 152}, {"y": 52, "x": 132, "z": 0, "id": 246}, {"y": 50, "x": 132, "z": 0, "id": 114}, {"y": 50, "x": 131, "z": 0, "id": 68}, {"y": 49, "x": 132, "z": 0, "id": 352}, {"y": 54, "x": 133, "z": 0, "id": 297}, {"y": 60, "x": 141, "z": 0, "id": 31}, {"y": 61, "x": 142, "z": 0, "id": 47}, {"y": 61, "x": 141, "z": 0, "id": 214}, {"y": 61, "x": 142, "z": 0, "id": 32}, {"y": 60, "x": 139, "z": 0, "id": 225}, {"y": 59, "x": 141, "z": 0, "id": 267}, {"y": 43, "x": 75, "z": 0, "id": 83}, {"y": 45, "x": 77, "z": 0, "id": 37}, {"y": 44, "x": 76, "z": 0, "id": 4}, {"y": 33, "x": 71, "z": 0, "id": 232}, {"y": 34, "x": 69, "z": 0, "id": 263}, {"y": 34, "x": 69, "z": 0, "id": 124}, {"y": 35, "x": 76, "z": 0, "id": 215}, {"y": 36, "x": 74, "z": 0, "id": 232}, {"y": 31, "x": 63, "z": 0, "id": 84}, {"y": 30, "x": 69, "z": 0, "id": 124}, {"y": 31, "x": 70, "z": 0, "id": 293}, {"y": 32, "x": 72, "z": 0, "id": 96}, {"y": 32, "x": 73, "z": 0, "id": 353}, {"y": 31, "x": 74, "z": 0, "id": 268}, {"y": 31, "x": 75, "z": 0, "id": 34}, {"y": 31, "x": 75, "z": 0, "id": 85}, {"y": 32, "x": 75, "z": 0, "id": 25}, {"y": 31, "x": 73, "z": 0, "id": 27}, {"y": 30, "x": 70, "z": 0, "id": 118}, {"y": 31, "x": 76, "z": 0, "id": 215}, {"y": 46, "x": 62, "z": 0, "id": 2}, {"y": 79, "x": 91, "z": 0, "id": 2}, {"y": 74, "x": 82, "z": 0, "id": 354}, {"y": 73, "x": 82, "z": 0, "id": 218}, {"y": 71, "x": 82, "z": 0, "id": 355}, {"y": 72, "x": 83, "z": 0, "id": 151}, {"y": 73, "x": 83, "z": 0, "id": 246}, {"y": 70, "x": 81, "z": 0, "id": 262}, {"y": 71, "x": 81, "z": 0, "id": 319}, {"y": 71, "x": 81, "z": 0, "id": 222}, {"y": 70, "x": 78, "z": 0, "id": 94}, {"y": 71, "x": 76, "z": 0, "id": 356}, {"y": 71, "x": 76, "z": 0, "id": 73}, {"y": 66, "x": 77, "z": 0, "id": 271}, {"y": 67, "x": 93, "z": 0, "id": 211}, {"y": 69, "x": 96, "z": 0, "id": 11}, {"y": 70, "x": 95, "z": 0, "id": 103}, {"y": 71, "x": 95, "z": 0, "id": 38}, {"y": 67, "x": 97, "z": 0, "id": 357}, {"y": 68, "x": 98, "z": 0, "id": 40}, {"y": 67, "x": 99, "z": 0, "id": 13}, {"y": 14, "x": 58, "z": 0, "id": 163}, {"y": 15, "x": 58, "z": 0, "id": 176}, {"y": 18, "x": 59, "z": 0, "id": 201}, {"y": 19, "x": 60, "z": 0, "id": 238}, {"y": 20, "x": 61, "z": 0, "id": 121}, {"y": 21, "x": 61, "z": 0, "id": 253}, {"y": 20, "x": 61, "z": 0, "id": 192}, {"y": 18, "x": 60, "z": 0, "id": 358}, {"y": 24, "x": 57, "z": 0, "id": 185}, {"y": 24, "x": 58, "z": 0, "id": 5}, {"y": 24, "x": 59, "z": 0, "id": 235}, {"y": 24, "x": 56, "z": 0, "id": 12}, {"y": 24, "x": 55, "z": 0, "id": 16}, {"y": 16, "x": 53, "z": 0, "id": 238}, {"y": 17, "x": 53, "z": 0, "id": 173}, {"y": 18, "x": 53, "z": 0, "id": 235}, {"y": 19, "x": 54, "z": 0, "id": 254}, {"y": 20, "x": 54, "z": 0, "id": 5}, {"y": 22, "x": 56, "z": 0, "id": 112}, {"y": 21, "x": 54, "z": 0, "id": 179}, {"y": 21, "x": 54, "z": 0, "id": 174}, {"y": 18, "x": 52, "z": 0, "id": 235}, {"y": 17, "x": 52, "z": 0, "id": 175}, {"y": 23, "x": 58, "z": 0, "id": 184}, {"y": 23, "x": 49, "z": 0, "id": 175}, {"y": 24, "x": 52, "z": 0, "id": 12}, {"y": 25, "x": 51, "z": 0, "id": 358}, {"y": 25, "x": 51, "z": 0, "id": 171}, {"y": 25, "x": 51, "z": 0, "id": 170}, {"y": 24, "x": 52, "z": 0, "id": 239}, {"y": 24, "x": 51, "z": 0, "id": 181}, {"y": 21, "x": 41, "z": 0, "id": 201}, {"y": 22, "x": 42, "z": 0, "id": 167}, {"y": 24, "x": 44, "z": 0, "id": 170}, {"y": 24, "x": 45, "z": 0, "id": 181}, {"y": 7, "x": 61, "z": 0, "id": 166}, {"y": 7, "x": 60, "z": 0, "id": 191}, {"y": 11, "x": 48, "z": 0, "id": 201}, {"y": 8, "x": 44, "z": 0, "id": 170}, {"y": 8, "x": 45, "z": 0, "id": 181}, {"y": 9, "x": 46, "z": 0, "id": 183}, {"y": 9, "x": 47, "z": 0, "id": 181}, {"y": 7, "x": 46, "z": 0, "id": 190}, {"y": 8, "x": 43, "z": 0, "id": 174}, {"y": 7, "x": 42, "z": 0, "id": 191}, {"y": 8, "x": 40, "z": 0, "id": 175}, {"y": 9, "x": 41, "z": 0, "id": 253}, {"y": 21, "x": 53, "z": 0, "id": 5}, {"y": 22, "x": 53, "z": 0, "id": 12}, {"y": 22, "x": 53, "z": 0, "id": 178}, {"y": 7, "x": 15, "z": 0, "id": 183}, {"y": 9, "x": 18, "z": 0, "id": 166}, {"y": 10, "x": 18, "z": 0, "id": 166}, {"y": 11, "x": 17, "z": 0, "id": 161}, {"y": 10, "x": 15, "z": 0, "id": 159}, {"y": 10, "x": 12, "z": 0, "id": 162}, {"y": 10, "x": 14, "z": 0, "id": 166}, {"y": 7, "x": 15, "z": 0, "id": 169}, {"y": 9, "x": 15, "z": 0, "id": 180}, {"y": 7, "x": 18, "z": 0, "id": 165}, {"y": 5, "x": 21, "z": 0, "id": 165}, {"y": 1, "x": 23, "z": 0, "id": 170}, {"y": 2, "x": 24, "z": 0, "id": 185}, {"y": 3, "x": 24, "z": 0, "id": 182}, {"y": 11, "x": 23, "z": 0, "id": 162}, {"y": 12, "x": 24, "z": 0, "id": 235}, {"y": 13, "x": 23, "z": 0, "id": 187}, {"y": 15, "x": 24, "z": 0, "id": 179}, {"y": 16, "x": 24, "z": 0, "id": 161}, {"y": 17, "x": 24, "z": 0, "id": 201}, {"y": 15, "x": 25, "z": 0, "id": 178}, {"y": 17, "x": 22, "z": 0, "id": 172}, {"y": 17, "x": 20, "z": 0, "id": 12}, {"y": 16, "x": 19, "z": 0, "id": 176}, {"y": 16, "x": 20, "z": 0, "id": 179}, {"y": 14, "x": 22, "z": 0, "id": 185}, {"y": 14, "x": 21, "z": 0, "id": 160}, {"y": 11, "x": 25, "z": 0, "id": 234}, {"y": 12, "x": 24, "z": 0, "id": 185}, {"y": 5, "x": 19, "z": 0, "id": 192}, {"y": 1, "x": 4, "z": 0, "id": 168}, {"y": 2, "x": 6, "z": 0, "id": 182}, {"y": 4, "x": 7, "z": 0, "id": 179}, {"y": 5, "x": 7, "z": 0, "id": 201}, {"y": 6, "x": 7, "z": 0, "id": 235}, {"y": 6, "x": 6, "z": 0, "id": 235}, {"y": 5, "x": 6, "z": 0, "id": 184}, {"y": 2, "x": 7, "z": 0, "id": 112}, {"y": 27, "x": 25, "z": 0, "id": 236}, {"y": 28, "x": 27, "z": 0, "id": 356}, {"y": 29, "x": 28, "z": 0, "id": 297}, {"y": 30, "x": 28, "z": 0, "id": 112}, {"y": 31, "x": 27, "z": 0, "id": 157}, {"y": 32, "x": 27, "z": 0, "id": 259}, {"y": 33, "x": 26, "z": 0, "id": 141}, {"y": 35, "x": 25, "z": 0, "id": 22}, {"y": 36, "x": 26, "z": 0, "id": 73}, {"y": 37, "x": 26, "z": 0, "id": 287}, {"y": 38, "x": 27, "z": 0, "id": 8}, {"y": 38, "x": 28, "z": 0, "id": 77}, {"y": 36, "x": 29, "z": 0, "id": 322}, {"y": 37, "x": 28, "z": 0, "id": 359}, {"y": 36, "x": 29, "z": 0, "id": 230}, {"y": 38, "x": 27, "z": 0, "id": 84}, {"y": 35, "x": 27, "z": 0, "id": 88}, {"y": 36, "x": 22, "z": 0, "id": 23}, {"y": 37, "x": 21, "z": 0, "id": 23}, {"y": 37, "x": 21, "z": 0, "id": 85}, {"y": 36, "x": 21, "z": 0, "id": 23}, {"y": 35, "x": 19, "z": 0, "id": 114}, {"y": 36, "x": 27, "z": 0, "id": 42}, {"y": 35, "x": 24, "z": 0, "id": 84}, {"y": 33, "x": 26, "z": 0, "id": 46}, {"y": 32, "x": 20, "z": 0, "id": 243}, {"y": 34, "x": 21, "z": 0, "id": 37}, {"y": 35, "x": 21, "z": 0, "id": 104}, {"y": 33, "x": 18, "z": 0, "id": 271}, {"y": 31, "x": 19, "z": 0, "id": 360}, {"y": 22, "x": 18, "z": 0, "id": 191}, {"y": 26, "x": 21, "z": 0, "id": 161}, {"y": 26, "x": 21, "z": 0, "id": 160}, {"y": 25, "x": 20, "z": 0, "id": 182}, {"y": 24, "x": 18, "z": 0, "id": 176}, {"y": 21, "x": 18, "z": 0, "id": 238}, {"y": 18, "x": 34, "z": 0, "id": 181}, {"y": 19, "x": 34, "z": 0, "id": 179}, {"y": 18, "x": 35, "z": 0, "id": 234}, {"y": 18, "x": 35, "z": 0, "id": 181}, {"y": 19, "x": 28, "z": 0, "id": 161}, {"y": 20, "x": 29, "z": 0, "id": 182}, {"y": 20, "x": 28, "z": 0, "id": 170}, {"y": 19, "x": 29, "z": 0, "id": 188}, {"y": 20, "x": 31, "z": 0, "id": 165}, {"y": 17, "x": 27, "z": 0, "id": 252}, {"y": 6, "x": 36, "z": 0, "id": 176}, {"y": 8, "x": 36, "z": 0, "id": 172}, {"y": 8, "x": 35, "z": 0, "id": 181}, {"y": 10, "x": 70, "z": 0, "id": 12}, {"y": 11, "x": 69, "z": 0, "id": 176}, {"y": 12, "x": 70, "z": 0, "id": 158}, {"y": 11, "x": 68, "z": 0, "id": 187}, {"y": 12, "x": 67, "z": 0, "id": 171}, {"y": 10, "x": 70, "z": 0, "id": 182}, {"y": 17, "x": 72, "z": 0, "id": 173}, {"y": 18, "x": 73, "z": 0, "id": 172}, {"y": 3, "x": 7, "z": 0, "id": 166}, {"y": 7, "x": 29, "z": 0, "id": 172}, {"y": 12, "x": 24, "z": 0, "id": 238}, {"y": 2, "x": 33, "z": 0, "id": 172}, {"y": 14, "x": 36, "z": 0, "id": 185}, {"y": 16, "x": 35, "z": 0, "id": 166}, {"y": 12, "x": 35, "z": 0, "id": 185}, {"y": 9, "x": 45, "z": 0, "id": 187}, {"y": 8, "x": 42, "z": 0, "id": 239}, {"y": 12, "x": 40, "z": 0, "id": 185}, {"y": 1, "x": 44, "z": 0, "id": 239}, {"y": 1, "x": 46, "z": 0, "id": 161}, {"y": 5, "x": 48, "z": 0, "id": 161}, {"y": 2, "x": 46, "z": 0, "id": 252}, {"y": 3, "x": 46, "z": 0, "id": 252}, {"y": 3, "x": 45, "z": 0, "id": 168}, {"y": 10, "x": 54, "z": 0, "id": 187}, {"y": 16, "x": 51, "z": 0, "id": 169}, {"y": 23, "x": 53, "z": 0, "id": 172}, {"y": 24, "x": 55, "z": 0, "id": 166}, {"y": 23, "x": 52, "z": 0, "id": 160}, {"y": 24, "x": 54, "z": 0, "id": 178}, {"y": 24, "x": 57, "z": 0, "id": 168}, {"y": 22, "x": 56, "z": 0, "id": 252}, {"y": 22, "x": 55, "z": 0, "id": 168}, {"y": 18, "x": 52, "z": 0, "id": 168}, {"y": 18, "x": 53, "z": 0, "id": 252}, {"y": 15, "x": 51, "z": 0, "id": 233}, {"y": 24, "x": 56, "z": 0, "id": 361}, {"y": 24, "x": 60, "z": 0, "id": 362}, {"y": 24, "x": 60, "z": 0, "id": 161}, {"y": 6, "x": 59, "z": 0, "id": 174}, {"y": 20, "x": 51, "z": 0, "id": 252}, {"y": 24, "x": 58, "z": 0, "id": 168}, {"y": 21, "x": 55, "z": 0, "id": 252}, {"y": 21, "x": 55, "z": 0, "id": 363}, {"y": 8, "x": 67, "z": 0, "id": 160}, {"y": 6, "x": 67, "z": 0, "id": 161}, {"y": 8, "x": 70, "z": 0, "id": 160}, {"y": 8, "x": 66, "z": 0, "id": 161}, {"y": 9, "x": 68, "z": 0, "id": 179}, {"y": 10, "x": 70, "z": 0, "id": 159}, {"y": 15, "x": 78, "z": 0, "id": 179}, {"y": 9, "x": 75, "z": 0, "id": 160}, {"y": 19, "x": 80, "z": 0, "id": 172}, {"y": 20, "x": 78, "z": 0, "id": 201}, {"y": 14, "x": 68, "z": 0, "id": 166}, {"y": 25, "x": 66, "z": 0, "id": 160}, {"y": 26, "x": 65, "z": 0, "id": 252}, {"y": 26, "x": 66, "z": 0, "id": 168}, {"y": 25, "x": 64, "z": 0, "id": 252}, {"y": 8, "x": 83, "z": 0, "id": 178}, {"y": 8, "x": 85, "z": 0, "id": 160}, {"y": 7, "x": 85, "z": 0, "id": 178}, {"y": 11, "x": 86, "z": 0, "id": 160}, {"y": 16, "x": 93, "z": 0, "id": 190}, {"y": 8, "x": 84, "z": 0, "id": 252}, {"y": 9, "x": 90, "z": 0, "id": 168}, {"y": 25, "x": 93, "z": 0, "id": 179}, {"y": 26, "x": 92, "z": 0, "id": 160}, {"y": 26, "x": 89, "z": 0, "id": 168}, {"y": 21, "x": 94, "z": 0, "id": 178}, {"y": 21, "x": 96, "z": 0, "id": 160}, {"y": 20, "x": 93, "z": 0, "id": 252}, {"y": 23, "x": 97, "z": 0, "id": 179}, {"y": 16, "x": 99, "z": 0, "id": 159}, {"y": 8, "x": 101, "z": 0, "id": 159}, {"y": 9, "x": 103, "z": 0, "id": 178}, {"y": 10, "x": 102, "z": 0, "id": 174}, {"y": 8, "x": 102, "z": 0, "id": 168}, {"y": 11, "x": 103, "z": 0, "id": 159}, {"y": 24, "x": 86, "z": 0, "id": 159}, {"y": 26, "x": 85, "z": 0, "id": 160}, {"y": 22, "x": 85, "z": 0, "id": 363}, {"y": 20, "x": 83, "z": 0, "id": 361}, {"y": 14, "x": 105, "z": 0, "id": 179}, {"y": 11, "x": 105, "z": 0, "id": 178}, {"y": 8, "x": 104, "z": 0, "id": 187}, {"y": 13, "x": 97, "z": 0, "id": 254}, {"y": 13, "x": 101, "z": 0, "id": 165}, {"y": 22, "x": 105, "z": 0, "id": 172}, {"y": 21, "x": 102, "z": 0, "id": 252}, {"y": 12, "x": 105, "z": 0, "id": 174}, {"y": 9, "x": 121, "z": 0, "id": 179}, {"y": 9, "x": 120, "z": 0, "id": 178}, {"y": 5, "x": 119, "z": 0, "id": 159}, {"y": 10, "x": 122, "z": 0, "id": 178}, {"y": 7, "x": 129, "z": 0, "id": 160}, {"y": 6, "x": 131, "z": 0, "id": 178}, {"y": 8, "x": 130, "z": 0, "id": 168}, {"y": 7, "x": 130, "z": 0, "id": 252}, {"y": 6, "x": 126, "z": 0, "id": 252}, {"y": 6, "x": 125, "z": 0, "id": 168}, {"y": 10, "x": 124, "z": 0, "id": 161}, {"y": 10, "x": 121, "z": 0, "id": 161}, {"y": 13, "x": 124, "z": 0, "id": 174}, {"y": 15, "x": 124, "z": 0, "id": 179}, {"y": 15, "x": 127, "z": 0, "id": 160}, {"y": 15, "x": 126, "z": 0, "id": 170}, {"y": 15, "x": 125, "z": 0, "id": 165}, {"y": 15, "x": 124, "z": 0, "id": 178}, {"y": 14, "x": 122, "z": 0, "id": 178}, {"y": 12, "x": 128, "z": 0, "id": 181}, {"y": 13, "x": 130, "z": 0, "id": 171}, {"y": 11, "x": 126, "z": 0, "id": 189}, {"y": 15, "x": 125, "z": 0, "id": 188}, {"y": 7, "x": 125, "z": 0, "id": 185}, {"y": 18, "x": 131, "z": 0, "id": 160}, {"y": 18, "x": 130, "z": 0, "id": 178}, {"y": 19, "x": 132, "z": 0, "id": 178}, {"y": 15, "x": 132, "z": 0, "id": 252}, {"y": 15, "x": 130, "z": 0, "id": 168}, {"y": 17, "x": 132, "z": 0, "id": 252}, {"y": 15, "x": 136, "z": 0, "id": 252}, {"y": 0, "x": 55, "z": 0, "id": 188}, {"y": 1, "x": 57, "z": 0, "id": 171}, {"y": 3, "x": 58, "z": 0, "id": 179}, {"y": 3, "x": 56, "z": 0, "id": 189}, {"y": 3, "x": 56, "z": 0, "id": 191}, {"y": 2, "x": 59, "z": 0, "id": 234}, {"y": 2, "x": 65, "z": 0, "id": 165}, {"y": 1, "x": 64, "z": 0, "id": 180}, {"y": 1, "x": 60, "z": 0, "id": 163}, {"y": 1, "x": 60, "z": 0, "id": 187}, {"y": 3, "x": 57, "z": 0, "id": 179}, {"y": 2, "x": 59, "z": 0, "id": 181}, {"y": 0, "x": 58, "z": 0, "id": 165}, {"y": 1, "x": 65, "z": 0, "id": 12}, {"y": 1, "x": 69, "z": 0, "id": 180}, {"y": 2, "x": 72, "z": 0, "id": 170}, {"y": 1, "x": 73, "z": 0, "id": 180}, {"y": 2, "x": 69, "z": 0, "id": 181}, {"y": 2, "x": 61, "z": 0, "id": 168}, {"y": 3, "x": 63, "z": 0, "id": 183}, {"y": 3, "x": 62, "z": 0, "id": 349}, {"y": 3, "x": 69, "z": 0, "id": 162}, {"y": 3, "x": 70, "z": 0, "id": 168}, {"y": 11, "x": 74, "z": 0, "id": 192}, {"y": 12, "x": 75, "z": 0, "id": 174}, {"y": 12, "x": 72, "z": 0, "id": 186}, {"y": 18, "x": 74, "z": 0, "id": 175}, {"y": 19, "x": 74, "z": 0, "id": 299}, {"y": 20, "x": 74, "z": 0, "id": 252}, {"y": 22, "x": 75, "z": 0, "id": 183}, {"y": 20, "x": 73, "z": 0, "id": 162}, {"y": 18, "x": 75, "z": 0, "id": 253}, {"y": 26, "x": 75, "z": 0, "id": 183}, {"y": 24, "x": 73, "z": 0, "id": 299}, {"y": 128, "x": 102, "z": 0, "id": 302}, {"y": 129, "x": 100, "z": 0, "id": 94}, {"y": 130, "x": 99, "z": 0, "id": 267}, {"y": 130, "x": 99, "z": 0, "id": 334}, {"y": 130, "x": 98, "z": 0, "id": 144}, {"y": 129, "x": 101, "z": 0, "id": 364}, {"y": 132, "x": 106, "z": 0, "id": 36}, {"y": 133, "x": 106, "z": 0, "id": 48}, {"y": 134, "x": 105, "z": 0, "id": 52}, {"y": 134, "x": 104, "z": 0, "id": 104}, {"y": 135, "x": 102, "z": 0, "id": 115}, {"y": 136, "x": 100, "z": 0, "id": 203}, {"y": 135, "x": 102, "z": 0, "id": 104}, {"y": 133, "x": 104, "z": 0, "id": 146}, {"y": 132, "x": 102, "z": 0, "id": 203}, {"y": 128, "x": 104, "z": 0, "id": 365}, {"y": 131, "x": 97, "z": 0, "id": 274}, {"y": 132, "x": 97, "z": 0, "id": 317}, {"y": 133, "x": 98, "z": 0, "id": 80}, {"y": 134, "x": 98, "z": 0, "id": 249}, {"y": 135, "x": 98, "z": 0, "id": 75}, {"y": 136, "x": 98, "z": 0, "id": 366}, {"y": 134, "x": 98, "z": 0, "id": 115}, {"y": 132, "x": 98, "z": 0, "id": 12}, {"y": 138, "x": 96, "z": 0, "id": 267}, {"y": 139, "x": 95, "z": 0, "id": 235}, {"y": 141, "x": 96, "z": 0, "id": 12}, {"y": 142, "x": 96, "z": 0, "id": 80}, {"y": 141, "x": 96, "z": 0, "id": 77}, {"y": 141, "x": 96, "z": 0, "id": 112}, {"y": 140, "x": 96, "z": 0, "id": 51}, {"y": 139, "x": 94, "z": 0, "id": 90}, {"y": 140, "x": 102, "z": 0, "id": 113}, {"y": 141, "x": 103, "z": 0, "id": 274}, {"y": 143, "x": 104, "z": 0, "id": 31}, {"y": 144, "x": 102, "z": 0, "id": 223}, {"y": 145, "x": 100, "z": 0, "id": 103}, {"y": 143, "x": 99, "z": 0, "id": 94}, {"y": 142, "x": 101, "z": 0, "id": 367}, {"y": 143, "x": 101, "z": 0, "id": 196}, {"y": 141, "x": 102, "z": 0, "id": 241}, {"y": 122, "x": 124, "z": 0, "id": 272}, {"y": 124, "x": 126, "z": 0, "id": 368}, {"y": 124, "x": 128, "z": 0, "id": 83}, {"y": 124, "x": 129, "z": 0, "id": 261}, {"y": 127, "x": 137, "z": 0, "id": 369}, {"y": 128, "x": 139, "z": 0, "id": 370}, {"y": 129, "x": 140, "z": 0, "id": 371}, {"y": 126, "x": 137, "z": 0, "id": 4}, {"y": 125, "x": 137, "z": 0, "id": 368}, {"y": 124, "x": 130, "z": 0, "id": 55}, {"y": 124, "x": 129, "z": 0, "id": 101}, {"y": 122, "x": 126, "z": 0, "id": 372}, {"y": 123, "x": 116, "z": 0, "id": 308}, {"y": 124, "x": 117, "z": 0, "id": 267}, {"y": 124, "x": 119, "z": 0, "id": 4}, {"y": 124, "x": 121, "z": 0, "id": 92}, {"y": 124, "x": 123, "z": 0, "id": 368}, {"y": 124, "x": 125, "z": 0, "id": 369}, {"y": 124, "x": 125, "z": 0, "id": 373}, {"y": 124, "x": 122, "z": 0, "id": 4}, {"y": 126, "x": 135, "z": 0, "id": 266}, {"y": 106, "x": 128, "z": 0, "id": 310}, {"y": 107, "x": 129, "z": 0, "id": 343}, {"y": 107, "x": 130, "z": 0, "id": 374}, {"y": 106, "x": 129, "z": 0, "id": 369}, {"y": 49, "x": 126, "z": 0, "id": 235}, {"y": 50, "x": 127, "z": 0, "id": 89}, {"y": 51, "x": 128, "z": 0, "id": 128}, {"y": 52, "x": 127, "z": 0, "id": 272}, {"y": 52, "x": 127, "z": 0, "id": 244}, {"y": 52, "x": 127, "z": 0, "id": 375}, {"y": 49, "x": 128, "z": 0, "id": 224}, {"y": 52, "x": 131, "z": 0, "id": 209}, {"y": 53, "x": 131, "z": 0, "id": 271}, {"y": 54, "x": 131, "z": 0, "id": 376}, {"y": 26, "x": 144, "z": 0, "id": 234}, {"y": 28, "x": 145, "z": 0, "id": 170}, {"y": 30, "x": 144, "z": 0, "id": 169}, {"y": 33, "x": 146, "z": 0, "id": 165}, {"y": 35, "x": 147, "z": 0, "id": 165}, {"y": 36, "x": 145, "z": 0, "id": 169}, {"y": 33, "x": 143, "z": 0, "id": 7}, {"y": 33, "x": 145, "z": 0, "id": 180}, {"y": 33, "x": 143, "z": 0, "id": 166}, {"y": 29, "x": 144, "z": 0, "id": 12}, {"y": 28, "x": 142, "z": 0, "id": 238}, {"y": 28, "x": 138, "z": 0, "id": 252}, {"y": 29, "x": 139, "z": 0, "id": 175}, {"y": 30, "x": 139, "z": 0, "id": 173}, {"y": 31, "x": 140, "z": 0, "id": 252}, {"y": 32, "x": 140, "z": 0, "id": 184}, {"y": 23, "x": 135, "z": 0, "id": 173}, {"y": 27, "x": 137, "z": 0, "id": 192}, {"y": 29, "x": 133, "z": 0, "id": 186}, {"y": 93, "x": 28, "z": 0, "id": 377}, {"y": 97, "x": 41, "z": 0, "id": 378}, {"y": 96, "x": 32, "z": 0, "id": 62}, {"y": 97, "x": 36, "z": 0, "id": 379}, {"y": 96, "x": 38, "z": 0, "id": 280}, {"y": 100, "x": 48, "z": 0, "id": 379}, {"y": 102, "x": 49, "z": 0, "id": 66}, {"y": 105, "x": 60, "z": 0, "id": 280}, {"y": 106, "x": 57, "z": 0, "id": 66}, {"y": 105, "x": 62, "z": 0, "id": 380}, {"y": 114, "x": 74, "z": 0, "id": 379}, {"y": 112, "x": 70, "z": 0, "id": 280}, {"y": 111, "x": 68, "z": 0, "id": 279}, {"y": 107, "x": 68, "z": 0, "id": 280}, {"y": 109, "x": 66, "z": 0, "id": 62}, {"y": 103, "x": 62, "z": 0, "id": 279}, {"y": 103, "x": 53, "z": 0, "id": 378}, {"y": 103, "x": 55, "z": 0, "id": 26}, {"y": 108, "x": 62, "z": 0, "id": 42}, {"y": 108, "x": 60, "z": 0, "id": 59}, {"y": 107, "x": 59, "z": 0, "id": 381}, {"y": 107, "x": 60, "z": 0, "id": 382}, {"y": 106, "x": 59, "z": 0, "id": 383}, {"y": 107, "x": 58, "z": 0, "id": 381}, {"y": 105, "x": 60, "z": 0, "id": 60}, {"y": 99, "x": 42, "z": 0, "id": 66}, {"y": 101, "x": 35, "z": 0, "id": 379}, {"y": 102, "x": 47, "z": 0, "id": 384}, {"y": 93, "x": 21, "z": 0, "id": 385}, {"y": 93, "x": 23, "z": 0, "id": 279}, {"y": 93, "x": 22, "z": 0, "id": 386}, {"y": 111, "x": 66, "z": 0, "id": 280}, {"y": 112, "x": 62, "z": 0, "id": 379}, {"y": 112, "x": 58, "z": 0, "id": 60}, {"y": 112, "x": 57, "z": 0, "id": 280}, {"y": 113, "x": 64, "z": 0, "id": 66}, {"y": 114, "x": 62, "z": 0, "id": 279}, {"y": 121, "x": 60, "z": 0, "id": 379}, {"y": 120, "x": 62, "z": 0, "id": 62}, {"y": 118, "x": 60, "z": 0, "id": 279}, {"y": 117, "x": 62, "z": 0, "id": 280}, {"y": 118, "x": 68, "z": 0, "id": 279}, {"y": 117, "x": 71, "z": 0, "id": 379}, {"y": 117, "x": 67, "z": 0, "id": 380}, {"y": 121, "x": 59, "z": 0, "id": 378}, {"y": 123, "x": 58, "z": 0, "id": 280}, {"y": 112, "x": 55, "z": 0, "id": 379}, {"y": 112, "x": 57, "z": 0, "id": 72}, {"y": 110, "x": 51, "z": 0, "id": 279}, {"y": 112, "x": 51, "z": 0, "id": 280}, {"y": 113, "x": 50, "z": 0, "id": 379}, {"y": 115, "x": 49, "z": 0, "id": 62}, {"y": 117, "x": 54, "z": 0, "id": 279}, {"y": 122, "x": 50, "z": 0, "id": 279}, {"y": 126, "x": 52, "z": 0, "id": 280}, {"y": 127, "x": 52, "z": 0, "id": 279}, {"y": 129, "x": 58, "z": 0, "id": 379}, {"y": 127, "x": 56, "z": 0, "id": 279}, {"y": 129, "x": 56, "z": 0, "id": 60}, {"y": 129, "x": 60, "z": 0, "id": 379}, {"y": 127, "x": 61, "z": 0, "id": 280}, {"y": 130, "x": 55, "z": 0, "id": 279}, {"y": 132, "x": 54, "z": 0, "id": 62}, {"y": 132, "x": 51, "z": 0, "id": 387}, {"y": 132, "x": 59, "z": 0, "id": 379}, {"y": 132, "x": 58, "z": 0, "id": 380}, {"y": 133, "x": 61, "z": 0, "id": 379}, {"y": 135, "x": 59, "z": 0, "id": 62}, {"y": 127, "x": 63, "z": 0, "id": 279}, {"y": 132, "x": 51, "z": 0, "id": 379}, {"y": 134, "x": 53, "z": 0, "id": 62}, {"y": 126, "x": 62, "z": 0, "id": 222}, {"y": 122, "x": 61, "z": 0, "id": 103}, {"y": 123, "x": 63, "z": 0, "id": 149}, {"y": 128, "x": 65, "z": 0, "id": 103}, {"y": 127, "x": 67, "z": 0, "id": 54}, {"y": 133, "x": 57, "z": 0, "id": 222}, {"y": 130, "x": 53, "z": 0, "id": 149}, {"y": 126, "x": 53, "z": 0, "id": 103}, {"y": 123, "x": 49, "z": 0, "id": 103}, {"y": 135, "x": 61, "z": 0, "id": 146}, {"y": 134, "x": 70, "z": 0, "id": 222}, {"y": 131, "x": 69, "z": 0, "id": 103}, {"y": 132, "x": 65, "z": 0, "id": 54}, {"y": 127, "x": 62, "z": 0, "id": 386}, {"y": 123, "x": 62, "z": 0, "id": 384}, {"y": 132, "x": 55, "z": 0, "id": 388}, {"y": 135, "x": 59, "z": 0, "id": 389}, {"y": 132, "x": 73, "z": 0, "id": 390}, {"y": 105, "x": 44, "z": 0, "id": 62}, {"y": 111, "x": 46, "z": 0, "id": 280}, {"y": 111, "x": 45, "z": 0, "id": 62}, {"y": 109, "x": 45, "z": 0, "id": 60}, {"y": 112, "x": 42, "z": 0, "id": 380}, {"y": 109, "x": 47, "z": 0, "id": 280}, {"y": 108, "x": 48, "z": 0, "id": 385}, {"y": 107, "x": 48, "z": 0, "id": 60}, {"y": 107, "x": 48, "z": 0, "id": 54}, {"y": 108, "x": 46, "z": 0, "id": 103}, {"y": 109, "x": 51, "z": 0, "id": 146}, {"y": 106, "x": 40, "z": 0, "id": 103}, {"y": 108, "x": 40, "z": 0, "id": 103}, {"y": 108, "x": 38, "z": 0, "id": 54}, {"y": 107, "x": 36, "z": 0, "id": 146}, {"y": 109, "x": 37, "z": 0, "id": 103}, {"y": 109, "x": 36, "z": 0, "id": 283}, {"y": 107, "x": 36, "z": 0, "id": 391}, {"y": 107, "x": 37, "z": 0, "id": 286}, {"y": 109, "x": 37, "z": 0, "id": 286}, {"y": 108, "x": 36, "z": 0, "id": 379}, {"y": 106, "x": 38, "z": 0, "id": 285}, {"y": 107, "x": 40, "z": 0, "id": 391}, {"y": 108, "x": 39, "z": 0, "id": 392}, {"y": 104, "x": 53, "z": 0, "id": 72}, {"y": 105, "x": 54, "z": 0, "id": 381}, {"y": 118, "x": 53, "z": 0, "id": 103}, {"y": 118, "x": 51, "z": 0, "id": 103}, {"y": 117, "x": 55, "z": 0, "id": 103}, {"y": 116, "x": 54, "z": 0, "id": 149}, {"y": 113, "x": 51, "z": 0, "id": 103}, {"y": 112, "x": 54, "z": 0, "id": 326}, {"y": 112, "x": 56, "z": 0, "id": 103}, {"y": 108, "x": 57, "z": 0, "id": 103}, {"y": 108, "x": 60, "z": 0, "id": 103}, {"y": 113, "x": 45, "z": 0, "id": 393}, {"y": 112, "x": 53, "z": 0, "id": 394}, {"y": 119, "x": 52, "z": 0, "id": 60}, {"y": 113, "x": 58, "z": 0, "id": 284}, {"y": 112, "x": 59, "z": 0, "id": 392}, {"y": 111, "x": 55, "z": 0, "id": 285}, {"y": 120, "x": 52, "z": 0, "id": 382}, {"y": 120, "x": 51, "z": 0, "id": 381}, {"y": 120, "x": 53, "z": 0, "id": 381}, {"y": 123, "x": 53, "z": 0, "id": 379}, {"y": 111, "x": 67, "z": 0, "id": 388}, {"y": 127, "x": 50, "z": 0, "id": 62}, {"y": 128, "x": 52, "z": 0, "id": 54}, {"y": 127, "x": 49, "z": 0, "id": 103}, {"y": 126, "x": 48, "z": 0, "id": 222}, {"y": 132, "x": 48, "z": 0, "id": 103}, {"y": 135, "x": 57, "z": 0, "id": 222}, {"y": 135, "x": 55, "z": 0, "id": 326}, {"y": 134, "x": 53, "z": 0, "id": 103}, {"y": 127, "x": 57, "z": 0, "id": 54}, {"y": 120, "x": 48, "z": 0, "id": 279}, {"y": 121, "x": 48, "z": 0, "id": 381}, {"y": 120, "x": 47, "z": 0, "id": 379}, {"y": 117, "x": 44, "z": 0, "id": 279}, {"y": 118, "x": 44, "z": 0, "id": 280}, {"y": 119, "x": 44, "z": 0, "id": 103}, {"y": 118, "x": 47, "z": 0, "id": 326}, {"y": 121, "x": 47, "z": 0, "id": 222}, {"y": 119, "x": 47, "z": 0, "id": 103}, {"y": 121, "x": 57, "z": 0, "id": 103}, {"y": 115, "x": 46, "z": 0, "id": 149}, {"y": 114, "x": 48, "z": 0, "id": 367}, {"y": 119, "x": 67, "z": 0, "id": 395}, {"y": 121, "x": 70, "z": 0, "id": 279}, {"y": 119, "x": 70, "z": 0, "id": 62}, {"y": 123, "x": 70, "z": 0, "id": 379}, {"y": 124, "x": 71, "z": 0, "id": 279}, {"y": 126, "x": 72, "z": 0, "id": 379}, {"y": 127, "x": 69, "z": 0, "id": 279}, {"y": 126, "x": 71, "z": 0, "id": 380}, {"y": 123, "x": 68, "z": 0, "id": 387}, {"y": 123, "x": 70, "z": 0, "id": 103}, {"y": 123, "x": 69, "z": 0, "id": 396}, {"y": 123, "x": 71, "z": 0, "id": 284}, {"y": 128, "x": 72, "z": 0, "id": 54}, {"y": 127, "x": 71, "z": 0, "id": 326}, {"y": 127, "x": 71, "z": 0, "id": 397}, {"y": 129, "x": 74, "z": 0, "id": 279}, {"y": 130, "x": 73, "z": 0, "id": 62}, {"y": 123, "x": 72, "z": 0, "id": 280}, {"y": 133, "x": 62, "z": 0, "id": 280}, {"y": 135, "x": 63, "z": 0, "id": 279}, {"y": 135, "x": 63, "z": 0, "id": 380}, {"y": 130, "x": 74, "z": 0, "id": 103}, {"y": 129, "x": 71, "z": 0, "id": 149}, {"y": 130, "x": 71, "z": 0, "id": 326}, {"y": 130, "x": 69, "z": 0, "id": 367}, {"y": 132, "x": 70, "z": 0, "id": 103}, {"y": 131, "x": 75, "z": 0, "id": 54}, {"y": 133, "x": 75, "z": 0, "id": 196}, {"y": 132, "x": 76, "z": 0, "id": 279}, {"y": 134, "x": 76, "z": 0, "id": 280}, {"y": 135, "x": 74, "z": 0, "id": 279}, {"y": 137, "x": 67, "z": 0, "id": 62}, {"y": 138, "x": 77, "z": 0, "id": 379}, {"y": 139, "x": 73, "z": 0, "id": 62}, {"y": 137, "x": 79, "z": 0, "id": 280}, {"y": 134, "x": 78, "z": 0, "id": 279}, {"y": 133, "x": 78, "z": 0, "id": 146}, {"y": 138, "x": 79, "z": 0, "id": 103}, {"y": 130, "x": 73, "z": 0, "id": 383}, {"y": 129, "x": 72, "z": 0, "id": 387}, {"y": 129, "x": 72, "z": 0, "id": 60}, {"y": 138, "x": 77, "z": 0, "id": 380}, {"y": 138, "x": 73, "z": 0, "id": 60}, {"y": 138, "x": 79, "z": 0, "id": 387}, {"y": 140, "x": 81, "z": 0, "id": 62}, {"y": 141, "x": 78, "z": 0, "id": 379}, {"y": 137, "x": 81, "z": 0, "id": 103}, {"y": 139, "x": 70, "z": 0, "id": 222}, {"y": 134, "x": 79, "z": 0, "id": 103}, {"y": 133, "x": 80, "z": 0, "id": 367}, {"y": 131, "x": 77, "z": 0, "id": 326}, {"y": 137, "x": 63, "z": 0, "id": 103}, {"y": 136, "x": 60, "z": 0, "id": 326}, {"y": 136, "x": 57, "z": 0, "id": 54}, {"y": 135, "x": 52, "z": 0, "id": 54}, {"y": 131, "x": 45, "z": 0, "id": 326}, {"y": 131, "x": 48, "z": 0, "id": 222}, {"y": 137, "x": 83, "z": 0, "id": 279}, {"y": 139, "x": 84, "z": 0, "id": 62}, {"y": 140, "x": 86, "z": 0, "id": 379}, {"y": 140, "x": 82, "z": 0, "id": 394}, {"y": 140, "x": 84, "z": 0, "id": 149}, {"y": 141, "x": 80, "z": 0, "id": 196}, {"y": 136, "x": 81, "z": 0, "id": 382}, {"y": 133, "x": 80, "z": 0, "id": 397}, {"y": 132, "x": 79, "z": 0, "id": 329}, {"y": 141, "x": 86, "z": 0, "id": 279}, {"y": 141, "x": 86, "z": 0, "id": 387}, {"y": 137, "x": 87, "z": 0, "id": 50}, {"y": 139, "x": 88, "z": 0, "id": 10}, {"y": 140, "x": 88, "z": 0, "id": 273}, {"y": 140, "x": 87, "z": 0, "id": 398}, {"y": 137, "x": 87, "z": 0, "id": 331}, {"y": 137, "x": 86, "z": 0, "id": 385}, {"y": 140, "x": 90, "z": 0, "id": 211}, {"y": 138, "x": 99, "z": 0, "id": 92}, {"y": 140, "x": 99, "z": 0, "id": 32}, {"y": 141, "x": 98, "z": 0, "id": 311}, {"y": 139, "x": 100, "z": 0, "id": 36}, {"y": 137, "x": 104, "z": 0, "id": 246}, {"y": 138, "x": 104, "z": 0, "id": 194}, {"y": 139, "x": 103, "z": 0, "id": 350}, {"y": 138, "x": 103, "z": 0, "id": 337}, {"y": 134, "x": 96, "z": 0, "id": 258}, {"y": 135, "x": 95, "z": 0, "id": 399}, {"y": 136, "x": 94, "z": 0, "id": 322}, {"y": 136, "x": 93, "z": 0, "id": 376}, {"y": 136, "x": 93, "z": 0, "id": 247}, {"y": 137, "x": 91, "z": 0, "id": 400}, {"y": 137, "x": 91, "z": 0, "id": 94}, {"y": 135, "x": 94, "z": 0, "id": 109}, {"y": 145, "x": 96, "z": 0, "id": 379}, {"y": 145, "x": 92, "z": 0, "id": 62}, {"y": 141, "x": 91, "z": 0, "id": 279}, {"y": 141, "x": 87, "z": 0, "id": 60}, {"y": 141, "x": 89, "z": 0, "id": 66}, {"y": 141, "x": 85, "z": 0, "id": 54}, {"y": 145, "x": 89, "z": 0, "id": 103}, {"y": 144, "x": 88, "z": 0, "id": 196}, {"y": 145, "x": 87, "z": 0, "id": 54}, {"y": 143, "x": 84, "z": 0, "id": 326}, {"y": 127, "x": 139, "z": 0, "id": 350}, {"y": 125, "x": 135, "z": 0, "id": 401}, {"y": 124, "x": 124, "z": 0, "id": 402}, {"y": 124, "x": 120, "z": 0, "id": 403}, {"y": 124, "x": 117, "z": 0, "id": 404}, {"y": 124, "x": 128, "z": 0, "id": 291}, {"y": 123, "x": 116, "z": 0, "id": 405}, {"y": 123, "x": 115, "z": 0, "id": 406}, {"y": 124, "x": 121, "z": 0, "id": 407}, {"y": 123, "x": 126, "z": 0, "id": 327}, {"y": 126, "x": 138, "z": 0, "id": 333}, {"y": 127, "x": 139, "z": 0, "id": 341}, {"y": 125, "x": 138, "z": 0, "id": 408}, {"y": 123, "x": 124, "z": 0, "id": 251}, {"y": 127, "x": 135, "z": 0, "id": 409}, {"y": 125, "x": 140, "z": 0, "id": 217}, {"y": 107, "x": 129, "z": 0, "id": 403}, {"y": 108, "x": 130, "z": 0, "id": 401}, {"y": 107, "x": 130, "z": 0, "id": 405}, {"y": 108, "x": 129, "z": 0, "id": 350}, {"y": 107, "x": 130, "z": 0, "id": 333}, {"y": 107, "x": 132, "z": 0, "id": 408}, {"y": 106, "x": 128, "z": 0, "id": 410}, {"y": 108, "x": 131, "z": 0, "id": 409}, {"y": 109, "x": 131, "z": 0, "id": 251}, {"y": 107, "x": 129, "z": 0, "id": 251}, {"y": 109, "x": 131, "z": 0, "id": 410}, {"y": 108, "x": 125, "z": 0, "id": 404}, {"y": 107, "x": 122, "z": 0, "id": 411}, {"y": 107, "x": 123, "z": 0, "id": 375}, {"y": 107, "x": 129, "z": 0, "id": 412}, {"y": 107, "x": 129, "z": 0, "id": 413}, {"y": 113, "x": 125, "z": 0, "id": 403}, {"y": 115, "x": 128, "z": 0, "id": 98}, {"y": 114, "x": 126, "z": 0, "id": 405}, {"y": 113, "x": 126, "z": 0, "id": 406}, {"y": 113, "x": 124, "z": 0, "id": 251}, {"y": 114, "x": 129, "z": 0, "id": 408}, {"y": 114, "x": 124, "z": 0, "id": 217}, {"y": 113, "x": 127, "z": 0, "id": 408}, {"y": 115, "x": 126, "z": 0, "id": 251}, {"y": 116, "x": 129, "z": 0, "id": 408}, {"y": 116, "x": 127, "z": 0, "id": 217}, {"y": 107, "x": 121, "z": 0, "id": 251}, {"y": 107, "x": 125, "z": 0, "id": 408}, {"y": 109, "x": 125, "z": 0, "id": 408}, {"y": 109, "x": 123, "z": 0, "id": 251}, {"y": 109, "x": 122, "z": 0, "id": 414}, {"y": 109, "x": 127, "z": 0, "id": 408}, {"y": 109, "x": 129, "z": 0, "id": 251}, {"y": 106, "x": 126, "z": 0, "id": 410}, {"y": 106, "x": 123, "z": 0, "id": 251}, {"y": 112, "x": 128, "z": 0, "id": 408}, {"y": 111, "x": 126, "z": 0, "id": 217}, {"y": 36, "x": 24, "z": 0, "id": 18}, {"y": 28, "x": 24, "z": 0, "id": 12}, {"y": 28, "x": 23, "z": 0, "id": 187}, {"y": 23, "x": 29, "z": 0, "id": 168}, {"y": 25, "x": 32, "z": 0, "id": 179}, {"y": 24, "x": 35, "z": 0, "id": 170}, {"y": 25, "x": 35, "z": 0, "id": 185}, {"y": 26, "x": 38, "z": 0, "id": 28}, {"y": 26, "x": 39, "z": 0, "id": 6}, {"y": 26, "x": 37, "z": 0, "id": 112}, {"y": 26, "x": 42, "z": 0, "id": 162}, {"y": 27, "x": 43, "z": 0, "id": 247}, {"y": 27, "x": 44, "z": 0, "id": 120}, {"y": 28, "x": 45, "z": 0, "id": 227}, {"y": 28, "x": 46, "z": 0, "id": 209}, {"y": 28, "x": 47, "z": 0, "id": 77}, {"y": 28, "x": 50, "z": 0, "id": 55}, {"y": 28, "x": 50, "z": 0, "id": 28}, {"y": 28, "x": 49, "z": 0, "id": 28}, {"y": 28, "x": 49, "z": 0, "id": 101}, {"y": 27, "x": 44, "z": 0, "id": 23}, {"y": 28, "x": 55, "z": 0, "id": 170}, {"y": 27, "x": 54, "z": 0, "id": 183}, {"y": 27, "x": 56, "z": 0, "id": 181}, {"y": 26, "x": 46, "z": 0, "id": 192}, {"y": 27, "x": 46, "z": 0, "id": 183}, {"y": 27, "x": 57, "z": 0, "id": 169}, {"y": 28, "x": 62, "z": 0, "id": 165}, {"y": 26, "x": 64, "z": 0, "id": 170}, {"y": 24, "x": 61, "z": 0, "id": 183}, {"y": 23, "x": 58, "z": 0, "id": 183}, {"y": 23, "x": 60, "z": 0, "id": 171}, {"y": 18, "x": 50, "z": 0, "id": 166}, {"y": 18, "x": 43, "z": 0, "id": 172}, {"y": 15, "x": 42, "z": 0, "id": 169}, {"y": 12, "x": 52, "z": 0, "id": 185}, {"y": 16, "x": 58, "z": 0, "id": 173}, {"y": 17, "x": 58, "z": 0, "id": 299}, {"y": 19, "x": 59, "z": 0, "id": 186}, {"y": 10, "x": 62, "z": 0, "id": 358}, {"y": 11, "x": 63, "z": 0, "id": 187}, {"y": 12, "x": 63, "z": 0, "id": 253}, {"y": 13, "x": 63, "z": 0, "id": 252}, {"y": 14, "x": 63, "z": 0, "id": 252}, {"y": 15, "x": 64, "z": 0, "id": 235}, {"y": 16, "x": 64, "z": 0, "id": 187}, {"y": 18, "x": 66, "z": 0, "id": 161}, {"y": 19, "x": 66, "z": 0, "id": 121}, {"y": 20, "x": 65, "z": 0, "id": 358}, {"y": 21, "x": 64, "z": 0, "id": 184}, {"y": 20, "x": 64, "z": 0, "id": 235}, {"y": 19, "x": 66, "z": 0, "id": 306}, {"y": 19, "x": 64, "z": 0, "id": 186}, {"y": 19, "x": 66, "z": 0, "id": 183}, {"y": 17, "x": 63, "z": 0, "id": 201}, {"y": 15, "x": 64, "z": 0, "id": 112}, {"y": 13, "x": 62, "z": 0, "id": 201}, {"y": 12, "x": 62, "z": 0, "id": 299}, {"y": 10, "x": 57, "z": 0, "id": 164}, {"y": 19, "x": 69, "z": 0, "id": 167}, {"y": 20, "x": 70, "z": 0, "id": 175}, {"y": 19, "x": 68, "z": 0, "id": 188}, {"y": 20, "x": 67, "z": 0, "id": 186}, {"y": 24, "x": 71, "z": 0, "id": 168}, {"y": 25, "x": 70, "z": 0, "id": 121}, {"y": 28, "x": 67, "z": 0, "id": 167}, {"y": 28, "x": 74, "z": 0, "id": 193}, {"y": 29, "x": 74, "z": 0, "id": 239}, {"y": 29, "x": 73, "z": 0, "id": 233}, {"y": 6, "x": 44, "z": 0, "id": 181}, {"y": 6, "x": 45, "z": 0, "id": 112}, {"y": 6, "x": 42, "z": 0, "id": 162}, {"y": 5, "x": 45, "z": 0, "id": 184}, {"y": 7, "x": 44, "z": 0, "id": 171}, {"y": 6, "x": 45, "z": 0, "id": 178}, {"y": 4, "x": 41, "z": 0, "id": 252}, {"y": 6, "x": 31, "z": 0, "id": 168}, {"y": 7, "x": 35, "z": 0, "id": 159}, {"y": 11, "x": 27, "z": 0, "id": 175}, {"y": 12, "x": 27, "z": 0, "id": 184}, {"y": 13, "x": 27, "z": 0, "id": 173}, {"y": 14, "x": 27, "z": 0, "id": 201}, {"y": 15, "x": 26, "z": 0, "id": 239}, {"y": 16, "x": 27, "z": 0, "id": 164}, {"y": 13, "x": 26, "z": 0, "id": 186}, {"y": 12, "x": 26, "z": 0, "id": 175}, {"y": 15, "x": 37, "z": 0, "id": 176}, {"y": 16, "x": 37, "z": 0, "id": 233}, {"y": 18, "x": 37, "z": 0, "id": 160}, {"y": 19, "x": 35, "z": 0, "id": 233}, {"y": 9, "x": 36, "z": 0, "id": 173}, {"y": 10, "x": 37, "z": 0, "id": 181}, {"y": 11, "x": 36, "z": 0, "id": 184}, {"y": 12, "x": 35, "z": 0, "id": 189}, {"y": 10, "x": 35, "z": 0, "id": 186}, {"y": 8, "x": 20, "z": 0, "id": 415}, {"y": 9, "x": 25, "z": 0, "id": 172}, {"y": 9, "x": 28, "z": 0, "id": 166}, {"y": 10, "x": 28, "z": 0, "id": 163}, {"y": 11, "x": 22, "z": 0, "id": 167}, {"y": 21, "x": 29, "z": 0, "id": 416}, {"y": 9, "x": 26, "z": 0, "id": 417}, {"y": 16, "x": 15, "z": 0, "id": 418}, {"y": 25, "x": 34, "z": 0, "id": 169}, {"y": 24, "x": 38, "z": 0, "id": 16}, {"y": 22, "x": 32, "z": 0, "id": 252}, {"y": 21, "x": 34, "z": 0, "id": 174}, {"y": 21, "x": 34, "z": 0, "id": 168}, {"y": 19, "x": 35, "z": 0, "id": 252}, {"y": 21, "x": 33, "z": 0, "id": 168}, {"y": 21, "x": 31, "z": 0, "id": 161}, {"y": 21, "x": 30, "z": 0, "id": 179}, {"y": 20, "x": 26, "z": 0, "id": 177}, {"y": 21, "x": 26, "z": 0, "id": 158}, {"y": 21, "x": 23, "z": 0, "id": 173}, {"y": 20, "x": 24, "z": 0, "id": 191}, {"y": 26, "x": 24, "z": 0, "id": 36}, {"y": 23, "x": 23, "z": 0, "id": 201}, {"y": 24, "x": 24, "z": 0, "id": 201}, {"y": 24, "x": 25, "z": 0, "id": 176}, {"y": 23, "x": 26, "z": 0, "id": 182}, {"y": 24, "x": 25, "z": 0, "id": 182}, {"y": 24, "x": 30, "z": 0, "id": 419}, {"y": 25, "x": 27, "z": 0, "id": 254}, {"y": 26, "x": 28, "z": 0, "id": 294}, {"y": 25, "x": 28, "z": 0, "id": 163}, {"y": 25, "x": 30, "z": 0, "id": 254}, {"y": 26, "x": 33, "z": 0, "id": 166}, {"y": 26, "x": 34, "z": 0, "id": 85}, {"y": 26, "x": 34, "z": 0, "id": 101}, {"y": 26, "x": 35, "z": 0, "id": 364}, {"y": 26, "x": 34, "z": 0, "id": 420}, {"y": 26, "x": 32, "z": 0, "id": 334}, {"y": 25, "x": 35, "z": 0, "id": 9}, {"y": 25, "x": 28, "z": 0, "id": 421}, {"y": 26, "x": 23, "z": 0, "id": 170}, {"y": 25, "x": 25, "z": 0, "id": 180}, {"y": 24, "x": 27, "z": 0, "id": 178}, {"y": 22, "x": 22, "z": 0, "id": 252}, {"y": 24, "x": 22, "z": 0, "id": 161}, {"y": 24, "x": 36, "z": 0, "id": 235}, {"y": 23, "x": 37, "z": 0, "id": 178}, {"y": 25, "x": 37, "z": 0, "id": 160}, {"y": 23, "x": 38, "z": 0, "id": 172}, {"y": 26, "x": 39, "z": 0, "id": 172}, {"y": 27, "x": 41, "z": 0, "id": 177}, {"y": 3, "x": 39, "z": 0, "id": 422}, {"y": 11, "x": 15, "z": 0, "id": 423}, {"y": 5, "x": 18, "z": 0, "id": 166}, {"y": 6, "x": 16, "z": 0, "id": 160}, {"y": 5, "x": 24, "z": 0, "id": 160}, {"y": 2, "x": 13, "z": 0, "id": 166}, {"y": 7, "x": 14, "z": 0, "id": 166}, {"y": 2, "x": 28, "z": 0, "id": 190}, {"y": 6, "x": 20, "z": 0, "id": 172}, {"y": 10, "x": 12, "z": 0, "id": 424}, {"y": 9, "x": 22, "z": 0, "id": 177}, {"y": 10, "x": 21, "z": 0, "id": 238}, {"y": 10, "x": 20, "z": 0, "id": 167}, {"y": 5, "x": 47, "z": 0, "id": 419}, {"y": 11, "x": 55, "z": 0, "id": 416}, {"y": 10, "x": 44, "z": 0, "id": 418}, {"y": 11, "x": 48, "z": 0, "id": 358}, {"y": 7, "x": 59, "z": 0, "id": 422}, {"y": 7, "x": 55, "z": 0, "id": 162}, {"y": 8, "x": 57, "z": 0, "id": 178}, {"y": 8, "x": 57, "z": 0, "id": 12}, {"y": 6, "x": 48, "z": 0, "id": 188}, {"y": 7, "x": 50, "z": 0, "id": 12}, {"y": 8, "x": 48, "z": 0, "id": 253}, {"y": 7, "x": 50, "z": 0, "id": 159}, {"y": 6, "x": 53, "z": 0, "id": 168}, {"y": 3, "x": 50, "z": 0, "id": 159}, {"y": 0, "x": 53, "z": 0, "id": 170}, {"y": 1, "x": 52, "z": 0, "id": 171}, {"y": 2, "x": 51, "z": 0, "id": 183}, {"y": 6, "x": 62, "z": 0, "id": 170}, {"y": 7, "x": 62, "z": 0, "id": 299}, {"y": 8, "x": 62, "z": 0, "id": 166}, {"y": 9, "x": 62, "z": 0, "id": 184}, {"y": 9, "x": 61, "z": 0, "id": 184}, {"y": 6, "x": 63, "z": 0, "id": 182}, {"y": 6, "x": 63, "z": 0, "id": 170}, {"y": 4, "x": 64, "z": 0, "id": 168}, {"y": 2, "x": 61, "z": 0, "id": 415}, {"y": 2, "x": 68, "z": 0, "id": 425}, {"y": 8, "x": 70, "z": 0, "id": 426}, {"y": 17, "x": 98, "z": 0, "id": 416}, {"y": 11, "x": 91, "z": 0, "id": 418}, {"y": 10, "x": 97, "z": 0, "id": 180}, {"y": 22, "x": 92, "z": 0, "id": 166}, {"y": 24, "x": 93, "z": 0, "id": 172}, {"y": 26, "x": 91, "z": 0, "id": 172}, {"y": 25, "x": 94, "z": 0, "id": 166}, {"y": 20, "x": 92, "z": 0, "id": 166}, {"y": 23, "x": 90, "z": 0, "id": 185}, {"y": 22, "x": 90, "z": 0, "id": 172}, {"y": 23, "x": 86, "z": 0, "id": 172}, {"y": 12, "x": 79, "z": 0, "id": 425}, {"y": 6, "x": 80, "z": 0, "id": 422}, {"y": 1, "x": 81, "z": 0, "id": 254}, {"y": 3, "x": 83, "z": 0, "id": 181}, {"y": 5, "x": 85, "z": 0, "id": 181}, {"y": 5, "x": 84, "z": 0, "id": 181}, {"y": 4, "x": 85, "z": 0, "id": 185}, {"y": 6, "x": 97, "z": 0, "id": 252}, {"y": 8, "x": 98, "z": 0, "id": 185}, {"y": 11, "x": 93, "z": 0, "id": 163}, {"y": 12, "x": 94, "z": 0, "id": 181}, {"y": 13, "x": 95, "z": 0, "id": 252}, {"y": 14, "x": 95, "z": 0, "id": 179}, {"y": 15, "x": 94, "z": 0, "id": 234}, {"y": 14, "x": 94, "z": 0, "id": 178}, {"y": 16, "x": 94, "z": 0, "id": 172}, {"y": 23, "x": 83, "z": 0, "id": 201}, {"y": 24, "x": 84, "z": 0, "id": 172}, {"y": 26, "x": 82, "z": 0, "id": 419}, {"y": 24, "x": 96, "z": 0, "id": 427}, {"y": 29, "x": 96, "z": 0, "id": 179}, {"y": 30, "x": 96, "z": 0, "id": 178}, {"y": 29, "x": 97, "z": 0, "id": 160}, {"y": 29, "x": 95, "z": 0, "id": 166}, {"y": 29, "x": 98, "z": 0, "id": 169}, {"y": 11, "x": 107, "z": 0, "id": 428}, {"y": 14, "x": 103, "z": 0, "id": 429}, {"y": 10, "x": 97, "z": 0, "id": 415}, {"y": 10, "x": 96, "z": 0, "id": 159}, {"y": 11, "x": 105, "z": 0, "id": 179}, {"y": 12, "x": 103, "z": 0, "id": 159}, {"y": 12, "x": 102, "z": 0, "id": 252}, {"y": 12, "x": 105, "z": 0, "id": 168}, {"y": 31, "x": 102, "z": 0, "id": 160}, {"y": 32, "x": 102, "z": 0, "id": 179}, {"y": 34, "x": 100, "z": 0, "id": 161}, {"y": 26, "x": 92, "z": 0, "id": 167}, {"y": 3, "x": 133, "z": 0, "id": 416}, {"y": 3, "x": 139, "z": 0, "id": 180}, {"y": 4, "x": 141, "z": 0, "id": 112}, {"y": 4, "x": 140, "z": 0, "id": 180}, {"y": 10, "x": 144, "z": 0, "id": 418}, {"y": 7, "x": 126, "z": 0, "id": 419}, {"y": 1, "x": 120, "z": 0, "id": 167}, {"y": 3, "x": 120, "z": 0, "id": 185}, {"y": 4, "x": 119, "z": 0, "id": 182}, {"y": 4, "x": 135, "z": 0, "id": 168}, {"y": 5, "x": 134, "z": 0, "id": 192}, {"y": 6, "x": 134, "z": 0, "id": 239}, {"y": 6, "x": 134, "z": 0, "id": 178}, {"y": 9, "x": 125, "z": 0, "id": 168}, {"y": 10, "x": 126, "z": 0, "id": 167}, {"y": 11, "x": 119, "z": 0, "id": 238}, {"y": 12, "x": 120, "z": 0, "id": 201}, {"y": 13, "x": 122, "z": 0, "id": 178}, {"y": 12, "x": 122, "z": 0, "id": 164}, {"y": 12, "x": 119, "z": 0, "id": 173}, {"y": 19, "x": 125, "z": 0, "id": 425}, {"y": 19, "x": 144, "z": 0, "id": 170}, {"y": 23, "x": 145, "z": 0, "id": 180}, {"y": 32, "x": 133, "z": 0, "id": 179}, {"y": 31, "x": 139, "z": 0, "id": 159}, {"y": 30, "x": 138, "z": 0, "id": 166}, {"y": 32, "x": 137, "z": 0, "id": 172}, {"y": 32, "x": 139, "z": 0, "id": 166}, {"y": 33, "x": 135, "z": 0, "id": 172}, {"y": 34, "x": 135, "z": 0, "id": 166}, {"y": 31, "x": 136, "z": 0, "id": 160}, {"y": 30, "x": 130, "z": 0, "id": 168}, {"y": 31, "x": 130, "z": 0, "id": 168}, {"y": 29, "x": 130, "z": 0, "id": 252}, {"y": 33, "x": 138, "z": 0, "id": 166}, {"y": 35, "x": 136, "z": 0, "id": 18}, {"y": 23, "x": 119, "z": 0, "id": 419}, {"y": 32, "x": 121, "z": 0, "id": 418}, {"y": 22, "x": 106, "z": 0, "id": 422}, {"y": 31, "x": 111, "z": 0, "id": 165}, {"y": 31, "x": 109, "z": 0, "id": 425}, {"y": 21, "x": 137, "z": 0, "id": 415}, {"y": 21, "x": 138, "z": 0, "id": 166}, {"y": 22, "x": 137, "z": 0, "id": 188}, {"y": 23, "x": 138, "z": 0, "id": 235}, {"y": 24, "x": 138, "z": 0, "id": 186}, {"y": 25, "x": 138, "z": 0, "id": 234}, {"y": 25, "x": 138, "z": 0, "id": 12}, {"y": 23, "x": 137, "z": 0, "id": 233}, {"y": 22, "x": 138, "z": 0, "id": 253}, {"y": 25, "x": 138, "z": 0, "id": 172}, {"y": 24, "x": 134, "z": 0, "id": 166}, {"y": 24, "x": 132, "z": 0, "id": 427}, {"y": 22, "x": 131, "z": 0, "id": 190}, {"y": 40, "x": 123, "z": 0, "id": 179}, {"y": 38, "x": 122, "z": 0, "id": 178}, {"y": 37, "x": 121, "z": 0, "id": 161}, {"y": 35, "x": 119, "z": 0, "id": 168}, {"y": 43, "x": 119, "z": 0, "id": 160}, {"y": 40, "x": 117, "z": 0, "id": 160}, {"y": 37, "x": 117, "z": 0, "id": 178}, {"y": 36, "x": 114, "z": 0, "id": 159}, {"y": 35, "x": 112, "z": 0, "id": 166}, {"y": 35, "x": 109, "z": 0, "id": 172}, {"y": 36, "x": 111, "z": 0, "id": 166}, {"y": 35, "x": 135, "z": 0, "id": 185}, {"y": 34, "x": 133, "z": 0, "id": 238}, {"y": 34, "x": 132, "z": 0, "id": 201}, {"y": 34, "x": 130, "z": 0, "id": 201}, {"y": 37, "x": 132, "z": 0, "id": 169}, {"y": 35, "x": 131, "z": 0, "id": 201}, {"y": 39, "x": 132, "z": 0, "id": 201}, {"y": 33, "x": 131, "z": 0, "id": 238}, {"y": 34, "x": 122, "z": 0, "id": 189}, {"y": 35, "x": 124, "z": 0, "id": 170}, {"y": 36, "x": 124, "z": 0, "id": 161}, {"y": 37, "x": 125, "z": 0, "id": 6}, {"y": 36, "x": 126, "z": 0, "id": 170}, {"y": 47, "x": 116, "z": 0, "id": 166}, {"y": 46, "x": 120, "z": 0, "id": 172}, {"y": 43, "x": 118, "z": 0, "id": 161}, {"y": 44, "x": 121, "z": 0, "id": 174}, {"y": 44, "x": 120, "z": 0, "id": 161}, {"y": 39, "x": 143, "z": 0, "id": 245}, {"y": 39, "x": 140, "z": 0, "id": 18}, {"y": 39, "x": 124, "z": 0, "id": 175}, {"y": 38, "x": 123, "z": 0, "id": 189}, {"y": 41, "x": 120, "z": 0, "id": 189}, {"y": 41, "x": 124, "z": 0, "id": 189}, {"y": 13, "x": 129, "z": 0, "id": 430}, {"y": 27, "x": 57, "z": 0, "id": 431}, {"y": 28, "x": 56, "z": 0, "id": 181}, {"y": 29, "x": 56, "z": 0, "id": 53}, {"y": 30, "x": 60, "z": 0, "id": 259}, {"y": 7, "x": 38, "z": 0, "id": 432}, {"y": 8, "x": 36, "z": 0, "id": 433}, {"y": 10, "x": 66, "z": 0, "id": 430}, {"y": 18, "x": 74, "z": 0, "id": 416}, {"y": 23, "x": 19, "z": 0, "id": 174}, {"y": 24, "x": 19, "z": 0, "id": 5}, {"y": 23, "x": 20, "z": 0, "id": 5}, {"y": 23, "x": 20, "z": 0, "id": 177}, {"y": 24, "x": 20, "z": 0, "id": 179}, {"y": 25, "x": 49, "z": 0, "id": 159}, {"y": 29, "x": 84, "z": 0, "id": 434}, {"y": 20, "x": 131, "z": 0, "id": 435}, {"y": 48, "x": 128, "z": 0, "id": 436}, {"y": 57, "x": 132, "z": 0, "id": 357}, {"y": 54, "x": 131, "z": 0, "id": 215}, {"y": 56, "x": 128, "z": 0, "id": 437}, {"y": 73, "x": 120, "z": 0, "id": 2}, {"y": 82, "x": 115, "z": 0, "id": 25}, {"y": 81, "x": 117, "z": 0, "id": 18}, {"y": 67, "x": 112, "z": 0, "id": 19}, {"y": 61, "x": 121, "z": 0, "id": 438}, {"y": 55, "x": 113, "z": 0, "id": 419}, {"y": 55, "x": 120, "z": 0, "id": 439}, {"y": 55, "x": 123, "z": 0, "id": 348}, {"y": 57, "x": 122, "z": 0, "id": 4}, {"y": 58, "x": 122, "z": 0, "id": 129}, {"y": 57, "x": 121, "z": 0, "id": 152}, {"y": 58, "x": 120, "z": 0, "id": 123}, {"y": 59, "x": 121, "z": 0, "id": 313}, {"y": 56, "x": 106, "z": 0, "id": 141}, {"y": 57, "x": 106, "z": 0, "id": 144}, {"y": 58, "x": 106, "z": 0, "id": 113}, {"y": 58, "x": 105, "z": 0, "id": 184}, {"y": 71, "x": 124, "z": 0, "id": 424}, {"y": 86, "x": 112, "z": 0, "id": 440}, {"y": 84, "x": 113, "z": 0, "id": 22}, {"y": 85, "x": 113, "z": 0, "id": 47}, {"y": 85, "x": 114, "z": 0, "id": 196}, {"y": 85, "x": 113, "z": 0, "id": 441}, {"y": 84, "x": 112, "z": 0, "id": 366}, {"y": 86, "x": 113, "z": 0, "id": 44}, {"y": 90, "x": 111, "z": 0, "id": 235}, {"y": 88, "x": 111, "z": 0, "id": 184}, {"y": 92, "x": 109, "z": 0, "id": 12}, {"y": 91, "x": 110, "z": 0, "id": 442}, {"y": 79, "x": 109, "z": 0, "id": 443}, {"y": 62, "x": 108, "z": 0, "id": 271}, {"y": 64, "x": 110, "z": 0, "id": 84}, {"y": 64, "x": 112, "z": 0, "id": 73}, {"y": 64, "x": 111, "z": 0, "id": 56}, {"y": 65, "x": 110, "z": 0, "id": 268}, {"y": 65, "x": 111, "z": 0, "id": 259}, {"y": 65, "x": 112, "z": 0, "id": 232}, {"y": 60, "x": 123, "z": 0, "id": 53}, {"y": 59, "x": 123, "z": 0, "id": 27}, {"y": 65, "x": 126, "z": 0, "id": 18}, {"y": 63, "x": 125, "z": 0, "id": 78}, {"y": 64, "x": 123, "z": 0, "id": 205}, {"y": 66, "x": 123, "z": 0, "id": 249}, {"y": 67, "x": 123, "z": 0, "id": 111}, {"y": 63, "x": 127, "z": 0, "id": 358}, {"y": 63, "x": 117, "z": 0, "id": 86}, {"y": 64, "x": 118, "z": 0, "id": 93}, {"y": 67, "x": 120, "z": 0, "id": 3}, {"y": 64, "x": 121, "z": 0, "id": 313}, {"y": 65, "x": 116, "z": 0, "id": 241}, {"y": 64, "x": 116, "z": 0, "id": 298}, {"y": 63, "x": 118, "z": 0, "id": 219}, {"y": 59, "x": 117, "z": 0, "id": 266}, {"y": 60, "x": 117, "z": 0, "id": 152}, {"y": 62, "x": 111, "z": 0, "id": 124}, {"y": 59, "x": 118, "z": 0, "id": 215}, {"y": 61, "x": 116, "z": 0, "id": 42}, {"y": 62, "x": 116, "z": 0, "id": 358}, {"y": 63, "x": 115, "z": 0, "id": 231}, {"y": 64, "x": 114, "z": 0, "id": 265}, {"y": 63, "x": 115, "z": 0, "id": 291}, {"y": 62, "x": 116, "z": 0, "id": 53}, {"y": 63, "x": 115, "z": 0, "id": 402}, {"y": 62, "x": 114, "z": 0, "id": 107}, {"y": 63, "x": 114, "z": 0, "id": 27}, {"y": 61, "x": 116, "z": 0, "id": 236}, {"y": 61, "x": 114, "z": 0, "id": 92}, {"y": 76, "x": 116, "z": 0, "id": 92}, {"y": 77, "x": 117, "z": 0, "id": 53}, {"y": 79, "x": 117, "z": 0, "id": 13}, {"y": 78, "x": 116, "z": 0, "id": 444}, {"y": 78, "x": 115, "z": 0, "id": 28}, {"y": 76, "x": 117, "z": 0, "id": 356}, {"y": 71, "x": 79, "z": 0, "id": 18}, {"y": 68, "x": 86, "z": 0, "id": 445}, {"y": 83, "x": 77, "z": 0, "id": 446}, {"y": 70, "x": 99, "z": 0, "id": 447}, {"y": 78, "x": 98, "z": 0, "id": 437}, {"y": 78, "x": 77, "z": 0, "id": 448}, {"y": 83, "x": 76, "z": 0, "id": 156}, {"y": 69, "x": 78, "z": 0, "id": 124}, {"y": 68, "x": 82, "z": 0, "id": 449}, {"y": 71, "x": 76, "z": 0, "id": 7}, {"y": 68, "x": 79, "z": 0, "id": 235}, {"y": 68, "x": 82, "z": 0, "id": 184}, {"y": 83, "x": 96, "z": 0, "id": 443}, {"y": 91, "x": 102, "z": 0, "id": 450}, {"y": 86, "x": 97, "z": 0, "id": 32}, {"y": 87, "x": 97, "z": 0, "id": 202}, {"y": 89, "x": 98, "z": 0, "id": 51}, {"y": 89, "x": 96, "z": 0, "id": 316}, {"y": 87, "x": 97, "z": 0, "id": 47}, {"y": 86, "x": 98, "z": 0, "id": 146}, {"y": 83, "x": 85, "z": 0, "id": 118}, {"y": 85, "x": 86, "z": 0, "id": 22}, {"y": 86, "x": 85, "z": 0, "id": 73}, {"y": 87, "x": 85, "z": 0, "id": 88}, {"y": 88, "x": 85, "z": 0, "id": 202}, {"y": 88, "x": 84, "z": 0, "id": 235}, {"y": 87, "x": 85, "z": 0, "id": 144}, {"y": 87, "x": 85, "z": 0, "id": 137}, {"y": 86, "x": 85, "z": 0, "id": 222}, {"y": 84, "x": 84, "z": 0, "id": 261}, {"y": 51, "x": 61, "z": 0, "id": 436}, {"y": 51, "x": 70, "z": 0, "id": 19}, {"y": 57, "x": 61, "z": 0, "id": 438}, {"y": 37, "x": 73, "z": 0, "id": 451}, {"y": 52, "x": 61, "z": 0, "id": 109}, {"y": 55, "x": 51, "z": 0, "id": 18}, {"y": 57, "x": 59, "z": 0, "id": 452}, {"y": 52, "x": 57, "z": 0, "id": 437}, {"y": 61, "x": 41, "z": 0, "id": 451}, {"y": 63, "x": 43, "z": 0, "id": 106}, {"y": 62, "x": 58, "z": 0, "id": 422}, {"y": 42, "x": 41, "z": 0, "id": 451}, {"y": 71, "x": 42, "z": 0, "id": 127}, {"y": 52, "x": 38, "z": 0, "id": 436}, {"y": 52, "x": 37, "z": 0, "id": 32}, {"y": 51, "x": 38, "z": 0, "id": 37}, {"y": 51, "x": 35, "z": 0, "id": 35}, {"y": 42, "x": 52, "z": 0, "id": 197}, {"y": 39, "x": 52, "z": 0, "id": 453}, {"y": 41, "x": 43, "z": 0, "id": 453}, {"y": 38, "x": 45, "z": 0, "id": 120}, {"y": 68, "x": 71, "z": 0, "id": 440}, {"y": 66, "x": 63, "z": 0, "id": 259}, {"y": 68, "x": 63, "z": 0, "id": 451}, {"y": 59, "x": 66, "z": 0, "id": 109}, {"y": 61, "x": 68, "z": 0, "id": 454}, {"y": 86, "x": 67, "z": 0, "id": 26}, {"y": 86, "x": 64, "z": 0, "id": 455}, {"y": 84, "x": 64, "z": 0, "id": 453}, {"y": 81, "x": 69, "z": 0, "id": 197}, {"y": 87, "x": 55, "z": 0, "id": 438}, {"y": 87, "x": 50, "z": 0, "id": 18}, {"y": 86, "x": 49, "z": 0, "id": 32}, {"y": 86, "x": 51, "z": 0, "id": 30}, {"y": 88, "x": 48, "z": 0, "id": 240}, {"y": 87, "x": 52, "z": 0, "id": 37}, {"y": 89, "x": 49, "z": 0, "id": 156}, {"y": 93, "x": 63, "z": 0, "id": 456}, {"y": 96, "x": 81, "z": 0, "id": 422}, {"y": 97, "x": 86, "z": 0, "id": 330}, {"y": 42, "x": 82, "z": 0, "id": 348}, {"y": 41, "x": 77, "z": 0, "id": 86}, {"y": 45, "x": 79, "z": 0, "id": 409}, {"y": 83, "x": 93, "z": 0, "id": 39}, {"y": 83, "x": 86, "z": 0, "id": 90}, {"y": 84, "x": 81, "z": 0, "id": 13}, {"y": 85, "x": 81, "z": 0, "id": 48}, {"y": 87, "x": 81, "z": 0, "id": 6}, {"y": 78, "x": 81, "z": 0, "id": 103}, {"y": 97, "x": 34, "z": 0, "id": 386}, {"y": 105, "x": 52, "z": 0, "id": 70}, {"y": 103, "x": 35, "z": 0, "id": 390}, {"y": 132, "x": 100, "z": 0, "id": 18}, {"y": 130, "x": 107, "z": 0, "id": 424}, {"y": 129, "x": 106, "z": 0, "id": 271}, {"y": 129, "x": 105, "z": 0, "id": 321}, {"y": 129, "x": 105, "z": 0, "id": 244}, {"y": 129, "x": 106, "z": 0, "id": 457}, {"y": 131, "x": 98, "z": 0, "id": 251}, {"y": 130, "x": 100, "z": 0, "id": 251}, {"y": 128, "x": 101, "z": 0, "id": 414}, {"y": 128, "x": 106, "z": 0, "id": 410}, {"y": 135, "x": 108, "z": 0, "id": 408}, {"y": 136, "x": 107, "z": 0, "id": 217}, {"y": 136, "x": 107, "z": 0, "id": 414}, {"y": 142, "x": 106, "z": 0, "id": 408}, {"y": 140, "x": 105, "z": 0, "id": 414}, {"y": 139, "x": 106, "z": 0, "id": 410}, {"y": 138, "x": 107, "z": 0, "id": 251}, {"y": 140, "x": 108, "z": 0, "id": 408}, {"y": 133, "x": 109, "z": 0, "id": 458}, {"y": 44, "x": 18, "z": 0, "id": 438}, {"y": 45, "x": 13, "z": 0, "id": 448}, {"y": 47, "x": 16, "z": 0, "id": 110}, {"y": 36, "x": 40, "z": 0, "id": 456}, {"y": 21, "x": 14, "z": 0, "id": 217}, {"y": 32, "x": 24, "z": 0, "id": 403}, {"y": 28, "x": 24, "z": 0, "id": 403}, {"y": 27, "x": 21, "z": 0, "id": 415}, {"y": 42, "x": 9, "z": 0, "id": 54}, {"y": 43, "x": 8, "z": 0, "id": 48}, {"y": 43, "x": 6, "z": 0, "id": 92}, {"y": 42, "x": 6, "z": 0, "id": 316}, {"y": 41, "x": 7, "z": 0, "id": 459}, {"y": 40, "x": 9, "z": 0, "id": 113}, {"y": 43, "x": 9, "z": 0, "id": 460}, {"y": 57, "x": 46, "z": 0, "id": 461}, {"y": 65, "x": 53, "z": 0, "id": 460}, {"y": 45, "x": 36, "z": 0, "id": 460}, {"y": 88, "x": 30, "z": 0, "id": 460}, {"y": 89, "x": 60, "z": 0, "id": 460}, {"y": 109, "x": 39, "z": 0, "id": 460}, {"y": 130, "x": 101, "z": 0, "id": 460}, {"y": 89, "x": 79, "z": 0, "id": 460}, {"y": 96, "x": 94, "z": 0, "id": 460}, {"y": 73, "x": 106, "z": 0, "id": 460}, {"y": 51, "x": 124, "z": 0, "id": 460}, {"y": 32, "x": 131, "z": 0, "id": 460}, {"y": 18, "x": 77, "z": 0, "id": 460}, {"y": 77, "x": 23, "z": 0, "id": 462}, {"y": 76, "x": 34, "z": 0, "id": 439}, {"y": 14, "x": 36, "z": 0, "id": 463}, {"y": 25, "x": 17, "z": 0, "id": 201}, {"y": 12, "x": 34, "z": 0, "id": 165}, {"y": 11, "x": 29, "z": 0, "id": 460}, {"y": 12, "x": 30, "z": 0, "id": 191}, {"y": 13, "x": 29, "z": 0, "id": 252}, {"y": 13, "x": 27, "z": 0, "id": 167}, {"y": 10, "x": 30, "z": 0, "id": 253}, {"y": 11, "x": 31, "z": 0, "id": 161}, {"y": 22, "x": 15, "z": 0, "id": 464}, {"y": 3, "x": 72, "z": 0, "id": 465}, {"y": 2, "x": 73, "z": 0, "id": 158}, {"y": 3, "x": 74, "z": 0, "id": 178}, {"y": 3, "x": 71, "z": 0, "id": 185}, {"y": 2, "x": 69, "z": 0, "id": 166}, {"y": 3, "x": 64, "z": 0, "id": 185}, {"y": 2, "x": 62, "z": 0, "id": 161}, {"y": 2, "x": 61, "z": 0, "id": 168}, {"y": 11, "x": 79, "z": 0, "id": 165}, {"y": 10, "x": 74, "z": 0, "id": 466}, {"y": 16, "x": 57, "z": 0, "id": 467}, {"y": 0, "x": 21, "z": 0, "id": 182}, {"y": 1, "x": 21, "z": 0, "id": 177}, {"y": 2, "x": 21, "z": 0, "id": 177}, {"y": 13, "x": 75, "z": 0, "id": 468}, {"y": 8, "x": 81, "z": 0, "id": 469}, {"y": 27, "x": 78, "z": 0, "id": 470}, {"y": 24, "x": 86, "z": 0, "id": 467}, {"y": 17, "x": 78, "z": 0, "id": 254}, {"y": 19, "x": 99, "z": 0, "id": 463}, {"y": 31, "x": 96, "z": 0, "id": 471}, {"y": 36, "x": 110, "z": 0, "id": 472}, {"y": 30, "x": 115, "z": 0, "id": 473}, {"y": 27, "x": 121, "z": 0, "id": 474}, {"y": 16, "x": 136, "z": 0, "id": 475}, {"y": 28, "x": 126, "z": 0, "id": 476}, {"y": 12, "x": 126, "z": 0, "id": 428}, {"y": 29, "x": 140, "z": 0, "id": 429}, {"y": 24, "x": 122, "z": 0, "id": 477}, {"y": 39, "x": 114, "z": 0, "id": 477}, {"y": 48, "x": 113, "z": 0, "id": 426}, {"y": 55, "x": 108, "z": 0, "id": 478}, {"y": 52, "x": 104, "z": 0, "id": 323}, {"y": 52, "x": 105, "z": 0, "id": 336}, {"y": 54, "x": 102, "z": 0, "id": 297}, {"y": 55, "x": 104, "z": 0, "id": 23}, {"y": 55, "x": 105, "z": 0, "id": 83}, {"y": 54, "x": 117, "z": 0, "id": 183}, {"y": 55, "x": 117, "z": 0, "id": 170}, {"y": 56, "x": 116, "z": 0, "id": 171}, {"y": 58, "x": 129, "z": 0, "id": 467}, {"y": 63, "x": 112, "z": 0, "id": 467}, {"y": 69, "x": 127, "z": 0, "id": 464}, {"y": 93, "x": 108, "z": 0, "id": 478}, {"y": 98, "x": 57, "z": 0, "id": 479}, {"y": 100, "x": 60, "z": 0, "id": 16}, {"y": 101, "x": 60, "z": 0, "id": 26}, {"y": 102, "x": 58, "z": 0, "id": 285}, {"y": 101, "x": 55, "z": 0, "id": 122}, {"y": 100, "x": 55, "z": 0, "id": 272}, {"y": 101, "x": 57, "z": 0, "id": 93}, {"y": 104, "x": 65, "z": 0, "id": 54}, {"y": 99, "x": 80, "z": 0, "id": 112}, {"y": 86, "x": 72, "z": 0, "id": 480}, {"y": 93, "x": 76, "z": 0, "id": 481}, {"y": 97, "x": 75, "z": 0, "id": 482}, {"y": 72, "x": 69, "z": 0, "id": 469}, {"y": 25, "x": 26, "z": 0, "id": 478}, {"y": 26, "x": 24, "z": 0, "id": 9}, {"y": 24, "x": 25, "z": 0, "id": 364}, {"y": 25, "x": 24, "z": 0, "id": 364}, {"y": 25, "x": 25, "z": 0, "id": 185}, {"y": 27, "x": 24, "z": 0, "id": 185}, {"y": 27, "x": 25, "z": 0, "id": 33}, {"y": 27, "x": 26, "z": 0, "id": 240}, {"y": 34, "x": 18, "z": 0, "id": 483}, {"y": 47, "x": 27, "z": 0, "id": 469}, {"y": 66, "x": 18, "z": 0, "id": 47}, {"y": 74, "x": 19, "z": 0, "id": 157}, {"y": 78, "x": 16, "z": 0, "id": 293}, {"y": 79, "x": 17, "z": 0, "id": 321}, {"y": 80, "x": 17, "z": 0, "id": 119}, {"y": 81, "x": 18, "z": 0, "id": 118}, {"y": 82, "x": 19, "z": 0, "id": 316}, {"y": 83, "x": 17, "z": 0, "id": 403}, {"y": 84, "x": 17, "z": 0, "id": 215}, {"y": 82, "x": 21, "z": 0, "id": 30}, {"y": 83, "x": 22, "z": 0, "id": 356}, {"y": 84, "x": 21, "z": 0, "id": 331}, {"y": 83, "x": 22, "z": 0, "id": 51}, {"y": 83, "x": 22, "z": 0, "id": 4}, {"y": 82, "x": 22, "z": 0, "id": 220}, {"y": 81, "x": 22, "z": 0, "id": 55}, {"y": 80, "x": 21, "z": 0, "id": 32}, {"y": 82, "x": 19, "z": 0, "id": 124}, {"y": 81, "x": 17, "z": 0, "id": 83}, {"y": 79, "x": 16, "z": 0, "id": 271}, {"y": 79, "x": 17, "z": 0, "id": 444}, {"y": 75, "x": 18, "z": 0, "id": 141}, {"y": 75, "x": 19, "z": 0, "id": 351}, {"y": 78, "x": 18, "z": 0, "id": 297}, {"y": 80, "x": 23, "z": 0, "id": 235}, {"y": 80, "x": 24, "z": 0, "id": 263}, {"y": 82, "x": 23, "z": 0, "id": 88}, {"y": 83, "x": 24, "z": 0, "id": 117}, {"y": 80, "x": 14, "z": 0, "id": 151}, {"y": 81, "x": 14, "z": 0, "id": 122}, {"y": 82, "x": 15, "z": 0, "id": 332}, {"y": 83, "x": 15, "z": 0, "id": 152}, {"y": 83, "x": 13, "z": 0, "id": 287}, {"y": 83, "x": 12, "z": 0, "id": 241}, {"y": 83, "x": 14, "z": 0, "id": 22}, {"y": 81, "x": 15, "z": 0, "id": 225}, {"y": 78, "x": 8, "z": 0, "id": 357}, {"y": 79, "x": 10, "z": 0, "id": 408}, {"y": 80, "x": 9, "z": 0, "id": 217}, {"y": 81, "x": 9, "z": 0, "id": 409}, {"y": 83, "x": 9, "z": 0, "id": 410}, {"y": 84, "x": 11, "z": 0, "id": 484}, {"y": 85, "x": 12, "z": 0, "id": 258}, {"y": 87, "x": 14, "z": 0, "id": 408}, {"y": 88, "x": 15, "z": 0, "id": 274}, {"y": 90, "x": 17, "z": 0, "id": 232}, {"y": 91, "x": 16, "z": 0, "id": 251}, {"y": 88, "x": 14, "z": 0, "id": 304}, {"y": 89, "x": 15, "z": 0, "id": 251}, {"y": 88, "x": 12, "z": 0, "id": 409}, {"y": 87, "x": 11, "z": 0, "id": 332}, {"y": 87, "x": 12, "z": 0, "id": 251}, {"y": 86, "x": 10, "z": 0, "id": 408}, {"y": 84, "x": 10, "z": 0, "id": 408}, {"y": 83, "x": 7, "z": 0, "id": 485}, {"y": 82, "x": 8, "z": 0, "id": 330}, {"y": 82, "x": 9, "z": 0, "id": 217}, {"y": 81, "x": 8, "z": 0, "id": 217}, {"y": 79, "x": 9, "z": 0, "id": 251}, {"y": 91, "x": 18, "z": 0, "id": 259}, {"y": 69, "x": 6, "z": 0, "id": 331}, {"y": 70, "x": 6, "z": 0, "id": 224}, {"y": 71, "x": 6, "z": 0, "id": 109}, {"y": 73, "x": 6, "z": 0, "id": 217}, {"y": 75, "x": 6, "z": 0, "id": 410}, {"y": 77, "x": 7, "z": 0, "id": 408}, {"y": 79, "x": 6, "z": 0, "id": 409}, {"y": 80, "x": 7, "z": 0, "id": 484}, {"y": 78, "x": 7, "z": 0, "id": 251}, {"y": 75, "x": 5, "z": 0, "id": 410}, {"y": 74, "x": 4, "z": 0, "id": 324}, {"y": 73, "x": 4, "z": 0, "id": 357}, {"y": 72, "x": 5, "z": 0, "id": 484}, {"y": 71, "x": 6, "z": 0, "id": 330}, {"y": 71, "x": 4, "z": 0, "id": 274}, {"y": 71, "x": 5, "z": 0, "id": 410}, {"y": 95, "x": 18, "z": 0, "id": 198}, {"y": 96, "x": 19, "z": 0, "id": 358}, {"y": 97, "x": 19, "z": 0, "id": 289}, {"y": 98, "x": 20, "z": 0, "id": 351}, {"y": 99, "x": 20, "z": 0, "id": 263}, {"y": 100, "x": 21, "z": 0, "id": 317}, {"y": 101, "x": 22, "z": 0, "id": 255}, {"y": 101, "x": 22, "z": 0, "id": 291}, {"y": 100, "x": 21, "z": 0, "id": 256}, {"y": 100, "x": 20, "z": 0, "id": 155}, {"y": 98, "x": 19, "z": 0, "id": 276}, {"y": 98, "x": 20, "z": 0, "id": 37}, {"y": 96, "x": 18, "z": 0, "id": 8}, {"y": 95, "x": 19, "z": 0, "id": 124}, {"y": 102, "x": 19, "z": 0, "id": 272}, {"y": 103, "x": 21, "z": 0, "id": 83}, {"y": 104, "x": 22, "z": 0, "id": 36}, {"y": 105, "x": 22, "z": 0, "id": 89}, {"y": 104, "x": 21, "z": 0, "id": 242}, {"y": 103, "x": 22, "z": 0, "id": 118}, {"y": 104, "x": 21, "z": 0, "id": 27}, {"y": 110, "x": 20, "z": 0, "id": 486}, {"y": 110, "x": 22, "z": 0, "id": 107}, {"y": 116, "x": 28, "z": 0, "id": 265}, {"y": 117, "x": 29, "z": 0, "id": 272}, {"y": 118, "x": 30, "z": 0, "id": 487}, {"y": 119, "x": 30, "z": 0, "id": 344}, {"y": 119, "x": 29, "z": 0, "id": 295}, {"y": 118, "x": 30, "z": 0, "id": 124}, {"y": 117, "x": 28, "z": 0, "id": 488}, {"y": 106, "x": 23, "z": 0, "id": 287}, {"y": 107, "x": 23, "z": 0, "id": 267}, {"y": 108, "x": 24, "z": 0, "id": 215}, {"y": 109, "x": 25, "z": 0, "id": 236}, {"y": 109, "x": 23, "z": 0, "id": 109}, {"y": 108, "x": 24, "z": 0, "id": 73}, {"y": 111, "x": 23, "z": 0, "id": 108}, {"y": 112, "x": 25, "z": 0, "id": 261}, {"y": 114, "x": 26, "z": 0, "id": 28}, {"y": 116, "x": 26, "z": 0, "id": 402}, {"y": 117, "x": 25, "z": 0, "id": 486}, {"y": 114, "x": 26, "z": 0, "id": 131}, {"y": 114, "x": 25, "z": 0, "id": 53}, {"y": 111, "x": 25, "z": 0, "id": 236}, {"y": 113, "x": 24, "z": 0, "id": 132}, {"y": 112, "x": 23, "z": 0, "id": 53}, {"y": 118, "x": 26, "z": 0, "id": 226}, {"y": 119, "x": 27, "z": 0, "id": 241}, {"y": 119, "x": 26, "z": 0, "id": 260}, {"y": 78, "x": 35, "z": 0, "id": 477}, {"y": 65, "x": 32, "z": 0, "id": 328}, {"y": 66, "x": 33, "z": 0, "id": 307}, {"y": 67, "x": 32, "z": 0, "id": 31}, {"y": 67, "x": 31, "z": 0, "id": 4}, {"y": 66, "x": 32, "z": 0, "id": 93}, {"y": 66, "x": 33, "z": 0, "id": 55}, {"y": 68, "x": 31, "z": 0, "id": 28}, {"y": 69, "x": 32, "z": 0, "id": 68}, {"y": 69, "x": 33, "z": 0, "id": 112}, {"y": 68, "x": 33, "z": 0, "id": 489}, {"y": 69, "x": 32, "z": 0, "id": 28}, {"y": 69, "x": 30, "z": 0, "id": 27}, {"y": 69, "x": 28, "z": 0, "id": 85}, {"y": 70, "x": 29, "z": 0, "id": 53}, {"y": 71, "x": 29, "z": 0, "id": 130}, {"y": 72, "x": 30, "z": 0, "id": 255}, {"y": 73, "x": 29, "z": 0, "id": 96}, {"y": 72, "x": 30, "z": 0, "id": 444}, {"y": 89, "x": 23, "z": 0, "id": 23}, {"y": 90, "x": 22, "z": 0, "id": 137}, {"y": 90, "x": 20, "z": 0, "id": 490}, {"y": 90, "x": 23, "z": 0, "id": 55}, {"y": 89, "x": 20, "z": 0, "id": 258}, {"y": 66, "x": 16, "z": 0, "id": 491}, {"y": 89, "x": 34, "z": 0, "id": 492}, {"y": 94, "x": 34, "z": 0, "id": 26}, {"y": 92, "x": 30, "z": 0, "id": 442}, {"y": 92, "x": 33, "z": 0, "id": 45}, {"y": 91, "x": 31, "z": 0, "id": 44}, {"y": 89, "x": 27, "z": 0, "id": 442}, {"y": 88, "x": 28, "z": 0, "id": 208}, {"y": 88, "x": 32, "z": 0, "id": 366}, {"y": 89, "x": 35, "z": 0, "id": 493}, {"y": 89, "x": 32, "z": 0, "id": 335}, {"y": 85, "x": 22, "z": 0, "id": 219}, {"y": 86, "x": 22, "z": 0, "id": 262}, {"y": 87, "x": 22, "z": 0, "id": 95}, {"y": 88, "x": 22, "z": 0, "id": 85}, {"y": 77, "x": 50, "z": 0, "id": 27}, {"y": 78, "x": 51, "z": 0, "id": 375}, {"y": 77, "x": 52, "z": 0, "id": 494}, {"y": 78, "x": 48, "z": 0, "id": 53}, {"y": 80, "x": 47, "z": 0, "id": 28}, {"y": 80, "x": 47, "z": 0, "id": 260}, {"y": 78, "x": 45, "z": 0, "id": 80}, {"y": 78, "x": 44, "z": 0, "id": 267}, {"y": 78, "x": 48, "z": 0, "id": 42}, {"y": 77, "x": 52, "z": 0, "id": 27}, {"y": 76, "x": 52, "z": 0, "id": 8}, {"y": 77, "x": 52, "z": 0, "id": 33}, {"y": 79, "x": 48, "z": 0, "id": 495}, {"y": 63, "x": 57, "z": 0, "id": 496}, {"y": 4, "x": 49, "z": 0, "id": 497}, {"y": 4, "x": 116, "z": 0, "id": 497}, {"y": 53, "x": 137, "z": 0, "id": 497}, {"y": 87, "x": 86, "z": 0, "id": 497}, {"y": 83, "x": 25, "z": 0, "id": 497}, {"y": 59, "x": 77, "z": 0, "id": 498}, {"y": 59, "x": 77, "z": 0, "id": 499}, {"y": 27, "x": 66, "z": 0, "id": 500}, {"y": 32, "x": 61, "z": 0, "id": 501}, {"y": 28, "x": 57, "z": 0, "id": 502}, {"y": 37, "x": 63, "z": 0, "id": 477}, {"y": 28, "x": 51, "z": 0, "id": 503}, {"y": 37, "x": 68, "z": 0, "id": 504}, {"y": 65, "x": 70, "z": 0, "id": 505}, {"y": 60, "x": 66, "z": 0, "id": 506}, {"y": 64, "x": 64, "z": 0, "id": 507}, {"y": 52, "x": 73, "z": 0, "id": 4}, {"y": 53, "x": 75, "z": 0, "id": 122}, {"y": 52, "x": 75, "z": 0, "id": 290}, {"y": 53, "x": 74, "z": 0, "id": 232}, {"y": 53, "x": 74, "z": 0, "id": 42}, {"y": 53, "x": 73, "z": 0, "id": 296}, {"y": 52, "x": 75, "z": 0, "id": 97}, {"y": 52, "x": 76, "z": 0, "id": 129}, {"y": 52, "x": 78, "z": 0, "id": 508}, {"y": 50, "x": 67, "z": 0, "id": 509}, {"y": 59, "x": 63, "z": 0, "id": 114}, {"y": 72, "x": 59, "z": 0, "id": 510}, {"y": 119, "x": 31, "z": 0, "id": 267}, {"y": 44, "x": 29, "z": 0, "id": 466}, {"y": 53, "x": 34, "z": 0, "id": 472}, {"y": 32, "x": 30, "z": 0, "id": 470}, {"y": 33, "x": 41, "z": 0, "id": 470}, {"y": 46, "x": 21, "z": 0, "id": 511}, {"y": 62, "x": 26, "z": 0, "id": 478}, {"y": 55, "x": 22, "z": 0, "id": 466}, {"y": 48, "x": 17, "z": 0, "id": 79}, {"y": 49, "x": 17, "z": 0, "id": 351}, {"y": 50, "x": 18, "z": 0, "id": 352}, {"y": 51, "x": 18, "z": 0, "id": 352}, {"y": 52, "x": 17, "z": 0, "id": 294}, {"y": 53, "x": 17, "z": 0, "id": 287}, {"y": 53, "x": 17, "z": 0, "id": 118}, {"y": 50, "x": 17, "z": 0, "id": 30}, {"y": 51, "x": 14, "z": 0, "id": 346}, {"y": 51, "x": 13, "z": 0, "id": 298}, {"y": 52, "x": 13, "z": 0, "id": 93}, {"y": 50, "x": 15, "z": 0, "id": 124}, {"y": 52, "x": 18, "z": 0, "id": 307}, {"y": 53, "x": 19, "z": 0, "id": 92}, {"y": 55, "x": 19, "z": 0, "id": 42}, {"y": 56, "x": 17, "z": 0, "id": 264}, {"y": 55, "x": 19, "z": 0, "id": 219}, {"y": 55, "x": 17, "z": 0, "id": 32}, {"y": 53, "x": 14, "z": 0, "id": 488}, {"y": 53, "x": 13, "z": 0, "id": 512}, {"y": 56, "x": 18, "z": 0, "id": 114}, {"y": 57, "x": 19, "z": 0, "id": 290}, {"y": 59, "x": 21, "z": 0, "id": 99}, {"y": 60, "x": 21, "z": 0, "id": 404}, {"y": 61, "x": 20, "z": 0, "id": 215}, {"y": 60, "x": 20, "z": 0, "id": 73}, {"y": 57, "x": 21, "z": 0, "id": 312}, {"y": 56, "x": 21, "z": 0, "id": 114}, {"y": 58, "x": 21, "z": 0, "id": 513}, {"y": 57, "x": 21, "z": 0, "id": 258}, {"y": 61, "x": 20, "z": 0, "id": 447}, {"y": 64, "x": 23, "z": 0, "id": 316}, {"y": 65, "x": 9, "z": 0, "id": 15}, {"y": 46, "x": 9, "z": 0, "id": 44}, {"y": 47, "x": 9, "z": 0, "id": 218}, {"y": 48, "x": 9, "z": 0, "id": 514}, {"y": 46, "x": 10, "z": 0, "id": 334}, {"y": 45, "x": 9, "z": 0, "id": 133}, {"y": 49, "x": 8, "z": 0, "id": 322}, {"y": 50, "x": 8, "z": 0, "id": 333}, {"y": 49, "x": 9, "z": 0, "id": 271}, {"y": 52, "x": 9, "z": 0, "id": 100}, {"y": 53, "x": 11, "z": 0, "id": 262}, {"y": 54, "x": 11, "z": 0, "id": 293}, {"y": 54, "x": 10, "z": 0, "id": 275}, {"y": 54, "x": 8, "z": 0, "id": 236}, {"y": 55, "x": 6, "z": 0, "id": 260}, {"y": 53, "x": 9, "z": 0, "id": 316}, {"y": 53, "x": 10, "z": 0, "id": 23}, {"y": 54, "x": 9, "z": 0, "id": 27}, {"y": 54, "x": 10, "z": 0, "id": 3}, {"y": 54, "x": 6, "z": 0, "id": 53}, {"y": 56, "x": 13, "z": 0, "id": 117}, {"y": 57, "x": 14, "z": 0, "id": 515}, {"y": 58, "x": 15, "z": 0, "id": 203}, {"y": 59, "x": 16, "z": 0, "id": 267}, {"y": 60, "x": 15, "z": 0, "id": 39}, {"y": 61, "x": 14, "z": 0, "id": 138}, {"y": 62, "x": 13, "z": 0, "id": 271}, {"y": 60, "x": 13, "z": 0, "id": 346}, {"y": 60, "x": 12, "z": 0, "id": 267}, {"y": 59, "x": 13, "z": 0, "id": 92}, {"y": 59, "x": 13, "z": 0, "id": 319}, {"y": 59, "x": 14, "z": 0, "id": 453}, {"y": 59, "x": 16, "z": 0, "id": 146}, {"y": 59, "x": 13, "z": 0, "id": 46}, {"y": 47, "x": 22, "z": 0, "id": 260}, {"y": 48, "x": 24, "z": 0, "id": 73}, {"y": 49, "x": 26, "z": 0, "id": 402}, {"y": 50, "x": 27, "z": 0, "id": 242}, {"y": 49, "x": 24, "z": 0, "id": 258}, {"y": 49, "x": 22, "z": 0, "id": 272}, {"y": 47, "x": 24, "z": 0, "id": 262}, {"y": 48, "x": 23, "z": 0, "id": 352}, {"y": 40, "x": 24, "z": 0, "id": 94}, {"y": 41, "x": 25, "z": 0, "id": 303}, {"y": 42, "x": 25, "z": 0, "id": 119}, {"y": 43, "x": 24, "z": 0, "id": 240}, {"y": 43, "x": 24, "z": 0, "id": 258}, {"y": 43, "x": 23, "z": 0, "id": 213}, {"y": 43, "x": 23, "z": 0, "id": 43}, {"y": 41, "x": 24, "z": 0, "id": 113}, {"y": 42, "x": 20, "z": 0, "id": 477}, {"y": 33, "x": 21, "z": 0, "id": 516}, {"y": 27, "x": 27, "z": 0, "id": 517}, {"y": 28, "x": 27, "z": 0, "id": 518}, {"y": 51, "x": 31, "z": 0, "id": 506}, {"y": 67, "x": 33, "z": 0, "id": 475}, {"y": 124, "x": 72, "z": 0, "id": 497}, {"y": 123, "x": 58, "z": 0, "id": 495}, {"y": 113, "x": 59, "z": 0, "id": 519}, {"y": 129, "x": 75, "z": 0, "id": 520}, {"y": 132, "x": 48, "z": 0, "id": 519}, {"y": 51, "x": 51, "z": 0, "id": 521}, {"y": 66, "x": 49, "z": 0, "id": 522}, {"y": 73, "x": 52, "z": 0, "id": 523}, {"y": 68, "x": 107, "z": 0, "id": 524}, {"y": 72, "x": 88, "z": 0, "id": 525}, {"y": 80, "x": 103, "z": 0, "id": 526}, {"y": 92, "x": 109, "z": 0, "id": 527}, {"y": 82, "x": 114, "z": 0, "id": 528}, {"y": 69, "x": 122, "z": 0, "id": 528}, {"y": 57, "x": 32, "z": 0, "id": 529}, {"y": 18, "x": 70, "z": 0, "id": 530}, {"y": 18, "x": 69, "z": 0, "id": 234}, {"y": 18, "x": 69, "z": 0, "id": 201}, {"y": 18, "x": 68, "z": 0, "id": 238}, {"y": 6, "x": 32, "z": 0, "id": 491}, {"y": 28, "x": 44, "z": 0, "id": 510}, {"y": 48, "x": 40, "z": 0, "id": 467}, {"y": 47, "x": 15, "z": 0, "id": 505}, {"y": 65, "x": 28, "z": 0, "id": 531}, {"y": 63, "x": 28, "z": 0, "id": 124}, {"y": 56, "x": 24, "z": 0, "id": 29}, {"y": 56, "x": 26, "z": 0, "id": 447}, {"y": 60, "x": 26, "z": 0, "id": 27}, {"y": 72, "x": 25, "z": 0, "id": 353}, {"y": 70, "x": 30, "z": 0, "id": 532}, {"y": 70, "x": 31, "z": 0, "id": 203}, {"y": 71, "x": 30, "z": 0, "id": 533}, {"y": 84, "x": 37, "z": 0, "id": 436}, {"y": 84, "x": 35, "z": 0, "id": 32}, {"y": 83, "x": 34, "z": 0, "id": 30}, {"y": 83, "x": 39, "z": 0, "id": 35}, {"y": 92, "x": 45, "z": 0, "id": 19}, {"y": 83, "x": 45, "z": 0, "id": 4}, {"y": 84, "x": 44, "z": 0, "id": 83}, {"y": 85, "x": 43, "z": 0, "id": 90}, {"y": 87, "x": 43, "z": 0, "id": 156}, {"y": 87, "x": 43, "z": 0, "id": 84}, {"y": 88, "x": 41, "z": 0, "id": 80}, {"y": 89, "x": 42, "z": 0, "id": 219}, {"y": 88, "x": 42, "z": 0, "id": 328}, {"y": 88, "x": 41, "z": 0, "id": 534}, {"y": 88, "x": 43, "z": 0, "id": 27}, {"y": 88, "x": 39, "z": 0, "id": 28}, {"y": 15, "x": 122, "z": 0, "id": 535}, {"y": 71, "x": 23, "z": 0, "id": 536}, {"y": 74, "x": 20, "z": 0, "id": 537}, {"y": 30, "x": 21, "z": 0, "id": 375}, {"y": 126, "x": 135, "z": 0, "id": 339}, {"y": 126, "x": 136, "z": 0, "id": 373}, {"y": 125, "x": 114, "z": 0, "id": 464}, {"y": 126, "x": 133, "z": 0, "id": 538}, {"y": 124, "x": 134, "z": 0, "id": 402}, {"y": 123, "x": 132, "z": 0, "id": 539}, {"y": 124, "x": 114, "z": 0, "id": 539}, {"y": 124, "x": 115, "z": 0, "id": 538}, {"y": 128, "x": 142, "z": 0, "id": 530}, {"y": 49, "x": 88, "z": 0, "id": 540}, {"y": 45, "x": 87, "z": 0, "id": 541}, {"y": 46, "x": 88, "z": 0, "id": 542}, {"y": 48, "x": 91, "z": 0, "id": 251}, {"y": 49, "x": 90, "z": 0, "id": 410}, {"y": 41, "x": 78, "z": 0, "id": 251}, {"y": 46, "x": 87, "z": 0, "id": 29}, {"y": 48, "x": 87, "z": 0, "id": 29}, {"y": 47, "x": 87, "z": 0, "id": 298}, {"y": 46, "x": 91, "z": 0, "id": 543}, {"y": 45, "x": 92, "z": 0, "id": 544}, {"y": 45, "x": 92, "z": 0, "id": 410}, {"y": 126, "x": 143, "z": 0, "id": 350}, {"y": 129, "x": 140, "z": 0, "id": 545}, {"y": 129, "x": 140, "z": 0, "id": 406}, {"y": 127, "x": 143, "z": 0, "id": 368}, {"y": 11, "x": 12, "z": 0, "id": 538}, {"y": 11, "x": 26, "z": 0, "id": 538}, {"y": 13, "x": 24, "z": 0, "id": 538}, {"y": 12, "x": 19, "z": 0, "id": 538}, {"y": 16, "x": 17, "z": 0, "id": 538}, {"y": 14, "x": 13, "z": 0, "id": 538}, {"y": 17, "x": 12, "z": 0, "id": 538}, {"y": 20, "x": 17, "z": 0, "id": 538}, {"y": 22, "x": 25, "z": 0, "id": 538}, {"y": 18, "x": 25, "z": 0, "id": 538}, {"y": 22, "x": 16, "z": 0, "id": 538}, {"y": 26, "x": 18, "z": 0, "id": 538}, {"y": 28, "x": 25, "z": 0, "id": 538}, {"y": 30, "x": 18, "z": 0, "id": 538}, {"y": 34, "x": 26, "z": 0, "id": 538}, {"y": 32, "x": 28, "z": 0, "id": 538}, {"y": 34, "x": 16, "z": 0, "id": 538}, {"y": 32, "x": 12, "z": 0, "id": 538}, {"y": 39, "x": 9, "z": 0, "id": 538}, {"y": 37, "x": 21, "z": 0, "id": 538}, {"y": 40, "x": 16, "z": 0, "id": 538}, {"y": 40, "x": 25, "z": 0, "id": 538}, {"y": 43, "x": 25, "z": 0, "id": 538}, {"y": 46, "x": 24, "z": 0, "id": 538}, {"y": 44, "x": 15, "z": 0, "id": 538}, {"y": 51, "x": 22, "z": 0, "id": 538}, {"y": 52, "x": 25, "z": 0, "id": 538}, {"y": 52, "x": 19, "z": 0, "id": 538}, {"y": 50, "x": 13, "z": 0, "id": 538}, {"y": 48, "x": 10, "z": 0, "id": 538}, {"y": 53, "x": 15, "z": 0, "id": 538}, {"y": 55, "x": 10, "z": 0, "id": 538}, {"y": 59, "x": 8, "z": 0, "id": 538}, {"y": 55, "x": 21, "z": 0, "id": 538}, {"y": 57, "x": 27, "z": 0, "id": 538}, {"y": 62, "x": 24, "z": 0, "id": 538}, {"y": 73, "x": 27, "z": 0, "id": 538}, {"y": 71, "x": 15, "z": 0, "id": 538}, {"y": 73, "x": 7, "z": 0, "id": 538}, {"y": 73, "x": 10, "z": 0, "id": 538}, {"y": 75, "x": 15, "z": 0, "id": 538}, {"y": 77, "x": 20, "z": 0, "id": 538}, {"y": 80, "x": 18, "z": 0, "id": 538}, {"y": 78, "x": 15, "z": 0, "id": 538}, {"y": 83, "x": 11, "z": 0, "id": 538}, {"y": 82, "x": 10, "z": 0, "id": 538}, {"y": 67, "x": 28, "z": 0, "id": 538}, {"y": 77, "x": 28, "z": 0, "id": 538}, {"y": 70, "x": 32, "z": 0, "id": 538}, {"y": 68, "x": 24, "z": 0, "id": 538}, {"y": 81, "x": 24, "z": 0, "id": 538}, {"y": 73, "x": 30, "z": 0, "id": 538}, {"y": 90, "x": 18, "z": 0, "id": 538}, {"y": 98, "x": 18, "z": 0, "id": 538}, {"y": 102, "x": 21, "z": 0, "id": 538}, {"y": 106, "x": 22, "z": 0, "id": 538}, {"y": 110, "x": 24, "z": 0, "id": 538}, {"y": 117, "x": 26, "z": 0, "id": 538}, {"y": 117, "x": 27, "z": 0, "id": 259}, {"y": 120, "x": 31, "z": 0, "id": 546}, {"y": 105, "x": 34, "z": 0, "id": 538}, {"y": 102, "x": 29, "z": 0, "id": 538}, {"y": 91, "x": 26, "z": 0, "id": 538}, {"y": 110, "x": 36, "z": 0, "id": 538}, {"y": 104, "x": 50, "z": 0, "id": 538}, {"y": 103, "x": 44, "z": 0, "id": 538}, {"y": 108, "x": 49, "z": 0, "id": 538}, {"y": 113, "x": 54, "z": 0, "id": 538}, {"y": 106, "x": 54, "z": 0, "id": 538}, {"y": 118, "x": 48, "z": 0, "id": 538}, {"y": 117, "x": 45, "z": 0, "id": 538}, {"y": 118, "x": 41, "z": 0, "id": 538}, {"y": 118, "x": 53, "z": 0, "id": 538}, {"y": 113, "x": 41, "z": 0, "id": 538}, {"y": 124, "x": 51, "z": 0, "id": 538}, {"y": 122, "x": 46, "z": 0, "id": 538}, {"y": 129, "x": 50, "z": 0, "id": 538}, {"y": 123, "x": 50, "z": 0, "id": 460}, {"y": 130, "x": 76, "z": 0, "id": 538}, {"y": 133, "x": 72, "z": 0, "id": 538}, {"y": 136, "x": 72, "z": 0, "id": 538}, {"y": 139, "x": 68, "z": 0, "id": 538}, {"y": 138, "x": 64, "z": 0, "id": 538}, {"y": 127, "x": 73, "z": 0, "id": 538}, {"y": 114, "x": 93, "z": 0, "id": 547}, {"y": 143, "x": 97, "z": 0, "id": 538}, {"y": 137, "x": 92, "z": 0, "id": 538}, {"y": 11, "x": 95, "z": 0, "id": 538}, {"y": 14, "x": 92, "z": 0, "id": 538}, {"y": 19, "x": 93, "z": 0, "id": 538}, {"y": 22, "x": 99, "z": 0, "id": 538}, {"y": 16, "x": 101, "z": 0, "id": 538}, {"y": 23, "x": 102, "z": 0, "id": 538}, {"y": 27, "x": 98, "z": 0, "id": 538}, {"y": 21, "x": 84, "z": 0, "id": 538}, {"y": 16, "x": 83, "z": 0, "id": 538}, {"y": 13, "x": 80, "z": 0, "id": 538}, {"y": 8, "x": 78, "z": 0, "id": 538}, {"y": 27, "x": 92, "z": 0, "id": 538}, {"y": 25, "x": 96, "z": 0, "id": 538}, {"y": 27, "x": 86, "z": 0, "id": 538}, {"y": 27, "x": 83, "z": 0, "id": 538}, {"y": 27, "x": 76, "z": 0, "id": 538}, {"y": 28, "x": 73, "z": 0, "id": 538}, {"y": 29, "x": 79, "z": 0, "id": 538}, {"y": 32, "x": 99, "z": 0, "id": 538}, {"y": 35, "x": 99, "z": 0, "id": 538}, {"y": 38, "x": 102, "z": 0, "id": 538}, {"y": 23, "x": 106, "z": 0, "id": 538}, {"y": 28, "x": 106, "z": 0, "id": 538}, {"y": 33, "x": 112, "z": 0, "id": 538}, {"y": 33, "x": 107, "z": 0, "id": 538}, {"y": 36, "x": 106, "z": 0, "id": 538}, {"y": 18, "x": 108, "z": 0, "id": 538}, {"y": 20, "x": 112, "z": 0, "id": 538}, {"y": 22, "x": 113, "z": 0, "id": 538}, {"y": 23, "x": 112, "z": 0, "id": 168}, {"y": 16, "x": 112, "z": 0, "id": 538}, {"y": 14, "x": 120, "z": 0, "id": 538}, {"y": 24, "x": 125, "z": 0, "id": 538}, {"y": 19, "x": 130, "z": 0, "id": 538}, {"y": 31, "x": 129, "z": 0, "id": 538}, {"y": 32, "x": 126, "z": 0, "id": 538}, {"y": 27, "x": 124, "z": 0, "id": 538}, {"y": 25, "x": 121, "z": 0, "id": 538}, {"y": 28, "x": 120, "z": 0, "id": 538}, {"y": 26, "x": 128, "z": 0, "id": 538}, {"y": 13, "x": 125, "z": 0, "id": 538}, {"y": 16, "x": 129, "z": 0, "id": 538}, {"y": 18, "x": 119, "z": 0, "id": 538}, {"y": 15, "x": 118, "z": 0, "id": 538}, {"y": 22, "x": 128, "z": 0, "id": 538}, {"y": 28, "x": 132, "z": 0, "id": 538}, {"y": 33, "x": 128, "z": 0, "id": 538}, {"y": 35, "x": 132, "z": 0, "id": 538}, {"y": 40, "x": 124, "z": 0, "id": 538}, {"y": 41, "x": 128, "z": 0, "id": 538}, {"y": 44, "x": 121, "z": 0, "id": 538}, {"y": 32, "x": 118, "z": 0, "id": 538}, {"y": 29, "x": 111, "z": 0, "id": 538}, {"y": 40, "x": 121, "z": 0, "id": 538}, {"y": 41, "x": 116, "z": 0, "id": 538}, {"y": 38, "x": 112, "z": 0, "id": 538}, {"y": 36, "x": 118, "z": 0, "id": 538}, {"y": 32, "x": 123, "z": 0, "id": 538}, {"y": 7, "x": 131, "z": 0, "id": 538}, {"y": 12, "x": 132, "z": 0, "id": 538}, {"y": 7, "x": 117, "z": 0, "id": 538}, {"y": 7, "x": 140, "z": 0, "id": 538}, {"y": 13, "x": 140, "z": 0, "id": 538}, {"y": 11, "x": 143, "z": 0, "id": 538}, {"y": 18, "x": 137, "z": 0, "id": 538}, {"y": 16, "x": 141, "z": 0, "id": 538}, {"y": 23, "x": 139, "z": 0, "id": 538}, {"y": 25, "x": 141, "z": 0, "id": 538}, {"y": 30, "x": 141, "z": 0, "id": 538}, {"y": 27, "x": 138, "z": 0, "id": 538}, {"y": 26, "x": 135, "z": 0, "id": 538}, {"y": 37, "x": 137, "z": 0, "id": 538}, {"y": 40, "x": 138, "z": 0, "id": 538}, {"y": 38, "x": 132, "z": 0, "id": 538}, {"y": 42, "x": 137, "z": 0, "id": 538}, {"y": 40, "x": 143, "z": 0, "id": 538}, {"y": 48, "x": 136, "z": 0, "id": 538}, {"y": 47, "x": 131, "z": 0, "id": 538}, {"y": 52, "x": 133, "z": 0, "id": 538}, {"y": 55, "x": 131, "z": 0, "id": 538}, {"y": 53, "x": 125, "z": 0, "id": 538}, {"y": 49, "x": 125, "z": 0, "id": 538}, {"y": 60, "x": 128, "z": 0, "id": 538}, {"y": 57, "x": 123, "z": 0, "id": 538}, {"y": 62, "x": 123, "z": 0, "id": 538}, {"y": 61, "x": 118, "z": 0, "id": 538}, {"y": 64, "x": 127, "z": 0, "id": 538}, {"y": 68, "x": 126, "z": 0, "id": 538}, {"y": 64, "x": 119, "z": 0, "id": 538}, {"y": 64, "x": 115, "z": 0, "id": 538}, {"y": 68, "x": 115, "z": 0, "id": 538}, {"y": 68, "x": 112, "z": 0, "id": 538}, {"y": 71, "x": 121, "z": 0, "id": 538}, {"y": 76, "x": 122, "z": 0, "id": 538}, {"y": 79, "x": 118, "z": 0, "id": 538}, {"y": 77, "x": 112, "z": 0, "id": 538}, {"y": 85, "x": 117, "z": 0, "id": 538}, {"y": 96, "x": 112, "z": 0, "id": 538}, {"y": 99, "x": 109, "z": 0, "id": 538}, {"y": 101, "x": 113, "z": 0, "id": 538}, {"y": 102, "x": 110, "z": 0, "id": 538}, {"y": 92, "x": 101, "z": 0, "id": 538}, {"y": 93, "x": 111, "z": 0, "id": 538}, {"y": 94, "x": 104, "z": 0, "id": 399}, {"y": 96, "x": 108, "z": 0, "id": 18}, {"y": 105, "x": 116, "z": 0, "id": 538}, {"y": 107, "x": 117, "z": 0, "id": 21}, {"y": 109, "x": 115, "z": 0, "id": 548}, {"y": 108, "x": 118, "z": 0, "id": 216}, {"y": 110, "x": 117, "z": 0, "id": 452}, {"y": 112, "x": 116, "z": 0, "id": 216}, {"y": 110, "x": 117, "z": 0, "id": 50}, {"y": 110, "x": 117, "z": 0, "id": 228}, {"y": 108, "x": 117, "z": 0, "id": 549}, {"y": 107, "x": 115, "z": 0, "id": 228}, {"y": 107, "x": 113, "z": 0, "id": 78}, {"y": 106, "x": 113, "z": 0, "id": 538}, {"y": 110, "x": 114, "z": 0, "id": 538}, {"y": 81, "x": 111, "z": 0, "id": 132}, {"y": 88, "x": 98, "z": 0, "id": 538}, {"y": 84, "x": 104, "z": 0, "id": 465}, {"y": 80, "x": 109, "z": 0, "id": 538}, {"y": 76, "x": 109, "z": 0, "id": 538}, {"y": 76, "x": 106, "z": 0, "id": 538}, {"y": 82, "x": 107, "z": 0, "id": 538}, {"y": 82, "x": 99, "z": 0, "id": 538}, {"y": 85, "x": 99, "z": 0, "id": 538}, {"y": 83, "x": 91, "z": 0, "id": 538}, {"y": 80, "x": 90, "z": 0, "id": 538}, {"y": 81, "x": 85, "z": 0, "id": 538}, {"y": 72, "x": 101, "z": 0, "id": 538}, {"y": 71, "x": 96, "z": 0, "id": 538}, {"y": 70, "x": 101, "z": 0, "id": 538}, {"y": 64, "x": 104, "z": 0, "id": 538}, {"y": 66, "x": 96, "z": 0, "id": 538}, {"y": 66, "x": 93, "z": 0, "id": 538}, {"y": 64, "x": 101, "z": 0, "id": 538}, {"y": 61, "x": 99, "z": 0, "id": 538}, {"y": 63, "x": 98, "z": 0, "id": 538}, {"y": 62, "x": 89, "z": 0, "id": 538}, {"y": 59, "x": 88, "z": 0, "id": 538}, {"y": 61, "x": 104, "z": 0, "id": 202}, {"y": 43, "x": 47, "z": 0, "id": 205}, {"y": 48, "x": 46, "z": 0, "id": 2}, {"y": 47, "x": 52, "z": 0, "id": 25}, {"y": 46, "x": 54, "z": 0, "id": 27}, {"y": 47, "x": 53, "z": 0, "id": 438}, {"y": 48, "x": 51, "z": 0, "id": 550}, {"y": 52, "x": 53, "z": 0, "id": 538}, {"y": 48, "x": 60, "z": 0, "id": 538}, {"y": 41, "x": 86, "z": 0, "id": 538}, {"y": 39, "x": 91, "z": 0, "id": 538}, {"y": 45, "x": 83, "z": 0, "id": 538}, {"y": 42, "x": 77, "z": 0, "id": 538}, {"y": 42, "x": 73, "z": 0, "id": 538}, {"y": 32, "x": 80, "z": 0, "id": 538}, {"y": 35, "x": 78, "z": 0, "id": 538}, {"y": 52, "x": 88, "z": 0, "id": 538}, {"y": 69, "x": 79, "z": 0, "id": 538}, {"y": 73, "x": 86, "z": 0, "id": 538}, {"y": 71, "x": 83, "z": 0, "id": 538}, {"y": 76, "x": 84, "z": 0, "id": 538}, {"y": 75, "x": 79, "z": 0, "id": 538}, {"y": 72, "x": 79, "z": 0, "id": 538}, {"y": 86, "x": 86, "z": 0, "id": 538}, {"y": 72, "x": 75, "z": 0, "id": 538}, {"y": 69, "x": 61, "z": 0, "id": 538}, {"y": 66, "x": 70, "z": 0, "id": 538}, {"y": 73, "x": 62, "z": 0, "id": 538}, {"y": 74, "x": 58, "z": 0, "id": 460}, {"y": 72, "x": 68, "z": 0, "id": 538}, {"y": 69, "x": 66, "z": 0, "id": 538}, {"y": 67, "x": 66, "z": 0, "id": 538}, {"y": 63, "x": 68, "z": 0, "id": 538}, {"y": 57, "x": 66, "z": 0, "id": 538}, {"y": 51, "x": 67, "z": 0, "id": 538}, {"y": 53, "x": 71, "z": 0, "id": 538}, {"y": 54, "x": 60, "z": 0, "id": 538}, {"y": 50, "x": 65, "z": 0, "id": 538}, {"y": 49, "x": 83, "z": 0, "id": 538}, {"y": 54, "x": 86, "z": 0, "id": 538}, {"y": 49, "x": 78, "z": 0, "id": 538}, {"y": 57, "x": 82, "z": 0, "id": 538}, {"y": 56, "x": 79, "z": 0, "id": 538}, {"y": 60, "x": 77, "z": 0, "id": 538}, {"y": 84, "x": 73, "z": 0, "id": 538}, {"y": 84, "x": 77, "z": 0, "id": 538}, {"y": 87, "x": 75, "z": 0, "id": 538}, {"y": 88, "x": 77, "z": 0, "id": 538}, {"y": 90, "x": 72, "z": 0, "id": 538}, {"y": 91, "x": 78, "z": 0, "id": 538}, {"y": 91, "x": 84, "z": 0, "id": 538}, {"y": 93, "x": 74, "z": 0, "id": 538}, {"y": 92, "x": 70, "z": 0, "id": 538}, {"y": 86, "x": 68, "z": 0, "id": 538}, {"y": 95, "x": 73, "z": 0, "id": 538}, {"y": 94, "x": 67, "z": 0, "id": 538}, {"y": 88, "x": 64, "z": 0, "id": 538}, {"y": 96, "x": 74, "z": 0, "id": 538}, {"y": 100, "x": 74, "z": 0, "id": 538}, {"y": 98, "x": 60, "z": 0, "id": 538}, {"y": 78, "x": 81, "z": 0, "id": 538}, {"y": 78, "x": 78, "z": 0, "id": 538}, {"y": 82, "x": 80, "z": 0, "id": 538}, {"y": 85, "x": 82, "z": 0, "id": 538}, {"y": 97, "x": 78, "z": 0, "id": 538}, {"y": 100, "x": 88, "z": 0, "id": 538}, {"y": 101, "x": 88, "z": 0, "id": 551}, {"y": 42, "x": 80, "z": 0, "id": 552}, {"y": 40, "x": 79, "z": 0, "id": 410}, {"y": 41, "x": 81, "z": 0, "id": 408}, {"y": 43, "x": 79, "z": 0, "id": 409}, {"y": 95, "x": 87, "z": 0, "id": 442}, {"y": 99, "x": 81, "z": 0, "id": 538}, {"y": 97, "x": 83, "z": 0, "id": 538}, {"y": 73, "x": 38, "z": 0, "id": 538}, {"y": 77, "x": 42, "z": 0, "id": 538}, {"y": 71, "x": 43, "z": 0, "id": 538}, {"y": 71, "x": 46, "z": 0, "id": 538}, {"y": 76, "x": 47, "z": 0, "id": 538}, {"y": 76, "x": 49, "z": 0, "id": 553}, {"y": 70, "x": 45, "z": 0, "id": 554}, {"y": 71, "x": 38, "z": 0, "id": 33}, {"y": 71, "x": 42, "z": 0, "id": 31}, {"y": 68, "x": 44, "z": 0, "id": 32}, {"y": 74, "x": 45, "z": 0, "id": 406}, {"y": 66, "x": 47, "z": 0, "id": 538}, {"y": 60, "x": 43, "z": 0, "id": 538}, {"y": 63, "x": 51, "z": 0, "id": 538}, {"y": 62, "x": 55, "z": 0, "id": 538}, {"y": 59, "x": 55, "z": 0, "id": 538}, {"y": 56, "x": 48, "z": 0, "id": 538}, {"y": 48, "x": 49, "z": 0, "id": 538}, {"y": 47, "x": 41, "z": 0, "id": 538}, {"y": 51, "x": 41, "z": 0, "id": 538}, {"y": 54, "x": 46, "z": 0, "id": 538}, {"y": 52, "x": 47, "z": 0, "id": 538}, {"y": 53, "x": 40, "z": 0, "id": 538}, {"y": 56, "x": 41, "z": 0, "id": 538}, {"y": 54, "x": 35, "z": 0, "id": 538}, {"y": 57, "x": 38, "z": 0, "id": 538}, {"y": 47, "x": 33, "z": 0, "id": 19}, {"y": 43, "x": 37, "z": 0, "id": 538}, {"y": 60, "x": 36, "z": 0, "id": 538}, {"y": 58, "x": 31, "z": 0, "id": 538}, {"y": 59, "x": 34, "z": 0, "id": 538}, {"y": 46, "x": 34, "z": 0, "id": 538}, {"y": 46, "x": 30, "z": 0, "id": 538}, {"y": 50, "x": 28, "z": 0, "id": 538}, {"y": 41, "x": 30, "z": 0, "id": 538}, {"y": 37, "x": 27, "z": 0, "id": 538}, {"y": 34, "x": 30, "z": 0, "id": 538}, {"y": 33, "x": 39, "z": 0, "id": 538}, {"y": 32, "x": 36, "z": 0, "id": 538}, {"y": 33, "x": 34, "z": 0, "id": 538}, {"y": 26, "x": 39, "z": 0, "id": 538}, {"y": 27, "x": 35, "z": 0, "id": 538}, {"y": 28, "x": 28, "z": 0, "id": 538}, {"y": 26, "x": 27, "z": 0, "id": 538}, {"y": 29, "x": 47, "z": 0, "id": 538}, {"y": 30, "x": 52, "z": 0, "id": 538}, {"y": 32, "x": 57, "z": 0, "id": 555}, {"y": 29, "x": 52, "z": 0, "id": 44}, {"y": 32, "x": 58, "z": 0, "id": 441}, {"y": 30, "x": 54, "z": 0, "id": 555}, {"y": 30, "x": 51, "z": 0, "id": 441}, {"y": 33, "x": 57, "z": 0, "id": 45}, {"y": 36, "x": 62, "z": 0, "id": 45}, {"y": 33, "x": 61, "z": 0, "id": 44}, {"y": 36, "x": 52, "z": 0, "id": 538}, {"y": 33, "x": 58, "z": 0, "id": 538}, {"y": 37, "x": 58, "z": 0, "id": 538}, {"y": 37, "x": 65, "z": 0, "id": 538}, {"y": 31, "x": 64, "z": 0, "id": 538}, {"y": 28, "x": 66, "z": 0, "id": 538}, {"y": 25, "x": 68, "z": 0, "id": 538}, {"y": 33, "x": 69, "z": 0, "id": 538}, {"y": 25, "x": 61, "z": 0, "id": 538}, {"y": 23, "x": 64, "z": 0, "id": 538}, {"y": 21, "x": 60, "z": 0, "id": 538}, {"y": 18, "x": 58, "z": 0, "id": 538}, {"y": 14, "x": 56, "z": 0, "id": 538}, {"y": 8, "x": 58, "z": 0, "id": 538}, {"y": 9, "x": 54, "z": 0, "id": 538}, {"y": 7, "x": 54, "z": 0, "id": 538}, {"y": 3, "x": 64, "z": 0, "id": 538}, {"y": 6, "x": 46, "z": 0, "id": 538}, {"y": 10, "x": 48, "z": 0, "id": 538}, {"y": 14, "x": 51, "z": 0, "id": 538}, {"y": 19, "x": 50, "z": 0, "id": 538}, {"y": 23, "x": 45, "z": 0, "id": 538}, {"y": 21, "x": 42, "z": 0, "id": 538}, {"y": 19, "x": 41, "z": 0, "id": 538}, {"y": 16, "x": 41, "z": 0, "id": 538}, {"y": 13, "x": 43, "z": 0, "id": 538}, {"y": 18, "x": 38, "z": 0, "id": 538}, {"y": 25, "x": 56, "z": 0, "id": 538}, {"y": 5, "x": 39, "z": 0, "id": 538}, {"y": 12, "x": 54, "z": 0, "id": 538}, {"y": 3, "x": 68, "z": 0, "id": 538}, {"y": 10, "x": 63, "z": 0, "id": 538}, {"y": 17, "x": 67, "z": 0, "id": 538}, {"y": 90, "x": 60, "z": 0, "id": 538}, {"y": 90, "x": 49, "z": 0, "id": 538}, {"y": 92, "x": 49, "z": 0, "id": 538}, {"y": 90, "x": 42, "z": 0, "id": 538}, {"y": 93, "x": 39, "z": 0, "id": 538}, {"y": 91, "x": 37, "z": 0, "id": 538}, {"y": 100, "x": 54, "z": 0, "id": 538}, {"y": 97, "x": 49, "z": 0, "id": 538}, {"y": 95, "x": 44, "z": 0, "id": 538}, {"y": 100, "x": 61, "z": 0, "id": 538}, {"y": 103, "x": 66, "z": 0, "id": 538}, {"y": 112, "x": 67, "z": 0, "id": 538}, {"y": 110, "x": 63, "z": 0, "id": 538}, {"y": 117, "x": 62, "z": 0, "id": 538}, {"y": 118, "x": 65, "z": 0, "id": 538}, {"y": 122, "x": 65, "z": 0, "id": 538}, {"y": 120, "x": 62, "z": 0, "id": 538}, {"y": 125, "x": 67, "z": 0, "id": 538}, {"y": 125, "x": 62, "z": 0, "id": 538}, {"y": 126, "x": 58, "z": 0, "id": 538}, {"y": 124, "x": 55, "z": 0, "id": 538}, {"y": 117, "x": 57, "z": 0, "id": 538}, {"y": 128, "x": 62, "z": 0, "id": 538}, {"y": 133, "x": 62, "z": 0, "id": 538}, {"y": 133, "x": 55, "z": 0, "id": 538}, {"y": 133, "x": 47, "z": 0, "id": 538}, {"y": 136, "x": 59, "z": 0, "id": 538}, {"y": 140, "x": 93, "z": 0, "id": 538}, {"y": 13, "x": 16, "z": 0, "id": 539}, {"y": 13, "x": 28, "z": 0, "id": 539}, {"y": 21, "x": 20, "z": 0, "id": 539}, {"y": 22, "x": 31, "z": 0, "id": 539}, {"y": 5, "x": 41, "z": 0, "id": 539}, {"y": 5, "x": 37, "z": 0, "id": 539}, {"y": 10, "x": 52, "z": 0, "id": 539}, {"y": 20, "x": 44, "z": 0, "id": 539}, {"y": 25, "x": 43, "z": 0, "id": 539}, {"y": 26, "x": 51, "z": 0, "id": 539}, {"y": 16, "x": 56, "z": 0, "id": 539}, {"y": 21, "x": 59, "z": 0, "id": 539}, {"y": 5, "x": 74, "z": 0, "id": 539}, {"y": 20, "x": 75, "z": 0, "id": 539}, {"y": 20, "x": 88, "z": 0, "id": 539}, {"y": 23, "x": 71, "z": 0, "id": 539}, {"y": 14, "x": 64, "z": 0, "id": 539}, {"y": 12, "x": 92, "z": 0, "id": 539}, {"y": 14, "x": 98, "z": 0, "id": 539}, {"y": 13, "x": 106, "z": 0, "id": 539}, {"y": 22, "x": 111, "z": 0, "id": 539}, {"y": 26, "x": 107, "z": 0, "id": 539}, {"y": 25, "x": 116, "z": 0, "id": 539}, {"y": 29, "x": 98, "z": 0, "id": 539}, {"y": 47, "x": 117, "z": 0, "id": 539}, {"y": 39, "x": 125, "z": 0, "id": 539}, {"y": 28, "x": 123, "z": 0, "id": 539}, {"y": 46, "x": 113, "z": 0, "id": 539}, {"y": 41, "x": 111, "z": 0, "id": 539}, {"y": 40, "x": 142, "z": 0, "id": 539}, {"y": 44, "x": 133, "z": 0, "id": 539}, {"y": 44, "x": 134, "z": 0, "id": 539}, {"y": 36, "x": 133, "z": 0, "id": 539}, {"y": 58, "x": 125, "z": 0, "id": 539}, {"y": 66, "x": 124, "z": 0, "id": 539}, {"y": 63, "x": 116, "z": 0, "id": 539}, {"y": 66, "x": 115, "z": 0, "id": 539}, {"y": 74, "x": 120, "z": 0, "id": 539}, {"y": 64, "x": 113, "z": 0, "id": 539}, {"y": 70, "x": 125, "z": 0, "id": 539}, {"y": 83, "x": 115, "z": 0, "id": 539}, {"y": 74, "x": 115, "z": 0, "id": 539}, {"y": 80, "x": 121, "z": 0, "id": 538}, {"y": 87, "x": 111, "z": 0, "id": 539}, {"y": 81, "x": 104, "z": 0, "id": 539}, {"y": 89, "x": 93, "z": 0, "id": 539}, {"y": 87, "x": 98, "z": 0, "id": 539}, {"y": 93, "x": 103, "z": 0, "id": 539}, {"y": 80, "x": 88, "z": 0, "id": 539}, {"y": 83, "x": 83, "z": 0, "id": 539}, {"y": 87, "x": 95, "z": 0, "id": 539}, {"y": 79, "x": 77, "z": 0, "id": 539}, {"y": 87, "x": 76, "z": 0, "id": 539}, {"y": 92, "x": 75, "z": 0, "id": 539}, {"y": 90, "x": 88, "z": 0, "id": 538}, {"y": 91, "x": 89, "z": 0, "id": 538}, {"y": 92, "x": 88, "z": 0, "id": 538}, {"y": 91, "x": 87, "z": 0, "id": 538}, {"y": 93, "x": 89, "z": 0, "id": 556}, {"y": 91, "x": 88, "z": 0, "id": 557}, {"y": 89, "x": 90, "z": 0, "id": 539}, {"y": 89, "x": 90, "z": 0, "id": 78}, {"y": 94, "x": 88, "z": 0, "id": 515}, {"y": 92, "x": 91, "z": 0, "id": 558}, {"y": 91, "x": 91, "z": 0, "id": 117}, {"y": 92, "x": 90, "z": 0, "id": 515}, {"y": 90, "x": 82, "z": 0, "id": 539}, {"y": 88, "x": 73, "z": 0, "id": 539}, {"y": 87, "x": 65, "z": 0, "id": 539}, {"y": 94, "x": 71, "z": 0, "id": 539}, {"y": 94, "x": 54, "z": 0, "id": 539}, {"y": 88, "x": 58, "z": 0, "id": 539}, {"y": 94, "x": 48, "z": 0, "id": 539}, {"y": 102, "x": 68, "z": 0, "id": 539}, {"y": 92, "x": 58, "z": 0, "id": 260}, {"y": 92, "x": 59, "z": 0, "id": 539}, {"y": 85, "x": 41, "z": 0, "id": 539}, {"y": 89, "x": 28, "z": 0, "id": 539}, {"y": 95, "x": 23, "z": 0, "id": 539}, {"y": 97, "x": 31, "z": 0, "id": 539}, {"y": 102, "x": 36, "z": 0, "id": 539}, {"y": 103, "x": 48, "z": 0, "id": 539}, {"y": 111, "x": 40, "z": 0, "id": 539}, {"y": 94, "x": 19, "z": 0, "id": 539}, {"y": 109, "x": 20, "z": 0, "id": 539}, {"y": 115, "x": 27, "z": 0, "id": 539}, {"y": 122, "x": 30, "z": 0, "id": 539}, {"y": 115, "x": 48, "z": 0, "id": 539}, {"y": 109, "x": 61, "z": 0, "id": 539}, {"y": 117, "x": 55, "z": 0, "id": 539}, {"y": 115, "x": 71, "z": 0, "id": 539}, {"y": 123, "x": 66, "z": 0, "id": 539}, {"y": 130, "x": 59, "z": 0, "id": 539}, {"y": 124, "x": 47, "z": 0, "id": 539}, {"y": 137, "x": 69, "z": 0, "id": 539}, {"y": 139, "x": 66, "z": 0, "id": 539}, {"y": 136, "x": 84, "z": 0, "id": 539}, {"y": 136, "x": 96, "z": 0, "id": 539}, {"y": 134, "x": 99, "z": 0, "id": 539}, {"y": 130, "x": 104, "z": 0, "id": 539}, {"y": 142, "x": 99, "z": 0, "id": 539}, {"y": 139, "x": 102, "z": 0, "id": 539}, {"y": 5, "x": 67, "z": 0, "id": 538}, {"y": 25, "x": 88, "z": 0, "id": 559}, {"y": 18, "x": 132, "z": 0, "id": 560}, {"y": 15, "x": 133, "z": 0, "id": 538}, {"y": 17, "x": 133, "z": 0, "id": 533}, {"y": 43, "x": 116, "z": 0, "id": 538}, {"y": 44, "x": 118, "z": 0, "id": 559}, {"y": 44, "x": 117, "z": 0, "id": 561}, {"y": 32, "x": 74, "z": 0, "id": 497}, {"y": 56, "x": 19, "z": 0, "id": 559}, {"y": 56, "x": 20, "z": 0, "id": 550}, {"y": 65, "x": 19, "z": 0, "id": 539}, {"y": 58, "x": 10, "z": 0, "id": 539}, {"y": 50, "x": 11, "z": 0, "id": 539}, {"y": 68, "x": 8, "z": 0, "id": 539}, {"y": 68, "x": 17, "z": 0, "id": 539}, {"y": 61, "x": 15, "z": 0, "id": 538}, {"y": 60, "x": 17, "z": 0, "id": 249}, {"y": 57, "x": 15, "z": 0, "id": 539}, {"y": 59, "x": 18, "z": 0, "id": 560}, {"y": 58, "x": 17, "z": 0, "id": 562}, {"y": 59, "x": 17, "z": 0, "id": 560}, {"y": 60, "x": 24, "z": 0, "id": 497}, {"y": 69, "x": 22, "z": 0, "id": 563}, {"y": 75, "x": 72, "z": 0, "id": 564}, {"y": 74, "x": 73, "z": 0, "id": 502}, {"y": 88, "x": 88, "z": 0, "id": 565}, {"y": 88, "x": 89, "z": 0, "id": 561}, {"y": 79, "x": 97, "z": 0, "id": 538}, {"y": 101, "x": 70, "z": 0, "id": 538}, {"y": 95, "x": 88, "z": 0, "id": 566}, {"y": 118, "x": 28, "z": 0, "id": 538}, {"y": 120, "x": 29, "z": 0, "id": 565}, {"y": 121, "x": 34, "z": 0, "id": 408}, {"y": 119, "x": 32, "z": 0, "id": 408}, {"y": 118, "x": 32, "z": 0, "id": 410}, {"y": 121, "x": 33, "z": 0, "id": 217}, {"y": 123, "x": 34, "z": 0, "id": 408}, {"y": 122, "x": 34, "z": 0, "id": 410}, {"y": 124, "x": 33, "z": 0, "id": 414}, {"y": 124, "x": 34, "z": 0, "id": 567}, {"y": 122, "x": 26, "z": 0, "id": 251}, {"y": 122, "x": 27, "z": 0, "id": 217}, {"y": 123, "x": 28, "z": 0, "id": 410}, {"y": 121, "x": 27, "z": 0, "id": 544}, {"y": 124, "x": 29, "z": 0, "id": 408}, {"y": 125, "x": 30, "z": 0, "id": 217}, {"y": 124, "x": 32, "z": 0, "id": 410}, {"y": 120, "x": 26, "z": 0, "id": 408}, {"y": 116, "x": 31, "z": 0, "id": 408}, {"y": 117, "x": 32, "z": 0, "id": 217}, {"y": 117, "x": 24, "z": 0, "id": 408}, {"y": 136, "x": 52, "z": 0, "id": 538}, {"y": 128, "x": 53, "z": 0, "id": 560}, {"y": 127, "x": 53, "z": 0, "id": 562}, {"y": 79, "x": 13, "z": 0, "id": 568}, {"y": 74, "x": 119, "z": 0, "id": 568}, {"y": 39, "x": 15, "z": 0, "id": 568}, {"y": 134, "x": 67, "z": 0, "id": 568}, {"y": 7, "x": 139, "z": 0, "id": 568}, {"y": 56, "x": 75, "z": 0, "id": 565}, {"y": 55, "x": 75, "z": 0, "id": 561}, {"y": 53, "x": 97, "z": 0, "id": 562}, {"y": 56, "x": 99, "z": 0, "id": 538}, {"y": 60, "x": 99, "z": 0, "id": 110}, {"y": 56, "x": 97, "z": 0, "id": 35}, {"y": 56, "x": 98, "z": 0, "id": 460}, {"y": 48, "x": 88, "z": 0, "id": 533}, {"y": 46, "x": 99, "z": 0, "id": 538}, {"y": 45, "x": 98, "z": 0, "id": 539}, {"y": 55, "x": 95, "z": 0, "id": 538}, {"y": 105, "x": 115, "z": 0, "id": 568}, {"y": 58, "x": 9, "z": 0, "id": 568}, {"y": 63, "x": 48, "z": 0, "id": 568}, {"y": 137, "x": 104, "z": 0, "id": 568}, {"y": 21, "x": 48, "z": 0, "id": 568}, {"y": 19, "x": 22, "z": 0, "id": 568}, {"y": 82, "x": 8, "z": 0, "id": 569}, {"y": 89, "x": 16, "z": 0, "id": 236}, {"y": 89, "x": 14, "z": 0, "id": 258}, {"y": 3, "x": 18, "z": 0, "id": 158}, {"y": 49, "x": 38, "z": 0, "id": 463}, {"y": 48, "x": 37, "z": 0, "id": 538}, {"y": 54, "x": 21, "z": 0, "id": 570}, {"y": 59, "x": 5, "z": 0, "id": 539}, {"y": 62, "x": 31, "z": 0, "id": 538}, {"y": 63, "x": 32, "z": 0, "id": 571}, {"y": 62, "x": 39, "z": 0, "id": 550}, {"y": 65, "x": 40, "z": 0, "id": 495}, {"y": 65, "x": 39, "z": 0, "id": 561}, {"y": 65, "x": 36, "z": 0, "id": 366}, {"y": 66, "x": 36, "z": 0, "id": 555}, {"y": 65, "x": 37, "z": 0, "id": 572}, {"y": 64, "x": 38, "z": 0, "id": 355}, {"y": 72, "x": 40, "z": 0, "id": 554}, {"y": 73, "x": 43, "z": 0, "id": 31}, {"y": 83, "x": 47, "z": 0, "id": 403}, {"y": 82, "x": 45, "z": 0, "id": 404}, {"y": 81, "x": 44, "z": 0, "id": 402}, {"y": 80, "x": 44, "z": 0, "id": 404}, {"y": 84, "x": 47, "z": 0, "id": 404}, {"y": 85, "x": 46, "z": 0, "id": 402}, {"y": 81, "x": 36, "z": 0, "id": 257}, {"y": 83, "x": 30, "z": 0, "id": 402}, {"y": 102, "x": 40, "z": 0, "id": 568}, {"y": 32, "x": 19, "z": 0, "id": 90}, {"y": 21, "x": 16, "z": 0, "id": 182}, {"y": 52, "x": 97, "z": 0, "id": 566}, {"y": 61, "x": 53, "z": 0, "id": 220}, {"y": 59, "x": 53, "z": 0, "id": 316}, {"y": 60, "x": 54, "z": 0, "id": 490}, {"y": 65, "x": 57, "z": 0, "id": 539}, {"y": 76, "x": 39, "z": 0, "id": 573}, {"y": 73, "x": 73, "z": 0, "id": 573}, {"y": 32, "x": 22, "z": 0, "id": 538}, {"y": 31, "x": 21, "z": 0, "id": 404}, {"y": 30, "x": 21, "z": 0, "id": 403}, {"y": 30, "x": 22, "z": 0, "id": 574}, {"y": 110, "x": 57, "z": 0, "id": 538}, {"y": 109, "x": 52, "z": 0, "id": 539}, {"y": 124, "x": 58, "z": 0, "id": 502}, {"y": 52, "x": 121, "z": 0, "id": 539}, {"y": 17, "x": 89, "z": 0, "id": 2}, {"y": 18, "x": 88, "z": 0, "id": 568}, {"y": 45, "x": 24, "z": 0, "id": 463}, {"y": 45, "x": 8, "z": 0, "id": 442}, {"y": 44, "x": 6, "z": 0, "id": 575}, {"y": 45, "x": 6, "z": 0, "id": 561}, {"y": 61, "x": 7, "z": 0, "id": 424}, {"y": 51, "x": 6, "z": 0, "id": 538}, {"y": 51, "x": 7, "z": 0, "id": 561}, {"y": 114, "x": 64, "z": 0, "id": 326}, {"y": 114, "x": 64, "z": 0, "id": 394}, {"y": 119, "x": 70, "z": 0, "id": 576}, {"y": 120, "x": 71, "z": 0, "id": 367}, {"y": 121, "x": 71, "z": 0, "id": 538}, {"y": 6, "x": 47, "z": 0, "id": 496}, {"y": 4, "x": 38, "z": 0, "id": 496}, {"y": 14, "x": 37, "z": 0, "id": 550}, {"y": 4, "x": 59, "z": 0, "id": 538}, {"y": 3, "x": 59, "z": 0, "id": 550}, {"y": 3, "x": 67, "z": 0, "id": 550}, {"y": 4, "x": 72, "z": 0, "id": 561}, {"y": 9, "x": 72, "z": 0, "id": 239}, {"y": 5, "x": 70, "z": 0, "id": 168}, {"y": 7, "x": 71, "z": 0, "id": 185}, {"y": 7, "x": 71, "z": 0, "id": 168}, {"y": 7, "x": 73, "z": 0, "id": 167}, {"y": 10, "x": 73, "z": 0, "id": 550}, {"y": 7, "x": 79, "z": 0, "id": 496}, {"y": 13, "x": 78, "z": 0, "id": 496}, {"y": 12, "x": 90, "z": 0, "id": 577}, {"y": 18, "x": 96, "z": 0, "id": 578}, {"y": 19, "x": 100, "z": 0, "id": 550}, {"y": 15, "x": 103, "z": 0, "id": 561}, {"y": 11, "x": 108, "z": 0, "id": 499}, {"y": 17, "x": 108, "z": 0, "id": 496}, {"y": 18, "x": 105, "z": 0, "id": 539}, {"y": 19, "x": 104, "z": 0, "id": 539}, {"y": 18, "x": 104, "z": 0, "id": 550}, {"y": 8, "x": 126, "z": 0, "id": 496}, {"y": 12, "x": 125, "z": 0, "id": 499}, {"y": 14, "x": 128, "z": 0, "id": 550}, {"y": 16, "x": 122, "z": 0, "id": 499}, {"y": 4, "x": 131, "z": 0, "id": 578}, {"y": 5, "x": 131, "z": 0, "id": 578}, {"y": 8, "x": 124, "z": 0, "id": 579}, {"y": 30, "x": 140, "z": 0, "id": 561}, {"y": 36, "x": 135, "z": 0, "id": 550}, {"y": 40, "x": 139, "z": 0, "id": 561}, {"y": 50, "x": 128, "z": 0, "id": 538}, {"y": 49, "x": 127, "z": 0, "id": 561}, {"y": 57, "x": 127, "z": 0, "id": 561}, {"y": 56, "x": 119, "z": 0, "id": 538}, {"y": 62, "x": 120, "z": 0, "id": 561}, {"y": 57, "x": 119, "z": 0, "id": 550}, {"y": 69, "x": 126, "z": 0, "id": 550}, {"y": 66, "x": 125, "z": 0, "id": 550}, {"y": 60, "x": 129, "z": 0, "id": 550}, {"y": 39, "x": 126, "z": 0, "id": 580}, {"y": 33, "x": 120, "z": 0, "id": 550}, {"y": 28, "x": 121, "z": 0, "id": 561}, {"y": 24, "x": 117, "z": 0, "id": 561}, {"y": 32, "x": 114, "z": 0, "id": 539}, {"y": 30, "x": 114, "z": 0, "id": 496}, {"y": 32, "x": 108, "z": 0, "id": 550}, {"y": 37, "x": 109, "z": 0, "id": 561}, {"y": 40, "x": 114, "z": 0, "id": 496}, {"y": 23, "x": 105, "z": 0, "id": 550}, {"y": 25, "x": 95, "z": 0, "id": 550}, {"y": 32, "x": 96, "z": 0, "id": 561}, {"y": 27, "x": 81, "z": 0, "id": 550}, {"y": 40, "x": 88, "z": 0, "id": 497}, {"y": 42, "x": 84, "z": 0, "id": 539}, {"y": 41, "x": 82, "z": 0, "id": 538}, {"y": 32, "x": 71, "z": 0, "id": 581}, {"y": 29, "x": 67, "z": 0, "id": 539}, {"y": 30, "x": 67, "z": 0, "id": 550}, {"y": 37, "x": 64, "z": 0, "id": 550}, {"y": 36, "x": 68, "z": 0, "id": 561}, {"y": 34, "x": 66, "z": 0, "id": 538}, {"y": 33, "x": 66, "z": 0, "id": 130}, {"y": 34, "x": 65, "z": 0, "id": 509}, {"y": 33, "x": 67, "z": 0, "id": 30}, {"y": 31, "x": 71, "z": 0, "id": 35}, {"y": 30, "x": 66, "z": 0, "id": 240}, {"y": 31, "x": 64, "z": 0, "id": 35}, {"y": 29, "x": 49, "z": 0, "id": 561}, {"y": 36, "x": 54, "z": 0, "id": 582}, {"y": 35, "x": 57, "z": 0, "id": 153}, {"y": 33, "x": 54, "z": 0, "id": 245}, {"y": 29, "x": 44, "z": 0, "id": 561}, {"y": 27, "x": 33, "z": 0, "id": 563}, {"y": 27, "x": 34, "z": 0, "id": 496}, {"y": 37, "x": 35, "z": 0, "id": 550}, {"y": 34, "x": 34, "z": 0, "id": 92}, {"y": 35, "x": 35, "z": 0, "id": 27}, {"y": 36, "x": 35, "z": 0, "id": 259}, {"y": 36, "x": 35, "z": 0, "id": 96}, {"y": 35, "x": 36, "z": 0, "id": 125}, {"y": 35, "x": 33, "z": 0, "id": 36}, {"y": 30, "x": 39, "z": 0, "id": 539}, {"y": 27, "x": 37, "z": 0, "id": 539}, {"y": 35, "x": 38, "z": 0, "id": 538}, {"y": 37, "x": 38, "z": 0, "id": 496}, {"y": 33, "x": 29, "z": 0, "id": 550}, {"y": 26, "x": 30, "z": 0, "id": 538}, {"y": 25, "x": 29, "z": 0, "id": 550}, {"y": 26, "x": 26, "z": 0, "id": 496}, {"y": 30, "x": 29, "z": 0, "id": 539}, {"y": 28, "x": 20, "z": 0, "id": 496}, {"y": 33, "x": 22, "z": 0, "id": 550}, {"y": 41, "x": 14, "z": 0, "id": 539}, {"y": 40, "x": 10, "z": 0, "id": 235}, {"y": 42, "x": 19, "z": 0, "id": 496}, {"y": 46, "x": 12, "z": 0, "id": 496}, {"y": 48, "x": 14, "z": 0, "id": 496}, {"y": 61, "x": 17, "z": 0, "id": 478}, {"y": 49, "x": 9, "z": 0, "id": 583}, {"y": 62, "x": 17, "z": 0, "id": 496}, {"y": 72, "x": 13, "z": 0, "id": 496}, {"y": 84, "x": 16, "z": 0, "id": 577}, {"y": 85, "x": 21, "z": 0, "id": 577}, {"y": 74, "x": 8, "z": 0, "id": 539}, {"y": 78, "x": 33, "z": 0, "id": 550}, {"y": 76, "x": 40, "z": 0, "id": 538}, {"y": 75, "x": 39, "z": 0, "id": 561}, {"y": 73, "x": 41, "z": 0, "id": 539}, {"y": 85, "x": 38, "z": 0, "id": 538}, {"y": 77, "x": 33, "z": 0, "id": 584}, {"y": 77, "x": 32, "z": 0, "id": 584}, {"y": 75, "x": 32, "z": 0, "id": 584}, {"y": 85, "x": 40, "z": 0, "id": 580}, {"y": 79, "x": 49, "z": 0, "id": 502}, {"y": 74, "x": 52, "z": 0, "id": 561}, {"y": 89, "x": 49, "z": 0, "id": 578}, {"y": 84, "x": 76, "z": 0, "id": 550}, {"y": 87, "x": 64, "z": 0, "id": 585}, {"y": 79, "x": 76, "z": 0, "id": 550}, {"y": 72, "x": 78, "z": 0, "id": 561}, {"y": 69, "x": 84, "z": 0, "id": 561}, {"y": 80, "x": 89, "z": 0, "id": 580}, {"y": 84, "x": 95, "z": 0, "id": 550}, {"y": 74, "x": 98, "z": 0, "id": 539}, {"y": 85, "x": 104, "z": 0, "id": 499}, {"y": 80, "x": 108, "z": 0, "id": 550}, {"y": 72, "x": 123, "z": 0, "id": 496}, {"y": 96, "x": 87, "z": 0, "id": 499}, {"y": 97, "x": 80, "z": 0, "id": 550}, {"y": 94, "x": 62, "z": 0, "id": 496}, {"y": 93, "x": 67, "z": 0, "id": 470}, {"y": 96, "x": 65, "z": 0, "id": 539}, {"y": 94, "x": 66, "z": 0, "id": 496}, {"y": 98, "x": 67, "z": 0, "id": 83}, {"y": 99, "x": 69, "z": 0, "id": 32}, {"y": 97, "x": 73, "z": 0, "id": 496}, {"y": 88, "x": 54, "z": 0, "id": 550}, {"y": 88, "x": 53, "z": 0, "id": 586}, {"y": 93, "x": 60, "z": 0, "id": 579}, {"y": 94, "x": 63, "z": 0, "id": 579}, {"y": 99, "x": 54, "z": 0, "id": 568}, {"y": 95, "x": 26, "z": 0, "id": 538}, {"y": 94, "x": 21, "z": 0, "id": 496}, {"y": 105, "x": 37, "z": 0, "id": 578}, {"y": 102, "x": 41, "z": 0, "id": 578}, {"y": 103, "x": 45, "z": 0, "id": 578}, {"y": 114, "x": 43, "z": 0, "id": 496}, {"y": 113, "x": 52, "z": 0, "id": 550}, {"y": 114, "x": 59, "z": 0, "id": 499}, {"y": 115, "x": 63, "z": 0, "id": 550}, {"y": 112, "x": 66, "z": 0, "id": 550}, {"y": 119, "x": 71, "z": 0, "id": 550}, {"y": 127, "x": 50, "z": 0, "id": 384}, {"y": 128, "x": 49, "z": 0, "id": 550}, {"y": 133, "x": 54, "z": 0, "id": 550}, {"y": 136, "x": 58, "z": 0, "id": 496}, {"y": 128, "x": 61, "z": 0, "id": 496}, {"y": 139, "x": 73, "z": 0, "id": 460}, {"y": 128, "x": 67, "z": 0, "id": 384}, {"y": 129, "x": 67, "z": 0, "id": 578}, {"y": 128, "x": 68, "z": 0, "id": 578}, {"y": 133, "x": 99, "z": 0, "id": 578}, {"y": 131, "x": 106, "z": 0, "id": 538}, {"y": 135, "x": 84, "z": 0, "id": 519}, {"y": 135, "x": 83, "z": 0, "id": 499}, {"y": 141, "x": 81, "z": 0, "id": 496}, {"y": 139, "x": 97, "z": 0, "id": 586}, {"y": 135, "x": 97, "z": 0, "id": 584}, {"y": 133, "x": 101, "z": 0, "id": 587}, {"y": 140, "x": 100, "z": 0, "id": 437}, {"y": 139, "x": 100, "z": 0, "id": 272}, {"y": 137, "x": 89, "z": 0, "id": 588}, {"y": 138, "x": 91, "z": 0, "id": 277}, {"y": 139, "x": 88, "z": 0, "id": 49}, {"y": 118, "x": 94, "z": 0, "id": 589}, {"y": 89, "x": 136, "z": 0, "id": 590}, {"y": 88, "x": 135, "z": 0, "id": 217}, {"y": 89, "x": 134, "z": 0, "id": 217}, {"y": 90, "x": 135, "z": 0, "id": 591}, {"y": 90, "x": 137, "z": 0, "id": 484}, {"y": 89, "x": 137, "z": 0, "id": 569}, {"y": 89, "x": 137, "z": 0, "id": 408}, {"y": 90, "x": 134, "z": 0, "id": 569}, {"y": 90, "x": 134, "z": 0, "id": 409}, {"y": 87, "x": 136, "z": 0, "id": 50}, {"y": 88, "x": 139, "z": 0, "id": 150}, {"y": 86, "x": 140, "z": 0, "id": 147}, {"y": 88, "x": 140, "z": 0, "id": 592}, {"y": 85, "x": 136, "z": 0, "id": 216}, {"y": 85, "x": 141, "z": 0, "id": 593}, {"y": 83, "x": 138, "z": 0, "id": 452}, {"y": 87, "x": 134, "z": 0, "id": 205}, {"y": 86, "x": 140, "z": 0, "id": 594}, {"y": 86, "x": 137, "z": 0, "id": 595}, {"y": 87, "x": 137, "z": 0, "id": 273}, {"y": 85, "x": 139, "z": 0, "id": 595}, {"y": 86, "x": 138, "z": 0, "id": 452}, {"y": 84, "x": 139, "z": 0, "id": 143}, {"y": 83, "x": 137, "z": 0, "id": 216}, {"y": 87, "x": 134, "z": 0, "id": 251}, {"y": 86, "x": 142, "z": 0, "id": 408}, {"y": 83, "x": 139, "z": 0, "id": 251}, {"y": 82, "x": 137, "z": 0, "id": 410}, {"y": 87, "x": 140, "z": 0, "id": 217}, {"y": 88, "x": 140, "z": 0, "id": 414}, {"y": 89, "x": 139, "z": 0, "id": 484}, {"y": 85, "x": 135, "z": 0, "id": 408}, {"y": 81, "x": 140, "z": 0, "id": 410}, {"y": 81, "x": 137, "z": 0, "id": 484}, {"y": 82, "x": 135, "z": 0, "id": 544}, {"y": 83, "x": 140, "z": 0, "id": 251}, {"y": 84, "x": 141, "z": 0, "id": 408}, {"y": 84, "x": 142, "z": 0, "id": 217}, {"y": 82, "x": 135, "z": 0, "id": 596}, {"y": 82, "x": 141, "z": 0, "id": 458}, {"y": 87, "x": 141, "z": 0, "id": 597}, {"y": 90, "x": 138, "z": 0, "id": 597}, {"y": 85, "x": 143, "z": 0, "id": 569}, {"y": 80, "x": 132, "z": 0, "id": 598}, {"y": 88, "x": 132, "z": 0, "id": 599}, {"y": 124, "x": 131, "z": 0, "id": 600}, {"y": 125, "x": 130, "z": 0, "id": 562}, {"y": 83, "x": 91, "z": 0, "id": 601}, {"y": 82, "x": 95, "z": 0, "id": 601}, {"y": 81, "x": 90, "z": 0, "id": 601}, {"y": 72, "x": 83, "z": 0, "id": 601}, {"y": 74, "x": 87, "z": 0, "id": 601}, {"y": 76, "x": 78, "z": 0, "id": 601}, {"y": 77, "x": 83, "z": 0, "id": 601}, {"y": 81, "x": 86, "z": 0, "id": 601}, {"y": 83, "x": 82, "z": 0, "id": 601}, {"y": 85, "x": 87, "z": 0, "id": 602}, {"y": 131, "x": 50, "z": 0, "id": 603}, {"y": 128, "x": 49, "z": 0, "id": 603}, {"y": 127, "x": 53, "z": 0, "id": 603}, {"y": 134, "x": 51, "z": 0, "id": 603}, {"y": 137, "x": 56, "z": 0, "id": 603}, {"y": 123, "x": 48, "z": 0, "id": 603}, {"y": 120, "x": 45, "z": 0, "id": 603}, {"y": 120, "x": 48, "z": 0, "id": 603}, {"y": 126, "x": 57, "z": 0, "id": 603}, {"y": 126, "x": 60, "z": 0, "id": 603}, {"y": 122, "x": 57, "z": 0, "id": 604}, {"y": 125, "x": 45, "z": 0, "id": 603}, {"y": 122, "x": 42, "z": 0, "id": 603}, {"y": 129, "x": 45, "z": 0, "id": 603}, {"y": 131, "x": 44, "z": 0, "id": 605}, {"y": 132, "x": 47, "z": 0, "id": 603}, {"y": 134, "x": 50, "z": 0, "id": 604}, {"y": 133, "x": 64, "z": 0, "id": 603}, {"y": 126, "x": 42, "z": 0, "id": 603}, {"y": 129, "x": 43, "z": 0, "id": 606}, {"y": 47, "x": 20, "z": 0, "id": 550}, {"y": 45, "x": 23, "z": 0, "id": 561}, {"y": 45, "x": 17, "z": 0, "id": 496}, {"y": 48, "x": 32, "z": 0, "id": 550}, {"y": 51, "x": 30, "z": 0, "id": 496}, {"y": 44, "x": 28, "z": 0, "id": 550}, {"y": 54, "x": 33, "z": 0, "id": 561}, {"y": 57, "x": 25, "z": 0, "id": 496}, {"y": 48, "x": 21, "z": 0, "id": 607}, {"y": 49, "x": 24, "z": 0, "id": 607}, {"y": 112, "x": 63, "z": 0, "id": 608}, {"y": 115, "x": 54, "z": 0, "id": 609}, {"y": 110, "x": 50, "z": 0, "id": 610}, {"y": 110, "x": 48, "z": 0, "id": 561}, {"y": 5, "x": 28, "z": 0, "id": 159}, {"y": 4, "x": 32, "z": 0, "id": 179}, {"y": 4, "x": 35, "z": 0, "id": 187}, {"y": 4, "x": 30, "z": 0, "id": 610}, {"y": 5, "x": 30, "z": 0, "id": 561}, {"y": 6, "x": 117, "z": 0, "id": 611}, {"y": 140, "x": 91, "z": 0, "id": 320}, {"y": 129, "x": 104, "z": 0, "id": 216}, {"y": 130, "x": 103, "z": 0, "id": 586}, {"y": 134, "x": 81, "z": 0, "id": 538}, {"y": 134, "x": 77, "z": 0, "id": 611}, {"y": 135, "x": 76, "z": 0, "id": 561}, {"y": 8, "x": 117, "z": 0, "id": 561}, {"y": 137, "x": 80, "z": 0, "id": 612}, {"y": 100, "x": 45, "z": 0, "id": 497}, {"y": 37, "x": 56, "z": 0, "id": 460}, {"y": 69, "x": 62, "z": 0, "id": 550}, {"y": 73, "x": 59, "z": 0, "id": 550}, {"y": 72, "x": 67, "z": 0, "id": 550}, {"y": 69, "x": 69, "z": 0, "id": 550}, {"y": 66, "x": 69, "z": 0, "id": 496}, {"y": 60, "x": 65, "z": 0, "id": 496}, {"y": 58, "x": 59, "z": 0, "id": 538}, {"y": 47, "x": 60, "z": 0, "id": 580}, {"y": 53, "x": 61, "z": 0, "id": 538}, {"y": 52, "x": 60, "z": 0, "id": 561}, {"y": 52, "x": 69, "z": 0, "id": 561}, {"y": 58, "x": 60, "z": 0, "id": 561}, {"y": 48, "x": 69, "z": 0, "id": 35}, {"y": 47, "x": 72, "z": 0, "id": 30}, {"y": 49, "x": 75, "z": 0, "id": 156}, {"y": 49, "x": 70, "z": 0, "id": 240}, {"y": 47, "x": 73, "z": 0, "id": 156}, {"y": 44, "x": 68, "z": 0, "id": 30}, {"y": 41, "x": 67, "z": 0, "id": 32}, {"y": 42, "x": 70, "z": 0, "id": 30}, {"y": 45, "x": 68, "z": 0, "id": 35}, {"y": 47, "x": 65, "z": 0, "id": 156}, {"y": 43, "x": 66, "z": 0, "id": 30}, {"y": 46, "x": 68, "z": 0, "id": 97}, {"y": 44, "x": 71, "z": 0, "id": 71}, {"y": 48, "x": 67, "z": 0, "id": 130}, {"y": 42, "x": 63, "z": 0, "id": 296}, {"y": 42, "x": 65, "z": 0, "id": 30}, {"y": 43, "x": 59, "z": 0, "id": 30}, {"y": 42, "x": 58, "z": 0, "id": 97}, {"y": 40, "x": 69, "z": 0, "id": 513}, {"y": 39, "x": 61, "z": 0, "id": 513}, {"y": 40, "x": 65, "z": 0, "id": 35}, {"y": 39, "x": 68, "z": 0, "id": 30}, {"y": 39, "x": 73, "z": 0, "id": 538}, {"y": 38, "x": 73, "z": 0, "id": 561}, {"y": 46, "x": 80, "z": 0, "id": 613}, {"y": 50, "x": 84, "z": 0, "id": 613}, {"y": 43, "x": 86, "z": 0, "id": 614}, {"y": 52, "x": 81, "z": 0, "id": 614}, {"y": 54, "x": 86, "z": 0, "id": 613}, {"y": 54, "x": 88, "z": 0, "id": 613}, {"y": 48, "x": 90, "z": 0, "id": 613}, {"y": 59, "x": 95, "z": 0, "id": 539}, {"y": 65, "x": 99, "z": 0, "id": 539}, {"y": 64, "x": 91, "z": 0, "id": 539}, {"y": 62, "x": 97, "z": 0, "id": 539}, {"y": 65, "x": 94, "z": 0, "id": 612}, {"y": 67, "x": 97, "z": 0, "id": 612}, {"y": 64, "x": 99, "z": 0, "id": 612}, {"y": 66, "x": 102, "z": 0, "id": 615}, {"y": 63, "x": 91, "z": 0, "id": 612}, {"y": 64, "x": 93, "z": 0, "id": 580}, {"y": 88, "x": 44, "z": 0, "id": 608}, {"y": 85, "x": 37, "z": 0, "id": 616}, {"y": 85, "x": 37, "z": 0, "id": 617}, {"y": 89, "x": 50, "z": 0, "id": 578}, {"y": 94, "x": 45, "z": 0, "id": 260}, {"y": 96, "x": 47, "z": 0, "id": 40}, {"y": 97, "x": 49, "z": 0, "id": 139}, {"y": 97, "x": 49, "z": 0, "id": 25}, {"y": 94, "x": 46, "z": 0, "id": 356}, {"y": 93, "x": 52, "z": 0, "id": 441}, {"y": 94, "x": 54, "z": 0, "id": 583}, {"y": 95, "x": 55, "z": 0, "id": 9}, {"y": 95, "x": 56, "z": 0, "id": 67}, {"y": 95, "x": 54, "z": 0, "id": 555}, {"y": 95, "x": 53, "z": 0, "id": 151}, {"y": 93, "x": 55, "z": 0, "id": 73}, {"y": 96, "x": 55, "z": 0, "id": 539}, {"y": 94, "x": 51, "z": 0, "id": 538}, {"y": 96, "x": 51, "z": 0, "id": 538}, {"y": 93, "x": 46, "z": 0, "id": 577}, {"y": 98, "x": 33, "z": 0, "id": 496}, {"y": 109, "x": 44, "z": 0, "id": 103}, {"y": 106, "x": 43, "z": 0, "id": 103}, {"y": 109, "x": 35, "z": 0, "id": 54}, {"y": 99, "x": 64, "z": 0, "id": 494}, {"y": 100, "x": 66, "z": 0, "id": 104}, {"y": 100, "x": 68, "z": 0, "id": 156}, {"y": 100, "x": 67, "z": 0, "id": 69}, {"y": 99, "x": 64, "z": 0, "id": 247}, {"y": 97, "x": 63, "z": 0, "id": 37}, {"y": 98, "x": 64, "z": 0, "id": 21}, {"y": 98, "x": 64, "z": 0, "id": 275}, {"y": 96, "x": 63, "z": 0, "id": 487}, {"y": 99, "x": 66, "z": 0, "id": 240}, {"y": 65, "x": 64, "z": 0, "id": 499}, {"y": 19, "x": 70, "z": 0, "id": 499}, {"y": 19, "x": 73, "z": 0, "id": 550}, {"y": 14, "x": 74, "z": 0, "id": 561}, {"y": 10, "x": 64, "z": 0, "id": 496}, {"y": 14, "x": 75, "z": 0, "id": 539}, {"y": 11, "x": 96, "z": 0, "id": 550}, {"y": 25, "x": 57, "z": 0, "id": 561}, {"y": 25, "x": 133, "z": 0, "id": 538}, {"y": 25, "x": 131, "z": 0, "id": 550}, {"y": 23, "x": 136, "z": 0, "id": 538}, {"y": 22, "x": 136, "z": 0, "id": 550}, {"y": 20, "x": 126, "z": 0, "id": 538}, {"y": 20, "x": 124, "z": 0, "id": 550}, {"y": 49, "x": 44, "z": 0, "id": 580}, {"y": 43, "x": 40, "z": 0, "id": 550}, {"y": 48, "x": 41, "z": 0, "id": 496}, {"y": 49, "x": 37, "z": 0, "id": 496}, {"y": 53, "x": 37, "z": 0, "id": 550}, {"y": 45, "x": 43, "z": 0, "id": 538}, {"y": 46, "x": 42, "z": 0, "id": 538}, {"y": 44, "x": 41, "z": 0, "id": 538}, {"y": 38, "x": 48, "z": 0, "id": 497}, {"y": 87, "x": 113, "z": 0, "id": 538}, {"y": 87, "x": 112, "z": 0, "id": 550}, {"y": 93, "x": 109, "z": 0, "id": 561}, {"y": 71, "x": 98, "z": 0, "id": 550}, {"y": 79, "x": 98, "z": 0, "id": 550}, {"y": 77, "x": 104, "z": 0, "id": 561}, {"y": 62, "x": 21, "z": 0, "id": 538}, {"y": 87, "x": 91, "z": 0, "id": 601}, {"y": 88, "x": 96, "z": 0, "id": 602}, {"y": 92, "x": 89, "z": 0, "id": 618}, {"y": 96, "x": 70, "z": 0, "id": 538}, {"y": 99, "x": 70, "z": 0, "id": 18}, {"y": 100, "x": 69, "z": 0, "id": 550}, {"y": 133, "x": 68, "z": 0, "id": 2}, {"y": 101, "x": 41, "z": 0, "id": 2}, {"y": 98, "x": 55, "z": 0, "id": 2}, {"y": 78, "x": 14, "z": 0, "id": 2}, {"y": 48, "x": 134, "z": 0, "id": 533}, {"y": 33, "x": 36, "z": 0, "id": 504}, {"y": 15, "x": 72, "z": 0, "id": 539}, {"y": 11, "x": 70, "z": 0, "id": 476}, {"y": 30, "x": 103, "z": 0, "id": 476}, {"y": 27, "x": 142, "z": 0, "id": 476}, {"y": 55, "x": 129, "z": 0, "id": 504}, {"y": 68, "x": 100, "z": 0, "id": 504}, {"y": 91, "x": 67, "z": 0, "id": 504}, {"y": 71, "x": 27, "z": 0, "id": 504}, {"y": 105, "x": 21, "z": 0, "id": 504}, {"y": 72, "x": 64, "z": 0, "id": 504}, {"y": 4, "x": 23, "z": 0, "id": 180}, {"y": 9, "x": 19, "z": 0, "id": 538}, {"y": 10, "x": 19, "z": 0, "id": 496}, {"y": 62, "x": 6, "z": 0, "id": 496}, {"y": 4, "x": 45, "z": 0, "id": 476}, {"y": 69, "x": 3, "z": 0, "id": 589}, {"y": 115, "x": 100, "z": 0, "id": 599}, {"y": 113, "x": 97, "z": 0, "id": 598}, {"y": 134, "x": 95, "z": 0, "id": 596}, {"y": 106, "x": 76, "z": 0, "id": 458}, {"y": 57, "x": 136, "z": 0, "id": 458}, {"y": 62, "x": 139, "z": 0, "id": 597}, {"y": 37, "x": 8, "z": 0, "id": 596}, {"y": 101, "x": 17, "z": 0, "id": 458}, {"y": 114, "x": 35, "z": 0, "id": 547}, {"y": 115, "x": 72, "z": 0, "id": 538}, {"y": 115, "x": 75, "z": 0, "id": 424}, {"y": 116, "x": 75, "z": 0, "id": 561}, {"y": 118, "x": 62, "z": 0, "id": 559}], "commands_count": 0, "loss_conditions": 255, "heroes_count": 0, "map_name": "Reclamation", "Tan": {"randomCity": 1, "is_computer": 1, "is_human": 1, "isCityTypesOpt": 0, "cityTypes": 511, "hero_type": 255, "behaviour": 0, "random_hero": 1, "heroes_count": 0}} \ No newline at end of file diff --git a/test.png b/test.png new file mode 100644 index 0000000..5c5a7c0 Binary files /dev/null and b/test.png differ diff --git a/test.py b/test.py new file mode 100755 index 0000000..544ad58 --- /dev/null +++ b/test.py @@ -0,0 +1,55 @@ +#!/usr/bin/env python + +import pyglet + +atlas1 = pyglet.image.atlas.TextureAtlas(1024, 1024) +atlas2 = pyglet.image.atlas.TextureAtlas(1024, 1024) +atlas3 = pyglet.image.atlas.TextureAtlas(1024, 1024) + +texture_group1 = pyglet.graphics.TextureGroup(atlas1.texture) +texture_group2 = pyglet.graphics.TextureGroup(atlas2.texture) +texture_group3 = pyglet.graphics.TextureGroup(atlas3.texture) + +tile1 = atlas1.add(pyglet.image.load(None, file=pyglet.resource.file('test.png'))) +tile2 = atlas2.add(pyglet.image.load(None, file=pyglet.resource.file('test.png'))) +tile3 = atlas3.add(pyglet.image.load(None, file=pyglet.resource.file('test.png'))) + +tile2.blit_into(pyglet.image.load(None, file=pyglet.resource.file('test2.png')), 0, 0, 0) + +batch = pyglet.graphics.Batch() +vertex_list = [] + +window = pyglet.window.Window(800, 600, vsync=False) +fps = pyglet.clock.ClockDisplay() + +@window.event +def on_draw(): + pyglet.gl.glClear(pyglet.gl.GL_COLOR_BUFFER_BIT) + batch.draw() + fps.draw() + +pyglet.clock.schedule(lambda dt: None) + +def add_one(dt): + vertex_list.append(batch.add(4, pyglet.gl.GL_QUADS, texture_group1, + ('v2i', [0, 0, 32, 0, 32, 32, 0, 32]), + ('t3f', tile1.tex_coords), + ('c4B', (255,255,255,255)*4))) + +def add_two(dt): + vertex_list.append(batch.add(4, pyglet.gl.GL_QUADS, texture_group2, + ('v2i', [8, 8, 40, 8, 40, 40, 8, 40]), + ('t3f', tile2.tex_coords), + ('c4B', (255,255,255,255)*4))) + +def add_three(dt): + vertex_list.append(batch.add(4, pyglet.gl.GL_QUADS, texture_group3, + ('v2i', [16, 16, 48, 16, 48, 48, 16, 48]), + ('t3f', tile3.tex_coords), + ('c4B', (255,255,255,255)*4))) + +pyglet.clock.schedule_once(add_one, 4.0) +pyglet.clock.schedule_once(add_two, 8.0) +pyglet.clock.schedule_once(add_three, 12.0) + +pyglet.app.run() diff --git a/test2.png b/test2.png new file mode 100644 index 0000000..c2f2554 Binary files /dev/null and b/test2.png differ diff --git a/tilemap.py b/tilemap.py new file mode 100644 index 0000000..695e87b --- /dev/null +++ b/tilemap.py @@ -0,0 +1,272 @@ +from __future__ import division +from random import randint, choice +from itertools import chain, repeat +from logging import getLogger + +from pyglet import gl +from pyglet import clock +from pyglet.event import EventDispatcher +from pyglet.resource import Loader +from pyglet.image import ImageGrid, TextureGrid, Animation +from pyglet.sprite import Sprite +from pyglet.graphics import Batch, TextureGroup + +LOGGER = getLogger("defence.tilemap") +TILE_LOADER = Loader(["graphics/tiles"]) + +class TileLayerGroup(TextureGroup): + def __init__(self, texture, translation=(0, 0), rotation=0): + super(TileLayerGroup, self).__init__(texture) + self.translation = translation + self.rotation = rotation + + def set_state(self): + super(TileLayerGroup, self).set_state() + + gl.glPushAttrib(gl.GL_COLOR_BUFFER_BIT) + gl.glEnable(gl.GL_BLEND) + gl.glBlendFunc(gl.GL_SRC_ALPHA, gl.GL_ONE_MINUS_SRC_ALPHA) + + x, y = self.translation + + gl.glPushMatrix() + gl.glTranslatef(x, y, 0) + gl.glRotatef(self.rotation, 0, 0, 1) + + #gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MAG_FILTER, gl.GL_NEAREST) + #gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_MIN_FILTER, gl.GL_NEAREST) + #gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_WRAP_S, gl.GL_CLAMP) + #gl.glTexParameterf(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_WRAP_T, gl.GL_CLAMP) + #gl.glTexParameterfv(gl.GL_TEXTURE_2D, gl.GL_TEXTURE_BORDER_COLOR, (1, 1, 1, 1)) + + def unset_state(self): + super(TileLayerGroup, self).unset_state() + gl.glPopMatrix() + gl.glPopAttrib() + + def __eq__(self, other): + return (super(TileLayerGroup, self).__eq__(other) + and self.translation == other.translation + and self.rotation == other.rotation) + + def __repr__(self): + return '%s(id=%d, transformation=%s, rotation=%d)' % ( + self.__class__.__name__, + self.texture.id, + self.translation, + self.rotation) + + +class Animator(object): + def __init__(self, delay): + self.delay = delay + self.paused = False + self.tiles = set() + + def animate(self, dt): + for tile in self.tiles: + pass + +class Tileset(object): + def __init__(self, graphic, tilesize=16, framedelay=1): + rows, columns = graphic.height // tilesize, graphic.width // tilesize + grid = TextureGrid(ImageGrid(graphic, rows, columns)) + + self.texture = grid.texture + + self.frames = rows + self.animated = self.frames > 1 + self.framedelay = framedelay + + self.subtiles = [grid[(0, x):(grid.rows, x+1)] for x in xrange(grid.columns)] + self.texcoords = [[frame.tex_coords for frame in subtile] for subtile in self.subtiles] + + def __getitem__(self, index): + return self.subtiles[index] + +class Tile(object): + def __init__(self, tileset, frame=0): + self.tileset = tileset + self.frame = frame + + #self.subtiles = (2, 3, 0, 1) + self.subtiles = [randint(0, 3) for x in xrange(4)] + self.subtiles = [randint(12, 15) for x in xrange(4)] + + def vertices(self, offset=(0, 0)): + """x, y = offset + + vertices = ( + x, y, x+1, y, x+1, y+1, x, y+1, + x+1, y, x+2, y, x+2, y+1, x+1, y+1, + x, y+1, x+1, y+1, x+1, y+2, x, y+2, + x+1, y+1, x+2, y+1, x+2, y+2, x+1, y+2)""" + + vertices = ( + 0, 0, 1, 0, 1, 1, 0, 1, + 1, 0, 2, 0, 2, 1, 1, 1, + 0, 1, 1, 1, 1, 2, 0, 2, + 1, 1, 2, 1, 2, 2, 1, 2) + + """vertices = ( + 0, 0, 0, 1, 0, 3, 1, 1, 5, 0, 1, 0, + 1, 0, 1, 2, 0, 5, 2, 1, 2, 1, 1, 4, + 0, 1, 9, 1, 1, 0, 1, 2, 1, 0, 2, 5, + 1, 1, 4, 2, 1, 3, 2, 2, 0, 1, 2, 1) + + offset = list(offset) + offset.append(0)""" + + return ((coord * 16) + offset[i%2] for i, coord in enumerate(vertices)) + + @property + def texcoords(self): + for subtile in self.subtiles: + for coord in self.tileset.texcoords[subtile][self.frame]: + yield coord + + @property + def colours(self): + return repeat(255, 4*4*4) + +tilesets = { + "#": Tileset(TILE_LOADER.image("grass.png")), + "~": Tileset(TILE_LOADER.image("water.png"))} + +class TileLayer(EventDispatcher): + def __init__(self, tileset, tiles): + self.tileset = tileset + self._tiles = tiles + + def __getitem__(self, coords): + x, y = coords + return self._tiles[y][x] + + def __len__(self): + return len(list(self.tiles)) + + def animate(self, dt): + for tile in self.tiles: + tile.frame += 1# random.randint(0, 2) + if tile.frame >= tile.tileset.frames: + tile.frame = 0 + + self.dispatch_event("on_animate") + + """return + start = index*(3*4*4) + end = (index+1)*(3*4*4) + + self.tempcoords[start:end]=tile.texcoords + #self.vlists[0].tex_coords[start:end]=tile.texcoords + self.vlists[0].tex_coords=self.tempcoords""" + + @property + def tiles(self): + for row in self._tiles: + for tile in row: + if tile is not None: + yield tile + + def coordtiles(self): + for y, row in enumerate(self.tilelayer): + for x, tile in enumerate(row): + yield (x, y), tile +TileLayer.register_event_type('on_animate') + +class LayerView(object): + def __init__(self, mapview, tilelayer): + self.tilelayer = tilelayer + self.group = TileLayerGroup(self.tilelayer.tileset.texture) + self.mapview = mapview + self.vlist = None + + def rotate(dt): + self.group.rotation += 0.5 + + self.tilelayer.push_handlers(self) + #clock.schedule_interval(rotate, 0.01) + + def refresh(self): + if self.vlist is not None: + self.vlist.delete() + + vertices = [] + for y, row in enumerate(self.tilelayer._tiles): + for x, tile in enumerate(row): + if tile is not None: + vertices.extend(tile.vertices((x*32, y*32))) + + texcoords = list(chain(*(tile.texcoords for tile in self.tilelayer.tiles))) + colours = list(chain(*(tile.colours for tile in self.tilelayer.tiles))) + + self.vlist = self.mapview.batch.add( + len(self.tilelayer)*16, gl.GL_QUADS, self.group, + ('v2i', vertices), + ('t3f', texcoords), + ('c4B', colours)) + + def on_animate(self): + def tex(): + for tile in self.tilelayer.tiles: + for texcoord in tile.texcoords: + yield texcoord + + self.vlist.tex_coords = list(tex()) + +class TileMap(object): + def __init__(self, layers): + self.layers = [ + TileLayer(tilesets["#"], [[Tile(tilesets["#"]) for x in xrange(20)] for y in xrange(15)]), + TileLayer(tilesets["~"], [[choice((Tile(tilesets["~"]), None)) for x in xrange(20)] for y in xrange(15)])] + + def animate(self, dt): + for layer in self.layers: + if layer.tileset.animated: + layer.animate(dt) + +class MapView(object): + def __init__(self, tilemap): + self.tilemap = tilemap + self.batch = Batch() + + self.layerviews = [LayerView(self, layer) for layer in tilemap.layers] + + self.refresh() + + def refresh(self): + for layerview in self.layerviews: + layerview.refresh() + + def draw(self): + self.batch.draw() + + def move(self, movement): + dx, dy = movement + for layerview in self.layerviews: + x, y = layerview.group.translation + layerview.group.translation = (x+dx, y+dy) + +if __name__ == "__main__": + import pyglet + + window = pyglet.window.Window(640, 480, "Defence", vsync=False) + tmap = TileMap(None) + view = MapView(tmap) + + fps = pyglet.clock.ClockDisplay() + + @window.event + def on_draw(): + window.clear() + view.draw() + fps.draw() + + @window.event + def on_mouse_drag(x, y, dx, dy, buttons, modifiers): + view.move((dx, dy)) + + pyglet.clock.schedule_interval(tmap.animate, 1/10.0) + pyglet.clock.schedule(lambda dt: None) + pyglet.app.run() +