Browse code

Version bataille navale

rep authored on 27/11/2015 16:48:35
Showing 6 changed files
... ...
@@ -1,2 +1,10 @@
1
-pylone3
2
-test
1
+captain/
2
+drone/
3
+pln/
4
+pylone3/
5
+screen/
6
+test/
7
+tth/
8
+drone.mp4
9
+drone.2.mp4
10
+test.jpg2015-09-29-21h22m05s.jpg
... ...
@@ -6,6 +6,14 @@
6 6
 # image source : pln.jpg
7 7
 # image obtenue : pln..20150910-11h59m53s.jpg
8 8
 
9
+# pln.png 3936x1024 pix
10
+
11
+'''
12
+image input puredata : 16384 width x 768 height
13
+donc par exemple, pour 3 images :
14
+3 x 16384 = 49152 pixels en tout
15
+'''
16
+
9 17
 import sys
10 18
 import Image
11 19
 import random
... ...
@@ -16,24 +24,31 @@ import ImageFilter
16 16
 from time import gmtime, strftime
17 17
 import time
18 18
 
19
+
20
+if not len(sys.argv) > 1:
21
+    raise SystemExit("Usage: %s image_source" % sys.argv[0])
22
+
19 23
 # modifs du 30/10/2013
20 24
 import ImageEnhance
21 25
 
22
-#ouvertrure de l'image source et conversion en mode couleur 1bit
26
+#ouverture de l'image source et conversion en mode couleur 1bit
23 27
 im1 = Image.open(str(sys.argv[1])).convert('1')
28
+#im1 = Image.open(str(sys.argv[1])).convert('L')
29
+#im1 = Image.open(str(sys.argv[1]))
24 30
 im2 = im1.copy()
25 31
 
26 32
 #rapport d'allongement de la nouvelle image par rapport à la largeur de l'image originale
27
-allongement = 4
33
+allongement = 8
28 34
 
29 35
 im3 = Image.new("RGBA",(im1.size[0], im1.size[1]))
30 36
 im4 = Image.new("RGBA",(im1.size[0]*allongement, im1.size[1]))
37
+#im4 = Image.new("RGBA",(49152, im1.size[1]))
31 38
 
32 39
 Larg = im1.size[0]
33 40
 Haut = im1.size[1]
34 41
 import pickle
35 42
 
36
-loadfile = True
43
+loadfile = False
37 44
 
38 45
 class Sequence:
39 46
 	def __init__(s):
... ...
@@ -47,12 +62,13 @@ class Sequence:
47 47
 """
48 48
 seq = dict()
49 49
 seq["randomCoupeHauteur"] = []
50
-seq["randomCopyPosi"] = [] 
50
+seq["randomCopyPosi"] = []
51 51
 seq["proportions"] = []
52 52
 seq["choix"] = []
53 53
 seq["sizeOutput"]= im4.size
54 54
 seq["sizeInput"] = im1.size
55 55
 """
56
+
56 57
 if loadfile:
57 58
 	seq=pickle.load(open("test.pickle"))
58 59
 
... ...
@@ -61,16 +77,15 @@ else :
61 61
 	
62 62
 for i in range(1):
63 63
 	
64
-		
65 64
 	# constitution de la liste des tranches horizontales
66 65
 	# genre comme si qu'on avait un 16 pistes :)
67 66
 	# nombre aleatoire compris dans les limites de l'image
68 67
 	def randHaut():
69
-		return random.randint(0, im1.size[1])
70
-	
68
+		return random.randint(0, im1.size[1]/8)*8
69
+
71 70
 	if loadfile:
72 71
 		randomCoupeHauteur = seq.randomCoupeHauteur
73
-		
72
+
74 73
 	else:
75 74
 		randomCoupeHauteur = [0, \
76 75
 		randHaut(),randHaut(),randHaut(),randHaut(), \
... ...
@@ -85,62 +100,107 @@ for i in range(1):
85 85
 		# rangement des valeurs des plus petites au plus grandes
86 86
 		randomCoupeHauteur.sort()
87 87
 		seq.randomCoupeHauteur = randomCoupeHauteur
88
-		
88
+
89 89
 	# les hachures
90 90
 	def Hacheur(haut, bas) :
91
-		
91
+
92 92
 		n=0
93 93
 		i=0
94 94
 		#!!!!!!!!!!
95 95
 		while n<im4.size[0] :
96
-			
97 96
 			if loadfile:
98 97
 				proportions = seq.proportions
99 98
 				choix_rnd = seq.choix[i]
100 99
 				randomCopyPosi = seq.randomCopyPosi[i]
101 100
 			else:
102
-				proportions = [(160,6),(120,4),(120,8),(80,16),(60,16),(20,32),(8,24),(8,16),(5,64),(3,24),(2,24),(1,256),(1,128),(1,64),(1,32),(1,16),(1,8)]
101
+
102
+				'''
103
+				8 16 24 32 40 48 56 64 72 80 88 96 104 112 120 128 136 144 152 160 168
104
+				'''
105
+
106
+				#proportions = [(160,6),(120,4),(120,8),(80,16),(60,16),(20,32),(8,24),(8,16),(5,64),(3,24),(2,24),(1,256),(1,128),(1,64),(1,32),(1,16),(1,8)]
107
+				#proportions = [(160,6),(120,4),(120,8),(80,16),(60,16),(20,32),(8,24),(8,16),(5,64),(3,24),(2,24),(1,256),(1,128),(1,64),(1,32),(1,16),(1,8)]
108
+				#proportions = [(1280,1),(800,1),(800,2),(640,1),(640,2),(640,4),(320,4),(320,2),(320,1),(160,1),(120,2),(120,3),(80,6),(64,12),(64,6),(32,4),(32,8),(32,16),(32,32),(32,64)]
109
+
110
+				proportions = [(256,1),(160,1),(120,2),(120,3),(80,6),(64,12),(24,18),(8,24),(8,16)]
111
+
112
+				#proportion pln pour output final avec puredata/gem (decalage phase 32pix)
113
+				
114
+				'''
115
+				proportions = [	(768,2),\
116
+								(512,4),\
117
+								(256,8),\
118
+								(128,4),(128,16),\
119
+								(64,4),(64,8),(64,16),\
120
+								(32,8),(32,16),(32,32),(32,32),(32,64),(32,128),\
121
+								(16,1),(16,4),(16,16),(16,64)]
122
+				'''
123
+				#proportions = [(512,1),(256,2),(128,4),(64,8),(64,4),(32,16),(32,32),(32,8),(16,8),(16,32),(8,64),(8,32),(8,16)]
124
+				#proportions = [(32,1),(32,2),(32,3),(32,4),(32,5),(32,6),(32,8),(32,12),(32,16),(32,24),(32,32),(32,64)]
125
+				
103 126
 				seq.proportions = proportions
104 127
 				#proportions = seq.proportions[]
105 128
 				choix_rnd = random.randint(0, len(proportions)-1)
106 129
 				#choix_rnd = random.randint(0, len(proportions)-1)
107 130
 				seq.choix.append(choix_rnd)
108
-	
131
+				
132
+				largeur = proportions[choix_rnd][0]
109 133
 				
110 134
 				# positionnement de la copie, aleatoirement, entre 0 et la largeur totale de l'image 
111 135
 				randomCopyPosi = random.randint(0, (im1.size[0]-largeur))
112 136
 				#randomCopyPosi = seq.randomCopyPosi
113 137
 				seq.randomCopyPosi.append(randomCopyPosi)
114
-			
115
-			i+=1
116 138
 
139
+			i+=1
140
+			
117 141
 			# tirage au sort
118 142
 
119
-			
120 143
 			#seq["choix"].append(choix_rnd)
121
-			
144
+
122 145
 			# assignation des valeurs (paires) finales choisies
123 146
 			largeur = proportions[choix_rnd][0]			
124 147
 			repeat = proportions[choix_rnd][1]
125
-	
126 148
 
127 149
 			#seq["randomCopyPosi"].append(randomCopyPosi)
128
-			
150
+
129 151
 			cx1 = randomCopyPosi
130 152
 			cx2 = randomCopyPosi + largeur
131 153
 			# decoupage du sample
132 154
 			im3 = im2.crop((cx1,haut,cx2,bas))
155
+						
156
+			print "im3 = im2.crop : "+str(im3.size)
133 157
 				
134
-			draw = ImageDraw.Draw(im4)		
158
+			draw = ImageDraw.Draw(im4)
159
+					
135 160
 			loop = 0
136 161
 			
137
-			#collage, n fois, du sample
162
+			pixelSizeList = [1,1,1,1,1,1,1,1,4,8]
163
+			#pixelSizeList = [1]
164
+			pixelSizeIndex = random.randint(0,len(pixelSizeList)-1)
165
+			pixelSize = pixelSizeList[pixelSizeIndex]
166
+			'''
167
+			print " pixelSize = "+str(pixelSize)
168
+			'''
169
+			
170
+			''' COLLAGE DU SAMPLE
171
+			'''
138 172
 			while loop<repeat:	
139 173
 				px1 = n
140 174
 				px2 = n + largeur
141 175
 				
142 176
 				draw = ImageDraw.Draw(im3)
143 177
 				
178
+				''' PIXELISATION
179
+				'''
180
+
181
+				im3 = im3.resize((im3.size[0]/pixelSize, im3.size[1]/pixelSize), Image.NEAREST)
182
+				im3 = im3.resize((im3.size[0]*pixelSize, im3.size[1]*pixelSize), Image.NEAREST)
183
+				
184
+				'''
185
+				print "im3.size="+str(im3.size)
186
+				print "im4.size="+str(im4.size)
187
+				'''
188
+				
144 189
 				#lignes colorées de 1 pix
145 190
 				draw.line((im3.size[0]-1, 0, im3.size[0]-1, im3.size[1]-1), fill="rgb(255,255,255)")
146 191
 				
... ...
@@ -148,7 +208,9 @@ for i in range(1):
148 148
 				
149 149
 				n = n + largeur
150 150
 				loop = loop + 1
151
-		
151
+	
152
+	''' OPTIONS
153
+	'''	
152 154
 	def TrancheHorizontale() :
153 155
 		# tirage au hasard de la bande copiee
154 156
 		pos = random.randint(0, im1.size[1]-im1.size[1]/20)
... ...
@@ -167,6 +229,9 @@ for i in range(1):
167 167
 	for j in range(len(randomCoupeHauteur)-1):
168 168
 		Hacheur(randomCoupeHauteur[j], randomCoupeHauteur[j+1])
169 169
 	
170
+	''' SAUVEGARDE	
171
+	'''
172
+	
170 173
 	# CTRL + S
171 174
 	#chemin du script	: scriptpy = sys.argv[0]
172 175
 	#chemin de l'image	: str(sys.argv[1])
... ...
@@ -179,4 +244,27 @@ for i in range(1):
179 179
 	#print script+"."+str(i)+"_"+strftime("%Y%m%d-%Hh%Mm%Ss", gmtime())+".jpg"
180 180
 	#millis = int(round(time.time() * 1000))
181 181
 	#print "millis-secondes : "+str(millis)
182
-	
182
+
183
+
184
+#obtenir les valeurs RGB des pixels de l'image
185
+'''
186
+from PIL import Image
187
+
188
+im = Image.open('test.png')
189
+pixels = list(im.getdata())
190
+width, height = im.size
191
+
192
+pixels = [pixels[i * width:(i + 1) * width] for i in xrange(height)]
193
+
194
+for r in range(0, height-⁠1) :
195
+        print "pixels = "+str(pixels[r])
196
+
197
+print " "
198
+print "len(pixels) = "+str(len(pixels))
199
+print "width = "+str(width)
200
+print "height = "+str(height)
201
+print " "
202
+
203
+#tintin = im.tostring( "raw", "RGBA", 0, -⁠1)
204
+#print "tostring = "+tintin
205
+'''
... ...
@@ -4,7 +4,6 @@ from time import gmtime, strftime
4 4
 
5 5
 fichier=sys.argv[1]
6 6
 
7
-
8 7
 try:
9 8
 	im1 = Image.open(fichier).convert('1')
10 9
 	im2 = im1.copy()
... ...
@@ -27,7 +26,6 @@ while x < im1.size[0] :
27 27
 		
28 28
 	# ALPHA tout bete :
29 29
 	im3 = Image.blend(im1, im2, 0.8)
30
-
31 30
 	
32 31
 	n = "%05d" % x
33 32
 	nomdefichier = "horizontal"+n+".png"
... ...
@@ -43,9 +41,3 @@ print " OUTPUT FINAL : "+fichier+".final.mp4"
43 43
 
44 44
 # Nettoyage
45 45
 os.system("rm horizontal*.png")
46
-
47
-
48
-		
49
-	
50
-	
51
-	
52 46
new file mode 100644
... ...
@@ -0,0 +1,40 @@
0
+from PIL import Image
1
+
2
+'''
3
+backgroundColor = (0,)*3
4
+'''
5
+
6
+pixelSize = 8
7
+
8
+image = Image.open('pixelate_input.png')
9
+image = image.resize((image.size[0]/pixelSize, image.size[1]/pixelSize), Image.NEAREST)
10
+image = image.resize((image.size[0]*pixelSize, image.size[1]*pixelSize), Image.NEAREST)
11
+pixel = image.load()
12
+
13
+'''
14
+for i in range(0,image.size[0],pixelSize):
15
+  for j in range(0,image.size[1],pixelSize):
16
+    for r in range(pixelSize):
17
+      pixel[i+r,j] = backgroundColor
18
+      pixel[i,j+r] = backgroundColor
19
+'''
20
+
21
+image.save('pixelate_output.png')
22
+
23
+
24
+'''
25
+load
26
+
27
+im.load()
28
+
29
+Allocates storage for the image and loads it from the file (or from the source, for lazy operations). In normal cases, you don’t need to call this method, since the Image class automatically loads an opened image when it is accessed for the first time.
30
+
31
+(New in 1.1.6) In 1.1.6 and later, load returns a pixel access object that can be used to read and modify pixels. The access object behaves like a 2-dimensional array, so you can do:
32
+
33
+pix = im.load()
34
+print pix[x, y]
35
+pix[x, y] = value
36
+
37
+Access via this object is a lot faster than getpixel and putpixel.
38
+'''
39
+
... ...
@@ -7,460 +7,12014 @@ p2
7 7
 NsS'proportions'
8 8
 p3
9 9
 (lp4
10
-(I160
11
-I6
10
+(I256
11
+I1
12 12
 tp5
13
-a(I120
14
-I4
13
+a(I160
14
+I1
15 15
 tp6
16 16
 a(I120
17
-I8
17
+I2
18 18
 tp7
19
-a(I80
20
-I16
19
+a(I120
20
+I3
21 21
 tp8
22
-a(I60
23
-I16
22
+a(I80
23
+I6
24 24
 tp9
25
-a(I20
26
-I32
25
+a(I64
26
+I12
27 27
 tp10
28
+a(I24
29
+I18
30
+tp11
28 31
 a(I8
29 32
 I24
30
-tp11
33
+tp12
31 34
 a(I8
32 35
 I16
33
-tp12
34
-a(I5
35
-I64
36 36
 tp13
37
-a(I3
38
-I24
39
-tp14
40
-a(I2
41
-I24
42
-tp15
43
-a(I1
44
-I256
45
-tp16
46
-a(I1
47
-I128
48
-tp17
49
-a(I1
50
-I64
51
-tp18
52
-a(I1
53
-I32
54
-tp19
55
-a(I1
56
-I16
57
-tp20
58
-a(I1
59
-I8
60
-tp21
61 37
 asS'randomCopyPosi'
62
-p22
63
-(lp23
64
-I312
65
-aI71
66
-aI349
67
-aI318
68
-aI486
69
-aI365
70
-aI131
71
-aI478
72
-aI35
73
-aI282
74
-aI310
75
-aI398
76
-aI447
77
-aI132
78
-aI213
79
-aI360
80
-aI25
81
-aI468
82
-aI496
83
-aI461
84
-aI377
85
-aI284
86
-aI250
87
-aI375
88
-aI60
89
-aI130
90
-aI104
91
-aI108
92
-aI322
93
-aI188
94
-aI18
95
-aI89
96
-aI119
38
+p14
39
+(lp15
40
+I5918
41
+aI2055
42
+aI4819
43
+aI3121
44
+aI4658
45
+aI4546
46
+aI3689
47
+aI3041
48
+aI2197
49
+aI1862
50
+aI2904
51
+aI6690
52
+aI4717
53
+aI5076
97 54
 aI69
55
+aI2963
56
+aI4417
57
+aI6964
58
+aI1531
59
+aI856
60
+aI6946
61
+aI3842
62
+aI6925
63
+aI4325
64
+aI5911
65
+aI4737
66
+aI1403
67
+aI3077
68
+aI2786
69
+aI7407
70
+aI4853
71
+aI6759
72
+aI6933
73
+aI4318
74
+aI2678
75
+aI6492
76
+aI186
77
+aI1752
78
+aI4745
79
+aI2481
80
+aI3008
81
+aI1598
82
+aI6227
83
+aI3969
84
+aI2075
85
+aI409
86
+aI184
87
+aI1733
88
+aI2277
89
+aI5803
90
+aI5199
91
+aI6278
92
+aI2800
93
+aI5369
94
+aI902
95
+aI3788
96
+aI6796
97
+aI3427
98
+aI1598
99
+aI5411
100
+aI1860
101
+aI773
102
+aI5989
103
+aI3518
104
+aI7200
105
+aI6604
106
+aI3037
107
+aI368
108
+aI278
109
+aI4564
110
+aI5112
111
+aI5095
112
+aI4379
113
+aI3318
114
+aI479
115
+aI7206
116
+aI3871
117
+aI1660
118
+aI3407
119
+aI3888
120
+aI5369
121
+aI6119
122
+aI696
123
+aI5596
124
+aI6578
125
+aI4384
126
+aI6352
127
+aI5407
128
+aI5852
129
+aI2016
130
+aI5666
131
+aI654
132
+aI2016
133
+aI5253
134
+aI5871
135
+aI5515
136
+aI6357
137
+aI4986
138
+aI4125
139
+aI3831
140
+aI6976
141
+aI5409
142
+aI6700
143
+aI6876
144
+aI15
145
+aI2426
146
+aI2721
147
+aI2598
148
+aI4030
149
+aI6541
150
+aI3185
151
+aI2544
152
+aI6659
153
+aI639
154
+aI811
155
+aI5109
156
+aI6112
157
+aI5310
158
+aI7083
159
+aI3080
160
+aI6916
161
+aI2585
162
+aI3436
163
+aI3870
164
+aI2953
165
+aI5095
166
+aI6090
167
+aI6581
168
+aI1520
169
+aI1610
170
+aI1949
171
+aI618
172
+aI4199
173
+aI1674
174
+aI3038
175
+aI6897
176
+aI6895
177
+aI4577
178
+aI761
179
+aI5209
180
+aI3282
181
+aI1963
182
+aI5715
183
+aI229
184
+aI4556
185
+aI2199
186
+aI5533
187
+aI2987
188
+aI6558
189
+aI28
190
+aI192
191
+aI4794
192
+aI6068
193
+aI1968
194
+aI6486
195
+aI1772
196
+aI1276
197
+aI7097
198
+aI1056
199
+aI86
200
+aI5361
201
+aI4642
202
+aI2386
203
+aI3525
204
+aI4630
205
+aI4394
206
+aI3190
207
+aI3778
208
+aI6586
209
+aI2426
210
+aI6796
211
+aI2671
212
+aI6038
213
+aI3308
214
+aI321
215
+aI5451
216
+aI5272
217
+aI4370
218
+aI2776
219
+aI1694
220
+aI4171
221
+aI930
222
+aI2850
223
+aI7515
224
+aI3077
225
+aI3558
226
+aI3534
227
+aI1304
228
+aI2250
229
+aI4695
230
+aI2173
231
+aI3012
232
+aI4134
233
+aI2680
234
+aI2196
235
+aI2635
236
+aI6360
237
+aI1844
238
+aI5973
239
+aI5835
240
+aI5579
241
+aI3889
242
+aI1584
243
+aI4892
244
+aI6047
245
+aI990
246
+aI1876
247
+aI2284
248
+aI283
249
+aI5674
250
+aI7185
251
+aI5647
252
+aI5882
253
+aI6302
254
+aI2701
255
+aI4151
256
+aI6013
257
+aI5010
258
+aI4370
259
+aI161
260
+aI4268
261
+aI902
262
+aI7262
263
+aI4160
264
+aI5046
265
+aI1178
266
+aI4357
267
+aI1265
268
+aI7132
269
+aI4334
270
+aI7071
271
+aI6754
272
+aI3254
273
+aI3404
274
+aI2444
275
+aI5169
276
+aI636
277
+aI4339
278
+aI1918
279
+aI4109
280
+aI6639
281
+aI3852
282
+aI5976
283
+aI4142
284
+aI7205
285
+aI6286
286
+aI6472
287
+aI6326
288
+aI1037
289
+aI4071
290
+aI6136
291
+aI1537
292
+aI81
293
+aI7240
294
+aI3935
295
+aI6361
296
+aI1455
297
+aI4595
298
+aI1637
299
+aI7038
300
+aI1062
301
+aI811
302
+aI633
303
+aI3964
304
+aI7082
305
+aI3192
306
+aI4060
307
+aI1747
308
+aI1406
309
+aI848
310
+aI4473
311
+aI1901
312
+aI2560
313
+aI4725
314
+aI1462
315
+aI753
316
+aI1682
317
+aI4330
318
+aI1115
319
+aI6525
320
+aI3571
321
+aI6506
322
+aI4230
323
+aI3203
324
+aI2838
325
+aI7127
326
+aI2244
327
+aI2070
328
+aI5626
329
+aI4712
330
+aI7383
331
+aI555
332
+aI3925
333
+aI5355
334
+aI429
335
+aI3963
336
+aI6114
337
+aI1714
338
+aI6317
339
+aI1357
340
+aI2324
341
+aI6427
342
+aI3562
343
+aI6071
344
+aI3131
345
+aI2166
346
+aI532
347
+aI4743
348
+aI5118
349
+aI5043
350
+aI3964
351
+aI1021
352
+aI3751
353
+aI6401
354
+aI244
355
+aI4541
356
+aI612
357
+aI1780
358
+aI749
359
+aI1395
360
+aI557
361
+aI413
362
+aI7008
363
+aI4506
364
+aI6938
365
+aI1101
366
+aI1245
367
+aI5333
368
+aI6496
369
+aI5380
370
+aI4230
371
+aI4975
372
+aI2389
373
+aI89
374
+aI5268
375
+aI7179
376
+aI6565
377
+aI4657
378
+aI2442
379
+aI5393
380
+aI1082
381
+aI1942
382
+aI3379
383
+aI1514
384
+aI4261
385
+aI1788
386
+aI5487
387
+aI1348
388
+aI3515
389
+aI1498
390
+aI766
391
+aI648
392
+aI4241
393
+aI2106
394
+aI2833
395
+aI3726
396
+aI4180
397
+aI917
398
+aI4585
399
+aI7103
400
+aI3617
401
+aI3600
402
+aI4732
403
+aI1731
404
+aI4577
405
+aI5848
406
+aI6666
407
+aI555
408
+aI4374
409
+aI2480
410
+aI5114
411
+aI136
412
+aI6742
413
+aI3445
414
+aI1701
415
+aI6499
416
+aI2238
417
+aI2960
418
+aI969
419
+aI6261
420
+aI10
421
+aI5858
422
+aI4479
423
+aI311
424
+aI3222
425
+aI4166
426
+aI6667
427
+aI3110
428
+aI3246
429
+aI2124
430
+aI5402
431
+aI730
432
+aI4882
433
+aI429
434
+aI4438
435
+aI3927
436
+aI5384
437
+aI5754
438
+aI5852
439
+aI5537
440
+aI6658
441
+aI2040
442
+aI1340
443
+aI4070
444
+aI1786
98 445
 aI276
99
-aI105
100
-aI143
101
-aI155
102
-aI328
103
-aI323
104
-aI290
105
-aI320
446
+aI1461
447
+aI2911
448
+aI2688
449
+aI7006
450
+aI7168
451
+aI6476
452
+aI5198
453
+aI7463
454
+aI3441
455
+aI5984
456
+aI527
457
+aI1933
458
+aI5037
459
+aI4206
460
+aI4791
461
+aI4599
462
+aI5776
463
+aI1455
464
+aI5630
465
+aI5742
466
+aI5345
467
+aI1652
468
+aI6891
469
+aI1561
470
+aI6551
471
+aI5309
472
+aI6214
473
+aI4807
474
+aI2881
475
+aI5255
476
+aI3844
477
+aI7415
478
+aI1702
479
+aI2874
480
+aI6813
481
+aI1864
482
+aI260
483
+aI3094
484
+aI6264
485
+aI6947
486
+aI4458
487
+aI6381
488
+aI1307
489
+aI1362
490
+aI897
491
+aI4829
492
+aI7187
493
+aI1456
494
+aI3495
495
+aI3168
496
+aI3230
497
+aI1757
498
+aI473
499
+aI4238
500
+aI7207
501
+aI2193
502
+aI4239
503
+aI1104
504
+aI7376
505
+aI3623
506
+aI5674
507
+aI2775
508
+aI734
509
+aI6900
510
+aI1640
511
+aI4253
512
+aI5278
513
+aI1451
514
+aI88
515
+aI4784
516
+aI3076
517
+aI858
518
+aI3726
519
+aI5417
520
+aI1365
521
+aI1135
522
+aI5611
523
+aI3861
524
+aI5304
525
+aI3830
526
+aI2544
527
+aI6557
528
+aI2609
529
+aI4225
530
+aI1570
531
+aI4878
532
+aI3756
533
+aI6107
534
+aI5830
535
+aI744
536
+aI758
537
+aI5839
538
+aI4305
539
+aI6874
540
+aI6668
541
+aI6404
542
+aI5587
543
+aI4507
544
+aI2199
545
+aI135
546
+aI5340
547
+aI6250
548
+aI6262
549
+aI385
550
+aI3144
551
+aI7372
552
+aI5928
553
+aI566
554
+aI228
555
+aI1826
556
+aI1342
557
+aI3491
558
+aI631
559
+aI422
560
+aI6067
561
+aI814
562
+aI3400
563
+aI2392
564
+aI2665
565
+aI5237
566
+aI5090
567
+aI4410
568
+aI5044
569
+aI1612
570
+aI1936
571
+aI7090
572
+aI1141
573
+aI6682
574
+aI3692
575
+aI7117
576
+aI1829
577
+aI2447
578
+aI2914
579
+aI3354
580
+aI6462
581
+aI2560
582
+aI5184
583
+aI1428
584
+aI1341
585
+aI6553
586
+aI6756
587
+aI169
588
+aI3888
589
+aI1469
590
+aI4106
591
+aI3267
592
+aI1287
593
+aI4290
594
+aI2681
595
+aI93
596
+aI4504
597
+aI2416
598
+aI4744
599
+aI3709
600
+aI1108
601
+aI4008
602
+aI3657
603
+aI2578
604
+aI4242
605
+aI2096
606
+aI6722
607
+aI1545
608
+aI5456
609
+aI2144
610
+aI1274
611
+aI410
612
+aI5552
613
+aI6320
614
+aI5771
615
+aI1099
616
+aI1488
617
+aI7199
618
+aI5308
619
+aI403
620
+aI5727
621
+aI4333
622
+aI116
623
+aI39
624
+aI2474
625
+aI2491
626
+aI488
627
+aI5722
628
+aI3893
629
+aI3573
630
+aI2943
631
+aI3459
632
+aI1532
633
+aI7026
634
+aI6709
635
+aI6867
636
+aI154
637
+aI4009
638
+aI6508
639
+aI3451
640
+aI3680
641
+aI3679
642
+aI6210
643
+aI729
644
+aI2071
645
+aI3765
646
+aI2629
647
+aI4920
648
+aI7373
649
+aI2013
650
+aI7135
651
+aI7118
652
+aI411
653
+aI237
654
+aI4351
655
+aI4429
656
+aI6873
657
+aI1839
658
+aI4391
659
+aI3621
660
+aI4194
661
+aI2697
662
+aI1992
663
+aI7175
664
+aI6843
665
+aI3733
666
+aI2989
667
+aI7252
668
+aI2329
669
+aI133
670
+aI529
671
+aI1017
672
+aI3606
673
+aI78
674
+aI2630
675
+aI4743
676
+aI5606
677
+aI6143
678
+aI5015
679
+aI6198
680
+aI6710
681
+aI513
682
+aI7237
683
+aI6363
684
+aI6607
685
+aI311
686
+aI813
687
+aI1069
688
+aI3138
689
+aI4505
690
+aI4383
691
+aI6102
692
+aI6291
693
+aI6082
694
+aI700
695
+aI3697
696
+aI976
697
+aI4865
698
+aI3076
699
+aI4934
700
+aI3586
701
+aI5240
702
+aI399
703
+aI3119
704
+aI5041
705
+aI791
706
+aI5644
707
+aI4508
708
+aI176
709
+aI4505
710
+aI5534
711
+aI3401
712
+aI5284
713
+aI5163
714
+aI3425
715
+aI2681
716
+aI7005
717
+aI6087
718
+aI6985
719
+aI487
720
+aI1787
721
+aI2677
722
+aI5253
723
+aI2120
724
+aI3961
725
+aI4984
726
+aI2079
727
+aI883
728
+aI386
729
+aI6438
730
+aI4560
731
+aI7417
732
+aI4389
733
+aI3981
734
+aI3231
735
+aI5407
736
+aI4054
737
+aI5008
738
+aI1973
739
+aI2747
740
+aI3186
741
+aI1880
742
+aI6889
743
+aI3101
744
+aI5165
745
+aI6938
746
+aI6931
747
+aI4350
748
+aI4467
749
+aI4090
750
+aI3627
751
+aI514
752
+aI7415
753
+aI1006
754
+aI2977
755
+aI1380
756
+aI6147
757
+aI5853
758
+aI4903
759
+aI1089
760
+aI1978
761
+aI2619
762
+aI49
763
+aI4074
764
+aI1516
765
+aI1771
766
+aI7252
767
+aI6220
768
+aI5192
769
+aI1232
770
+aI5748
771
+aI422
772
+aI1689
773
+aI6062
774
+aI4735
775
+aI4199
776
+aI1874
777
+aI4101
778
+aI5402
779
+aI5151
780
+aI1021
781
+aI3745
782
+aI4188
783
+aI1955
784
+aI741
785
+aI2429
786
+aI4891
787
+aI5588
788
+aI134
789
+aI689
790
+aI59
791
+aI5297
792
+aI5784
793
+aI4518
794
+aI3671
795
+aI3393
796
+aI6531
797
+aI1772
798
+aI6296
799
+aI1840
800
+aI6906
801
+aI3010
802
+aI6656
803
+aI4134
804
+aI3719
805
+aI3361
806
+aI6519
807
+aI7280
808
+aI6254
809
+aI945
810
+aI4810
811
+aI5830
812
+aI5582
813
+aI1029
814
+aI7117
106 815
 aI188
107
-aI231
108
-aI252
109
-aI68
110
-aI225
111
-aI178
112
-aI396
113
-aI257
114
-aI269
115
-aI254
116
-aI18
117
-aI245
118
-aI234
119
-aI209
120
-aI31
121
-aI35
122
-aI298
123
-aI301
124
-aI190
125
-aI225
126
-aI300
816
+aI1751
817
+aI1000
818
+aI6204
819
+aI5117
820
+aI1032
821
+aI4052
822
+aI5421
823
+aI4835
824
+aI7165
825
+aI4613
826
+aI6973
827
+aI1544
828
+aI6743
829
+aI297
830
+aI3372
831
+aI1816
832
+aI6499
833
+aI3986
834
+aI6499
835
+aI2629
836
+aI5210
837
+aI2104
838
+aI6596
839
+aI5525
840
+aI6061
841
+aI4309
842
+aI4881
843
+aI4716
844
+aI547
845
+aI6014
846
+aI2705
847
+aI470
848
+aI6952
849
+aI22
850
+aI954
851
+aI503
852
+aI6889
853
+aI1263
854
+aI339
855
+aI20
856
+aI6887
857
+aI6405
858
+aI666
859
+aI39
860
+aI6682
861
+aI1868
862
+aI6259
863
+aI182
864
+aI2070
865
+aI5953
866
+aI3893
867
+aI6354
868
+aI3953
869
+aI911
870
+aI2646
871
+aI1807
872
+aI2667
873
+aI7501
874
+aI5486
875
+aI1655
876
+aI111
877
+aI6063
878
+aI1370
879
+aI223
880
+aI5527
881
+aI1117
882
+aI6482
883
+aI6226
884
+aI4742
885
+aI5498
886
+aI1192
887
+aI6711
888
+aI5700
889
+aI5485
890
+aI1092
891
+aI3901
892
+aI4309
893
+aI4799
894
+aI2764
895
+aI1540
896
+aI378
897
+aI3473
898
+aI7435
899
+aI5972
900
+aI3004
901
+aI1511
902
+aI1839
903
+aI1128
904
+aI3984
905
+aI91
906
+aI6757
907
+aI4580
908
+aI1699
909
+aI4331
910
+aI4519
911
+aI4288
912
+aI6858
913
+aI112
914
+aI1900
915
+aI1964
916
+aI4491
917
+aI5879
918
+aI3981
919
+aI5759
920
+aI6754
921
+aI2119
922
+aI6533
923
+aI863
924
+aI6157
925
+aI1963
926
+aI5918
927
+aI2791
928
+aI3113
929
+aI2088
930
+aI1680
931
+aI3565
932
+aI5744
933
+aI7316
934
+aI4764
935
+aI2684
936
+aI3169
937
+aI2506
938
+aI7009
939
+aI3327
940
+aI2889
941
+aI4753
942
+aI686
943
+aI1423
944
+aI188
945
+aI2794
946
+aI3
947
+aI6672
948
+aI3348
949
+aI7183
950
+aI3990
951
+aI5406
952
+aI2772
953
+aI6313
954
+aI3584
955
+aI1679
956
+aI2540
957
+aI3516
958
+aI7116
959
+aI3505
960
+aI3882
961
+aI5788
962
+aI1095
963
+aI2529
964
+aI7227
965
+aI1663
966
+aI4658
967
+aI3466
968
+aI237
969
+aI155
970
+aI6480
971
+aI2204
972
+aI3531
973
+aI4776
974
+aI4920
975
+aI4580
976
+aI5233
977
+aI7208
978
+aI90
979
+aI2219
980
+aI4764
981
+aI4348
982
+aI3332
983
+aI3557
984
+aI4735
985
+aI5519
986
+aI4756
987
+aI5889
988
+aI2183
989
+aI4223
990
+aI1805
991
+aI3818
992
+aI5659
993
+aI1362
994
+aI6997
995
+aI1598
996
+aI992
997
+aI1770
998
+aI1508
999
+aI3513
1000
+aI914
1001
+aI2039
1002
+aI6071
1003
+aI4214
1004
+aI7256
1005
+aI3950
1006
+aI5375
1007
+aI4181
1008
+aI246
1009
+aI6145
1010
+aI6607
1011
+aI263
1012
+aI4535
1013
+aI6028
1014
+aI251
1015
+aI650
1016
+aI50
1017
+aI2600
1018
+aI4652
1019
+aI362
1020
+aI5541
1021
+aI4962