-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutility_path_segmentation.py
More file actions
608 lines (444 loc) · 174 KB
/
utility_path_segmentation.py
File metadata and controls
608 lines (444 loc) · 174 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
import math
import numpy as np
import utility_environ_descrip as resto
try:
import OpenGL as ogl
try:
import OpenGL.GL # this fails in <=2020 versions of Python on OS X 11.x
except ImportError:
print('Drat, patching for Big Sur')
from ctypes import util
orig_util_find_library = util.find_library
def new_util_find_library( name ):
res = orig_util_find_library( name )
if res: return res
return '/System/Library/Frameworks/'+name+'.framework/'+name
util.find_library = new_util_find_library
except ImportError:
pass
import klampt
from klampt import vis
from klampt.model import trajectory
from klampt.model import multipath
from klampt.vis import GLRealtimeProgram
import cv2
# # red green yellow light yellow grey light blue blue
# PATH_COLORS = [(138,43,226), (0,201,87), (0,255,255), (0,128,128), (100,100,100), (255,64,64), (255,10,10)]
def draw_path(restaurant, title, traj, prefix):
img = restaurant.get_img()
path = traj.milestones
path_color = (255,64,64) #(0,201,87)
dot_color = (255,10,10) # (0,255,255)
for i in range(len(path) - 1):
a = tuple(path[i])
b = tuple(path[i + 1])
a = (int(a[0]), int(a[1]))
b = (int(b[0]), int(b[1]))
cv2.line(img, a, b, path_color, thickness=5, lineType=8)
cv2.circle(img, a, 6, dot_color, 6)
img = cv2.flip(img, 0)
cv2.imwrite(prefix + title + '.png', img)
print("Drawing completed for " + title)
class GLTest(GLRealtimeProgram):
"""Define hooks into the GUI loop to draw and update the simulation"""
def __init__(self,world,sim):
GLRealtimeProgram.__init__(self,"GLTest")
self.world = world
self.sim = sim
def display(self):
self.sim.updateWorld()
self.world.drawGL()
pass
def idle(self):
rfs = sim.controller(0).sensor("RF_ForceSensor")
print("Sensor values:",rfs.getMeasurements())
sim.simulate(self.dt)
return
def tuples_to_lists(path):
new_list = []
for tup in path:
new_list.append(list(tup))
return new_list
def lists_to_tuples(path):
new_list = []
for l in path:
new_list.append(tuple(l))
return new_list
def export_path_for_unity(label, path):
prefix = 'path_optimization/csv/'
try:
path_raw = resto.image_to_unity_list(traj.milestones)
except:
path_raw = resto.image_to_unity_list(path)
print(path)
txt = ""
s1 = (5.59563, 1.045)
s2 = (5.59563, 1.04)
s3 = (5.59563, 1.035)
s4 = (5.59563, 1.03)
s5 = (5.59563, 1.025)
path_unity = [s1, s2, s3, s4, s5]
path_unity.extend(path_raw)
# max_link = 0
# min_link = 1000
# for pi in range(len(path_unity) - 1):
# p1 = path_unity[pi]
# p2 = path_unity[pi + 1]
# dist = math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)
# if dist > max_link:
# max_link = dist
# if dist < min_link:
# min_link = dist
# print("MIN LINK, MAX LINK")
# print(min_link)
# print(max_link)
# [(3.8, -7.0, 180), (7.3999999999999995, -7.0, 0)]
# last_point = path_unity[-1]
# if last_point[0] < 4:
# path_unity.append((3.8, -7.0))
# else:
# path_unity.append((7.4, -7.0))
last = path_unity[-1]
if last[0] > 5:
path_unity.append((7.41, last[1]))
else:
path_unity.append((3.79, last[1]))
for pt in path_unity:
line = str(pt[0]) + ", -.2, " + str(pt[1]) + "\n"
txt += line
# print(txt)
print(txt)
file1 = open(prefix + label + ".csv","w")
file1.write(txt)
file1.close()
CHUNKIFY_LINEAR = 'linear'
CHUNKIFY_TRIANGULAR = 'triangular'
CHUNKIFY_MINJERK = 'min-jerk'
CHUNK_BY_DURATION = 'chunk-by-duration'
CHUNK_BY_NUMSTEPS = 'chunk-by-num-steps'
def get_dt(exp_settings):
chunk_by = exp_settings['chunk-by-what']
# schema = exp_settings['chunk_type']
num_chunks = exp_settings['num_chunks']
# traj.discretize(dt): makes milestones evenly spaced in time, with time dt apart.
# This might slightly change the shape of the path.
if chunk_by == CHUNK_BY_NUMSTEPS:
# schema == CHUNKIFY_LINEAR or schema == CHUNKIFY_TRIANGULAR or schema == CHUNKIFY_MINJERK
dt = (duration) * (1 / float(num_chunks - 1))
elif chunk_by == "":
dt = 43.0
else:
# this number is the duration of a minimal path to one of the goals
# MAGIC
min_path_magic_number = 20.0 # minimum path to a goal duration
dt = (min_path_magic_number / (num_chunks + 1))
# note that this dt does not guarantee a certain number of chunks
# rather, it guarantees AT LEAST this many timesteps
# this is the unit we will use for calculating legibility, also
return dt
def unity_move_towards(p1, p2, step):
v_start = np.asarray((p1[0], p1[1]))
v_end = np.asarray((p2[0], p2[1]))
distance = np.linalg.norm(v_end - v_start)
direction = np.array(v_end - v_start)
# print("Dist " + str(distance))
# print("Direction " + str(direction))
# step = speed * elapsed, passed in
new_position = direction * (step);
return new_position
def unity_quaternion_look_rotation(p1, new_p):
# quaternion of rotation
return 0
def chunkify_path_unity(r, exp_settings, path):
print("CHUNKIFYING PATH")
print(path)
# speed = exp_settings['speed']
# private float reachDistance = 0.1f;
# public float rotationSpeed = 5.0f;
# print(path)
path_unity = resto.image_to_unity_list(path)
reach_distance = 0.1
rotation_speed = 5.0
delta_time = (1.0/60)
speed = 1.0
# float distance = Vector3.Distance(PathToFollow.path_objs[CurrentWayPointID].position, transform.position);
# transform.position = Vector3.MoveTowards(transform.position, PathToFollow.path_objs[CurrentWayPointID].position, Time.deltaTime * speed);
# var rotation = Quaternion.LookRotation(PathToFollow.path_objs[CurrentWayPointID].position - transform.position);
# transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * rotationSpeed);
first_pt = path_unity[0]
# frames are 1/60 second
current_p = (first_pt[0], first_pt[1], 90)
timer = 0
move_log = []
move_log.append((timer, current_p))
new_path = []
# I've got some waypoints, but also
for pi in range(len(path_unity) - 1):
p1 = path_unity[pi]
p2 = path_unity[pi + 1]
careful = 0
# print("Next point")
while current_p != p2 and careful < 20:
dist = math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)
new_pos = unity_move_towards(current_p, p2, delta_time*speed)
timer += delta_time
# track the current angling and continue trying to swivel
rotation = unity_quaternion_look_rotation(new_pos, current_p)
current_p = (new_pos[0], new_pos[1])
new_path.append(current_p)
move_log.append((timer, current_p))
careful += 1
print((timer, current_p))
# print("...")
# planning_path = resto.unity_to_image_list(new_path)
# print(planning_path)
return new_path
def chunkify_like_unity(r, exp_settings, path):
print("CHUNKIFYING PATH")
print(path)
# speed = exp_settings['speed']
# private float reachDistance = 0.1f;
# public float rotationSpeed = 5.0f;
# print(path)
path_unity = resto.image_to_unity_list(path)
reach_distance = 0.1
rotation_speed = 5.0
delta_time = (1.0/60)
speed = 1.0
# float distance = Vector3.Distance(PathToFollow.path_objs[CurrentWayPointID].position, transform.position);
# transform.position = Vector3.MoveTowards(transform.position, PathToFollow.path_objs[CurrentWayPointID].position, Time.deltaTime * speed);
# var rotation = Quaternion.LookRotation(PathToFollow.path_objs[CurrentWayPointID].position - transform.position);
# transform.rotation = Quaternion.Slerp(transform.rotation, rotation, Time.deltaTime * rotationSpeed);
first_pt = path_unity[0]
# frames are 1/60 second
current_p = (first_pt[0], first_pt[1], 90)
timer = 0
move_log = []
move_log.append((timer, current_p))
new_path = []
# I've got some waypoints, but also
for pi in range(len(path_unity) - 1):
p1 = path_unity[pi]
p2 = path_unity[pi + 1]
careful = 0
# print("Next point")
while current_p != p2 and careful < 20:
dist = math.sqrt((p1[0] - p2[0])**2 + (p1[1] - p2[1])**2)
new_pos = unity_move_towards(current_p, p2, delta_time*speed)
timer += delta_time
# track the current angling and continue trying to swivel
rotation = unity_quaternion_look_rotation(new_pos, current_p)
current_p = (new_pos[0], new_pos[1])
new_path.append(current_p)
move_log.append((timer, current_p))
careful += 1
print((timer, current_p))
return path
def chunkify_path(r, exp_settings, path):
path = tuples_to_lists(path)
chunk_by = exp_settings['chunk-by-what']
schema = exp_settings['chunk_type']
num_chunks = exp_settings['num_chunks']
timing, velocities = None, None
if schema == CHUNKIFY_LINEAR:
# timing='sqrt-L2'
timing = 'limited'
velocities = 'auto'
elif schema == CHUNKIFY_TRIANGULAR:
velocities='triangular'
timing='sqrt-L2'
elif schema == CHUNKIFY_MINJERK:
velocities='minimum-jerk'
timing='sqrt-L2'
traj = trajectory.path_to_trajectory(path, speed=1, timing=timing, velocities=velocities)
duration = traj.duration()
# print("duration: " + str(duration))
dt = get_dt(exp_settings)
# print("dt=" + str(dt))
# print("duration=" + str(duration))
# print("num_chunks=" + str(exp_settings['num_chunks']))
traj = traj.discretize(dt)
path = traj.milestones
if chunk_by == CHUNK_BY_NUMSTEPS and len(path) != num_chunks:
print("Length of " + str(len(path)) + " != " + str(num_chunks))
exit()
if chunk_by == CHUNK_BY_DURATION and len(path) < num_chunks:
pass
# print("Length of " + str(len(path)) + " < " + str(num_chunks) + "... which really shouldn't happen")
# # print("unless this is ")
# exit()
path = lists_to_tuples(path)
path = [(round(x[0]), round(x[1])) for x in path]
# re_chunk = chunkify_like_unity(r, exp_settings, path)
return path
if __name__ == "__main__":
world = klampt.WorldModel()
# res = world.readFile("../../data/hubo_plane.xml")
# if not res:
# raise RuntimeError("Unable to load world")
# sim = klampt.Simulator(world)
# print("STARTING vis.run()")
# vis.run(GLTest(world,sim))
# print("END OF vis.run()")
# all paths with moderate value of lambda
all_paths = {((1035, 307, 180), 'omniscient'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'all'): [(103, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (185, 474), (191, 473), (198, 473), (205, 472), (211, 471), (217, 471), (224, 470), (230, 469), (236, 469), (242, 468), (248, 467), (254, 466), (259, 465), (265, 465), (271, 464), (276, 463), (282, 462), (287, 461), (292, 460), (298, 459), (303, 458), (308, 457), (313, 456), (318, 455), (323, 454), (328, 453), (333, 452), (337, 451), (342, 450), (347, 448), (351, 447), (356, 446), (361, 445), (365, 444), (370, 443), (374, 442), (378, 441), (383, 440), (387, 439), (391, 437), (395, 436), (400, 435), (404, 434), (408, 433), (412, 432), (416, 431), (420, 430), (424, 429), (429, 428), (433, 427), (437, 426), (441, 425), (445, 424), (449, 424), (453, 423), (457, 422), (461, 421), (465, 420), (469, 420), (473, 419), (477, 418), (481, 417), (485, 417), (489, 416), (493, 416), (497, 415), (501, 415), (505, 414), (509, 414), (513, 413), (517, 413), (522, 413), (526, 413), (530, 412), (534, 412), (539, 412), (543, 412), (547, 412), (552, 412), (556, 412), (561, 412), (565, 413), (570, 413), (575, 413), (579, 414), (584, 414), (589, 415), (594, 415), (599, 416), (604, 417), (604, 417), (609, 417), (614, 418), (619, 419), (624, 420), (629, 421), (634, 422), (640, 423), (645, 424), (650, 425), (656, 426), (661, 428), (667, 429), (672, 430), (678, 432), (684, 433), (689, 434), (695, 436), (701, 437), (706, 439), (712, 440), (718, 441), (724, 443), (729, 444), (735, 446), (741, 447), (747, 448), (752, 450), (758, 451), (764, 452), (770, 454), (776, 455), (781, 456), (787, 458), (793, 459), (799, 460), (804, 461), (810, 462), (816, 463), (821, 464), (827, 465), (833, 466), (838, 467), (844, 467), (849, 468), (855, 469), (860, 469), (865, 470), (871, 470), (876, 470), (881, 471), (886, 471), (892, 471), (897, 471), (902, 471), (907, 470), (912, 470), (916, 469), (921, 469), (926, 468), (931, 467), (935, 466), (940, 465), (944, 464), (948, 463), (953, 462), (957, 460), (961, 458), (965, 457), (969, 455), (973, 452), (977, 450), (980, 448), (984, 445), (987, 442), (991, 440), (994, 437), (997, 433), (1000, 430), (1003, 426), (1006, 423), (1008, 419), (1011, 415), (1013, 410), (1016, 406), (1018, 401), (1020, 396), (1022, 391), (1024, 386), (1025, 381), (1027, 375), (1028, 369), (1030, 363), (1031, 357), (1032, 350), (1033, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'a'): [(103, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (185, 474), (191, 473), (198, 473), (205, 472), (211, 471), (217, 471), (224, 470), (230, 469), (236, 469), (242, 468), (248, 467), (254, 466), (259, 465), (265, 465), (271, 464), (276, 463), (282, 462), (287, 461), (292, 460), (298, 459), (303, 458), (308, 457), (313, 456), (318, 455), (323, 454), (328, 453), (333, 452), (337, 451), (342, 450), (347, 448), (351, 447), (356, 446), (361, 445), (365, 444), (370, 443), (374, 442), (378, 441), (383, 440), (387, 439), (391, 437), (395, 436), (400, 435), (404, 434), (408, 433), (412, 432), (416, 431), (420, 430), (424, 429), (429, 428), (433, 427), (437, 426), (441, 425), (445, 424), (449, 424), (453, 423), (457, 422), (461, 421), (465, 420), (469, 420), (473, 419), (477, 418), (481, 417), (485, 417), (489, 416), (493, 416), (497, 415), (501, 415), (505, 414), (509, 414), (513, 413), (517, 413), (522, 413), (526, 413), (530, 412), (534, 412), (539, 412), (543, 412), (547, 412), (552, 412), (556, 412), (561, 412), (565, 413), (570, 413), (575, 413), (579, 414), (584, 414), (589, 415), (594, 415), (599, 416), (604, 417), (604, 417), (609, 417), (614, 418), (619, 419), (624, 420), (629, 421), (634, 422), (640, 423), (645, 424), (650, 425), (656, 426), (661, 428), (667, 429), (672, 430), (678, 432), (684, 433), (689, 434), (695, 436), (701, 437), (706, 439), (712, 440), (718, 441), (724, 443), (729, 444), (735, 446), (741, 447), (747, 448), (752, 450), (758, 451), (764, 452), (770, 454), (776, 455), (781, 456), (787, 458), (793, 459), (799, 460), (804, 461), (810, 462), (816, 463), (821, 464), (827, 465), (833, 466), (838, 467), (844, 467), (849, 468), (855, 469), (860, 469), (865, 470), (871, 470), (876, 470), (881, 471), (886, 471), (892, 471), (897, 471), (902, 471), (907, 470), (912, 470), (916, 469), (921, 469), (926, 468), (931, 467), (935, 466), (940, 465), (944, 464), (948, 463), (953, 462), (957, 460), (961, 458), (965, 457), (969, 455), (973, 452), (977, 450), (980, 448), (984, 445), (987, 442), (991, 440), (994, 437), (997, 433), (1000, 430), (1003, 426), (1006, 423), (1008, 419), (1011, 415), (1013, 410), (1016, 406), (1018, 401), (1020, 396), (1022, 391), (1024, 386), (1025, 381), (1027, 375), (1028, 369), (1030, 363), (1031, 357), (1032, 350), (1033, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'b'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'c'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'd'): [(103, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (185, 474), (191, 473), (198, 473), (205, 472), (211, 471), (217, 471), (224, 470), (230, 469), (236, 469), (242, 468), (248, 467), (254, 466), (259, 465), (265, 465), (271, 464), (276, 463), (282, 462), (287, 461), (292, 460), (298, 459), (303, 458), (308, 457), (313, 456), (318, 455), (323, 454), (328, 453), (333, 452), (337, 451), (342, 450), (347, 448), (351, 447), (356, 446), (361, 445), (365, 444), (370, 443), (374, 442), (378, 441), (383, 440), (387, 439), (391, 437), (395, 436), (400, 435), (404, 434), (408, 433), (412, 432), (416, 431), (420, 430), (424, 429), (429, 428), (433, 427), (437, 426), (441, 425), (445, 424), (449, 424), (453, 423), (457, 422), (461, 421), (465, 420), (469, 420), (473, 419), (477, 418), (481, 417), (485, 417), (489, 416), (493, 416), (497, 415), (501, 415), (505, 414), (509, 414), (513, 413), (517, 413), (522, 413), (526, 413), (530, 412), (534, 412), (539, 412), (543, 412), (547, 412), (552, 412), (556, 412), (561, 412), (565, 413), (570, 413), (575, 413), (579, 414), (584, 414), (589, 415), (594, 415), (599, 416), (604, 417), (604, 417), (609, 417), (614, 418), (619, 419), (624, 420), (629, 421), (634, 422), (640, 423), (645, 424), (650, 425), (656, 426), (661, 428), (667, 429), (672, 430), (678, 432), (684, 433), (689, 434), (695, 436), (701, 437), (706, 439), (712, 440), (718, 441), (724, 443), (729, 444), (735, 446), (741, 447), (747, 448), (752, 450), (758, 451), (764, 452), (770, 454), (776, 455), (781, 456), (787, 458), (793, 459), (799, 460), (804, 461), (810, 462), (816, 463), (821, 464), (827, 465), (833, 466), (838, 467), (844, 467), (849, 468), (855, 469), (860, 469), (865, 470), (871, 470), (876, 470), (881, 471), (886, 471), (892, 471), (897, 471), (902, 471), (907, 470), (912, 470), (916, 469), (921, 469), (926, 468), (931, 467), (935, 466), (940, 465), (944, 464), (948, 463), (953, 462), (957, 460), (961, 458), (965, 457), (969, 455), (973, 452), (977, 450), (980, 448), (984, 445), (987, 442), (991, 440), (994, 437), (997, 433), (1000, 430), (1003, 426), (1006, 423), (1008, 419), (1011, 415), (1013, 410), (1016, 406), (1018, 401), (1020, 396), (1022, 391), (1024, 386), (1025, 381), (1027, 375), (1028, 369), (1030, 363), (1031, 357), (1032, 350), (1033, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'e'): [(103, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (150, 475), (157, 475), (164, 475), (172, 474), (179, 474), (186, 473), (193, 472), (199, 472), (206, 471), (213, 470), (219, 469), (226, 469), (232, 468), (239, 467), (245, 466), (251, 465), (257, 464), (264, 463), (270, 462), (275, 461), (281, 459), (287, 458), (293, 457), (299, 456), (304, 455), (310, 453), (315, 452), (321, 451), (326, 450), (331, 448), (337, 447), (342, 445), (347, 444), (352, 443), (357, 441), (362, 440), (367, 439), (372, 437), (377, 436), (382, 434), (387, 433), (392, 432), (397, 430), (401, 429), (406, 427), (411, 426), (416, 425), (420, 423), (425, 422), (429, 421), (434, 419), (438, 418), (443, 417), (448, 415), (452, 414), (456, 413), (461, 412), (465, 411), (470, 409), (474, 408), (479, 407), (483, 406), (487, 405), (492, 404), (496, 403), (501, 402), (505, 401), (509, 400), (514, 400), (518, 399), (523, 398), (527, 397), (531, 397), (536, 396), (540, 396), (545, 395), (549, 395), (554, 394), (558, 394), (563, 394), (567, 393), (572, 393), (576, 393), (581, 393), (586, 393), (590, 393), (595, 393), (600, 393), (604, 393), (609, 394), (614, 394), (619, 395), (624, 395), (629, 396), (634, 397), (634, 397), (639, 397), (644, 398), (649, 399), (654, 400), (659, 401), (664, 402), (669, 403), (675, 404), (680, 406), (685, 407), (690, 408), (696, 410), (701, 411), (706, 413), (712, 414), (717, 416), (723, 417), (728, 419), (734, 420), (739, 422), (744, 424), (750, 425), (755, 427), (761, 429), (766, 430), (772, 432), (777, 433), (783, 435), (788, 437), (793, 438), (799, 440), (804, 441), (809, 443), (815, 444), (820, 446), (825, 447), (831, 448), (836, 450), (841, 451), (846, 452), (852, 453), (857, 454), (862, 455), (867, 456), (872, 457), (877, 458), (882, 459), (887, 459), (891, 460), (896, 461), (901, 461), (906, 461), (910, 462), (915, 462), (919, 462), (924, 462), (928, 462), (933, 461), (937, 461), (941, 460), (945, 460), (949, 459), (953, 458), (957, 457), (961, 456), (965, 455), (969, 453), (972, 452), (976, 450), (979, 448), (983, 446), (986, 444), (989, 442), (992, 439), (995, 436), (998, 434), (1001, 431), (1004, 427), (1006, 424), (1009, 421), (1011, 417), (1013, 413), (1016, 409), (1018, 405), (1020, 400), (1022, 395), (1023, 390), (1025, 385), (1026, 380), (1028, 374), (1029, 369), (1030, 363), (1031, 357), (1032, 350), (1033, 343), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 567, 0), 'omniscient'): [(104, 476), (111, 477), (119, 477), (127, 477), (135, 477), (142, 477), (149, 478), (157, 478), (164, 479), (171, 479), (178, 480), (184, 481), (191, 481), (198, 482), (204, 483), (210, 484), (217, 485), (223, 486), (229, 487), (235, 488), (241, 489), (247, 490), (252, 491), (258, 493), (264, 494), (269, 495), (275, 497), (280, 498), (285, 499), (290, 501), (296, 502), (301, 504), (306, 505), (311, 507), (315, 508), (320, 510), (325, 511), (330, 513), (334, 514), (339, 516), (343, 517), (348, 519), (352, 521), (357, 522), (361, 524), (365, 525), (370, 527), (374, 528), (378, 530), (382, 532), (386, 533), (390, 535), (394, 536), (398, 538), (402, 539), (406, 541), (410, 542), (414, 543), (418, 545), (422, 546), (426, 547), (430, 549), (434, 550), (438, 551), (442, 552), (445, 554), (449, 555), (453, 556), (457, 557), (461, 558), (465, 559), (469, 560), (473, 560), (477, 561), (480, 562), (484, 563), (488, 563), (492, 564), (496, 564), (500, 565), (504, 565), (508, 565), (513, 566), (517, 566), (521, 566), (525, 566), (529, 566), (534, 566), (538, 566), (542, 565), (547, 565), (551, 565), (556, 564), (560, 563), (565, 563), (569, 562), (574, 561), (579, 560), (584, 559), (589, 558), (594, 557), (594, 557), (599, 555), (604, 554), (609, 552), (614, 550), (619, 549), (624, 547), (630, 545), (635, 543), (641, 541), (646, 539), (652, 537), (657, 534), (663, 532), (669, 530), (674, 527), (680, 525), (686, 523), (692, 520), (697, 518), (703, 515), (709, 512), (715, 510), (721, 507), (727, 505), (732, 502), (738, 499), (744, 497), (750, 494), (756, 491), (762, 489), (768, 486), (774, 484), (780, 481), (786, 479), (791, 476), (797, 474), (803, 471), (809, 469), (815, 466), (820, 464), (826, 462), (832, 460), (838, 458), (843, 456), (849, 454), (854, 452), (860, 450), (865, 448), (871, 447), (876, 445), (882, 443), (887, 442), (892, 441), (897, 440), (902, 439), (908, 438), (913, 437), (917, 436), (922, 436), (927, 435), (932, 435), (936, 435), (941, 434), (946, 435), (950, 435), (954, 435), (958, 436), (963, 436), (967, 437), (971, 438), (974, 440), (978, 441), (982, 443), (985, 444), (989, 446), (992, 448), (996, 451), (999, 453), (1002, 456), (1005, 459), (1007, 462), (1010, 465), (1013, 469), (1015, 473), (1017, 477), (1019, 481), (1021, 485), (1023, 490), (1025, 495), (1027, 500), (1028, 506), (1029, 511), (1031, 517), (1032, 524), (1032, 530), (1033, 537), (1034, 544), (1034, 551), (1034, 559), (1034, 566)], ((1035, 567, 0), 'all'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'a'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'b'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'c'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'd'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'e'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)]}
# paths with very big epsilon
# all_paths = {((1035, 307, 180), 'omniscient'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'all'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'a'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'b'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'c'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'd'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (149, 476), (157, 475), (164, 475), (171, 475), (178, 474), (184, 474), (191, 474), (198, 473), (204, 473), (210, 472), (217, 472), (223, 471), (229, 470), (235, 470), (241, 469), (247, 468), (252, 468), (258, 467), (264, 466), (269, 465), (275, 464), (280, 464), (285, 463), (290, 462), (296, 461), (301, 460), (306, 459), (311, 458), (315, 458), (320, 457), (325, 456), (330, 455), (334, 454), (339, 453), (343, 452), (348, 451), (352, 450), (357, 449), (361, 448), (365, 447), (370, 446), (374, 445), (378, 444), (382, 443), (386, 442), (390, 442), (394, 441), (398, 440), (402, 439), (406, 438), (410, 437), (414, 436), (418, 435), (422, 434), (426, 434), (430, 433), (434, 432), (438, 431), (442, 431), (445, 430), (449, 429), (453, 429), (457, 428), (461, 427), (465, 427), (469, 426), (473, 426), (477, 425), (480, 425), (484, 424), (488, 424), (492, 423), (496, 423), (500, 423), (504, 422), (508, 422), (513, 422), (517, 422), (521, 422), (525, 422), (529, 422), (534, 422), (538, 422), (542, 422), (547, 422), (551, 422), (556, 422), (560, 423), (565, 423), (569, 424), (574, 424), (579, 425), (584, 425), (589, 426), (594, 427), (594, 427), (599, 427), (604, 428), (609, 429), (614, 430), (619, 431), (624, 432), (630, 433), (635, 434), (641, 435), (646, 436), (652, 437), (657, 439), (663, 440), (669, 441), (674, 442), (680, 444), (686, 445), (692, 446), (697, 448), (703, 449), (709, 450), (715, 452), (721, 453), (727, 454), (732, 455), (738, 457), (744, 458), (750, 459), (756, 460), (762, 462), (768, 463), (774, 464), (780, 465), (786, 466), (791, 467), (797, 468), (803, 469), (809, 470), (815, 471), (820, 472), (826, 472), (832, 473), (838, 473), (843, 474), (849, 474), (854, 475), (860, 475), (865, 475), (871, 476), (876, 476), (882, 476), (887, 475), (892, 475), (897, 475), (902, 475), (908, 474), (913, 473), (917, 473), (922, 472), (927, 471), (932, 470), (936, 469), (941, 467), (946, 466), (950, 464), (954, 463), (958, 461), (963, 459), (967, 457), (971, 455), (974, 452), (978, 450), (982, 447), (985, 444), (989, 441), (992, 438), (996, 435), (999, 431), (1002, 428), (1005, 424), (1007, 420), (1010, 416), (1013, 411), (1015, 407), (1017, 402), (1019, 397), (1021, 392), (1023, 387), (1025, 381), (1027, 375), (1028, 369), (1029, 363), (1031, 357), (1032, 350), (1032, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 307, 180), 'e'): [(104, 477), (111, 476), (119, 476), (127, 476), (135, 476), (142, 476), (150, 476), (157, 475), (164, 475), (171, 475), (178, 474), (185, 474), (192, 474), (199, 473), (205, 473), (212, 472), (218, 472), (224, 471), (231, 470), (237, 470), (243, 469), (249, 468), (255, 468), (261, 467), (267, 466), (272, 465), (278, 464), (284, 464), (289, 463), (294, 462), (300, 461), (305, 460), (310, 459), (316, 458), (321, 458), (326, 457), (331, 456), (336, 455), (341, 454), (346, 453), (350, 452), (355, 451), (360, 450), (365, 449), (369, 448), (374, 447), (378, 446), (383, 445), (387, 444), (392, 443), (396, 442), (401, 442), (405, 441), (409, 440), (414, 439), (418, 438), (422, 437), (426, 436), (431, 435), (435, 434), (439, 434), (443, 433), (447, 432), (452, 431), (456, 431), (460, 430), (464, 429), (468, 429), (472, 428), (476, 427), (480, 427), (485, 426), (489, 426), (493, 425), (497, 425), (501, 424), (505, 424), (510, 423), (514, 423), (518, 423), (522, 422), (527, 422), (531, 422), (535, 422), (539, 422), (544, 422), (548, 422), (553, 422), (557, 422), (562, 422), (566, 422), (571, 422), (575, 422), (580, 423), (585, 423), (589, 424), (594, 424), (599, 425), (604, 425), (609, 426), (614, 427), (614, 427), (619, 427), (624, 428), (629, 429), (634, 430), (639, 431), (644, 432), (650, 433), (655, 434), (660, 435), (666, 436), (671, 437), (677, 439), (682, 440), (688, 441), (693, 442), (699, 444), (704, 445), (710, 446), (715, 448), (721, 449), (727, 450), (732, 452), (738, 453), (744, 454), (749, 455), (755, 457), (761, 458), (766, 459), (772, 460), (778, 462), (783, 463), (789, 464), (795, 465), (800, 466), (806, 467), (811, 468), (817, 469), (822, 470), (828, 471), (833, 472), (839, 472), (844, 473), (850, 473), (855, 474), (860, 474), (866, 475), (871, 475), (876, 475), (881, 476), (886, 476), (891, 476), (896, 475), (901, 475), (906, 475), (911, 475), (916, 474), (920, 473), (925, 473), (930, 472), (934, 471), (939, 470), (943, 469), (947, 467), (951, 466), (956, 464), (960, 463), (964, 461), (967, 459), (971, 457), (975, 455), (979, 452), (982, 450), (986, 447), (989, 444), (992, 441), (995, 438), (998, 435), (1001, 431), (1004, 428), (1007, 424), (1009, 420), (1012, 416), (1014, 411), (1016, 407), (1018, 402), (1020, 397), (1022, 392), (1024, 387), (1026, 381), (1027, 375), (1029, 369), (1030, 363), (1031, 357), (1032, 350), (1033, 344), (1033, 337), (1034, 329), (1034, 322), (1034, 314), (1034, 307)], ((1035, 567, 0), 'omniscient'): [(104, 476), (111, 477), (119, 477), (127, 477), (135, 477), (142, 477), (149, 478), (157, 478), (164, 479), (171, 479), (178, 480), (184, 481), (191, 481), (198, 482), (204, 483), (210, 484), (217, 485), (223, 486), (229, 487), (235, 488), (241, 489), (247, 490), (252, 491), (258, 493), (264, 494), (269, 495), (275, 497), (280, 498), (285, 499), (290, 501), (296, 502), (301, 504), (306, 505), (311, 507), (315, 508), (320, 510), (325, 511), (330, 513), (334, 514), (339, 516), (343, 517), (348, 519), (352, 521), (357, 522), (361, 524), (365, 525), (370, 527), (374, 528), (378, 530), (382, 532), (386, 533), (390, 535), (394, 536), (398, 538), (402, 539), (406, 541), (410, 542), (414, 543), (418, 545), (422, 546), (426, 547), (430, 549), (434, 550), (438, 551), (442, 552), (445, 554), (449, 555), (453, 556), (457, 557), (461, 558), (465, 559), (469, 560), (473, 560), (477, 561), (480, 562), (484, 563), (488, 563), (492, 564), (496, 564), (500, 565), (504, 565), (508, 565), (513, 566), (517, 566), (521, 566), (525, 566), (529, 566), (534, 566), (538, 566), (542, 565), (547, 565), (551, 565), (556, 564), (560, 563), (565, 563), (569, 562), (574, 561), (579, 560), (584, 559), (589, 558), (594, 557), (594, 557), (599, 555), (604, 554), (609, 552), (614, 550), (619, 549), (624, 547), (630, 545), (635, 543), (641, 541), (646, 539), (652, 537), (657, 534), (663, 532), (669, 530), (674, 527), (680, 525), (686, 523), (692, 520), (697, 518), (703, 515), (709, 512), (715, 510), (721, 507), (727, 505), (732, 502), (738, 499), (744, 497), (750, 494), (756, 491), (762, 489), (768, 486), (774, 484), (780, 481), (786, 479), (791, 476), (797, 474), (803, 471), (809, 469), (815, 466), (820, 464), (826, 462), (832, 460), (838, 458), (843, 456), (849, 454), (854, 452), (860, 450), (865, 448), (871, 447), (876, 445), (882, 443), (887, 442), (892, 441), (897, 440), (902, 439), (908, 438), (913, 437), (917, 436), (922, 436), (927, 435), (932, 435), (936, 435), (941, 434), (946, 435), (950, 435), (954, 435), (958, 436), (963, 436), (967, 437), (971, 438), (974, 440), (978, 441), (982, 443), (985, 444), (989, 446), (992, 448), (996, 451), (999, 453), (1002, 456), (1005, 459), (1007, 462), (1010, 465), (1013, 469), (1015, 473), (1017, 477), (1019, 481), (1021, 485), (1023, 490), (1025, 495), (1027, 500), (1028, 506), (1029, 511), (1031, 517), (1032, 524), (1032, 530), (1033, 537), (1034, 544), (1034, 551), (1034, 559), (1034, 566)], ((1035, 567, 0), 'all'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'a'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'b'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'c'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'd'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)], ((1035, 567, 0), 'e'): [(103, 476), (112, 477), (120, 477), (128, 477), (137, 477), (145, 477), (154, 478), (163, 478), (172, 479), (181, 479), (190, 480), (199, 481), (208, 481), (218, 482), (228, 483), (237, 484), (247, 485), (257, 486), (267, 487), (277, 488), (287, 489), (297, 490), (307, 491), (317, 493), (328, 494), (338, 495), (348, 497), (359, 498), (369, 499), (380, 501), (391, 502), (401, 504), (412, 505), (423, 507), (433, 508), (444, 510), (455, 511), (466, 513), (477, 514), (487, 516), (498, 517), (509, 519), (520, 521), (531, 522), (542, 524), (552, 525), (563, 527), (574, 528), (585, 530), (595, 532), (606, 533), (617, 535), (628, 536), (638, 538), (649, 539), (659, 541), (670, 542), (680, 543), (691, 545), (701, 546), (711, 547), (721, 549), (732, 550), (742, 551), (752, 552), (761, 554), (771, 555), (781, 556), (791, 557), (800, 558), (810, 559), (819, 560), (828, 560), (838, 561), (847, 562), (856, 563), (864, 563), (873, 564), (882, 564), (890, 565), (899, 565), (907, 565), (915, 566), (923, 566), (931, 566), (938, 566), (946, 566), (953, 566), (960, 566), (967, 565), (974, 565), (981, 565), (988, 564), (994, 563), (1000, 563), (1006, 562), (1012, 561), (1018, 560), (1023, 559), (1028, 558), (1034, 557), (1034, 557), (1038, 555), (1043, 554), (1048, 552), (1052, 550), (1056, 549), (1060, 547), (1064, 545), (1067, 543), (1071, 541), (1074, 539), (1077, 537), (1080, 534), (1083, 532), (1085, 530), (1088, 527), (1090, 525), (1092, 523), (1094, 520), (1096, 518), (1097, 515), (1099, 512), (1100, 510), (1102, 507), (1103, 505), (1104, 502), (1105, 499), (1105, 497), (1106, 494), (1107, 491), (1107, 489), (1107, 486), (1107, 484), (1108, 481), (1108, 479), (1107, 476), (1107, 474), (1107, 471), (1107, 469), (1106, 466), (1106, 464), (1105, 462), (1104, 460), (1104, 458), (1103, 456), (1102, 454), (1101, 452), (1100, 450), (1099, 448), (1097, 447), (1096, 445), (1095, 443), (1094, 442), (1092, 441), (1091, 440), (1090, 439), (1088, 438), (1087, 437), (1085, 436), (1084, 436), (1082, 435), (1080, 435), (1079, 435), (1077, 434), (1076, 435), (1074, 435), (1072, 435), (1071, 436), (1069, 436), (1067, 437), (1066, 438), (1064, 440), (1062, 441), (1061, 443), (1059, 444), (1058, 446), (1056, 448), (1055, 451), (1053, 453), (1052, 456), (1050, 459), (1049, 462), (1048, 465), (1046, 469), (1045, 473), (1044, 477), (1043, 481), (1042, 485), (1041, 490), (1040, 495), (1039, 500), (1038, 506), (1037, 511), (1037, 517), (1036, 524), (1036, 530), (1035, 537), (1035, 544), (1035, 551), (1035, 559), (1034, 566)]}
p1 = [[104, 477], [141, 459], [178, 444], [215, 430], [251, 417], [287, 405], [322, 395], [357, 386], [391, 379], [425, 373], [459, 368], [492, 365], [525, 363], [557, 363], [588, 364], [620, 366], [651, 370], [681, 375], [711, 381], [740, 389], [769, 398], [798, 409], [826, 421], [854, 434], [881, 449], [908, 465], [934, 483], [960, 502], [985, 522], [1010, 543], [1035, 567]]
p2 = [[104, 477], [147, 447], [190, 419], [231, 394], [272, 371], [312, 350], [351, 331], [390, 315], [427, 301], [464, 289], [499, 280], [534, 273], [568, 268], [601, 265], [634, 265], [665, 267], [696, 271], [726, 277], [755, 286], [783, 297], [810, 310], [836, 325], [862, 343], [886, 363], [910, 385], [933, 410], [955, 437], [976, 466], [996, 497], [1016, 531], [1035, 567]]
p3 = [[104, 477], [124, 447], [145, 419], [167, 394], [190, 371], [213, 350], [237, 332], [262, 315], [288, 301], [314, 290], [341, 280], [369, 273], [397, 268], [427, 266], [457, 265], [487, 267], [519, 271], [551, 278], [584, 286], [617, 297], [652, 310], [687, 326], [722, 343], [759, 363], [796, 386], [834, 410], [873, 437], [912, 466], [952, 497], [993, 531], [1035, 567]]
p4 = [[104, 477], [146, 446], [187, 418], [228, 392], [268, 369], [307, 348], [345, 329], [383, 313], [420, 298], [456, 286], [491, 277], [525, 269], [559, 264], [592, 262], [624, 261], [656, 263], [686, 267], [716, 274], [745, 282], [774, 293], [801, 307], [828, 322], [854, 340], [879, 361], [904, 383], [928, 408], [950, 435], [973, 464], [994, 496], [1015, 530], [1035, 567]]
p5 = [[104, 477], [98, 509], [95, 540], [95, 569], [97, 596], [101, 620], [108, 643], [118, 663], [130, 682], [145, 698], [162, 712], [182, 725], [204, 735], [229, 743], [256, 749], [286, 753], [318, 755], [353, 755], [390, 753], [430, 749], [472, 742], [517, 734], [565, 724], [615, 711], [667, 697], [722, 680], [779, 662], [839, 641], [902, 618], [967, 593], [1035, 567]]
pts_50_550_triangular_a = [(103, 477), (104, 477), (106, 477), (109, 477), (113, 477), (119, 477), (126, 477), (135, 477), (146, 477), (158, 477), (172, 477), (188, 477), (206, 477), (226, 477), (249, 477), (273, 476), (299, 476), (328, 476), (359, 475), (393, 474), (428, 473), (466, 472), (505, 469), (547, 467), (590, 465), (635, 460), (678, 456), (718, 451), (757, 446), (793, 440), (826, 434), (856, 427), (884, 420), (910, 412), (933, 404), (953, 396), (970, 387), (985, 378), (998, 369), (1009, 360), (1017, 351), (1023, 343), (1028, 335), (1031, 328), (1033, 321), (1034, 316), (1034, 312), (1034, 309), (1035, 308), (1035, 307)]
pts_50_550_triangular_b = [(103, 477), (104, 477), (106, 476), (109, 476), (113, 476), (119, 476), (126, 476), (135, 476), (145, 476), (158, 475), (172, 474), (188, 473), (205, 473), (225, 471), (248, 470), (272, 468), (298, 466), (327, 465), (357, 463), (390, 461), (426, 459), (463, 457), (503, 456), (544, 454), (587, 453), (632, 453), (675, 453), (716, 454), (754, 456), (790, 458), (823, 461), (854, 464), (882, 468), (908, 473), (931, 479), (951, 485), (969, 492), (985, 499), (998, 507), (1009, 516), (1017, 523), (1024, 531), (1028, 539), (1031, 546), (1033, 552), (1034, 557), (1034, 561), (1034, 564), (1035, 566), (1035, 567)]
pts_50_500_triangular_a = [(103, 477), (104, 477), (106, 476), (109, 476), (113, 476), (118, 476), (125, 476), (134, 476), (144, 476), (156, 476), (170, 476), (186, 476), (203, 476), (223, 476), (245, 475), (269, 475), (296, 474), (324, 473), (355, 472), (388, 471), (424, 469), (461, 467), (501, 465), (542, 462), (586, 459), (631, 454), (673, 449), (714, 444), (752, 438), (788, 433), (821, 426), (852, 420), (881, 413), (906, 405), (929, 398), (950, 390), (968, 382), (983, 374), (996, 365), (1008, 357), (1016, 349), (1023, 341), (1028, 334), (1031, 327), (1032, 321), (1034, 316), (1034, 312), (1034, 309), (1035, 307), (1035, 307)]
pts_50_500_triangular_b = [(103, 477), (104, 477), (106, 476), (109, 476), (113, 476), (118, 476), (125, 476), (134, 476), (144, 475), (156, 475), (170, 475), (185, 474), (203, 473), (223, 472), (244, 471), (268, 470), (295, 468), (323, 467), (353, 465), (386, 464), (421, 462), (459, 461), (498, 460), (540, 459), (583, 459), (628, 459), (670, 460), (711, 461), (750, 462), (786, 465), (819, 468), (850, 472), (878, 476), (904, 480), (927, 485), (948, 492), (966, 498), (982, 505), (996, 511), (1007, 519), (1016, 526), (1023, 533), (1028, 540), (1031, 547), (1032, 553), (1034, 558), (1034, 562), (1034, 565), (1035, 566), (1035, 567)]
pts_50_450_triangular_a = [(103, 477), (104, 477), (105, 476), (108, 476), (112, 476), (118, 476), (124, 476), (133, 476), (143, 476), (154, 476), (168, 476), (183, 475), (201, 475), (220, 475), (242, 474), (266, 473), (292, 472), (321, 471), (351, 469), (384, 467), (419, 465), (457, 463), (496, 460), (538, 457), (581, 452), (626, 448), (669, 443), (709, 437), (748, 431), (784, 425), (817, 419), (848, 413), (876, 406), (902, 399), (926, 392), (946, 384), (965, 377), (980, 369), (994, 361), (1005, 353), (1014, 346), (1021, 339), (1026, 332), (1030, 326), (1032, 320), (1034, 315), (1034, 312), (1034, 309), (1035, 308), (1035, 307)]
pts_50_450_triangular_b = [(103, 476), (104, 476), (105, 476), (108, 476), (112, 476), (118, 476), (124, 476), (133, 476), (143, 476), (154, 475), (168, 475), (183, 474), (200, 474), (220, 473), (242, 472), (265, 471), (291, 470), (319, 469), (350, 468), (383, 467), (418, 466), (455, 466), (494, 465), (536, 465), (579, 465), (623, 465), (666, 466), (707, 467), (745, 470), (781, 473), (815, 476), (846, 478), (875, 482), (901, 487), (924, 492), (945, 497), (964, 503), (980, 510), (993, 516), (1005, 522), (1014, 529), (1022, 535), (1026, 542), (1030, 548), (1032, 554), (1034, 558), (1034, 562), (1034, 565), (1035, 566), (1035, 567)]
pts_50_400_triangular_a = [(103, 477), (104, 477), (105, 476), (108, 476), (112, 476), (117, 476), (124, 476), (131, 476), (141, 476), (153, 476), (166, 475), (181, 475), (198, 474), (218, 473), (239, 472), (263, 471), (289, 469), (317, 468), (347, 466), (380, 464), (415, 461), (453, 458), (492, 455), (534, 451), (577, 446), (622, 442), (665, 436), (705, 430), (744, 424), (780, 418), (813, 411), (844, 405), (873, 399), (899, 392), (923, 385), (944, 378), (962, 370), (978, 363), (992, 357), (1004, 349), (1013, 343), (1021, 336), (1026, 329), (1030, 324), (1032, 319), (1034, 314), (1034, 311), (1034, 308), (1035, 307), (1035, 306)]
pts_50_400_triangular_b = [(103, 477), (104, 477), (105, 476), (108, 476), (112, 476), (117, 476), (124, 476), (131, 476), (141, 476), (152, 476), (165, 475), (181, 475), (198, 475), (217, 474), (238, 473), (262, 473), (287, 472), (316, 472), (346, 471), (378, 471), (413, 470), (450, 470), (490, 470), (531, 470), (574, 471), (619, 472), (662, 473), (703, 474), (741, 477), (777, 480), (811, 483), (842, 486), (870, 490), (897, 494), (921, 499), (942, 504), (960, 509), (977, 514), (991, 520), (1003, 526), (1013, 532), (1020, 538), (1026, 544), (1030, 549), (1032, 555), (1034, 559), (1034, 562), (1034, 565), (1035, 567), (1035, 567)]
pts_50_550_linear_a = [(103, 477), (126, 477), (147, 477), (167, 477), (188, 477), (208, 477), (228, 477), (249, 477), (269, 476), (289, 476), (309, 476), (329, 476), (350, 475), (370, 475), (390, 474), (410, 474), (430, 473), (450, 472), (470, 471), (491, 471), (510, 469), (531, 469), (551, 467), (570, 465), (591, 465), (610, 462), (631, 461), (650, 459), (670, 457), (690, 455), (710, 452), (730, 450), (750, 447), (769, 444), (789, 441), (809, 437), (828, 434), (848, 429), (867, 424), (886, 419), (905, 413), (924, 407), (942, 400), (961, 392), (978, 383), (995, 372), (1010, 359), (1023, 344), (1032, 326), (1035, 307)]
pts_50_550_linear_b = [(103, 477), (126, 476), (146, 475), (167, 475), (187, 474), (207, 472), (227, 471), (247, 470), (267, 468), (287, 468), (307, 466), (327, 465), (347, 463), (367, 463), (387, 461), (407, 460), (427, 459), (446, 458), (466, 457), (487, 456), (506, 455), (526, 455), (546, 454), (566, 454), (586, 453), (605, 453), (626, 453), (645, 453), (665, 453), (685, 453), (705, 453), (724, 454), (744, 455), (764, 456), (784, 457), (803, 459), (823, 461), (843, 462), (862, 465), (882, 468), (901, 472), (920, 476), (939, 482), (958, 488), (976, 495), (993, 504), (1009, 516), (1022, 530), (1031, 547), (1035, 567)]
pts_50_500_linear_a = [(103, 477), (126, 476), (146, 476), (167, 476), (187, 476), (207, 476), (228, 476), (248, 475), (268, 475), (288, 474), (308, 474), (328, 473), (348, 472), (368, 472), (388, 471), (409, 470), (428, 469), (448, 468), (469, 467), (488, 465), (509, 465), (528, 463), (548, 462), (568, 460), (588, 458), (608, 457), (628, 454), (647, 453), (667, 450), (687, 448), (707, 445), (727, 443), (746, 439), (766, 436), (786, 434), (805, 429), (824, 426), (844, 422), (863, 417), (882, 413), (901, 407), (920, 400), (938, 394), (957, 387), (975, 378), (991, 368), (1008, 357), (1021, 343), (1031, 326), (1035, 307)]
pts_50_500_linear_b = [(103, 477), (126, 476), (146, 475), (166, 475), (186, 474), (206, 473), (226, 472), (246, 471), (266, 470), (286, 469), (306, 468), (326, 467), (346, 466), (366, 465), (385, 464), (405, 463), (425, 462), (445, 462), (465, 461), (484, 460), (505, 460), (524, 460), (544, 459), (563, 459), (584, 459), (603, 459), (623, 459), (642, 459), (662, 459), (682, 460), (702, 461), (721, 461), (741, 462), (761, 464), (780, 464), (800, 466), (820, 468), (839, 470), (859, 473), (878, 476), (897, 479), (916, 483), (935, 487), (954, 493), (972, 500), (990, 508), (1007, 518), (1021, 531), (1031, 548), (1035, 567)]
pts_50_450_linear_a = [(103, 477), (125, 476), (146, 476), (167, 476), (187, 475), (207, 475), (227, 474), (247, 474), (267, 473), (287, 472), (307, 471), (327, 471), (347, 469), (367, 468), (387, 467), (407, 466), (427, 464), (447, 464), (466, 462), (486, 461), (506, 459), (526, 458), (546, 456), (565, 454), (585, 452), (605, 450), (625, 448), (644, 446), (664, 443), (684, 441), (703, 438), (723, 436), (742, 432), (762, 429), (781, 426), (801, 422), (820, 419), (840, 414), (859, 410), (878, 405), (897, 400), (916, 395), (934, 389), (953, 382), (971, 374), (988, 365), (1004, 354), (1019, 342), (1030, 326), (1035, 307)]
pts_50_450_linear_b = [(104, 477), (97, 517), (95, 538), (95, 560), (96, 583), (98, 605), (103, 626), (110, 648), (121, 668), (134, 687), (150, 703), (169, 717), (189, 729), (211, 738), (234, 744), (257, 749), (281, 753), (305, 755), (329, 755), (353, 755), (377, 754), (400, 752), (424, 750), (448, 746), (471, 742), (495, 738), (518, 734), (542, 729), (565, 724), (588, 718), (611, 712), (634, 706), (656, 700), (679, 693), (702, 686), (724, 679), (747, 672), (769, 665), (792, 658), (814, 650), (837, 642), (859, 634), (881, 626), (903, 618), (925, 609), (947, 601), (969, 592), (991, 584), (1013, 575), (1035, 567)]
pts_50_400_linear_a = [(103, 477), (125, 476), (146, 476), (166, 475), (186, 475), (206, 474), (226, 473), (246, 472), (266, 471), (286, 470), (306, 469), (326, 467), (346, 467), (366, 465), (386, 463), (405, 462), (425, 460), (445, 458), (465, 457), (485, 455), (504, 454), (524, 452), (544, 450), (563, 448), (583, 446), (603, 443), (622, 442), (642, 438), (661, 437), (681, 433), (700, 431), (720, 428), (739, 425), (759, 422), (778, 418), (798, 415), (817, 411), (836, 407), (855, 403), (874, 398), (893, 394), (912, 388), (931, 382), (949, 376), (967, 368), (985, 360), (1002, 351), (1017, 339), (1030, 325), (1035, 306)]
pts_50_400_linear_b = [(103, 477), (125, 476), (146, 476), (165, 475), (185, 475), (205, 474), (225, 474), (245, 473), (264, 473), (284, 472), (304, 472), (324, 471), (343, 471), (363, 471), (383, 470), (402, 470), (422, 470), (442, 470), (461, 470), (481, 470), (501, 470), (520, 470), (540, 470), (559, 470), (579, 471), (598, 471), (618, 472), (638, 472), (657, 473), (676, 473), (696, 474), (716, 476), (735, 476), (754, 478), (774, 479), (793, 481), (812, 483), (832, 485), (851, 487), (870, 490), (889, 493), (909, 496), (927, 500), (946, 505), (964, 510), (983, 517), (1000, 525), (1016, 535), (1030, 549), (1035, 567)]
#####
pts_25_500_triangular_a = [(103, 477), (106, 476), (113, 476), (126, 476), (146, 476), (173, 476), (208, 476), (252, 475), (305, 474), (367, 472), (439, 468), (519, 464), (608, 457), (696, 447), (773, 435), (841, 423), (898, 408), (944, 392), (979, 376), (1005, 359), (1022, 342), (1030, 328), (1034, 316), (1034, 309), (1035, 307)]
pts_25_500_triangular_b = [(103, 477), (106, 476), (113, 476), (126, 476), (146, 475), (173, 475), (207, 473), (251, 470), (304, 468), (366, 465), (437, 462), (517, 460), (605, 459), (693, 460), (771, 464), (838, 470), (896, 478), (942, 490), (978, 503), (1005, 517), (1022, 532), (1030, 546), (1034, 557), (1034, 565), (1035, 567)]
pts_25_500_linear_a = [(103, 477), (147, 476), (189, 476), (230, 475), (271, 475), (312, 474), (353, 472), (394, 471), (435, 468), (476, 466), (517, 464), (557, 461), (598, 458), (638, 454), (679, 448), (719, 444), (759, 437), (799, 430), (839, 423), (878, 413), (917, 401), (955, 388), (990, 369), (1021, 343), (1035, 307)]
pts_25_500_linear_b = [(103, 477), (147, 475), (188, 474), (229, 472), (269, 470), (310, 468), (351, 465), (391, 464), (432, 462), (472, 461), (513, 460), (553, 459), (593, 459), (634, 459), (674, 460), (714, 461), (754, 463), (795, 465), (834, 469), (874, 475), (913, 482), (952, 492), (989, 507), (1020, 530), (1035, 567)]
pts_13_500_linear_a = [(103, 477), (189, 476), (271, 475), (353, 472), (435, 468), (517, 464), (598, 458), (679, 448), (759, 437), (839, 423), (917, 401), (990, 369), (1035, 307)]
pts_13_500_linear_b = [(103, 477), (188, 474), (269, 470), (351, 465), (432, 462), (513, 460), (593, 459), (674, 460), (754, 463), (834, 469), (913, 482), (989, 507), (1035, 567)]
pts_13_500_triangular_a = [(103, 477), (113, 476), (146, 476), (208, 476), (305, 474), (439, 468), (608, 457), (773, 435), (898, 408), (979, 376), (1022, 342), (1034, 316), (1035, 307)]
pts_13_500_triangular_b = [(103, 477), (113, 476), (146, 475), (207, 473), (304, 468), (437, 462), (605, 459), (771, 464), (896, 478), (978, 503), (1022, 532), (1034, 557), (1035, 567)]
#####
# yay = {((1005, 307, 180), 'omniscient'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 476), (145, 475), (156, 474), (168, 473), (181, 471), (196, 469), (212, 466), (229, 463), (248, 460), (267, 456), (289, 451), (311, 446), (335, 441), (361, 435), (388, 429), (416, 424), (446, 419), (479, 414), (513, 410), (549, 407), (588, 406), (626, 406), (663, 407), (699, 409), (733, 410), (765, 412), (796, 412), (825, 412), (851, 411), (875, 410), (898, 407), (918, 402), (936, 398), (952, 391), (966, 384), (976, 375), (985, 367), (991, 357), (996, 349), (1000, 340), (1002, 332), (1003, 325), (1004, 319), (1004, 314), (1004, 310), (1004, 308), (1004, 307), (1004, 307)], ((1005, 307, 180), 'a'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 476), (145, 475), (156, 474), (168, 473), (181, 471), (196, 469), (212, 466), (229, 463), (248, 460), (267, 456), (289, 451), (311, 446), (335, 441), (361, 435), (388, 429), (416, 424), (446, 419), (479, 414), (513, 410), (549, 407), (588, 406), (626, 406), (663, 407), (699, 409), (733, 410), (765, 412), (796, 412), (825, 412), (851, 411), (875, 410), (898, 407), (918, 402), (936, 398), (952, 391), (966, 384), (976, 375), (985, 367), (991, 357), (996, 349), (1000, 340), (1002, 332), (1003, 325), (1004, 319), (1004, 314), (1004, 310), (1004, 308), (1004, 307), (1004, 307)], ((1005, 307, 180), 'b'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 476), (145, 475), (156, 474), (168, 473), (181, 471), (196, 469), (212, 466), (229, 463), (248, 460), (267, 456), (289, 451), (311, 446), (335, 441), (361, 435), (388, 429), (416, 424), (446, 419), (479, 414), (513, 410), (549, 407), (588, 406), (626, 406), (663, 407), (699, 409), (733, 410), (765, 412), (796, 412), (825, 412), (851, 411), (875, 410), (898, 407), (918, 402), (936, 398), (952, 391), (966, 384), (976, 375), (985, 367), (991, 357), (996, 349), (1000, 340), (1002, 332), (1003, 325), (1004, 319), (1004, 314), (1004, 310), (1004, 308), (1004, 307), (1004, 307)], ((1005, 307, 180), 'c'): [(103, 477), (104, 477), (106, 476), (109, 476), (113, 476), (119, 476), (127, 476), (135, 476), (145, 475), (156, 474), (168, 473), (181, 472), (196, 470), (212, 468), (229, 465), (248, 462), (268, 459), (289, 455), (311, 451), (335, 447), (361, 441), (388, 436), (417, 432), (447, 427), (479, 423), (513, 420), (550, 417), (588, 416), (626, 416), (664, 417), (699, 418), (734, 419), (766, 419), (797, 419), (825, 418), (852, 416), (876, 414), (899, 410), (919, 405), (937, 400), (952, 393), (966, 385), (976, 376), (985, 367), (992, 358), (996, 349), (1000, 340), (1002, 332), (1003, 325), (1004, 319), (1004, 314), (1004, 310), (1004, 308), (1004, 307), (1004, 307)], ((1005, 307, 180), 'd'): [(103, 477), (104, 477), (106, 476), (109, 476), (113, 476), (119, 476), (127, 476), (135, 476), (145, 475), (156, 474), (168, 473), (181, 472), (196, 470), (212, 468), (229, 465), (248, 462), (268, 459), (289, 455), (311, 451), (335, 447), (361, 441), (388, 436), (417, 432), (447, 427), (479, 423), (513, 420), (550, 417), (588, 416), (626, 416), (664, 417), (699, 418), (734, 419), (766, 419), (797, 419), (825, 418), (852, 416), (876, 414), (899, 410), (919, 405), (937, 400), (952, 393), (966, 385), (976, 376), (985, 367), (992, 358), (996, 349), (1000, 340), (1002, 332), (1003, 325), (1004, 319), (1004, 314), (1004, 310), (1004, 308), (1004, 307), (1004, 307)], ((1005, 307, 180), 'e'): [(103, 477), (104, 477), (106, 476), (109, 476), (113, 476), (119, 476), (127, 476), (135, 476), (145, 475), (156, 474), (168, 473), (181, 472), (196, 470), (212, 468), (229, 465), (248, 462), (268, 459), (289, 455), (311, 451), (335, 447), (361, 441), (388, 436), (417, 432), (447, 427), (479, 423), (513, 420), (550, 417), (588, 416), (626, 416), (664, 417), (699, 418), (734, 419), (766, 419), (797, 419), (825, 418), (852, 416), (876, 414), (899, 410), (919, 405), (937, 400), (952, 393), (966, 385), (976, 376), (985, 367), (992, 358), (996, 349), (1000, 340), (1002, 332), (1003, 325), (1004, 319), (1004, 314), (1004, 310), (1004, 308), (1004, 307), (1004, 307)], ((1005, 307, 180), 'all'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 476), (145, 475), (156, 474), (168, 473), (181, 471), (196, 469), (212, 466), (229, 463), (248, 460), (267, 456), (289, 451), (311, 446), (335, 441), (361, 435), (388, 429), (416, 424), (446, 419), (479, 414), (513, 410), (549, 407), (588, 406), (626, 406), (663, 407), (699, 409), (733, 410), (765, 412), (796, 412), (825, 412), (851, 411), (875, 410), (898, 407), (918, 402), (936, 398), (952, 391), (966, 384), (976, 375), (985, 367), (991, 357), (996, 349), (1000, 340), (1002, 332), (1003, 325), (1004, 319), (1004, 314), (1004, 310), (1004, 308), (1004, 307), (1004, 307)], ((1005, 627, 0), 'omniscient'): [(104, 477), (103, 477), (103, 477), (102, 478), (99, 480), (97, 482), (94, 484), (89, 487), (85, 492), (80, 497), (73, 503), (66, 510), (59, 519), (51, 528), (44, 539), (37, 551), (32, 564), (33, 579), (40, 592), (54, 602), (75, 610), (101, 615), (133, 616), (169, 616), (211, 613), (256, 609), (305, 604), (358, 599), (412, 593), (465, 586), (516, 580), (565, 574), (612, 569), (656, 565), (698, 563), (738, 560), (774, 558), (808, 557), (839, 557), (868, 559), (893, 561), (915, 564), (936, 568), (953, 572), (967, 578), (979, 584), (987, 591), (995, 598), (999, 604), (1002, 611), (1004, 616), (1004, 620), (1004, 624), (1004, 625), (1004, 626), (1004, 626)], ((1005, 627, 0), 'a'): [(104, 477), (103, 477), (103, 477), (102, 478), (100, 478), (98, 480), (95, 482), (91, 485), (85, 489), (79, 493), (71, 499), (63, 505), (53, 513), (43, 522), (33, 531), (23, 542), (13, 555), (5, 568), (4, 583), (10, 596), (26, 607), (50, 613), (79, 616), (114, 616), (155, 615), (200, 611), (249, 607), (302, 601), (358, 595), (413, 589), (467, 582), (518, 577), (568, 572), (616, 567), (660, 563), (703, 560), (742, 559), (779, 558), (812, 557), (843, 558), (871, 559), (896, 562), (919, 565), (939, 569), (955, 574), (969, 580), (980, 586), (989, 593), (995, 600), (1000, 606), (1002, 612), (1004, 618), (1004, 621), (1004, 624), (1005, 626), (1005, 626)], ((1005, 627, 0), 'b'): [(103, 477), (104, 477), (104, 477), (105, 478), (107, 478), (110, 480), (114, 482), (119, 484), (126, 487), (134, 491), (143, 496), (154, 502), (168, 508), (183, 514), (200, 521), (219, 529), (240, 537), (263, 546), (288, 555), (315, 564), (344, 573), (376, 583), (409, 591), (445, 600), (483, 607), (522, 613), (563, 616), (605, 616), (646, 614), (683, 609), (720, 604), (753, 597), (784, 589), (813, 582), (841, 576), (865, 569), (888, 564), (909, 560), (927, 558), (944, 557), (959, 558), (971, 562), (981, 566), (989, 573), (995, 581), (999, 589), (1001, 597), (1003, 604), (1004, 611), (1004, 616), (1004, 620), (1004, 624), (1004, 625), (1004, 626), (1004, 626)], ((1005, 627, 0), 'c'): [(103, 477), (104, 477), (106, 477), (109, 477), (114, 477), (119, 477), (127, 477), (135, 477), (145, 478), (156, 479), (168, 480), (181, 482), (196, 483), (212, 486), (229, 489), (248, 492), (268, 495), (289, 499), (311, 504), (335, 508), (361, 514), (388, 519), (417, 524), (447, 528), (479, 531), (513, 534), (550, 536), (588, 536), (626, 535), (664, 533), (699, 531), (733, 529), (765, 527), (796, 525), (825, 525), (851, 525), (875, 526), (898, 529), (918, 533), (936, 537), (952, 543), (966, 550), (976, 558), (985, 567), (992, 576), (996, 585), (1000, 593), (1002, 601), (1003, 608), (1004, 614), (1004, 619), (1004, 623), (1004, 625), (1004, 626), (1004, 626)], ((1005, 627, 0), 'd'): [(103, 477), (104, 477), (106, 477), (109, 477), (114, 477), (119, 477), (127, 477), (135, 477), (145, 478), (156, 479), (168, 480), (181, 482), (196, 483), (212, 486), (229, 489), (248, 492), (268, 495), (289, 499), (311, 504), (335, 508), (361, 514), (388, 519), (417, 524), (447, 528), (479, 531), (513, 534), (550, 536), (588, 536), (626, 535), (664, 533), (699, 531), (733, 529), (765, 527), (796, 525), (825, 525), (851, 525), (875, 526), (898, 529), (918, 533), (936, 537), (952, 543), (966, 550), (976, 558), (985, 567), (992, 576), (996, 585), (1000, 593), (1002, 601), (1003, 608), (1004, 614), (1004, 619), (1004, 623), (1004, 625), (1004, 626), (1004, 626)], ((1005, 627, 0), 'e'): [(103, 477), (104, 477), (106, 477), (109, 477), (114, 477), (119, 477), (127, 477), (135, 477), (145, 478), (156, 479), (168, 480), (181, 482), (196, 483), (212, 486), (229, 489), (248, 492), (268, 495), (289, 499), (311, 504), (335, 508), (361, 514), (388, 519), (417, 524), (447, 528), (479, 531), (513, 534), (550, 536), (588, 536), (626, 535), (664, 533), (699, 531), (733, 529), (765, 527), (796, 525), (825, 525), (851, 525), (875, 526), (898, 529), (918, 533), (936, 537), (952, 543), (966, 550), (976, 558), (985, 567), (992, 576), (996, 585), (1000, 593), (1002, 601), (1003, 608), (1004, 614), (1004, 619), (1004, 623), (1004, 625), (1004, 626), (1004, 626)], ((1005, 627, 0), 'all'): [(103, 477), (104, 477), (104, 477), (106, 478), (108, 478), (112, 479), (116, 481), (123, 483), (131, 486), (140, 489), (152, 492), (165, 497), (181, 502), (199, 508), (219, 513), (240, 520), (265, 527), (292, 535), (321, 542), (352, 551), (385, 560), (421, 569), (458, 578), (498, 586), (539, 595), (583, 602), (627, 609), (671, 613), (713, 616), (752, 616), (787, 613), (819, 609), (848, 603), (874, 596), (897, 589), (917, 581), (934, 573), (950, 566), (964, 561), (975, 558), (985, 557), (993, 561), (998, 567), (1000, 575), (1002, 583), (1003, 592), (1004, 599), (1004, 606), (1004, 613), (1004, 618), (1004, 622), (1004, 624), (1005, 626), (1005, 626)]}
# yay = {((1005, 257, 180), 'omniscient'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 475), (145, 475), (156, 473), (168, 471), (181, 469), (196, 467), (212, 463), (229, 459), (248, 455), (267, 450), (288, 444), (310, 437), (334, 430), (359, 422), (386, 415), (414, 407), (444, 399), (476, 391), (510, 385), (546, 380), (584, 376), (622, 373), (660, 372), (696, 372), (730, 371), (763, 371), (794, 370), (823, 369), (849, 367), (874, 364), (896, 360), (917, 356), (935, 350), (951, 344), (964, 336), (975, 327), (984, 318), (991, 309), (996, 300), (999, 291), (1002, 283), (1003, 276), (1004, 269), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'a'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 475), (145, 475), (156, 474), (168, 473), (181, 470), (196, 468), (212, 465), (229, 461), (248, 457), (267, 453), (289, 448), (311, 442), (334, 436), (360, 428), (386, 422), (415, 415), (445, 407), (477, 401), (511, 394), (547, 390), (586, 386), (624, 383), (661, 382), (697, 381), (732, 380), (764, 378), (795, 377), (824, 375), (850, 372), (875, 369), (897, 364), (918, 359), (936, 352), (951, 345), (965, 337), (975, 328), (984, 319), (991, 309), (996, 300), (999, 291), (1002, 283), (1003, 276), (1004, 270), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'b'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 475), (145, 475), (156, 474), (168, 473), (181, 470), (196, 468), (212, 465), (229, 461), (248, 457), (267, 453), (289, 448), (311, 442), (334, 436), (360, 428), (386, 422), (415, 415), (445, 407), (477, 401), (511, 394), (547, 390), (586, 386), (624, 383), (661, 382), (697, 381), (732, 380), (764, 378), (795, 377), (824, 375), (850, 372), (875, 369), (897, 364), (918, 359), (936, 352), (951, 345), (965, 337), (975, 328), (984, 319), (991, 309), (996, 300), (999, 291), (1002, 283), (1003, 276), (1004, 270), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'c'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 475), (145, 475), (156, 474), (168, 473), (181, 470), (196, 468), (212, 465), (229, 461), (248, 457), (267, 453), (289, 448), (311, 442), (334, 436), (360, 428), (386, 422), (415, 415), (445, 407), (477, 401), (511, 394), (547, 390), (586, 386), (624, 383), (661, 382), (697, 381), (732, 380), (764, 378), (795, 377), (824, 375), (850, 372), (875, 369), (897, 364), (918, 359), (936, 352), (951, 345), (965, 337), (975, 328), (984, 319), (991, 309), (996, 300), (999, 291), (1002, 283), (1003, 276), (1004, 270), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'd'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 475), (145, 475), (156, 473), (168, 471), (181, 469), (196, 467), (212, 463), (229, 459), (248, 455), (267, 450), (288, 444), (310, 437), (334, 430), (359, 422), (386, 415), (414, 407), (444, 399), (476, 391), (510, 385), (546, 380), (584, 376), (622, 373), (660, 372), (696, 372), (730, 371), (763, 371), (794, 370), (823, 369), (849, 367), (874, 364), (896, 360), (917, 356), (935, 350), (951, 344), (964, 336), (975, 327), (984, 318), (991, 309), (996, 300), (999, 291), (1002, 283), (1003, 276), (1004, 269), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'e'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 475), (145, 475), (156, 473), (168, 471), (181, 469), (196, 467), (212, 463), (229, 459), (248, 455), (267, 450), (288, 444), (310, 437), (334, 430), (359, 422), (386, 415), (414, 407), (444, 399), (476, 391), (510, 385), (546, 380), (584, 376), (622, 373), (660, 372), (696, 372), (730, 371), (763, 371), (794, 370), (823, 369), (849, 367), (874, 364), (896, 360), (917, 356), (935, 350), (951, 344), (964, 336), (975, 327), (984, 318), (991, 309), (996, 300), (999, 291), (1002, 283), (1003, 276), (1004, 269), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'all'): [(103, 476), (104, 476), (106, 476), (109, 476), (114, 476), (119, 476), (127, 476), (135, 475), (145, 475), (156, 473), (168, 471), (181, 469), (196, 467), (212, 463), (229, 459), (248, 455), (267, 450), (288, 444), (310, 437), (334, 430), (359, 422), (386, 415), (414, 407), (444, 399), (476, 391), (510, 385), (546, 380), (584, 376), (622, 373), (660, 372), (696, 372), (730, 371), (763, 371), (794, 370), (823, 369), (849, 367), (874, 364), (896, 360), (917, 356), (935, 350), (951, 344), (964, 336), (975, 327), (984, 318), (991, 309), (996, 300), (999, 291), (1002, 283), (1003, 276), (1004, 269), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 617, 0), 'omniscient'): [(104, 477), (103, 477), (103, 477), (102, 478), (100, 479), (98, 480), (95, 483), (91, 486), (86, 490), (80, 494), (73, 500), (66, 507), (57, 515), (49, 524), (40, 534), (33, 545), (27, 558), (25, 571), (31, 584), (45, 594), (66, 601), (92, 605), (124, 607), (160, 606), (202, 603), (248, 599), (297, 593), (350, 587), (405, 582), (458, 575), (509, 569), (559, 563), (606, 558), (651, 554), (693, 552), (733, 549), (770, 547), (805, 547), (836, 547), (865, 548), (891, 550), (914, 553), (934, 557), (951, 562), (966, 567), (978, 574), (987, 581), (994, 587), (999, 594), (1001, 601), (1004, 606), (1004, 611), (1004, 614), (1005, 616), (1005, 617), (1005, 617)], ((1005, 617, 0), 'a'): [(104, 477), (103, 477), (103, 477), (101, 478), (100, 479), (97, 480), (94, 483), (90, 486), (84, 489), (77, 493), (70, 499), (61, 505), (52, 512), (42, 520), (31, 530), (21, 540), (12, 552), (5, 565), (4, 579), (13, 591), (31, 599), (55, 605), (86, 606), (122, 606), (163, 604), (208, 600), (258, 595), (311, 589), (367, 583), (422, 576), (475, 571), (527, 565), (576, 560), (623, 555), (668, 552), (709, 549), (748, 547), (784, 547), (818, 547), (848, 548), (876, 550), (901, 552), (923, 556), (942, 560), (958, 565), (972, 571), (982, 578), (991, 585), (996, 591), (1001, 598), (1003, 604), (1004, 609), (1004, 612), (1004, 615), (1005, 617), (1005, 617)], ((1005, 617, 0), 'b'): [(103, 477), (104, 477), (104, 477), (106, 478), (108, 479), (111, 480), (115, 482), (120, 485), (127, 488), (135, 492), (145, 496), (157, 501), (170, 507), (185, 513), (202, 519), (221, 527), (242, 535), (266, 543), (291, 551), (318, 560), (348, 569), (380, 577), (413, 585), (449, 593), (487, 598), (526, 603), (567, 606), (609, 606), (649, 604), (687, 599), (723, 592), (756, 586), (787, 578), (816, 571), (843, 564), (868, 557), (890, 552), (911, 549), (929, 547), (946, 547), (960, 548), (973, 551), (982, 557), (990, 564), (995, 572), (999, 580), (1002, 588), (1003, 595), (1004, 601), (1004, 607), (1004, 611), (1004, 614), (1004, 616), (1004, 617)], ((1005, 617, 0), 'c'): [(103, 477), (104, 477), (106, 477), (109, 477), (114, 477), (119, 477), (127, 477), (135, 477), (145, 478), (155, 479), (167, 480), (181, 481), (196, 482), (211, 485), (228, 487), (246, 490), (266, 493), (287, 496), (309, 501), (332, 505), (358, 509), (384, 514), (413, 517), (443, 521), (475, 524), (509, 526), (546, 527), (584, 526), (622, 524), (660, 522), (696, 520), (730, 517), (762, 515), (793, 514), (822, 514), (849, 514), (874, 516), (897, 519), (917, 522), (935, 527), (951, 534), (965, 541), (976, 548), (984, 557), (991, 566), (996, 575), (1000, 584), (1002, 592), (1003, 599), (1004, 605), (1004, 610), (1004, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'd'): [(103, 477), (104, 477), (106, 477), (109, 477), (114, 477), (119, 477), (127, 477), (135, 477), (145, 478), (155, 479), (167, 480), (181, 481), (196, 482), (211, 485), (228, 487), (246, 490), (266, 493), (287, 496), (309, 501), (332, 505), (358, 509), (384, 514), (413, 517), (443, 521), (475, 524), (509, 526), (546, 527), (584, 526), (622, 524), (660, 522), (696, 520), (730, 517), (762, 515), (793, 514), (822, 514), (849, 514), (874, 516), (897, 519), (917, 522), (935, 527), (951, 534), (965, 541), (976, 548), (984, 557), (991, 566), (996, 575), (1000, 584), (1002, 592), (1003, 599), (1004, 605), (1004, 610), (1004, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'e'): [(103, 477), (104, 477), (106, 477), (109, 477), (114, 477), (119, 477), (127, 477), (135, 477), (145, 478), (155, 479), (167, 480), (181, 481), (196, 482), (211, 485), (228, 487), (246, 490), (266, 493), (287, 496), (309, 501), (332, 505), (358, 509), (384, 514), (413, 517), (443, 521), (475, 524), (509, 526), (546, 527), (584, 526), (622, 524), (660, 522), (696, 520), (730, 517), (762, 515), (793, 514), (822, 514), (849, 514), (874, 516), (897, 519), (917, 522), (935, 527), (951, 534), (965, 541), (976, 548), (984, 557), (991, 566), (996, 575), (1000, 584), (1002, 592), (1003, 599), (1004, 605), (1004, 610), (1004, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'all'): [(103, 477), (104, 477), (104, 477), (106, 478), (108, 479), (111, 480), (115, 482), (120, 485), (127, 488), (135, 492), (145, 496), (157, 501), (170, 507), (185, 513), (202, 519), (221, 527), (242, 535), (266, 543), (291, 551), (318, 560), (348, 569), (380, 577), (413, 585), (449, 593), (487, 598), (526, 603), (567, 606), (609, 606), (649, 604), (687, 599), (723, 592), (756, 586), (787, 578), (816, 571), (843, 564), (868, 557), (890, 552), (911, 549), (929, 547), (946, 547), (960, 548), (973, 551), (982, 557), (990, 564), (995, 572), (999, 580), (1002, 588), (1003, 595), (1004, 601), (1004, 607), (1004, 611), (1004, 614), (1004, 616), (1004, 617)]}
# yay = {((1005, 257, 180), 'omniscient'): [(204, 437), (204, 436), (204, 436), (204, 434), (204, 432), (204, 429), (204, 424), (204, 418), (205, 411), (206, 403), (207, 393), (208, 381), (210, 368), (213, 353), (216, 337), (222, 319), (227, 300), (235, 279), (245, 259), (257, 238), (272, 217), (290, 198), (313, 180), (341, 167), (372, 158), (408, 157), (448, 161), (491, 169), (534, 182), (576, 196), (617, 211), (657, 227), (694, 242), (729, 256), (763, 270), (795, 281), (824, 292), (851, 301), (877, 308), (899, 314), (920, 317), (939, 318), (955, 317), (969, 315), (980, 309), (989, 303), (995, 295), (999, 287), (1002, 280), (1003, 273), (1004, 267), (1004, 263), (1004, 259), (1004, 258), (1004, 257)], ((1005, 257, 180), 'a'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (210, 435), (213, 435), (218, 434), (223, 433), (230, 432), (238, 431), (247, 430), (258, 428), (271, 427), (285, 426), (301, 424), (319, 423), (339, 421), (361, 420), (385, 419), (411, 418), (440, 417), (471, 417), (504, 417), (540, 417), (579, 417), (619, 418), (658, 418), (696, 417), (732, 416), (766, 413), (798, 410), (828, 406), (856, 401), (880, 394), (903, 386), (924, 378), (941, 368), (956, 357), (969, 346), (979, 335), (987, 324), (993, 313), (997, 302), (1000, 292), (1002, 283), (1004, 276), (1004, 269), (1004, 264), (1004, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'b'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (223, 435), (231, 435), (240, 435), (251, 434), (265, 433), (281, 432), (298, 431), (317, 430), (339, 430), (363, 428), (389, 427), (416, 426), (447, 425), (479, 423), (514, 422), (550, 421), (587, 419), (626, 418), (667, 417), (708, 417), (748, 416), (785, 417), (819, 417), (850, 418), (877, 418), (902, 417), (923, 415), (942, 412), (958, 406), (971, 398), (981, 388), (988, 376), (994, 363), (997, 350), (1000, 337), (1001, 325), (1003, 313), (1003, 302), (1004, 292), (1004, 283), (1004, 275), (1004, 269), (1004, 264), (1004, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'c'): [(204, 437), (204, 437), (203, 436), (203, 435), (203, 432), (203, 430), (203, 426), (203, 420), (203, 414), (203, 406), (204, 397), (205, 386), (206, 374), (209, 361), (212, 346), (217, 330), (224, 314), (232, 297), (243, 279), (258, 262), (276, 247), (298, 233), (325, 224), (355, 218), (390, 217), (429, 220), (470, 227), (514, 236), (558, 247), (600, 259), (641, 271), (680, 281), (717, 292), (752, 302), (786, 309), (816, 316), (845, 322), (871, 326), (895, 328), (917, 329), (936, 328), (953, 324), (967, 320), (979, 313), (987, 306), (994, 298), (999, 289), (1001, 281), (1003, 275), (1004, 268), (1004, 263), (1004, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'd'): [(204, 437), (204, 437), (203, 436), (203, 434), (203, 432), (203, 430), (203, 425), (203, 420), (203, 414), (203, 406), (204, 397), (205, 387), (207, 375), (210, 363), (214, 349), (219, 334), (227, 318), (237, 303), (249, 286), (265, 272), (285, 259), (308, 248), (337, 241), (368, 237), (403, 237), (442, 241), (484, 249), (529, 257), (572, 268), (614, 278), (655, 288), (693, 298), (730, 307), (764, 315), (797, 321), (827, 327), (855, 331), (881, 333), (904, 333), (925, 332), (943, 330), (959, 325), (972, 319), (983, 311), (990, 304), (996, 295), (1000, 287), (1002, 279), (1003, 272), (1004, 266), (1004, 262), (1004, 259), (1004, 257), (1004, 257)], ((1005, 257, 180), 'e'): [(204, 437), (204, 437), (203, 436), (203, 435), (203, 432), (203, 429), (203, 425), (203, 420), (203, 413), (203, 405), (204, 395), (205, 385), (206, 372), (208, 358), (211, 343), (215, 326), (221, 308), (229, 290), (239, 271), (252, 253), (269, 235), (290, 220), (315, 208), (344, 200), (378, 197), (416, 198), (457, 205), (501, 215), (545, 226), (587, 238), (628, 251), (668, 264), (705, 276), (741, 287), (775, 297), (806, 306), (835, 313), (862, 319), (887, 323), (909, 325), (929, 325), (947, 324), (962, 319), (975, 315), (985, 308), (992, 300), (998, 292), (1000, 284), (1003, 276), (1003, 270), (1004, 265), (1004, 261), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'all'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (223, 435), (231, 435), (240, 435), (251, 434), (265, 433), (281, 432), (298, 431), (317, 430), (339, 430), (363, 428), (389, 427), (416, 426), (447, 425), (479, 423), (514, 422), (550, 421), (587, 419), (626, 418), (667, 417), (708, 417), (748, 416), (785, 417), (819, 417), (850, 418), (877, 418), (902, 417), (923, 415), (942, 412), (958, 406), (971, 398), (981, 388), (988, 376), (994, 363), (997, 350), (1000, 337), (1001, 325), (1003, 313), (1003, 302), (1004, 292), (1004, 283), (1004, 275), (1004, 269), (1004, 264), (1004, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 617, 0), 'omniscient'): [(203, 437), (204, 437), (204, 437), (205, 438), (207, 439), (210, 441), (215, 443), (221, 446), (229, 450), (237, 454), (248, 460), (261, 467), (275, 475), (292, 482), (311, 492), (332, 502), (355, 513), (381, 525), (408, 538), (438, 551), (469, 564), (503, 578), (540, 593), (577, 607), (617, 620), (658, 632), (701, 643), (742, 652), (781, 656), (817, 656), (849, 652), (877, 645), (902, 634), (923, 622), (941, 608), (955, 595), (968, 581), (978, 569), (986, 558), (992, 550), (998, 544), (1003, 549), (1004, 557), (1004, 566), (1004, 575), (1004, 584), (1004, 592), (1004, 599), (1004, 605), (1004, 610), (1004, 614), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'a'): [(203, 437), (204, 437), (204, 437), (206, 438), (208, 438), (212, 439), (216, 441), (223, 443), (231, 446), (240, 449), (252, 453), (265, 457), (280, 462), (298, 468), (318, 474), (339, 481), (363, 488), (390, 495), (418, 504), (449, 512), (481, 521), (516, 531), (553, 539), (592, 548), (632, 557), (674, 564), (716, 570), (757, 575), (794, 576), (829, 576), (860, 572), (887, 567), (910, 559), (931, 552), (949, 544), (964, 536), (976, 529), (987, 524), (995, 523), (1000, 529), (1002, 538), (1003, 548), (1004, 558), (1004, 569), (1004, 579), (1004, 587), (1004, 595), (1004, 602), (1004, 608), (1004, 612), (1004, 615), (1004, 617), (1004, 617)], ((1005, 617, 0), 'b'): [(203, 437), (204, 437), (204, 437), (205, 438), (207, 439), (210, 441), (215, 444), (221, 447), (228, 451), (236, 458), (247, 464), (260, 472), (274, 480), (290, 490), (309, 501), (329, 513), (351, 526), (376, 539), (403, 553), (432, 569), (464, 584), (497, 602), (533, 617), (570, 634), (609, 650), (650, 665), (693, 678), (735, 689), (775, 695), (811, 696), (845, 693), (874, 683), (899, 671), (921, 657), (939, 640), (954, 624), (966, 608), (976, 593), (983, 580), (990, 568), (996, 558), (999, 552), (1003, 554), (1004, 562), (1004, 570), (1004, 579), (1004, 587), (1004, 595), (1004, 602), (1004, 607), (1004, 612), (1004, 615), (1004, 617), (1004, 617)], ((1005, 617, 0), 'c'): [(203, 437), (204, 437), (204, 437), (205, 438), (207, 439), (210, 441), (215, 444), (221, 447), (228, 451), (236, 458), (247, 464), (260, 472), (274, 480), (290, 490), (309, 501), (329, 513), (351, 526), (376, 539), (403, 553), (432, 569), (464, 584), (497, 602), (533, 617), (570, 634), (609, 650), (650, 665), (693, 678), (735, 689), (775, 695), (811, 696), (845, 693), (874, 683), (899, 671), (921, 657), (939, 640), (954, 624), (966, 608), (976, 593), (983, 580), (990, 568), (996, 558), (999, 552), (1003, 554), (1004, 562), (1004, 570), (1004, 579), (1004, 587), (1004, 595), (1004, 602), (1004, 607), (1004, 612), (1004, 615), (1004, 617), (1004, 617)], ((1005, 617, 0), 'd'): [(204, 437), (204, 436), (204, 436), (205, 435), (206, 434), (207, 432), (210, 430), (213, 428), (217, 426), (222, 423), (229, 420), (237, 417), (246, 414), (257, 412), (270, 409), (286, 406), (303, 404), (322, 401), (344, 399), (369, 398), (397, 397), (426, 396), (460, 397), (496, 398), (535, 399), (576, 403), (618, 406), (659, 412), (698, 418), (735, 425), (770, 433), (803, 441), (833, 451), (861, 461), (886, 471), (908, 483), (928, 494), (945, 507), (959, 519), (972, 532), (981, 544), (988, 556), (995, 567), (998, 577), (1001, 587), (1003, 595), (1003, 602), (1004, 608), (1004, 612), (1004, 615), (1004, 617), (1004, 617)], ((1005, 617, 0), 'e'): [(204, 437), (204, 436), (204, 436), (204, 434), (205, 432), (206, 430), (208, 427), (210, 423), (213, 419), (217, 415), (222, 410), (229, 404), (237, 398), (246, 392), (258, 386), (272, 380), (288, 374), (306, 368), (327, 364), (351, 361), (377, 358), (406, 357), (439, 357), (474, 358), (512, 360), (553, 365), (596, 371), (637, 378), (677, 386), (716, 395), (752, 405), (786, 416), (817, 428), (846, 439), (872, 453), (896, 466), (917, 479), (935, 493), (951, 506), (964, 520), (975, 533), (984, 546), (990, 558), (996, 570), (999, 580), (1002, 589), (1003, 597), (1004, 604), (1004, 609), (1004, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'all'): [(203, 437), (204, 437), (204, 437), (205, 438), (207, 438), (210, 441), (214, 444), (221, 447), (228, 451), (237, 457), (248, 463), (260, 471), (275, 479), (292, 489), (311, 499), (331, 511), (354, 524), (380, 537), (408, 551), (437, 566), (469, 582), (503, 598), (539, 614), (578, 631), (618, 647), (659, 662), (702, 676), (745, 686), (785, 694), (824, 697), (856, 694), (886, 687), (911, 675), (932, 661), (950, 645), (964, 629), (975, 613), (984, 598), (991, 583), (996, 571), (1000, 561), (1003, 553), (1005, 555), (1005, 563), (1005, 571), (1005, 580), (1005, 588), (1005, 596), (1005, 602), (1005, 608), (1005, 612), (1004, 615), (1004, 617), (1004, 617)]}
# #results for sept 16 pilot
# yay = {((1005, 257, 180), 'naked'): [(203, 437), (203, 436), (203, 436), (203, 434), (203, 432), (203, 429), (203, 425), (202, 419), (202, 412), (202, 403), (202, 393), (202, 381), (203, 367), (204, 352), (205, 335), (207, 316), (211, 296), (217, 275), (223, 252), (233, 229), (244, 205), (259, 182), (279, 161), (303, 142), (332, 127), (367, 117), (406, 114), (449, 116), (493, 122), (537, 131), (579, 142), (620, 153), (659, 166), (697, 177), (732, 190), (765, 201), (795, 212), (824, 222), (850, 231), (875, 240), (896, 247), (916, 253), (933, 259), (949, 263), (962, 266), (973, 268), (983, 268), (991, 268), (997, 267), (1000, 265), (1003, 262), (1004, 260), (1004, 258), (1004, 256), (1004, 256)], ((1005, 257, 180), 'omni'): [(203, 437), (203, 436), (203, 436), (203, 434), (203, 432), (203, 429), (203, 425), (202, 419), (202, 412), (202, 403), (202, 393), (202, 381), (203, 367), (204, 352), (205, 335), (207, 316), (211, 296), (217, 275), (223, 252), (233, 229), (244, 205), (259, 182), (279, 161), (303, 142), (332, 127), (367, 117), (406, 114), (449, 116), (493, 122), (537, 131), (579, 142), (620, 153), (659, 166), (697, 177), (732, 190), (765, 201), (795, 212), (824, 222), (850, 231), (875, 240), (896, 247), (916, 253), (933, 259), (949, 263), (962, 266), (973, 268), (983, 268), (991, 268), (997, 267), (1000, 265), (1003, 262), (1004, 260), (1004, 258), (1004, 256), (1004, 256)], ((1005, 257, 180), 'a'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 435), (217, 433), (224, 432), (232, 431), (243, 428), (255, 425), (269, 423), (286, 419), (305, 415), (327, 410), (351, 405), (377, 400), (405, 394), (436, 388), (469, 381), (505, 374), (543, 366), (583, 358), (624, 350), (668, 341), (713, 333), (756, 325), (796, 318), (833, 312), (868, 306), (899, 302), (926, 298), (950, 295), (971, 293), (988, 292), (1003, 292), (1014, 292), (1022, 293), (1024, 293), (1019, 290), (1015, 286), (1011, 282), (1009, 278), (1007, 273), (1006, 269), (1005, 265), (1005, 262), (1005, 259), (1005, 258), (1005, 257), (1005, 257)], ((1005, 257, 180), 'b'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 437), (212, 437), (217, 437), (224, 437), (233, 438), (244, 438), (256, 439), (271, 439), (288, 440), (307, 441), (328, 441), (353, 442), (379, 443), (408, 443), (439, 444), (473, 445), (509, 445), (547, 445), (587, 446), (629, 445), (672, 445), (718, 444), (764, 442), (808, 440), (849, 437), (886, 432), (919, 427), (948, 421), (972, 413), (992, 404), (1007, 393), (1017, 380), (1022, 368), (1024, 355), (1024, 342), (1022, 331), (1019, 319), (1016, 310), (1013, 301), (1010, 292), (1009, 285), (1007, 279), (1006, 273), (1005, 268), (1005, 264), (1005, 261), (1005, 259), (1005, 258), (1005, 257), (1005, 257)], ((1005, 257, 180), 'c'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 437), (212, 437), (217, 437), (224, 437), (233, 437), (244, 437), (256, 437), (271, 437), (288, 437), (307, 438), (329, 438), (353, 438), (380, 438), (408, 438), (440, 437), (473, 437), (509, 437), (547, 436), (587, 435), (629, 434), (673, 433), (718, 431), (764, 428), (808, 425), (848, 422), (885, 417), (918, 413), (947, 407), (971, 399), (990, 392), (1006, 382), (1016, 371), (1022, 360), (1024, 347), (1023, 336), (1021, 325), (1018, 315), (1015, 306), (1013, 297), (1010, 290), (1008, 283), (1007, 276), (1006, 271), (1005, 267), (1005, 263), (1005, 260), (1005, 258), (1005, 257), (1005, 257)], ((1005, 257, 180), 'd'): [(203, 437), (203, 437), (204, 436), (205, 436), (208, 436), (212, 436), (217, 436), (224, 436), (232, 436), (242, 436), (253, 436), (267, 436), (283, 436), (301, 435), (322, 435), (344, 434), (369, 434), (396, 433), (425, 432), (457, 431), (490, 430), (526, 429), (563, 427), (603, 425), (643, 422), (685, 419), (728, 416), (768, 411), (805, 407), (838, 402), (867, 396), (894, 390), (917, 383), (937, 375), (954, 367), (968, 358), (979, 348), (988, 339), (994, 328), (998, 319), (1001, 310), (1003, 301), (1004, 293), (1004, 286), (1004, 279), (1004, 273), (1005, 268), (1005, 264), (1005, 261), (1005, 258), (1005, 257), (1004, 257), (1004, 257)], ((1005, 257, 180), 'e'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (211, 436), (215, 436), (220, 436), (227, 436), (235, 436), (245, 436), (256, 435), (269, 435), (284, 434), (301, 434), (320, 433), (340, 432), (362, 431), (387, 429), (413, 428), (442, 425), (472, 423), (503, 420), (537, 416), (572, 413), (609, 407), (647, 402), (684, 396), (718, 390), (751, 383), (781, 376), (810, 369), (836, 362), (860, 355), (882, 347), (903, 340), (921, 333), (937, 325), (951, 317), (963, 310), (974, 303), (983, 296), (989, 289), (994, 283), (998, 278), (1001, 272), (1003, 268), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257), (1004, 257)], ((1005, 617, 0), 'naked'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 454), (203, 461), (203, 469), (203, 479), (203, 489), (205, 502), (206, 516), (209, 532), (213, 549), (218, 568), (225, 587), (234, 607), (246, 627), (262, 647), (280, 665), (304, 682), (332, 695), (364, 704), (401, 709), (443, 709), (486, 706), (529, 700), (572, 693), (614, 684), (653, 676), (691, 667), (726, 658), (760, 649), (792, 641), (821, 633), (847, 626), (872, 620), (894, 615), (915, 611), (932, 606), (948, 604), (962, 603), (973, 602), (983, 602), (991, 603), (997, 605), (1000, 607), (1002, 610), (1004, 613), (1004, 615), (1004, 617), (1004, 617), (1004, 617)], ((1005, 617, 0), 'omni'): [(203, 437), (203, 438), (203, 438), (203, 440), (203, 442), (203, 445), (203, 449), (202, 455), (202, 462), (202, 471), (202, 481), (202, 493), (203, 507), (204, 522), (205, 539), (207, 558), (211, 578), (217, 599), (223, 622), (233, 645), (244, 669), (259, 692), (279, 713), (303, 732), (332, 747), (367, 757), (406, 760), (449, 758), (493, 752), (537, 743), (579, 732), (620, 721), (659, 708), (697, 697), (732, 684), (765, 673), (795, 662), (824, 652), (850, 643), (875, 634), (896, 627), (916, 621), (933, 615), (949, 611), (962, 608), (973, 606), (983, 606), (991, 606), (997, 607), (1000, 609), (1003, 612), (1004, 614), (1004, 616), (1004, 618), (1004, 618)], ((1005, 617, 0), 'a'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (217, 435), (224, 435), (232, 434), (243, 433), (255, 432), (270, 430), (287, 429), (306, 427), (328, 426), (352, 424), (378, 422), (407, 420), (438, 418), (471, 416), (507, 414), (546, 412), (586, 411), (627, 409), (671, 408), (716, 408), (762, 408), (807, 409), (849, 412), (887, 416), (921, 421), (950, 428), (974, 438), (993, 449), (1008, 462), (1017, 477), (1022, 492), (1024, 506), (1024, 520), (1022, 534), (1020, 546), (1017, 557), (1013, 567), (1012, 576), (1009, 584), (1008, 592), (1006, 598), (1005, 603), (1005, 608), (1005, 611), (1005, 614), (1005, 616), (1005, 617), (1005, 617)], ((1005, 617, 0), 'b'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (224, 436), (233, 435), (243, 435), (256, 435), (271, 434), (287, 434), (307, 433), (328, 433), (352, 433), (379, 432), (408, 432), (439, 431), (472, 431), (508, 431), (547, 431), (587, 431), (629, 431), (672, 432), (717, 434), (763, 435), (808, 438), (849, 441), (886, 446), (919, 451), (948, 456), (971, 465), (991, 473), (1007, 484), (1017, 496), (1022, 508), (1024, 521), (1023, 533), (1022, 545), (1018, 555), (1015, 565), (1013, 574), (1010, 582), (1009, 589), (1007, 595), (1006, 601), (1005, 605), (1005, 609), (1005, 612), (1005, 615), (1005, 616), (1005, 617), (1005, 617)], ((1005, 617, 0), 'c'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 437), (212, 437), (217, 438), (224, 438), (233, 439), (243, 439), (256, 441), (271, 442), (288, 443), (307, 445), (328, 446), (352, 448), (379, 451), (407, 453), (439, 455), (472, 458), (508, 461), (546, 465), (586, 468), (628, 472), (671, 477), (716, 481), (762, 486), (804, 490), (844, 495), (880, 500), (912, 504), (940, 509), (964, 514), (985, 519), (1001, 525), (1014, 531), (1021, 538), (1024, 546), (1023, 555), (1021, 563), (1017, 570), (1014, 577), (1011, 584), (1009, 590), (1007, 596), (1006, 601), (1005, 606), (1005, 610), (1005, 613), (1005, 615), (1005, 617), (1005, 617), (1005, 617)], ((1005, 617, 0), 'd'): [(203, 437), (204, 437), (204, 437), (204, 439), (205, 441), (205, 444), (207, 448), (208, 454), (210, 461), (212, 469), (216, 478), (220, 490), (225, 503), (231, 517), (237, 533), (245, 550), (255, 569), (266, 588), (279, 609), (294, 630), (312, 651), (331, 671), (355, 691), (383, 709), (413, 723), (448, 734), (486, 739), (527, 738), (568, 734), (608, 726), (647, 717), (683, 706), (718, 695), (751, 684), (781, 672), (810, 662), (836, 652), (861, 642), (883, 634), (904, 627), (922, 619), (938, 614), (953, 610), (965, 607), (976, 604), (985, 604), (992, 604), (997, 606), (1001, 607), (1003, 610), (1004, 613), (1004, 615), (1004, 617), (1004, 617), (1004, 617)], ((1005, 617, 0), 'e'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 453), (203, 459), (203, 467), (203, 475), (205, 485), (206, 496), (209, 509), (214, 522), (220, 537), (227, 552), (237, 567), (251, 583), (267, 598), (287, 612), (311, 624), (339, 633), (371, 641), (407, 644), (447, 646), (489, 645), (532, 642), (575, 639), (617, 634), (656, 629), (694, 625), (730, 620), (764, 615), (795, 610), (824, 606), (851, 604), (876, 601), (898, 599), (918, 597), (935, 596), (951, 596), (964, 596), (975, 597), (985, 599), (992, 602), (997, 604), (1001, 608), (1003, 611), (1004, 613), (1004, 615), (1004, 617), (1004, 617)]}
# # yay = v2 pilot sept 16
# yay = {((1005, 257, 180), 'naked'): [(203, 437), (203, 436), (203, 436), (203, 434), (203, 432), (203, 429), (203, 425), (202, 419), (202, 412), (202, 403), (202, 393), (202, 381), (203, 367), (204, 352), (205, 335), (207, 316), (211, 296), (217, 275), (223, 252), (233, 229), (244, 205), (259, 182), (279, 161), (303, 142), (332, 127), (367, 117), (406, 114), (449, 116), (493, 122), (537, 131), (579, 142), (620, 153), (659, 166), (697, 177), (732, 190), (765, 201), (795, 212), (824, 222), (850, 231), (875, 240), (896, 247), (916, 253), (933, 259), (949, 263), (962, 266), (973, 268), (983, 268), (991, 268), (997, 267), (1000, 265), (1003, 262), (1004, 260), (1004, 258), (1004, 256), (1004, 256)], ((1005, 257, 180), 'omni'): [(203, 437), (203, 436), (203, 436), (203, 434), (203, 432), (203, 429), (203, 425), (202, 419), (202, 412), (202, 403), (202, 393), (202, 381), (203, 367), (204, 352), (205, 335), (207, 316), (211, 296), (217, 275), (223, 252), (233, 229), (244, 205), (259, 182), (279, 161), (303, 142), (332, 127), (367, 117), (406, 114), (449, 116), (493, 122), (537, 131), (579, 142), (620, 153), (659, 166), (697, 177), (732, 190), (765, 201), (795, 212), (824, 222), (850, 231), (875, 240), (896, 247), (916, 253), (933, 259), (949, 263), (962, 266), (973, 268), (983, 268), (991, 268), (997, 267), (1000, 265), (1003, 262), (1004, 260), (1004, 258), (1004, 256), (1004, 256)], ((1005, 257, 180), 'a'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 435), (217, 434), (224, 432), (233, 431), (244, 429), (256, 427), (271, 424), (288, 420), (308, 416), (330, 412), (354, 408), (381, 403), (410, 397), (442, 392), (477, 386), (513, 379), (552, 372), (593, 364), (636, 356), (681, 349), (727, 340), (772, 332), (815, 325), (855, 319), (891, 312), (923, 308), (953, 304), (977, 300), (999, 298), (1017, 297), (1031, 296), (1042, 296), (1042, 296), (1035, 294), (1028, 292), (1022, 288), (1016, 285), (1013, 281), (1009, 276), (1007, 271), (1006, 267), (1005, 264), (1005, 261), (1005, 258), (1005, 257), (1005, 257), (1005, 257)], ((1005, 257, 180), 'b'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 437), (212, 437), (218, 437), (225, 437), (234, 437), (245, 437), (258, 437), (273, 437), (290, 437), (310, 437), (332, 438), (356, 438), (384, 438), (413, 438), (445, 437), (480, 437), (516, 437), (556, 436), (597, 436), (640, 435), (685, 433), (731, 432), (778, 429), (824, 426), (867, 423), (906, 420), (940, 415), (970, 409), (995, 403), (1015, 394), (1030, 385), (1040, 374), (1043, 361), (1041, 349), (1037, 338), (1032, 327), (1027, 317), (1022, 308), (1018, 299), (1014, 292), (1011, 284), (1008, 278), (1007, 273), (1006, 268), (1005, 264), (1005, 261), (1005, 258), (1005, 257), (1005, 257), (1005, 257)], ((1005, 257, 180), 'c'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 437), (212, 437), (217, 437), (224, 437), (233, 437), (244, 437), (257, 437), (272, 437), (289, 437), (309, 437), (331, 438), (355, 438), (382, 438), (412, 438), (444, 437), (478, 437), (514, 437), (553, 436), (594, 436), (637, 434), (681, 433), (727, 431), (774, 429), (819, 426), (861, 423), (900, 419), (934, 414), (963, 409), (988, 402), (1008, 394), (1023, 384), (1032, 373), (1037, 361), (1036, 349), (1033, 337), (1029, 326), (1025, 317), (1020, 308), (1017, 299), (1012, 291), (1010, 284), (1008, 278), (1006, 272), (1006, 267), (1005, 264), (1005, 261), (1005, 258), (1005, 257), (1005, 257), (1005, 257)], ((1005, 257, 180), 'd'): [(203, 437), (203, 437), (204, 436), (205, 436), (208, 436), (212, 436), (217, 436), (224, 436), (232, 436), (242, 436), (253, 436), (267, 436), (283, 436), (301, 435), (322, 435), (344, 434), (369, 434), (396, 433), (425, 432), (457, 431), (490, 430), (526, 429), (563, 427), (603, 425), (643, 422), (685, 419), (728, 416), (768, 411), (805, 407), (838, 402), (867, 396), (894, 390), (917, 383), (937, 375), (954, 367), (968, 358), (979, 348), (988, 339), (994, 328), (998, 319), (1001, 310), (1003, 301), (1004, 293), (1004, 286), (1004, 279), (1004, 273), (1005, 268), (1005, 264), (1005, 261), (1005, 258), (1005, 257), (1004, 257), (1004, 257)], ((1005, 257, 180), 'e'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (211, 436), (215, 436), (220, 436), (227, 436), (235, 436), (245, 436), (256, 435), (269, 435), (284, 434), (301, 434), (320, 433), (340, 432), (362, 431), (387, 429), (413, 428), (442, 425), (472, 423), (503, 420), (537, 416), (572, 413), (609, 407), (647, 402), (684, 396), (718, 390), (751, 383), (781, 376), (810, 369), (836, 362), (860, 355), (882, 347), (903, 340), (921, 333), (937, 325), (951, 317), (963, 310), (974, 303), (983, 296), (989, 289), (994, 283), (998, 278), (1001, 272), (1003, 268), (1004, 264), (1004, 261), (1004, 258), (1004, 257), (1004, 257), (1004, 257)], ((1005, 617, 0), 'naked'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 454), (203, 461), (203, 469), (203, 479), (203, 489), (205, 502), (206, 516), (209, 532), (213, 549), (218, 568), (225, 587), (234, 607), (246, 627), (262, 647), (280, 665), (304, 682), (332, 695), (364, 704), (401, 709), (443, 709), (486, 706), (529, 700), (572, 693), (614, 684), (653, 676), (691, 667), (726, 658), (760, 649), (792, 641), (821, 633), (847, 626), (872, 620), (894, 615), (915, 611), (932, 606), (948, 604), (962, 603), (973, 602), (983, 602), (991, 603), (997, 605), (1000, 607), (1002, 610), (1004, 613), (1004, 615), (1004, 617), (1004, 617), (1004, 617)], ((1005, 617, 0), 'omni'): [(203, 437), (203, 438), (203, 438), (203, 440), (203, 442), (203, 445), (203, 449), (202, 455), (202, 462), (202, 471), (202, 481), (202, 493), (203, 507), (204, 522), (205, 539), (207, 558), (211, 578), (217, 599), (223, 622), (233, 645), (244, 669), (259, 692), (279, 713), (303, 732), (332, 747), (367, 757), (406, 760), (449, 758), (493, 752), (537, 743), (579, 732), (620, 721), (659, 708), (697, 697), (732, 684), (765, 673), (795, 662), (824, 652), (850, 643), (875, 634), (896, 627), (916, 621), (933, 615), (949, 611), (962, 608), (973, 606), (983, 606), (991, 606), (997, 607), (1000, 609), (1003, 612), (1004, 614), (1004, 616), (1004, 618), (1004, 618)], ((1005, 617, 0), 'a'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (224, 435), (233, 435), (244, 434), (257, 434), (272, 433), (289, 432), (309, 431), (331, 430), (356, 429), (382, 427), (412, 426), (444, 425), (478, 424), (515, 423), (554, 422), (596, 421), (638, 420), (684, 420), (730, 420), (777, 421), (824, 423), (867, 425), (907, 428), (942, 433), (972, 439), (997, 448), (1017, 457), (1031, 470), (1040, 483), (1043, 497), (1041, 511), (1038, 524), (1033, 536), (1028, 548), (1023, 558), (1019, 568), (1015, 577), (1011, 584), (1009, 592), (1007, 598), (1006, 603), (1005, 607), (1005, 611), (1005, 614), (1005, 616), (1005, 617), (1005, 617)], ((1005, 617, 0), 'b'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (225, 436), (233, 436), (244, 435), (257, 435), (272, 435), (290, 434), (309, 434), (331, 433), (356, 433), (383, 432), (413, 432), (444, 431), (479, 431), (515, 431), (555, 431), (596, 431), (639, 431), (684, 432), (730, 433), (777, 435), (824, 437), (867, 440), (906, 443), (940, 448), (971, 454), (996, 461), (1016, 470), (1031, 481), (1040, 493), (1043, 506), (1041, 519), (1038, 531), (1033, 542), (1028, 553), (1023, 563), (1018, 572), (1014, 580), (1011, 587), (1008, 593), (1007, 599), (1006, 604), (1005, 608), (1005, 612), (1005, 614), (1005, 616), (1005, 617), (1005, 617)], ((1005, 617, 0), 'c'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 437), (212, 438), (218, 438), (225, 439), (233, 440), (244, 441), (257, 442), (272, 444), (289, 446), (309, 448), (332, 450), (356, 453), (383, 456), (412, 459), (445, 463), (479, 466), (515, 471), (555, 475), (596, 480), (639, 485), (684, 491), (731, 495), (778, 502), (822, 507), (863, 512), (900, 517), (934, 522), (963, 526), (989, 530), (1009, 534), (1027, 538), (1039, 543), (1045, 548), (1043, 556), (1038, 562), (1031, 568), (1025, 574), (1019, 580), (1015, 585), (1011, 592), (1009, 597), (1007, 602), (1006, 606), (1005, 610), (1005, 613), (1005, 615), (1005, 617), (1005, 617), (1005, 617)], ((1005, 617, 0), 'd'): [(203, 437), (204, 437), (204, 437), (204, 439), (205, 441), (205, 444), (207, 448), (208, 454), (210, 461), (212, 469), (216, 478), (220, 490), (225, 503), (231, 517), (237, 533), (245, 550), (255, 569), (266, 588), (279, 609), (294, 630), (312, 651), (331, 671), (355, 691), (383, 709), (413, 723), (448, 734), (486, 739), (527, 738), (568, 734), (608, 726), (647, 717), (683, 706), (718, 695), (751, 684), (781, 672), (810, 662), (836, 652), (861, 642), (883, 634), (904, 627), (922, 619), (938, 614), (953, 610), (965, 607), (976, 604), (985, 604), (992, 604), (997, 606), (1001, 607), (1003, 610), (1004, 613), (1004, 615), (1004, 617), (1004, 617), (1004, 617)], ((1005, 617, 0), 'e'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 453), (203, 459), (203, 467), (203, 475), (205, 485), (206, 496), (209, 509), (214, 522), (220, 537), (227, 552), (237, 567), (251, 583), (267, 598), (287, 612), (311, 624), (339, 633), (371, 641), (407, 644), (447, 646), (489, 645), (532, 642), (575, 639), (617, 634), (656, 629), (694, 625), (730, 620), (764, 615), (795, 610), (824, 606), (851, 604), (876, 601), (898, 599), (918, 597), (935, 596), (951, 596), (964, 596), (975, 597), (985, 599), (992, 602), (997, 604), (1001, 608), (1003, 611), (1004, 613), (1004, 615), (1004, 617), (1004, 617)]}
# # test set for final paths Sept 19
# yay = {((1005, 257, 180), 'naked'): [(204, 437), (204, 436), (204, 436), (204, 434), (204, 432), (204, 429), (204, 424), (205, 418), (205, 411), (206, 402), (207, 391), (209, 379), (211, 365), (214, 349), (218, 331), (222, 312), (227, 291), (234, 270), (242, 246), (253, 223), (267, 198), (283, 175), (302, 152), (326, 133), (355, 118), (389, 108), (427, 107), (468, 113), (511, 125), (554, 140), (595, 158), (634, 176), (673, 194), (709, 211), (743, 228), (775, 244), (805, 259), (833, 272), (859, 283), (883, 293), (904, 301), (924, 306), (942, 310), (958, 310), (971, 309), (982, 305), (991, 299), (996, 292), (1000, 285), (1003, 278), (1003, 271), (1004, 266), (1004, 262), (1004, 259), (1004, 257), (1004, 257)], ((1005, 257, 180), 'omni'): [(204, 437), (204, 436), (204, 436), (204, 434), (204, 432), (204, 429), (204, 424), (205, 418), (205, 411), (206, 402), (207, 391), (209, 379), (211, 365), (214, 349), (218, 331), (222, 312), (227, 291), (234, 270), (242, 246), (253, 223), (267, 198), (283, 175), (302, 152), (326, 133), (355, 118), (389, 108), (427, 107), (468, 113), (511, 125), (554, 140), (595, 158), (634, 176), (673, 194), (709, 211), (743, 228), (775, 244), (805, 259), (833, 272), (859, 283), (883, 293), (904, 301), (924, 306), (942, 310), (958, 310), (971, 309), (982, 305), (991, 299), (996, 292), (1000, 285), (1003, 278), (1003, 271), (1004, 266), (1004, 262), (1004, 259), (1004, 257), (1004, 257)], ((1005, 257, 180), 'a'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (217, 435), (225, 434), (233, 433), (245, 432), (258, 431), (273, 429), (291, 427), (310, 425), (333, 423), (358, 420), (385, 418), (415, 415), (447, 412), (482, 408), (520, 405), (559, 401), (601, 398), (645, 394), (691, 390), (738, 387), (786, 383), (833, 381), (876, 379), (916, 377), (953, 377), (982, 377), (1009, 378), (1031, 381), (1047, 383), (1058, 386), (1051, 382), (1042, 374), (1034, 365), (1026, 355), (1021, 344), (1016, 332), (1013, 321), (1010, 310), (1008, 299), (1007, 290), (1006, 281), (1005, 274), (1005, 268), (1005, 263), (1005, 260), (1005, 258), (1005, 257)], ((1005, 257, 180), 'b'): [(203, 437), (204, 437), (204, 437), (206, 437), (209, 437), (212, 437), (218, 437), (225, 437), (234, 437), (245, 437), (258, 437), (274, 437), (292, 437), (312, 437), (334, 437), (359, 437), (387, 437), (417, 437), (449, 437), (484, 437), (522, 437), (562, 437), (604, 437), (647, 437), (693, 437), (740, 437), (788, 437), (837, 437), (882, 437), (923, 437), (959, 436), (991, 436), (1017, 436), (1039, 435), (1054, 431), (1058, 423), (1053, 413), (1046, 401), (1038, 388), (1031, 375), (1025, 362), (1020, 348), (1016, 336), (1012, 323), (1009, 312), (1008, 301), (1007, 291), (1006, 282), (1005, 274), (1005, 268), (1005, 263), (1005, 260), (1005, 258), (1005, 257), (1005, 257)], ((1005, 257, 180), 'c'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (224, 435), (233, 435), (244, 434), (257, 433), (272, 433), (289, 432), (308, 431), (330, 430), (355, 428), (382, 427), (411, 426), (443, 424), (477, 422), (514, 420), (553, 418), (594, 417), (637, 415), (682, 413), (728, 411), (775, 410), (821, 408), (863, 407), (902, 407), (937, 407), (967, 407), (992, 408), (1013, 408), (1029, 408), (1039, 405), (1038, 396), (1033, 386), (1028, 374), (1022, 362), (1018, 349), (1014, 337), (1011, 325), (1009, 313), (1008, 302), (1006, 292), (1005, 284), (1005, 276), (1005, 269), (1005, 264), (1005, 260), (1005, 258), (1005, 257), (1005, 257)], ((1005, 257, 180), 'd'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (212, 436), (217, 435), (223, 435), (231, 434), (241, 434), (252, 433), (265, 432), (281, 431), (299, 429), (318, 428), (340, 426), (364, 425), (390, 423), (419, 421), (449, 419), (481, 417), (516, 415), (553, 413), (590, 412), (630, 410), (671, 408), (713, 407), (753, 407), (790, 407), (824, 407), (854, 408), (881, 408), (906, 408), (927, 407), (946, 405), (962, 400), (975, 393), (984, 383), (991, 372), (996, 360), (999, 347), (1001, 335), (1002, 322), (1003, 311), (1004, 300), (1004, 290), (1004, 282), (1004, 274), (1004, 268), (1004, 263), (1004, 260), (1005, 258), (1005, 257), (1005, 257)], ((1005, 257, 180), 'e'): [(204, 437), (204, 436), (204, 436), (205, 435), (206, 434), (207, 432), (210, 431), (213, 429), (217, 427), (222, 425), (228, 423), (236, 421), (246, 418), (257, 416), (270, 414), (286, 412), (303, 411), (323, 409), (346, 408), (371, 407), (399, 407), (430, 407), (464, 407), (500, 407), (540, 408), (582, 408), (624, 408), (664, 407), (703, 406), (740, 403), (774, 400), (806, 396), (836, 391), (864, 385), (889, 378), (911, 370), (930, 361), (948, 351), (962, 341), (973, 331), (983, 320), (991, 310), (995, 300), (999, 290), (1002, 282), (1003, 274), (1004, 268), (1004, 263), (1004, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 617, 0), 'naked'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 454), (203, 462), (203, 471), (203, 481), (204, 493), (205, 506), (206, 522), (209, 539), (211, 557), (216, 577), (222, 598), (229, 620), (239, 643), (252, 665), (269, 687), (289, 706), (315, 722), (345, 732), (381, 737), (420, 733), (463, 725), (507, 713), (550, 697), (592, 682), (633, 666), (672, 649), (709, 634), (743, 620), (776, 606), (807, 594), (835, 583), (862, 575), (887, 568), (909, 563), (928, 560), (947, 559), (961, 561), (974, 564), (985, 569), (993, 576), (998, 583), (1000, 591), (1003, 598), (1004, 604), (1004, 609), (1004, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'omni'): [(204, 437), (204, 438), (204, 438), (204, 440), (204, 442), (204, 445), (204, 450), (205, 456), (205, 463), (206, 472), (207, 483), (209, 495), (211, 509), (214, 525), (218, 543), (222, 562), (227, 583), (234, 604), (242, 628), (253, 651), (267, 676), (283, 699), (302, 722), (326, 741), (355, 756), (389, 766), (427, 767), (468, 761), (511, 749), (554, 734), (595, 716), (634, 698), (673, 680), (709, 663), (743, 646), (775, 630), (805, 615), (833, 602), (859, 591), (883, 581), (904, 573), (924, 568), (942, 564), (958, 564), (971, 565), (982, 569), (991, 575), (996, 582), (1000, 589), (1003, 596), (1003, 603), (1004, 608), (1004, 612), (1004, 615), (1004, 617), (1004, 617)], ((1005, 617, 0), 'a'): [(203, 437), (204, 437), (204, 437), (206, 437), (209, 437), (212, 437), (218, 437), (225, 437), (234, 437), (245, 437), (258, 437), (274, 437), (292, 437), (312, 437), (334, 437), (359, 437), (387, 437), (417, 437), (449, 437), (484, 437), (522, 437), (562, 437), (604, 437), (647, 437), (693, 437), (740, 437), (788, 437), (837, 437), (882, 437), (923, 437), (959, 437), (991, 437), (1018, 437), (1039, 438), (1054, 442), (1058, 450), (1053, 460), (1046, 472), (1038, 485), (1031, 498), (1025, 511), (1020, 525), (1016, 537), (1012, 550), (1009, 561), (1008, 573), (1007, 582), (1006, 591), (1005, 599), (1005, 605), (1005, 610), (1005, 613), (1004, 615), (1004, 616), (1004, 616)], ((1005, 617, 0), 'b'): [(203, 437), (204, 437), (204, 437), (206, 437), (209, 437), (212, 437), (218, 437), (225, 438), (234, 438), (245, 439), (258, 439), (274, 440), (291, 441), (311, 442), (334, 443), (359, 445), (386, 446), (416, 447), (449, 449), (484, 451), (521, 452), (561, 454), (603, 456), (646, 458), (692, 460), (739, 461), (787, 463), (835, 464), (879, 465), (919, 466), (954, 467), (986, 466), (1012, 466), (1034, 465), (1050, 465), (1057, 470), (1051, 478), (1043, 488), (1034, 499), (1028, 511), (1022, 524), (1017, 536), (1013, 548), (1010, 559), (1008, 570), (1007, 580), (1006, 589), (1005, 597), (1005, 604), (1005, 609), (1005, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'c'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 438), (211, 439), (217, 441), (223, 442), (231, 445), (241, 448), (253, 452), (267, 457), (283, 462), (301, 467), (322, 473), (345, 480), (370, 487), (398, 495), (427, 504), (459, 512), (494, 520), (531, 530), (569, 540), (609, 549), (652, 558), (696, 567), (740, 575), (782, 581), (821, 584), (857, 586), (889, 585), (917, 582), (942, 577), (962, 570), (979, 561), (992, 552), (1002, 543), (1008, 535), (1012, 528), (1011, 535), (1009, 543), (1008, 553), (1007, 563), (1006, 573), (1005, 582), (1005, 591), (1005, 598), (1005, 604), (1005, 609), (1005, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'd'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 449), (203, 455), (203, 463), (203, 472), (203, 482), (204, 495), (205, 509), (206, 525), (208, 542), (211, 562), (214, 583), (219, 605), (226, 628), (235, 652), (246, 677), (260, 701), (279, 724), (302, 743), (331, 757), (365, 766), (403, 766), (445, 758), (489, 746), (533, 731), (575, 713), (616, 695), (656, 677), (693, 660), (728, 643), (762, 628), (793, 613), (822, 600), (850, 589), (875, 580), (898, 572), (919, 567), (938, 564), (954, 563), (968, 564), (980, 568), (989, 573), (995, 580), (1000, 587), (1002, 595), (1003, 602), (1004, 607), (1004, 611), (1004, 615), (1004, 617), (1004, 617)], ((1005, 617, 0), 'e'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 453), (203, 460), (203, 468), (204, 477), (205, 487), (207, 499), (210, 512), (213, 526), (218, 542), (225, 558), (235, 575), (247, 591), (262, 606), (282, 620), (304, 633), (332, 641), (363, 646), (398, 646), (436, 643), (479, 636), (523, 627), (566, 617), (608, 605), (649, 595), (688, 584), (724, 575), (759, 566), (792, 559), (823, 553), (851, 548), (877, 545), (900, 544), (922, 544), (940, 546), (957, 550), (970, 555), (981, 562), (989, 569), (996, 578), (1000, 586), (1002, 594), (1003, 600), (1004, 606), (1004, 611), (1004, 614), (1004, 616), (1004, 617)]}
# yay = {((1005, 257, 180), 'naked'): [(204, 437), (204, 436), (204, 436), (203, 435), (203, 433), (203, 430), (203, 425), (203, 420), (203, 412), (203, 403), (204, 392), (204, 380), (205, 366), (206, 350), (208, 332), (211, 313), (214, 292), (219, 269), (226, 246), (234, 221), (245, 196), (260, 172), (277, 148), (300, 128), (328, 113), (362, 103), (400, 102), (441, 108), (485, 120), (529, 136), (572, 153), (613, 172), (652, 190), (690, 208), (725, 225), (758, 241), (790, 256), (820, 269), (847, 281), (872, 290), (895, 298), (916, 304), (935, 308), (952, 310), (967, 309), (978, 306), (988, 301), (994, 294), (999, 287), (1001, 279), (1003, 273), (1004, 267), (1004, 263), (1004, 259), (1004, 258), (1004, 257)], ((1005, 257, 180), 'omni'): [(204, 437), (204, 436), (204, 436), (203, 435), (203, 433), (203, 430), (203, 425), (203, 420), (203, 412), (203, 403), (204, 392), (204, 380), (205, 366), (206, 350), (208, 332), (211, 313), (214, 292), (219, 269), (226, 246), (234, 221), (245, 196), (260, 172), (277, 148), (300, 128), (328, 113), (362, 103), (400, 102), (441, 108), (485, 120), (529, 136), (572, 153), (613, 172), (652, 190), (690, 208), (725, 225), (758, 241), (790, 256), (820, 269), (847, 281), (872, 290), (895, 298), (916, 304), (935, 308), (952, 310), (967, 309), (978, 306), (988, 301), (994, 294), (999, 287), (1001, 279), (1003, 273), (1004, 267), (1004, 263), (1004, 259), (1004, 258), (1004, 257)], ((1005, 257, 180), 'a'): [(204, 437), (204, 436), (204, 436), (206, 436), (209, 436), (212, 436), (218, 435), (225, 435), (234, 434), (245, 433), (258, 432), (273, 430), (291, 429), (311, 427), (334, 425), (359, 423), (386, 421), (417, 418), (449, 416), (484, 413), (522, 410), (562, 407), (603, 404), (647, 401), (693, 398), (741, 395), (789, 393), (836, 390), (880, 388), (920, 387), (957, 387), (987, 387), (1013, 388), (1035, 390), (1051, 392), (1060, 392), (1053, 386), (1044, 378), (1035, 368), (1028, 357), (1021, 346), (1017, 334), (1013, 322), (1010, 311), (1008, 301), (1007, 291), (1006, 282), (1005, 275), (1005, 268), (1005, 263), (1005, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'b'): [(203, 437), (204, 437), (204, 437), (206, 437), (209, 437), (212, 437), (218, 437), (225, 437), (235, 437), (245, 437), (258, 437), (274, 437), (292, 437), (312, 437), (334, 437), (359, 437), (387, 437), (417, 437), (450, 437), (485, 437), (522, 437), (562, 437), (605, 437), (648, 437), (694, 437), (742, 437), (790, 437), (839, 437), (884, 437), (925, 437), (961, 436), (994, 436), (1020, 436), (1042, 435), (1056, 432), (1060, 423), (1055, 412), (1047, 400), (1039, 388), (1032, 375), (1025, 362), (1020, 348), (1015, 335), (1012, 323), (1009, 311), (1008, 300), (1007, 291), (1006, 282), (1005, 274), (1005, 268), (1005, 263), (1005, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'c'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (224, 436), (233, 436), (244, 436), (256, 436), (271, 436), (288, 436), (308, 436), (330, 436), (354, 436), (381, 436), (410, 436), (442, 436), (476, 436), (512, 436), (551, 436), (591, 436), (634, 436), (679, 436), (724, 436), (771, 436), (817, 436), (860, 436), (899, 436), (933, 435), (963, 435), (988, 435), (1008, 433), (1024, 429), (1032, 422), (1032, 410), (1029, 397), (1025, 383), (1021, 370), (1017, 357), (1014, 343), (1011, 331), (1009, 318), (1007, 307), (1006, 296), (1006, 287), (1005, 279), (1005, 272), (1005, 266), (1005, 262), (1005, 259), (1005, 257), (1005, 257)], ((1005, 257, 180), 'd'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (212, 436), (216, 436), (222, 436), (230, 436), (240, 436), (251, 436), (265, 436), (279, 436), (297, 436), (316, 436), (337, 436), (361, 436), (386, 436), (414, 436), (444, 436), (476, 436), (510, 436), (545, 436), (582, 436), (621, 436), (661, 436), (702, 436), (742, 436), (778, 435), (812, 435), (842, 435), (870, 433), (895, 430), (917, 426), (936, 421), (953, 412), (966, 403), (976, 391), (984, 379), (990, 365), (995, 352), (998, 339), (1000, 326), (1002, 314), (1003, 303), (1004, 293), (1004, 284), (1004, 276), (1004, 269), (1004, 264), (1004, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'e'): [(204, 437), (204, 436), (204, 436), (204, 436), (206, 436), (209, 436), (212, 436), (216, 436), (221, 436), (228, 436), (236, 436), (245, 436), (256, 436), (269, 436), (284, 436), (301, 436), (321, 436), (343, 436), (368, 436), (396, 436), (426, 435), (460, 435), (496, 435), (534, 434), (575, 433), (617, 430), (659, 427), (698, 423), (736, 419), (771, 414), (804, 407), (834, 400), (862, 392), (887, 383), (910, 375), (929, 364), (947, 354), (961, 343), (973, 332), (983, 321), (990, 310), (995, 300), (999, 290), (1001, 281), (1003, 274), (1004, 268), (1004, 263), (1004, 260), (1004, 258), (1004, 257)], ((1005, 617, 0), 'naked'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (202, 449), (202, 455), (202, 461), (202, 470), (202, 480), (202, 492), (202, 505), (203, 520), (205, 537), (208, 555), (211, 574), (217, 594), (224, 616), (235, 637), (248, 658), (265, 678), (287, 695), (314, 708), (346, 715), (382, 716), (423, 712), (466, 702), (511, 690), (554, 676), (597, 661), (637, 645), (676, 631), (714, 617), (748, 604), (781, 592), (812, 582), (841, 574), (867, 566), (891, 561), (913, 558), (933, 556), (950, 557), (964, 560), (976, 564), (986, 570), (993, 577), (998, 585), (1001, 592), (1002, 599), (1004, 605), (1004, 610), (1004, 613), (1004, 615), (1004, 616), (1004, 616)], ((1005, 617, 0), 'omni'): [(204, 437), (204, 438), (204, 438), (203, 439), (203, 441), (203, 444), (203, 449), (203, 454), (203, 462), (203, 471), (204, 482), (204, 494), (205, 508), (206, 524), (208, 542), (211, 561), (214, 582), (219, 605), (226, 628), (234, 653), (245, 678), (260, 702), (277, 726), (300, 746), (328, 761), (362, 771), (400, 772), (441, 766), (485, 754), (529, 738), (572, 721), (613, 702), (652, 684), (690, 666), (725, 649), (758, 633), (790, 618), (820, 605), (847, 593), (872, 584), (895, 576), (916, 570), (935, 566), (952, 564), (967, 565), (978, 568), (988, 573), (994, 580), (999, 587), (1001, 595), (1003, 601), (1004, 607), (1004, 611), (1004, 615), (1004, 616), (1004, 617)], ((1005, 617, 0), 'a'): [(203, 437), (204, 437), (204, 437), (206, 437), (209, 437), (212, 437), (218, 437), (225, 437), (235, 437), (245, 437), (258, 437), (274, 437), (292, 437), (312, 437), (334, 437), (359, 438), (387, 438), (417, 438), (450, 438), (485, 438), (522, 439), (562, 439), (605, 439), (648, 439), (694, 440), (742, 440), (790, 440), (838, 440), (884, 440), (925, 440), (961, 440), (993, 441), (1020, 441), (1041, 442), (1056, 444), (1060, 452), (1055, 463), (1047, 474), (1039, 487), (1032, 499), (1025, 512), (1020, 526), (1015, 538), (1012, 551), (1009, 563), (1008, 573), (1007, 583), (1006, 592), (1005, 599), (1005, 606), (1005, 610), (1005, 614), (1004, 616), (1004, 617)], ((1005, 617, 0), 'b'): [(203, 437), (204, 437), (204, 437), (206, 437), (209, 437), (212, 437), (218, 437), (225, 437), (235, 437), (245, 437), (258, 437), (274, 437), (292, 437), (312, 437), (334, 437), (359, 438), (387, 438), (417, 438), (450, 438), (485, 438), (522, 439), (562, 439), (605, 439), (648, 439), (694, 440), (742, 440), (790, 440), (838, 440), (884, 440), (925, 440), (961, 440), (993, 441), (1020, 441), (1041, 442), (1056, 444), (1060, 452), (1055, 463), (1047, 474), (1039, 487), (1032, 499), (1025, 512), (1020, 526), (1015, 538), (1012, 551), (1009, 563), (1008, 573), (1007, 583), (1006, 592), (1005, 599), (1005, 606), (1005, 610), (1005, 614), (1004, 616), (1004, 617)], ((1005, 617, 0), 'c'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 438), (211, 440), (216, 442), (223, 444), (231, 447), (240, 451), (252, 456), (266, 461), (282, 467), (300, 474), (320, 481), (342, 489), (367, 498), (394, 507), (424, 517), (455, 528), (489, 539), (526, 550), (564, 562), (604, 573), (645, 584), (689, 595), (733, 605), (776, 612), (815, 618), (851, 619), (884, 618), (912, 615), (936, 607), (957, 598), (974, 588), (987, 576), (997, 565), (1005, 554), (1008, 545), (1011, 537), (1009, 543), (1008, 552), (1007, 561), (1006, 571), (1005, 580), (1005, 589), (1005, 596), (1005, 603), (1005, 608), (1005, 612), (1004, 615), (1004, 617), (1004, 617)], ((1005, 617, 0), 'd'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 442), (203, 445), (203, 449), (203, 455), (202, 462), (202, 471), (203, 481), (203, 493), (204, 506), (205, 521), (207, 538), (210, 556), (214, 576), (220, 596), (227, 618), (238, 640), (251, 662), (268, 682), (289, 700), (316, 714), (347, 723), (383, 725), (423, 722), (466, 713), (510, 700), (554, 685), (596, 670), (636, 655), (675, 639), (712, 624), (747, 611), (780, 599), (810, 588), (839, 578), (865, 570), (890, 564), (912, 560), (931, 558), (948, 558), (964, 559), (976, 564), (985, 569), (993, 577), (998, 584), (1001, 592), (1002, 599), (1004, 605), (1004, 609), (1004, 613), (1004, 615), (1004, 616), (1004, 616)], ((1005, 617, 0), 'e'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (202, 448), (202, 453), (202, 460), (202, 468), (202, 477), (202, 488), (203, 500), (205, 513), (208, 528), (212, 544), (218, 560), (225, 577), (237, 594), (250, 611), (268, 626), (291, 639), (318, 647), (349, 652), (384, 653), (423, 650), (464, 642), (509, 633), (553, 622), (596, 611), (637, 600), (677, 590), (714, 580), (750, 570), (783, 563), (814, 556), (843, 551), (870, 548), (894, 546), (916, 545), (935, 546), (952, 550), (966, 554), (978, 561), (987, 568), (993, 576), (998, 584), (1001, 592), (1003, 599), (1004, 605), (1004, 610), (1004, 613), (1004, 615), (1004, 616)]}
yay = {((1005, 257, 180), 'naked'): [(204, 437), (204, 436), (204, 436), (204, 434), (204, 432), (204, 429), (204, 424), (205, 418), (205, 411), (206, 402), (207, 391), (209, 379), (211, 365), (214, 349), (218, 332), (222, 312), (227, 291), (234, 270), (242, 247), (253, 223), (267, 199), (283, 175), (302, 153), (327, 133), (356, 118), (389, 108), (427, 107), (469, 112), (512, 123), (555, 138), (596, 154), (635, 171), (673, 189), (709, 207), (743, 223), (775, 238), (805, 253), (833, 266), (859, 276), (883, 286), (904, 294), (924, 300), (942, 303), (957, 305), (971, 304), (982, 300), (990, 296), (996, 289), (1000, 282), (1003, 276), (1003, 269), (1004, 264), (1004, 260), (1004, 258), (1004, 256), (1004, 256)], ((1005, 257, 180), 'omni'): [(204, 437), (204, 436), (204, 436), (204, 434), (204, 432), (204, 429), (204, 424), (205, 418), (205, 411), (206, 402), (207, 391), (209, 379), (211, 365), (214, 349), (218, 332), (222, 312), (227, 291), (234, 270), (242, 247), (253, 223), (267, 199), (283, 175), (302, 153), (327, 133), (356, 118), (389, 108), (427, 107), (469, 112), (512, 123), (555, 138), (596, 154), (635, 171), (673, 189), (709, 207), (743, 223), (775, 238), (805, 253), (833, 266), (859, 276), (883, 286), (904, 294), (924, 300), (942, 303), (957, 305), (971, 304), (982, 300), (990, 296), (996, 289), (1000, 282), (1003, 276), (1003, 269), (1004, 264), (1004, 260), (1004, 258), (1004, 256), (1004, 256)], ((1005, 257, 180), 'a'): [(204, 437), (204, 436), (204, 436), (206, 436), (209, 436), (212, 436), (218, 435), (225, 434), (234, 433), (245, 432), (258, 431), (273, 429), (291, 428), (311, 426), (333, 423), (358, 421), (386, 419), (416, 416), (448, 413), (483, 409), (520, 406), (560, 403), (602, 399), (645, 396), (691, 392), (739, 388), (786, 385), (833, 382), (877, 379), (916, 378), (953, 377), (982, 376), (1009, 377), (1031, 378), (1047, 380), (1058, 381), (1052, 376), (1043, 369), (1035, 360), (1027, 349), (1021, 339), (1016, 328), (1013, 317), (1010, 307), (1008, 297), (1007, 288), (1006, 280), (1005, 273), (1005, 267), (1005, 262), (1005, 259), (1004, 257), (1004, 257)], ((1005, 257, 180), 'b'): [(204, 437), (204, 436), (204, 436), (206, 436), (209, 436), (212, 436), (218, 436), (225, 435), (234, 435), (245, 434), (258, 434), (274, 433), (292, 432), (311, 431), (334, 430), (359, 429), (386, 428), (416, 426), (449, 425), (484, 424), (521, 422), (561, 420), (603, 419), (646, 417), (692, 415), (739, 413), (787, 411), (835, 410), (880, 408), (920, 407), (955, 407), (987, 406), (1013, 406), (1035, 406), (1051, 405), (1058, 399), (1052, 391), (1045, 382), (1038, 371), (1030, 360), (1024, 348), (1018, 336), (1014, 324), (1011, 313), (1008, 303), (1007, 293), (1006, 285), (1005, 277), (1005, 270), (1005, 265), (1005, 261), (1005, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'c'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (212, 436), (218, 436), (225, 435), (234, 435), (245, 434), (257, 434), (272, 433), (290, 432), (309, 431), (331, 430), (356, 429), (383, 428), (412, 426), (444, 425), (478, 423), (515, 421), (554, 420), (595, 418), (637, 416), (682, 414), (729, 413), (776, 411), (822, 409), (864, 408), (903, 407), (937, 406), (967, 406), (993, 406), (1013, 405), (1029, 404), (1039, 400), (1038, 391), (1034, 380), (1029, 369), (1023, 357), (1018, 345), (1014, 334), (1012, 322), (1010, 311), (1008, 300), (1006, 291), (1005, 282), (1005, 275), (1005, 269), (1005, 263), (1005, 260), (1004, 258), (1004, 257), (1004, 257)], ((1005, 257, 180), 'd'): [(204, 437), (204, 436), (204, 436), (206, 436), (208, 436), (212, 436), (217, 436), (223, 435), (231, 435), (241, 434), (252, 433), (265, 432), (281, 431), (298, 430), (318, 429), (340, 427), (364, 426), (390, 424), (419, 422), (449, 421), (482, 419), (516, 417), (553, 415), (590, 413), (630, 411), (671, 409), (713, 408), (753, 407), (789, 406), (823, 406), (854, 406), (881, 406), (905, 405), (926, 403), (945, 400), (961, 395), (973, 387), (983, 378), (990, 366), (995, 355), (999, 343), (1001, 331), (1002, 319), (1003, 308), (1004, 298), (1004, 289), (1004, 280), (1004, 273), (1004, 267), (1004, 262), (1004, 259), (1005, 257), (1005, 257)], ((1005, 257, 180), 'e'): [(204, 437), (204, 436), (204, 436), (205, 435), (206, 434), (208, 433), (211, 431), (214, 429), (219, 427), (224, 426), (230, 424), (239, 421), (249, 419), (260, 417), (274, 415), (289, 413), (307, 412), (327, 410), (350, 409), (375, 408), (404, 407), (435, 406), (469, 406), (505, 406), (545, 406), (587, 405), (628, 404), (669, 403), (707, 400), (744, 398), (778, 394), (809, 389), (839, 384), (866, 377), (891, 370), (913, 363), (931, 354), (949, 345), (963, 336), (974, 325), (983, 315), (991, 306), (996, 296), (999, 287), (1002, 279), (1003, 272), (1004, 267), (1004, 262), (1004, 259), (1004, 257), (1004, 257)], ((1005, 617, 0), 'naked'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 454), (203, 462), (203, 470), (203, 481), (204, 492), (205, 506), (206, 521), (209, 538), (211, 557), (216, 576), (222, 598), (229, 620), (240, 642), (253, 665), (269, 686), (290, 705), (315, 721), (346, 732), (382, 737), (421, 734), (463, 726), (508, 714), (551, 700), (593, 686), (634, 670), (672, 654), (709, 640), (744, 626), (777, 612), (807, 601), (835, 590), (862, 582), (887, 575), (908, 570), (928, 567), (946, 565), (961, 565), (974, 568), (984, 573), (992, 578), (997, 586), (1000, 593), (1003, 599), (1004, 605), (1004, 610), (1004, 614), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'omni'): [(204, 437), (204, 438), (204, 438), (204, 440), (204, 442), (204, 445), (204, 450), (205, 456), (205, 463), (206, 472), (207, 483), (209, 495), (211, 509), (214, 525), (218, 542), (222, 562), (227, 583), (234, 604), (242, 627), (253, 651), (267, 675), (283, 699), (302, 721), (327, 741), (356, 756), (389, 766), (427, 767), (469, 762), (512, 751), (555, 736), (596, 720), (635, 703), (673, 685), (709, 667), (743, 651), (775, 636), (805, 621), (833, 608), (859, 598), (883, 588), (904, 580), (924, 574), (942, 571), (957, 569), (971, 570), (982, 574), (990, 578), (996, 585), (1000, 592), (1003, 598), (1003, 605), (1004, 610), (1004, 614), (1004, 616), (1004, 618), (1004, 618)], ((1005, 617, 0), 'a'): [(203, 437), (203, 437), (204, 436), (206, 436), (208, 436), (212, 436), (218, 436), (225, 436), (234, 436), (245, 436), (258, 436), (273, 436), (291, 436), (311, 436), (333, 436), (359, 436), (386, 436), (416, 436), (449, 435), (484, 435), (521, 435), (561, 435), (603, 435), (646, 435), (692, 435), (740, 435), (788, 435), (836, 435), (881, 436), (922, 436), (959, 437), (991, 437), (1017, 439), (1038, 441), (1053, 445), (1058, 455), (1053, 466), (1047, 478), (1039, 490), (1032, 503), (1026, 516), (1021, 529), (1016, 541), (1013, 553), (1010, 564), (1008, 575), (1007, 584), (1006, 593), (1005, 600), (1005, 606), (1005, 611), (1005, 614), (1004, 615), (1004, 616)], ((1005, 617, 0), 'b'): [(203, 437), (204, 437), (204, 437), (206, 437), (209, 437), (212, 437), (218, 437), (225, 438), (234, 438), (245, 439), (258, 439), (274, 440), (291, 441), (311, 442), (334, 443), (359, 444), (386, 445), (416, 447), (449, 448), (484, 449), (521, 451), (561, 453), (603, 455), (647, 456), (692, 458), (739, 460), (787, 462), (835, 463), (880, 465), (920, 466), (955, 467), (987, 467), (1013, 467), (1035, 467), (1051, 468), (1058, 474), (1052, 482), (1045, 491), (1038, 502), (1030, 513), (1024, 525), (1018, 537), (1014, 549), (1011, 560), (1008, 570), (1007, 580), (1006, 588), (1005, 596), (1005, 603), (1005, 608), (1005, 612), (1005, 615), (1004, 616), (1004, 616)], ((1005, 617, 0), 'c'): [(203, 437), (204, 437), (204, 437), (206, 437), (208, 438), (211, 440), (216, 441), (222, 444), (230, 447), (240, 451), (251, 456), (265, 460), (280, 466), (298, 474), (317, 481), (339, 489), (364, 497), (391, 507), (419, 517), (450, 528), (483, 539), (519, 550), (556, 561), (595, 573), (636, 584), (679, 594), (722, 603), (764, 611), (802, 615), (837, 617), (869, 615), (897, 611), (921, 604), (942, 596), (959, 586), (973, 577), (984, 566), (993, 557), (999, 549), (1004, 543), (1006, 548), (1006, 556), (1006, 565), (1005, 574), (1005, 583), (1005, 591), (1005, 598), (1005, 604), (1005, 610), (1005, 613), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'd'): [(203, 437), (204, 437), (204, 437), (204, 439), (205, 441), (205, 444), (207, 448), (208, 454), (210, 462), (212, 471), (215, 481), (219, 493), (224, 507), (229, 522), (235, 539), (244, 557), (252, 578), (262, 599), (275, 621), (289, 644), (305, 668), (324, 691), (347, 714), (372, 733), (402, 750), (435, 762), (473, 767), (513, 764), (554, 754), (595, 741), (634, 724), (671, 707), (706, 689), (739, 672), (770, 654), (800, 638), (827, 623), (853, 610), (876, 598), (898, 588), (917, 579), (935, 574), (951, 570), (965, 568), (977, 570), (987, 573), (994, 579), (998, 585), (1001, 593), (1003, 599), (1004, 605), (1004, 610), (1004, 614), (1004, 616), (1004, 617), (1004, 617)], ((1005, 617, 0), 'e'): [(204, 437), (203, 437), (203, 437), (203, 439), (203, 441), (203, 444), (203, 448), (203, 453), (203, 460), (203, 468), (204, 476), (205, 487), (207, 499), (210, 511), (213, 526), (219, 541), (226, 557), (236, 573), (247, 590), (263, 606), (282, 620), (305, 632), (332, 640), (364, 646), (399, 646), (437, 644), (480, 638), (523, 629), (567, 620), (609, 609), (650, 599), (688, 589), (725, 580), (760, 572), (792, 565), (823, 560), (851, 555), (876, 552), (900, 550), (921, 550), (940, 552), (956, 555), (969, 560), (981, 565), (989, 573), (995, 580), (999, 588), (1002, 595), (1003, 602), (1004, 607), (1004, 612), (1004, 615), (1004, 617), (1004, 617)]}
for key in yay.keys():
title = str(key)
title = title.replace("(", "")
title = title.replace(")", "")
title = title.replace("'", "")
title = title.replace(" ", "")
title = title.replace(",", "-")
print(title)
export_path_for_unity(title, yay[key])
exit()
# export_path_for_unity("pts_50_400_linear_a", pts_50_400_linear_a)
# export_path_for_unity("pts_50_450_linear_a", pts_50_450_linear_a)
# export_path_for_unity("pts_50_500_linear_a", pts_50_500_linear_a)
# export_path_for_unity("pts_50_550_linear_a", pts_50_550_linear_a)
# export_path_for_unity("pts_50_400_triangular_a", pts_50_400_triangular_a)
# export_path_for_unity("pts_50_450_triangular_a", pts_50_450_triangular_a)
# export_path_for_unity("pts_50_500_triangular_a", pts_50_500_triangular_a)
# export_path_for_unity("pts_50_550_triangular_a", pts_50_550_triangular_a)
# export_path_for_unity("pts_13_500_triangular_a", pts_13_500_triangular_a)
# export_path_for_unity("pts_25_500_triangular_a", pts_25_500_triangular_a)
# export_path_for_unity("pts_50_500_triangular_a", pts_50_500_triangular_a)
# export_path_for_unity("pts_13_500_linear_a", pts_13_500_linear_a)
# export_path_for_unity("pts_25_500_linear_a", pts_25_500_linear_a)
# export_path_for_unity("pts_50_500_linear_a", pts_50_500_linear_a)
# all_linear = [pts_50_400_linear_b, pts_50_450_triangular_b, pts_50_500_linear_b, pts_50_550_linear_b]
# all_triangular = [pts_50_400_triangular_b, pts_50_450_triangular_b, pts_50_500_triangular_b, pts_50_550_triangular_b]
# all_triangular_num_pts = [pts_13_500_triangular, pts_25_500_triangular, pts_50_500_triangular]
# all_linear_num_pts = [pts_13_500_linear, pts_25_500_linear, pts_50_500_linear]
generate_type = resto.TYPE_EXP_SINGLE
r = resto.Restaurant(generate_type)
prefix = 'path_optimization/sqrt-'
prefix = 'path_optimization/simple-'
dt = 1
# mid_path = int(len(p1) / 2)
# path = [p1[0], p1[mid_path], p1[-1]][::-1]
## path = [[104, 477, 90], p1[mid_path], [1035, 567, 0]]
print(all_paths.keys())
key = ((1035, 307, 180), 'omniscient')
path = all_paths[key]
path = tuples_to_lists(path)
title = 'linear'
traj = trajectory.path_to_trajectory(path, speed=1, timing='sqrt-L2', velocities='auto')
dt = int(len(traj.milestones)) * .001
# print(dt)
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
# print(traj.milestones)
# print(len(traj.milestones))
export_path_for_unity(title, traj.milestones)
title = 'limited'
traj = trajectory.path_to_trajectory(path, speed=1, timing='limited', velocities='auto')
dt = int(len(traj.milestones)) * .001
print(dt)
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
export_path_for_unity(title, traj.milestones)
# print(traj.milestones)
# print(len(traj.milestones))
print("min-jerk")
title = 'min-jerk'
traj = trajectory.path_to_trajectory(path, speed=1, velocities='minimum-jerk', timing='sqrt-L2')
dt = int(len(traj.milestones)) * .001
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
export_path_for_unity(title, traj.milestones)
# print(traj.milestones)
# print(len(traj.milestones))
dt = 2
title = 'triangular'
traj = trajectory.path_to_trajectory(path, speed=1, velocities='triangular', timing='sqrt-L2')
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
export_path_for_unity(title, traj.milestones)
# print(traj.milestones)
# print(len(traj.milestones))
exit()
title = 't1'
traj = trajectory.path_to_trajectory(path, speed=1, timing='limited')
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
print(traj.milestones)
print(len(traj.milestones))
print("parabolic")
title = 't2'
traj = trajectory.path_to_trajectory(path, speed=1, velocities='parabolic', timing='sqrt-L2')
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
print(traj.milestones)
print(len(traj.milestones))
print("auto")
print(traj.milestones)
print(len(traj.milestones))
title = 'trapezoid'
traj = trajectory.path_to_trajectory(path, speed=1, velocities='trapezoidal', timing='sqrt-L2')
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
print("trapezoidal")
print(traj.milestones)
print(len(traj.milestones))
title = 'cosine'
traj = trajectory.path_to_trajectory(path, speed=1, velocities='cosine', timing='sqrt-L2')
traj = traj.discretize(dt)
traj.save(prefix + title + '.txt')
draw_path(r, title, traj, prefix)
print("cosine")
print(traj.milestones)
print(len(traj.milestones))
# velocities=’auto’, trapezoidal’, ‘triangular’, ‘parabolic’, ‘cosine’, or ‘minimum-jerk’;
print("got trajectories")