Updated for challenge 9
[cipher-tools.git] / 2015 / 2015-challenge7.ipynb
1 {
2 "cells": [
3 {
4 "cell_type": "code",
5 "execution_count": 12,
6 "metadata": {},
7 "outputs": [],
8 "source": [
9 "import os,sys,inspect\n",
10 "currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))\n",
11 "parentdir = os.path.dirname(currentdir)\n",
12 "sys.path.insert(0,parentdir) \n",
13 "\n",
14 "import matplotlib.pyplot as plt\n",
15 "%matplotlib inline\n",
16 "\n",
17 "from cipher.column_transposition import *\n",
18 "from cipher.keyword_cipher import *\n",
19 "from cipher.amsco import *\n",
20 "from support.utilities import *\n",
21 "from support.text_prettify import *\n",
22 "from support.language_models import *\n",
23 "\n",
24 "c7a = sanitise(open('7a.ciphertext').read())\n",
25 "c7b = sanitise(open('7b.ciphertext').read())"
26 ]
27 },
28 {
29 "cell_type": "code",
30 "execution_count": 2,
31 "metadata": {},
32 "outputs": [
33 {
34 "data": {
35 "text/plain": [
36 "(('annmarie', <KeywordWrapAlphabet.from_largest: 3>), -1865.8708508162845)"
37 ]
38 },
39 "execution_count": 2,
40 "metadata": {},
41 "output_type": "execute_result"
42 }
43 ],
44 "source": [
45 "(key_a_word, key_a_wrap), score = keyword_break_mp(c7a)\n",
46 "(key_a_word, key_a_wrap), score"
47 ]
48 },
49 {
50 "cell_type": "code",
51 "execution_count": 3,
52 "metadata": {},
53 "outputs": [
54 {
55 "name": "stdout",
56 "output_type": "stream",
57 "text": [
58 "dhorlieithinkiknacchotisgainganfutineewtadhedkobecthingsfebareirepartcemoyhoveonappartunityhereidhedkewthedipherdlerksfodkgraunwonwitturnsautsheischiterussionherbomilylebtmasdacinfutshehosrelotivesinthegulogotpermshedleorlyhosnalavebarthesavietgavernmentsaiomstillnatsurechashecoscarkingbarfutithinkthisiskeyintelligendeinthemeontimeihovefeencotdhingthefritstheyseemtahovefeenindantodtcithaurbrienwsinthereidhswaktaronwtheyinturnhovefeencotdhingthebrendhitseemslikeceoreollcarkingogoinstaneonatherchidhireollywiwntexpedtonwgivenchotcereowinthebrendhwadumentlostceekiwantthinkthotisodaindiwendemyacnguessisthottherussionsknacchotisgainganonwthotaurfesthapeabundaveringitistafreokintatheirhqonwtrytabinwsamethingthereunbartunotelyoddarwingtamysaurdeyuritheyhovetokentausingonecdiphersalitoirebarordhivestarogeabtapsedretbilessaevenibcemonogetasteoltherelevontbileitcilltokeolatabdamputingtafreokthedipheriottodhofriebmessogebramyuriendryptewusingonomsdadipherkeycarwlengthissixinchidhhewesdrifesthedipheritisverydleversimpletaimplementfutoweviltadrodkonwmyanehapeisthotcedonolsabinwthedipherkeychileinthehqarotleostportabitiplontaenterintcaceeksanwedemfersixteenththerussionsorehastingolorgeprapogonwoeventosportabtheinternotianolefouousstellungcithleowingpalitfuramemfersinottenwondemastabthesedurityteomcillfeaddupiewciththotonwhqseduritycillferelotivelylightcithludkicillgetinonwautciththebilesceneewthotnightonwthencedongettathefattamabthechalereidhswaktarstrotogemollthefesthorry\n"
59 ]
60 }
61 ],
62 "source": [
63 "print(keyword_decipher(c7a, key_a_word, wrap_alphabet=key_a_wrap))"
64 ]
65 },
66 {
67 "cell_type": "code",
68 "execution_count": 4,
69 "metadata": {
70 "scrolled": true
71 },
72 "outputs": [
73 {
74 "data": {
75 "text/plain": [
76 "{'A': 'a',\n",
77 " 'B': 'o',\n",
78 " 'C': 'p',\n",
79 " 'D': 'q',\n",
80 " 'E': 'f',\n",
81 " 'F': 'r',\n",
82 " 'G': 's',\n",
83 " 'H': 't',\n",
84 " 'I': 'e',\n",
85 " 'J': 'u',\n",
86 " 'K': 'v',\n",
87 " 'L': 'w',\n",
88 " 'M': 'c',\n",
89 " 'N': 'b',\n",
90 " 'O': 'x',\n",
91 " 'P': 'y',\n",
92 " 'Q': 'z',\n",
93 " 'R': 'd',\n",
94 " 'S': 'g',\n",
95 " 'T': 'h',\n",
96 " 'U': 'i',\n",
97 " 'V': 'j',\n",
98 " 'W': 'k',\n",
99 " 'X': 'l',\n",
100 " 'Y': 'm',\n",
101 " 'Z': 'n'}"
102 ]
103 },
104 "execution_count": 4,
105 "metadata": {},
106 "output_type": "execute_result"
107 }
108 ],
109 "source": [
110 "trans_a = {p.upper(): c for p, c in zip(keyword_cipher_alphabet_of(key_a_word, wrap_alphabet=key_a_wrap), string.ascii_lowercase, )}\n",
111 "trans_a"
112 ]
113 },
114 {
115 "cell_type": "code",
116 "execution_count": 5,
117 "metadata": {},
118 "outputs": [
119 {
120 "data": {
121 "text/plain": [
122 "'charlie i think i know what is going on but i need to check a few things before i report we may have an opportunity here i checked the cipher clerks background and it turns out she is white russian her family left moscow in but she has relatives in the gulag at perm she clearly has no love for the soviet government so i am still not sure who she was working for but i think this is key intelligence in the meantime i have been watching the brits they seem to have been in contact with our friends in the reichs doktor and they in turn have been watching the french it seems like we are all working against one another which i really didnt expect and given what we read in the french document last week i dont think that is a coincidence my own guess is that the russians know what is going on and that our best hope of uncovering it is to break into their hq and try to find something there unfortunately according to my source yuri they have taken to using a new cipher solitaire for archive storage of top secret files so even if we manage to steal the relevant file it will take alot of computing to break the cipher i attach a brief message from yuri encrypted using an amsco cipher keyword length is six in which he describes the cipher it is very clever simple to implement but a devil to crack and my one hope is that we can also find the cipher key while in the hq or atleast part of it i plan to enter in two weeks on december sixteenth the russians are hosting a large propaganda event as part of the international ebau ausstellung with leading politburo members in attendance most of the security team will be occupied with that and hq security will be relatively light with luck i will get in and out with the files we need that night and then we can get to the bottom of the whole reichs doktor stratagem all the best harry'"
123 ]
124 },
125 "execution_count": 5,
126 "metadata": {},
127 "output_type": "execute_result"
128 }
129 ],
130 "source": [
131 "translations = {\n",
132 " 'A': 'o',\n",
133 " 'B': 'a',\n",
134 " 'C': 'p',\n",
135 " 'D': 'q',\n",
136 " 'E': 'b',\n",
137 " 'F': 'r',\n",
138 " 'G': 's',\n",
139 " 'H': 't',\n",
140 " 'I': 'e',\n",
141 " 'J': 'u',\n",
142 " 'K': 'v',\n",
143 " 'L': 'd',\n",
144 " 'M': 'w',\n",
145 " 'N': 'f',\n",
146 " 'O': 'x',\n",
147 " 'P': 'y',\n",
148 " 'Q': 'z',\n",
149 " 'R': 'c',\n",
150 " 'S': 'g',\n",
151 " 'T': 'h',\n",
152 " 'U': 'i',\n",
153 " 'V': 'j',\n",
154 " 'W': 'k',\n",
155 " 'X': 'l',\n",
156 " 'Y': 'm',\n",
157 " 'Z': 'n'}\n",
158 "translation_table = ''.maketrans(translations)\n",
159 "plaintext = ' '.join(segment(c7a.upper().translate(translation_table)))\n",
160 "plaintext"
161 ]
162 },
163 {
164 "cell_type": "code",
165 "execution_count": 6,
166 "metadata": {},
167 "outputs": [
168 {
169 "data": {
170 "text/plain": [
171 "'oapqbrsteuvdwfxyzcghijklmn'"
172 ]
173 },
174 "execution_count": 6,
175 "metadata": {},
176 "output_type": "execute_result"
177 }
178 ],
179 "source": [
180 "''.join(translations[l] for l in sorted(translations))"
181 ]
182 },
183 {
184 "cell_type": "code",
185 "execution_count": 7,
186 "metadata": {},
187 "outputs": [
188 {
189 "data": {
190 "text/plain": [
191 "'BERLINSTUVWXYZACDFGHJKMOPQ'"
192 ]
193 },
194 "execution_count": 7,
195 "metadata": {},
196 "output_type": "execute_result"
197 }
198 ],
199 "source": [
200 "inverted_translations = {translations[a]: a for a in translations}\n",
201 "''.join(inverted_translations[l] for l in sorted(inverted_translations))"
202 ]
203 },
204 {
205 "cell_type": "code",
206 "execution_count": 8,
207 "metadata": {},
208 "outputs": [
209 {
210 "data": {
211 "text/plain": [
212 "'berlinstuvwxyzacdfghjkmopq'"
213 ]
214 },
215 "execution_count": 8,
216 "metadata": {},
217 "output_type": "execute_result"
218 }
219 ],
220 "source": [
221 "keyword_cipher_alphabet_of('berlin', wrap_alphabet=KeywordWrapAlphabet.from_largest)"
222 ]
223 },
224 {
225 "cell_type": "code",
226 "execution_count": 17,
227 "metadata": {},
228 "outputs": [
229 {
230 "data": {
231 "text/plain": [
232 "('berlinstudwxyzacvfghjkmopq', -5028.125895049484)"
233 ]
234 },
235 "execution_count": 17,
236 "metadata": {},
237 "output_type": "execute_result"
238 }
239 ],
240 "source": [
241 "k7a, fit7a = simulated_annealing_break(c7a, fitness=Ptrigrams)\n",
242 "k7a, fit7a"
243 ]
244 },
245 {
246 "cell_type": "code",
247 "execution_count": 21,
248 "metadata": {},
249 "outputs": [
250 {
251 "name": "stdout",
252 "output_type": "stream",
253 "text": [
254 "charlie i think i know what is going on but i need to check a few things before i report we may have\n",
255 "an opportunity here i checked the cipher clerks background and it turns out she is white russian her\n",
256 "family left moscow in but she has relatives in the gulag at perm she clearly has no love for the\n",
257 "soviet government so i am still not sure who she was working for but i think this is key\n",
258 "intelligence in the meantime i have been watching the brits they seem to have been in contact with\n",
259 "our friends in the reichs doktor and they in turn have been watching the french it seems like we are\n",
260 "all working against one another which i really didnt expect and given what we read in the french\n",
261 "document last week i dont think that is a coincidence my own guess is that the russians know what is\n",
262 "going on and that our best hope of uncovering it is to break into their hj and try to find something\n",
263 "there unfortunately according to my source yuri they have taken to using a new cipher solitaire for\n",
264 "archive storage of top secret files so even if we manage to steal the relevant file it will take\n",
265 "alot of computing to break the cipher i attach a brief message from yuri encrypted using an amsco\n",
266 "cipher keyword length is six in which he describes the cipher it is very clever simple to implement\n",
267 "but a devil to crack and my one hope is that we can also find the cipher key while in the hj or\n",
268 "atleast part of it i plan to enter in two weeks on december sixteenth the russians are hosting a\n",
269 "large propaganda event as part of the international ebau ausstellung with leading politburo members\n",
270 "in attendance most of the security team will be occupied with that and hj security will be\n",
271 "relatively light with luck i will get in and out with the files we need that night and then we can\n",
272 "get to the bottom of the whole reichs doktor stratagem all the best harry\n"
273 ]
274 }
275 ],
276 "source": [
277 "print(lcat(tpack(segment(keyword_decipher(c7a, k7a)))))"
278 ]
279 },
280 {
281 "cell_type": "code",
282 "execution_count": 9,
283 "metadata": {},
284 "outputs": [
285 {
286 "name": "stdout",
287 "output_type": "stream",
288 "text": [
289 "charlie i think i know what is going on but i need to check a few things before i report we may have an opportunity here i checked the cipher clerks background and it turns out she is white russian her family left moscow in but she has relatives in the gulag at perm she clearly has no love for the soviet government so i am still not sure who she was working for but i think this is key intelligence in the meantime i have been watching the brits they seem to have been in contact with our friends in the reichs doktor and they in turn have been watching the french it seems like we are all working against one another which i really didnt expect and given what we read in the french document last week i dont think that is a coincidence my own guess is that the russians know what is going on and that our best hope of uncovering it is to break into their hq and try to find something there unfortunately according to my source yuri they have taken to using a new cipher solitaire for archive storage of top secret files so even if we manage to steal the relevant file it will take alot of computing to break the cipher i attach a brief message from yuri encrypted using an amsco cipher keyword length is six in which he describes the cipher it is very clever simple to implement but a devil to crack and my one hope is that we can also find the cipher key while in the hq or atleast part of it i plan to enter in two weeks on december sixteenth the russians are hosting a large propaganda event as part of the international ebau ausstellung with leading politburo members in attendance most of the security team will be occupied with that and hq security will be relatively light with luck i will get in and out with the files we need that night and then we can get to the bottom of the whole reichs doktor stratagem all the best harry\n"
290 ]
291 }
292 ],
293 "source": [
294 "print(' '.join(segment(keyword_decipher(c7a, 'berlin', wrap_alphabet=KeywordWrapAlphabet.from_largest))))"
295 ]
296 },
297 {
298 "cell_type": "code",
299 "execution_count": 10,
300 "metadata": {},
301 "outputs": [
302 {
303 "data": {
304 "text/plain": [
305 "{(0, 1, 2, 3, 4, 5): (0, 1, 2, 3, 4, 5),\n",
306 " (0, 1, 2, 3, 5, 4): (0, 1, 2, 3, 5, 4),\n",
307 " (0, 1, 2, 4, 3, 5): (0, 1, 2, 4, 3, 5),\n",
308 " (0, 1, 2, 4, 5, 3): (0, 1, 2, 4, 5, 3),\n",
309 " (0, 1, 2, 5, 3, 4): (0, 1, 2, 5, 3, 4),\n",
310 " (0, 1, 2, 5, 4, 3): (0, 1, 2, 5, 4, 3),\n",
311 " (0, 1, 3, 2, 4, 5): (0, 1, 3, 2, 4, 5),\n",
312 " (0, 1, 3, 2, 5, 4): (0, 1, 3, 2, 5, 4),\n",
313 " (0, 1, 3, 4, 2, 5): (0, 1, 3, 4, 2, 5),\n",
314 " (0, 1, 3, 4, 5, 2): (0, 1, 3, 4, 5, 2),\n",
315 " (0, 1, 3, 5, 2, 4): (0, 1, 3, 5, 2, 4),\n",
316 " (0, 1, 3, 5, 4, 2): (0, 1, 3, 5, 4, 2),\n",
317 " (0, 1, 4, 2, 3, 5): (0, 1, 4, 2, 3, 5),\n",
318 " (0, 1, 4, 2, 5, 3): (0, 1, 4, 2, 5, 3),\n",
319 " (0, 1, 4, 3, 2, 5): (0, 1, 4, 3, 2, 5),\n",
320 " (0, 1, 4, 3, 5, 2): (0, 1, 4, 3, 5, 2),\n",
321 " (0, 1, 4, 5, 2, 3): (0, 1, 4, 5, 2, 3),\n",
322 " (0, 1, 4, 5, 3, 2): (0, 1, 4, 5, 3, 2),\n",
323 " (0, 1, 5, 2, 3, 4): (0, 1, 5, 2, 3, 4),\n",
324 " (0, 1, 5, 2, 4, 3): (0, 1, 5, 2, 4, 3),\n",
325 " (0, 1, 5, 3, 2, 4): (0, 1, 5, 3, 2, 4),\n",
326 " (0, 1, 5, 3, 4, 2): (0, 1, 5, 3, 4, 2),\n",
327 " (0, 1, 5, 4, 2, 3): (0, 1, 5, 4, 2, 3),\n",
328 " (0, 1, 5, 4, 3, 2): (0, 1, 5, 4, 3, 2),\n",
329 " (0, 2, 1, 3, 4, 5): (0, 2, 1, 3, 4, 5),\n",
330 " (0, 2, 1, 3, 5, 4): (0, 2, 1, 3, 5, 4),\n",
331 " (0, 2, 1, 4, 3, 5): (0, 2, 1, 4, 3, 5),\n",
332 " (0, 2, 1, 4, 5, 3): (0, 2, 1, 4, 5, 3),\n",
333 " (0, 2, 1, 5, 3, 4): (0, 2, 1, 5, 3, 4),\n",
334 " (0, 2, 1, 5, 4, 3): (0, 2, 1, 5, 4, 3),\n",
335 " (0, 2, 3, 1, 4, 5): (0, 2, 3, 1, 4, 5),\n",
336 " (0, 2, 3, 1, 5, 4): (0, 2, 3, 1, 5, 4),\n",
337 " (0, 2, 3, 4, 1, 5): (0, 2, 3, 4, 1, 5),\n",
338 " (0, 2, 3, 4, 5, 1): (0, 2, 3, 4, 5, 1),\n",
339 " (0, 2, 3, 5, 1, 4): (0, 2, 3, 5, 1, 4),\n",
340 " (0, 2, 3, 5, 4, 1): (0, 2, 3, 5, 4, 1),\n",
341 " (0, 2, 4, 1, 3, 5): (0, 2, 4, 1, 3, 5),\n",
342 " (0, 2, 4, 1, 5, 3): (0, 2, 4, 1, 5, 3),\n",
343 " (0, 2, 4, 3, 1, 5): (0, 2, 4, 3, 1, 5),\n",
344 " (0, 2, 4, 3, 5, 1): (0, 2, 4, 3, 5, 1),\n",
345 " (0, 2, 4, 5, 1, 3): (0, 2, 4, 5, 1, 3),\n",
346 " (0, 2, 4, 5, 3, 1): (0, 2, 4, 5, 3, 1),\n",
347 " (0, 2, 5, 1, 3, 4): (0, 2, 5, 1, 3, 4),\n",
348 " (0, 2, 5, 1, 4, 3): (0, 2, 5, 1, 4, 3),\n",
349 " (0, 2, 5, 3, 1, 4): (0, 2, 5, 3, 1, 4),\n",
350 " (0, 2, 5, 3, 4, 1): (0, 2, 5, 3, 4, 1),\n",
351 " (0, 2, 5, 4, 1, 3): (0, 2, 5, 4, 1, 3),\n",
352 " (0, 2, 5, 4, 3, 1): (0, 2, 5, 4, 3, 1),\n",
353 " (0, 3, 1, 2, 4, 5): (0, 3, 1, 2, 4, 5),\n",
354 " (0, 3, 1, 2, 5, 4): (0, 3, 1, 2, 5, 4),\n",
355 " (0, 3, 1, 4, 2, 5): (0, 3, 1, 4, 2, 5),\n",
356 " (0, 3, 1, 4, 5, 2): (0, 3, 1, 4, 5, 2),\n",
357 " (0, 3, 1, 5, 2, 4): (0, 3, 1, 5, 2, 4),\n",
358 " (0, 3, 1, 5, 4, 2): (0, 3, 1, 5, 4, 2),\n",
359 " (0, 3, 2, 1, 4, 5): (0, 3, 2, 1, 4, 5),\n",
360 " (0, 3, 2, 1, 5, 4): (0, 3, 2, 1, 5, 4),\n",
361 " (0, 3, 2, 4, 1, 5): (0, 3, 2, 4, 1, 5),\n",
362 " (0, 3, 2, 4, 5, 1): (0, 3, 2, 4, 5, 1),\n",
363 " (0, 3, 2, 5, 1, 4): (0, 3, 2, 5, 1, 4),\n",
364 " (0, 3, 2, 5, 4, 1): (0, 3, 2, 5, 4, 1),\n",
365 " (0, 3, 4, 1, 2, 5): (0, 3, 4, 1, 2, 5),\n",
366 " (0, 3, 4, 1, 5, 2): (0, 3, 4, 1, 5, 2),\n",
367 " (0, 3, 4, 2, 1, 5): (0, 3, 4, 2, 1, 5),\n",
368 " (0, 3, 4, 2, 5, 1): (0, 3, 4, 2, 5, 1),\n",
369 " (0, 3, 4, 5, 1, 2): (0, 3, 4, 5, 1, 2),\n",
370 " (0, 3, 4, 5, 2, 1): (0, 3, 4, 5, 2, 1),\n",
371 " (0, 3, 5, 1, 2, 4): (0, 3, 5, 1, 2, 4),\n",
372 " (0, 3, 5, 1, 4, 2): (0, 3, 5, 1, 4, 2),\n",
373 " (0, 3, 5, 2, 1, 4): (0, 3, 5, 2, 1, 4),\n",
374 " (0, 3, 5, 2, 4, 1): (0, 3, 5, 2, 4, 1),\n",
375 " (0, 3, 5, 4, 1, 2): (0, 3, 5, 4, 1, 2),\n",
376 " (0, 3, 5, 4, 2, 1): (0, 3, 5, 4, 2, 1),\n",
377 " (0, 4, 1, 2, 3, 5): (0, 4, 1, 2, 3, 5),\n",
378 " (0, 4, 1, 2, 5, 3): (0, 4, 1, 2, 5, 3),\n",
379 " (0, 4, 1, 3, 2, 5): (0, 4, 1, 3, 2, 5),\n",
380 " (0, 4, 1, 3, 5, 2): (0, 4, 1, 3, 5, 2),\n",
381 " (0, 4, 1, 5, 2, 3): (0, 4, 1, 5, 2, 3),\n",
382 " (0, 4, 1, 5, 3, 2): (0, 4, 1, 5, 3, 2),\n",
383 " (0, 4, 2, 1, 3, 5): (0, 4, 2, 1, 3, 5),\n",
384 " (0, 4, 2, 1, 5, 3): (0, 4, 2, 1, 5, 3),\n",
385 " (0, 4, 2, 3, 1, 5): (0, 4, 2, 3, 1, 5),\n",
386 " (0, 4, 2, 3, 5, 1): (0, 4, 2, 3, 5, 1),\n",
387 " (0, 4, 2, 5, 1, 3): (0, 4, 2, 5, 1, 3),\n",
388 " (0, 4, 2, 5, 3, 1): (0, 4, 2, 5, 3, 1),\n",
389 " (0, 4, 3, 1, 2, 5): (0, 4, 3, 1, 2, 5),\n",
390 " (0, 4, 3, 1, 5, 2): (0, 4, 3, 1, 5, 2),\n",
391 " (0, 4, 3, 2, 1, 5): (0, 4, 3, 2, 1, 5),\n",
392 " (0, 4, 3, 2, 5, 1): (0, 4, 3, 2, 5, 1),\n",
393 " (0, 4, 3, 5, 1, 2): (0, 4, 3, 5, 1, 2),\n",
394 " (0, 4, 3, 5, 2, 1): (0, 4, 3, 5, 2, 1),\n",
395 " (0, 4, 5, 1, 2, 3): (0, 4, 5, 1, 2, 3),\n",
396 " (0, 4, 5, 1, 3, 2): (0, 4, 5, 1, 3, 2),\n",
397 " (0, 4, 5, 2, 1, 3): (0, 4, 5, 2, 1, 3),\n",
398 " (0, 4, 5, 2, 3, 1): (0, 4, 5, 2, 3, 1),\n",
399 " (0, 4, 5, 3, 1, 2): (0, 4, 5, 3, 1, 2),\n",
400 " (0, 4, 5, 3, 2, 1): (0, 4, 5, 3, 2, 1),\n",
401 " (0, 5, 1, 2, 3, 4): (0, 5, 1, 2, 3, 4),\n",
402 " (0, 5, 1, 2, 4, 3): (0, 5, 1, 2, 4, 3),\n",
403 " (0, 5, 1, 3, 2, 4): (0, 5, 1, 3, 2, 4),\n",
404 " (0, 5, 1, 3, 4, 2): (0, 5, 1, 3, 4, 2),\n",
405 " (0, 5, 1, 4, 2, 3): (0, 5, 1, 4, 2, 3),\n",
406 " (0, 5, 1, 4, 3, 2): (0, 5, 1, 4, 3, 2),\n",
407 " (0, 5, 2, 1, 3, 4): (0, 5, 2, 1, 3, 4),\n",
408 " (0, 5, 2, 1, 4, 3): (0, 5, 2, 1, 4, 3),\n",
409 " (0, 5, 2, 3, 1, 4): (0, 5, 2, 3, 1, 4),\n",
410 " (0, 5, 2, 3, 4, 1): (0, 5, 2, 3, 4, 1),\n",
411 " (0, 5, 2, 4, 1, 3): (0, 5, 2, 4, 1, 3),\n",
412 " (0, 5, 2, 4, 3, 1): (0, 5, 2, 4, 3, 1),\n",
413 " (0, 5, 3, 1, 2, 4): (0, 5, 3, 1, 2, 4),\n",
414 " (0, 5, 3, 1, 4, 2): (0, 5, 3, 1, 4, 2),\n",
415 " (0, 5, 3, 2, 1, 4): (0, 5, 3, 2, 1, 4),\n",
416 " (0, 5, 3, 2, 4, 1): (0, 5, 3, 2, 4, 1),\n",
417 " (0, 5, 3, 4, 1, 2): (0, 5, 3, 4, 1, 2),\n",
418 " (0, 5, 3, 4, 2, 1): (0, 5, 3, 4, 2, 1),\n",
419 " (0, 5, 4, 1, 2, 3): (0, 5, 4, 1, 2, 3),\n",
420 " (0, 5, 4, 1, 3, 2): (0, 5, 4, 1, 3, 2),\n",
421 " (0, 5, 4, 2, 1, 3): (0, 5, 4, 2, 1, 3),\n",
422 " (0, 5, 4, 2, 3, 1): (0, 5, 4, 2, 3, 1),\n",
423 " (0, 5, 4, 3, 1, 2): (0, 5, 4, 3, 1, 2),\n",
424 " (0, 5, 4, 3, 2, 1): (0, 5, 4, 3, 2, 1),\n",
425 " (1, 0, 2, 3, 4, 5): (1, 0, 2, 3, 4, 5),\n",
426 " (1, 0, 2, 3, 5, 4): (1, 0, 2, 3, 5, 4),\n",
427 " (1, 0, 2, 4, 3, 5): (1, 0, 2, 4, 3, 5),\n",
428 " (1, 0, 2, 4, 5, 3): (1, 0, 2, 4, 5, 3),\n",
429 " (1, 0, 2, 5, 3, 4): (1, 0, 2, 5, 3, 4),\n",
430 " (1, 0, 2, 5, 4, 3): (1, 0, 2, 5, 4, 3),\n",
431 " (1, 0, 3, 2, 4, 5): (1, 0, 3, 2, 4, 5),\n",
432 " (1, 0, 3, 2, 5, 4): (1, 0, 3, 2, 5, 4),\n",
433 " (1, 0, 3, 4, 2, 5): (1, 0, 3, 4, 2, 5),\n",
434 " (1, 0, 3, 4, 5, 2): (1, 0, 3, 4, 5, 2),\n",
435 " (1, 0, 3, 5, 2, 4): (1, 0, 3, 5, 2, 4),\n",
436 " (1, 0, 3, 5, 4, 2): (1, 0, 3, 5, 4, 2),\n",
437 " (1, 0, 4, 2, 3, 5): (1, 0, 4, 2, 3, 5),\n",
438 " (1, 0, 4, 2, 5, 3): (1, 0, 4, 2, 5, 3),\n",
439 " (1, 0, 4, 3, 2, 5): (1, 0, 4, 3, 2, 5),\n",
440 " (1, 0, 4, 3, 5, 2): (1, 0, 4, 3, 5, 2),\n",
441 " (1, 0, 4, 5, 2, 3): (1, 0, 4, 5, 2, 3),\n",
442 " (1, 0, 4, 5, 3, 2): (1, 0, 4, 5, 3, 2),\n",
443 " (1, 0, 5, 2, 3, 4): (1, 0, 5, 2, 3, 4),\n",
444 " (1, 0, 5, 2, 4, 3): (1, 0, 5, 2, 4, 3),\n",
445 " (1, 0, 5, 3, 2, 4): (1, 0, 5, 3, 2, 4),\n",
446 " (1, 0, 5, 3, 4, 2): (1, 0, 5, 3, 4, 2),\n",
447 " (1, 0, 5, 4, 2, 3): (1, 0, 5, 4, 2, 3),\n",
448 " (1, 0, 5, 4, 3, 2): (1, 0, 5, 4, 3, 2),\n",
449 " (1, 2, 0, 3, 4, 5): (1, 2, 0, 3, 4, 5),\n",
450 " (1, 2, 0, 3, 5, 4): (1, 2, 0, 3, 5, 4),\n",
451 " (1, 2, 0, 4, 3, 5): (1, 2, 0, 4, 3, 5),\n",
452 " (1, 2, 0, 4, 5, 3): (1, 2, 0, 4, 5, 3),\n",
453 " (1, 2, 0, 5, 3, 4): (1, 2, 0, 5, 3, 4),\n",
454 " (1, 2, 0, 5, 4, 3): (1, 2, 0, 5, 4, 3),\n",
455 " (1, 2, 3, 0, 4, 5): (1, 2, 3, 0, 4, 5),\n",
456 " (1, 2, 3, 0, 5, 4): (1, 2, 3, 0, 5, 4),\n",
457 " (1, 2, 3, 4, 0, 5): (1, 2, 3, 4, 0, 5),\n",
458 " (1, 2, 3, 4, 5, 0): (1, 2, 3, 4, 5, 0),\n",
459 " (1, 2, 3, 5, 0, 4): (1, 2, 3, 5, 0, 4),\n",
460 " (1, 2, 3, 5, 4, 0): (1, 2, 3, 5, 4, 0),\n",
461 " (1, 2, 4, 0, 3, 5): (1, 2, 4, 0, 3, 5),\n",
462 " (1, 2, 4, 0, 5, 3): (1, 2, 4, 0, 5, 3),\n",
463 " (1, 2, 4, 3, 0, 5): (1, 2, 4, 3, 0, 5),\n",
464 " (1, 2, 4, 3, 5, 0): (1, 2, 4, 3, 5, 0),\n",
465 " (1, 2, 4, 5, 0, 3): (1, 2, 4, 5, 0, 3),\n",
466 " (1, 2, 4, 5, 3, 0): (1, 2, 4, 5, 3, 0),\n",
467 " (1, 2, 5, 0, 3, 4): (1, 2, 5, 0, 3, 4),\n",
468 " (1, 2, 5, 0, 4, 3): (1, 2, 5, 0, 4, 3),\n",
469 " (1, 2, 5, 3, 0, 4): (1, 2, 5, 3, 0, 4),\n",
470 " (1, 2, 5, 3, 4, 0): (1, 2, 5, 3, 4, 0),\n",
471 " (1, 2, 5, 4, 0, 3): (1, 2, 5, 4, 0, 3),\n",
472 " (1, 2, 5, 4, 3, 0): (1, 2, 5, 4, 3, 0),\n",
473 " (1, 3, 0, 2, 4, 5): (1, 3, 0, 2, 4, 5),\n",
474 " (1, 3, 0, 2, 5, 4): (1, 3, 0, 2, 5, 4),\n",
475 " (1, 3, 0, 4, 2, 5): (1, 3, 0, 4, 2, 5),\n",
476 " (1, 3, 0, 4, 5, 2): (1, 3, 0, 4, 5, 2),\n",
477 " (1, 3, 0, 5, 2, 4): (1, 3, 0, 5, 2, 4),\n",
478 " (1, 3, 0, 5, 4, 2): (1, 3, 0, 5, 4, 2),\n",
479 " (1, 3, 2, 0, 4, 5): (1, 3, 2, 0, 4, 5),\n",
480 " (1, 3, 2, 0, 5, 4): (1, 3, 2, 0, 5, 4),\n",
481 " (1, 3, 2, 4, 0, 5): (1, 3, 2, 4, 0, 5),\n",
482 " (1, 3, 2, 4, 5, 0): (1, 3, 2, 4, 5, 0),\n",
483 " (1, 3, 2, 5, 0, 4): (1, 3, 2, 5, 0, 4),\n",
484 " (1, 3, 2, 5, 4, 0): (1, 3, 2, 5, 4, 0),\n",
485 " (1, 3, 4, 0, 2, 5): (1, 3, 4, 0, 2, 5),\n",
486 " (1, 3, 4, 0, 5, 2): (1, 3, 4, 0, 5, 2),\n",
487 " (1, 3, 4, 2, 0, 5): (1, 3, 4, 2, 0, 5),\n",
488 " (1, 3, 4, 2, 5, 0): (1, 3, 4, 2, 5, 0),\n",
489 " (1, 3, 4, 5, 0, 2): (1, 3, 4, 5, 0, 2),\n",
490 " (1, 3, 4, 5, 2, 0): (1, 3, 4, 5, 2, 0),\n",
491 " (1, 3, 5, 0, 2, 4): (1, 3, 5, 0, 2, 4),\n",
492 " (1, 3, 5, 0, 4, 2): (1, 3, 5, 0, 4, 2),\n",
493 " (1, 3, 5, 2, 0, 4): (1, 3, 5, 2, 0, 4),\n",
494 " (1, 3, 5, 2, 4, 0): (1, 3, 5, 2, 4, 0),\n",
495 " (1, 3, 5, 4, 0, 2): (1, 3, 5, 4, 0, 2),\n",
496 " (1, 3, 5, 4, 2, 0): (1, 3, 5, 4, 2, 0),\n",
497 " (1, 4, 0, 2, 3, 5): (1, 4, 0, 2, 3, 5),\n",
498 " (1, 4, 0, 2, 5, 3): (1, 4, 0, 2, 5, 3),\n",
499 " (1, 4, 0, 3, 2, 5): (1, 4, 0, 3, 2, 5),\n",
500 " (1, 4, 0, 3, 5, 2): (1, 4, 0, 3, 5, 2),\n",
501 " (1, 4, 0, 5, 2, 3): (1, 4, 0, 5, 2, 3),\n",
502 " (1, 4, 0, 5, 3, 2): (1, 4, 0, 5, 3, 2),\n",
503 " (1, 4, 2, 0, 3, 5): (1, 4, 2, 0, 3, 5),\n",
504 " (1, 4, 2, 0, 5, 3): (1, 4, 2, 0, 5, 3),\n",
505 " (1, 4, 2, 3, 0, 5): (1, 4, 2, 3, 0, 5),\n",
506 " (1, 4, 2, 3, 5, 0): (1, 4, 2, 3, 5, 0),\n",
507 " (1, 4, 2, 5, 0, 3): (1, 4, 2, 5, 0, 3),\n",
508 " (1, 4, 2, 5, 3, 0): (1, 4, 2, 5, 3, 0),\n",
509 " (1, 4, 3, 0, 2, 5): (1, 4, 3, 0, 2, 5),\n",
510 " (1, 4, 3, 0, 5, 2): (1, 4, 3, 0, 5, 2),\n",
511 " (1, 4, 3, 2, 0, 5): (1, 4, 3, 2, 0, 5),\n",
512 " (1, 4, 3, 2, 5, 0): (1, 4, 3, 2, 5, 0),\n",
513 " (1, 4, 3, 5, 0, 2): (1, 4, 3, 5, 0, 2),\n",
514 " (1, 4, 3, 5, 2, 0): (1, 4, 3, 5, 2, 0),\n",
515 " (1, 4, 5, 0, 2, 3): (1, 4, 5, 0, 2, 3),\n",
516 " (1, 4, 5, 0, 3, 2): (1, 4, 5, 0, 3, 2),\n",
517 " (1, 4, 5, 2, 0, 3): (1, 4, 5, 2, 0, 3),\n",
518 " (1, 4, 5, 2, 3, 0): (1, 4, 5, 2, 3, 0),\n",
519 " (1, 4, 5, 3, 0, 2): (1, 4, 5, 3, 0, 2),\n",
520 " (1, 4, 5, 3, 2, 0): (1, 4, 5, 3, 2, 0),\n",
521 " (1, 5, 0, 2, 3, 4): (1, 5, 0, 2, 3, 4),\n",
522 " (1, 5, 0, 2, 4, 3): (1, 5, 0, 2, 4, 3),\n",
523 " (1, 5, 0, 3, 2, 4): (1, 5, 0, 3, 2, 4),\n",
524 " (1, 5, 0, 3, 4, 2): (1, 5, 0, 3, 4, 2),\n",
525 " (1, 5, 0, 4, 2, 3): (1, 5, 0, 4, 2, 3),\n",
526 " (1, 5, 0, 4, 3, 2): (1, 5, 0, 4, 3, 2),\n",
527 " (1, 5, 2, 0, 3, 4): (1, 5, 2, 0, 3, 4),\n",
528 " (1, 5, 2, 0, 4, 3): (1, 5, 2, 0, 4, 3),\n",
529 " (1, 5, 2, 3, 0, 4): (1, 5, 2, 3, 0, 4),\n",
530 " (1, 5, 2, 3, 4, 0): (1, 5, 2, 3, 4, 0),\n",
531 " (1, 5, 2, 4, 0, 3): (1, 5, 2, 4, 0, 3),\n",
532 " (1, 5, 2, 4, 3, 0): (1, 5, 2, 4, 3, 0),\n",
533 " (1, 5, 3, 0, 2, 4): (1, 5, 3, 0, 2, 4),\n",
534 " (1, 5, 3, 0, 4, 2): (1, 5, 3, 0, 4, 2),\n",
535 " (1, 5, 3, 2, 0, 4): (1, 5, 3, 2, 0, 4),\n",
536 " (1, 5, 3, 2, 4, 0): (1, 5, 3, 2, 4, 0),\n",
537 " (1, 5, 3, 4, 0, 2): (1, 5, 3, 4, 0, 2),\n",
538 " (1, 5, 3, 4, 2, 0): (1, 5, 3, 4, 2, 0),\n",
539 " (1, 5, 4, 0, 2, 3): (1, 5, 4, 0, 2, 3),\n",
540 " (1, 5, 4, 0, 3, 2): (1, 5, 4, 0, 3, 2),\n",
541 " (1, 5, 4, 2, 0, 3): (1, 5, 4, 2, 0, 3),\n",
542 " (1, 5, 4, 2, 3, 0): (1, 5, 4, 2, 3, 0),\n",
543 " (1, 5, 4, 3, 0, 2): (1, 5, 4, 3, 0, 2),\n",
544 " (1, 5, 4, 3, 2, 0): (1, 5, 4, 3, 2, 0),\n",
545 " (2, 0, 1, 3, 4, 5): (2, 0, 1, 3, 4, 5),\n",
546 " (2, 0, 1, 3, 5, 4): (2, 0, 1, 3, 5, 4),\n",
547 " (2, 0, 1, 4, 3, 5): (2, 0, 1, 4, 3, 5),\n",
548 " (2, 0, 1, 4, 5, 3): (2, 0, 1, 4, 5, 3),\n",
549 " (2, 0, 1, 5, 3, 4): (2, 0, 1, 5, 3, 4),\n",
550 " (2, 0, 1, 5, 4, 3): (2, 0, 1, 5, 4, 3),\n",
551 " (2, 0, 3, 1, 4, 5): (2, 0, 3, 1, 4, 5),\n",
552 " (2, 0, 3, 1, 5, 4): (2, 0, 3, 1, 5, 4),\n",
553 " (2, 0, 3, 4, 1, 5): (2, 0, 3, 4, 1, 5),\n",
554 " (2, 0, 3, 4, 5, 1): (2, 0, 3, 4, 5, 1),\n",
555 " (2, 0, 3, 5, 1, 4): (2, 0, 3, 5, 1, 4),\n",
556 " (2, 0, 3, 5, 4, 1): (2, 0, 3, 5, 4, 1),\n",
557 " (2, 0, 4, 1, 3, 5): (2, 0, 4, 1, 3, 5),\n",
558 " (2, 0, 4, 1, 5, 3): (2, 0, 4, 1, 5, 3),\n",
559 " (2, 0, 4, 3, 1, 5): (2, 0, 4, 3, 1, 5),\n",
560 " (2, 0, 4, 3, 5, 1): (2, 0, 4, 3, 5, 1),\n",
561 " (2, 0, 4, 5, 1, 3): (2, 0, 4, 5, 1, 3),\n",
562 " (2, 0, 4, 5, 3, 1): (2, 0, 4, 5, 3, 1),\n",
563 " (2, 0, 5, 1, 3, 4): (2, 0, 5, 1, 3, 4),\n",
564 " (2, 0, 5, 1, 4, 3): (2, 0, 5, 1, 4, 3),\n",
565 " (2, 0, 5, 3, 1, 4): (2, 0, 5, 3, 1, 4),\n",
566 " (2, 0, 5, 3, 4, 1): (2, 0, 5, 3, 4, 1),\n",
567 " (2, 0, 5, 4, 1, 3): (2, 0, 5, 4, 1, 3),\n",
568 " (2, 0, 5, 4, 3, 1): (2, 0, 5, 4, 3, 1),\n",
569 " (2, 1, 0, 3, 4, 5): (2, 1, 0, 3, 4, 5),\n",
570 " (2, 1, 0, 3, 5, 4): (2, 1, 0, 3, 5, 4),\n",
571 " (2, 1, 0, 4, 3, 5): (2, 1, 0, 4, 3, 5),\n",
572 " (2, 1, 0, 4, 5, 3): (2, 1, 0, 4, 5, 3),\n",
573 " (2, 1, 0, 5, 3, 4): (2, 1, 0, 5, 3, 4),\n",
574 " (2, 1, 0, 5, 4, 3): (2, 1, 0, 5, 4, 3),\n",
575 " (2, 1, 3, 0, 4, 5): (2, 1, 3, 0, 4, 5),\n",
576 " (2, 1, 3, 0, 5, 4): (2, 1, 3, 0, 5, 4),\n",
577 " (2, 1, 3, 4, 0, 5): (2, 1, 3, 4, 0, 5),\n",
578 " (2, 1, 3, 4, 5, 0): (2, 1, 3, 4, 5, 0),\n",
579 " (2, 1, 3, 5, 0, 4): (2, 1, 3, 5, 0, 4),\n",
580 " (2, 1, 3, 5, 4, 0): (2, 1, 3, 5, 4, 0),\n",
581 " (2, 1, 4, 0, 3, 5): (2, 1, 4, 0, 3, 5),\n",
582 " (2, 1, 4, 0, 5, 3): (2, 1, 4, 0, 5, 3),\n",
583 " (2, 1, 4, 3, 0, 5): (2, 1, 4, 3, 0, 5),\n",
584 " (2, 1, 4, 3, 5, 0): (2, 1, 4, 3, 5, 0),\n",
585 " (2, 1, 4, 5, 0, 3): (2, 1, 4, 5, 0, 3),\n",
586 " (2, 1, 4, 5, 3, 0): (2, 1, 4, 5, 3, 0),\n",
587 " (2, 1, 5, 0, 3, 4): (2, 1, 5, 0, 3, 4),\n",
588 " (2, 1, 5, 0, 4, 3): (2, 1, 5, 0, 4, 3),\n",
589 " (2, 1, 5, 3, 0, 4): (2, 1, 5, 3, 0, 4),\n",
590 " (2, 1, 5, 3, 4, 0): (2, 1, 5, 3, 4, 0),\n",
591 " (2, 1, 5, 4, 0, 3): (2, 1, 5, 4, 0, 3),\n",
592 " (2, 1, 5, 4, 3, 0): (2, 1, 5, 4, 3, 0),\n",
593 " (2, 3, 0, 1, 4, 5): (2, 3, 0, 1, 4, 5),\n",
594 " (2, 3, 0, 1, 5, 4): (2, 3, 0, 1, 5, 4),\n",
595 " (2, 3, 0, 4, 1, 5): (2, 3, 0, 4, 1, 5),\n",
596 " (2, 3, 0, 4, 5, 1): (2, 3, 0, 4, 5, 1),\n",
597 " (2, 3, 0, 5, 1, 4): (2, 3, 0, 5, 1, 4),\n",
598 " (2, 3, 0, 5, 4, 1): (2, 3, 0, 5, 4, 1),\n",
599 " (2, 3, 1, 0, 4, 5): (2, 3, 1, 0, 4, 5),\n",
600 " (2, 3, 1, 0, 5, 4): (2, 3, 1, 0, 5, 4),\n",
601 " (2, 3, 1, 4, 0, 5): (2, 3, 1, 4, 0, 5),\n",
602 " (2, 3, 1, 4, 5, 0): (2, 3, 1, 4, 5, 0),\n",
603 " (2, 3, 1, 5, 0, 4): (2, 3, 1, 5, 0, 4),\n",
604 " (2, 3, 1, 5, 4, 0): (2, 3, 1, 5, 4, 0),\n",
605 " (2, 3, 4, 0, 1, 5): (2, 3, 4, 0, 1, 5),\n",
606 " (2, 3, 4, 0, 5, 1): (2, 3, 4, 0, 5, 1),\n",
607 " (2, 3, 4, 1, 0, 5): (2, 3, 4, 1, 0, 5),\n",
608 " (2, 3, 4, 1, 5, 0): (2, 3, 4, 1, 5, 0),\n",
609 " (2, 3, 4, 5, 0, 1): (2, 3, 4, 5, 0, 1),\n",
610 " (2, 3, 4, 5, 1, 0): (2, 3, 4, 5, 1, 0),\n",
611 " (2, 3, 5, 0, 1, 4): (2, 3, 5, 0, 1, 4),\n",
612 " (2, 3, 5, 0, 4, 1): (2, 3, 5, 0, 4, 1),\n",
613 " (2, 3, 5, 1, 0, 4): (2, 3, 5, 1, 0, 4),\n",
614 " (2, 3, 5, 1, 4, 0): (2, 3, 5, 1, 4, 0),\n",
615 " (2, 3, 5, 4, 0, 1): (2, 3, 5, 4, 0, 1),\n",
616 " (2, 3, 5, 4, 1, 0): (2, 3, 5, 4, 1, 0),\n",
617 " (2, 4, 0, 1, 3, 5): (2, 4, 0, 1, 3, 5),\n",
618 " (2, 4, 0, 1, 5, 3): (2, 4, 0, 1, 5, 3),\n",
619 " (2, 4, 0, 3, 1, 5): (2, 4, 0, 3, 1, 5),\n",
620 " (2, 4, 0, 3, 5, 1): (2, 4, 0, 3, 5, 1),\n",
621 " (2, 4, 0, 5, 1, 3): (2, 4, 0, 5, 1, 3),\n",
622 " (2, 4, 0, 5, 3, 1): (2, 4, 0, 5, 3, 1),\n",
623 " (2, 4, 1, 0, 3, 5): (2, 4, 1, 0, 3, 5),\n",
624 " (2, 4, 1, 0, 5, 3): (2, 4, 1, 0, 5, 3),\n",
625 " (2, 4, 1, 3, 0, 5): (2, 4, 1, 3, 0, 5),\n",
626 " (2, 4, 1, 3, 5, 0): (2, 4, 1, 3, 5, 0),\n",
627 " (2, 4, 1, 5, 0, 3): (2, 4, 1, 5, 0, 3),\n",
628 " (2, 4, 1, 5, 3, 0): (2, 4, 1, 5, 3, 0),\n",
629 " (2, 4, 3, 0, 1, 5): (2, 4, 3, 0, 1, 5),\n",
630 " (2, 4, 3, 0, 5, 1): (2, 4, 3, 0, 5, 1),\n",
631 " (2, 4, 3, 1, 0, 5): (2, 4, 3, 1, 0, 5),\n",
632 " (2, 4, 3, 1, 5, 0): (2, 4, 3, 1, 5, 0),\n",
633 " (2, 4, 3, 5, 0, 1): (2, 4, 3, 5, 0, 1),\n",
634 " (2, 4, 3, 5, 1, 0): (2, 4, 3, 5, 1, 0),\n",
635 " (2, 4, 5, 0, 1, 3): (2, 4, 5, 0, 1, 3),\n",
636 " (2, 4, 5, 0, 3, 1): (2, 4, 5, 0, 3, 1),\n",
637 " (2, 4, 5, 1, 0, 3): (2, 4, 5, 1, 0, 3),\n",
638 " (2, 4, 5, 1, 3, 0): (2, 4, 5, 1, 3, 0),\n",
639 " (2, 4, 5, 3, 0, 1): (2, 4, 5, 3, 0, 1),\n",
640 " (2, 4, 5, 3, 1, 0): (2, 4, 5, 3, 1, 0),\n",
641 " (2, 5, 0, 1, 3, 4): (2, 5, 0, 1, 3, 4),\n",
642 " (2, 5, 0, 1, 4, 3): (2, 5, 0, 1, 4, 3),\n",
643 " (2, 5, 0, 3, 1, 4): (2, 5, 0, 3, 1, 4),\n",
644 " (2, 5, 0, 3, 4, 1): (2, 5, 0, 3, 4, 1),\n",
645 " (2, 5, 0, 4, 1, 3): (2, 5, 0, 4, 1, 3),\n",
646 " (2, 5, 0, 4, 3, 1): (2, 5, 0, 4, 3, 1),\n",
647 " (2, 5, 1, 0, 3, 4): (2, 5, 1, 0, 3, 4),\n",
648 " (2, 5, 1, 0, 4, 3): (2, 5, 1, 0, 4, 3),\n",
649 " (2, 5, 1, 3, 0, 4): (2, 5, 1, 3, 0, 4),\n",
650 " (2, 5, 1, 3, 4, 0): (2, 5, 1, 3, 4, 0),\n",
651 " (2, 5, 1, 4, 0, 3): (2, 5, 1, 4, 0, 3),\n",
652 " (2, 5, 1, 4, 3, 0): (2, 5, 1, 4, 3, 0),\n",
653 " (2, 5, 3, 0, 1, 4): (2, 5, 3, 0, 1, 4),\n",
654 " (2, 5, 3, 0, 4, 1): (2, 5, 3, 0, 4, 1),\n",
655 " (2, 5, 3, 1, 0, 4): (2, 5, 3, 1, 0, 4),\n",
656 " (2, 5, 3, 1, 4, 0): (2, 5, 3, 1, 4, 0),\n",
657 " (2, 5, 3, 4, 0, 1): (2, 5, 3, 4, 0, 1),\n",
658 " (2, 5, 3, 4, 1, 0): (2, 5, 3, 4, 1, 0),\n",
659 " (2, 5, 4, 0, 1, 3): (2, 5, 4, 0, 1, 3),\n",
660 " (2, 5, 4, 0, 3, 1): (2, 5, 4, 0, 3, 1),\n",
661 " (2, 5, 4, 1, 0, 3): (2, 5, 4, 1, 0, 3),\n",
662 " (2, 5, 4, 1, 3, 0): (2, 5, 4, 1, 3, 0),\n",
663 " (2, 5, 4, 3, 0, 1): (2, 5, 4, 3, 0, 1),\n",
664 " (2, 5, 4, 3, 1, 0): (2, 5, 4, 3, 1, 0),\n",
665 " (3, 0, 1, 2, 4, 5): (3, 0, 1, 2, 4, 5),\n",
666 " (3, 0, 1, 2, 5, 4): (3, 0, 1, 2, 5, 4),\n",
667 " (3, 0, 1, 4, 2, 5): (3, 0, 1, 4, 2, 5),\n",
668 " (3, 0, 1, 4, 5, 2): (3, 0, 1, 4, 5, 2),\n",
669 " (3, 0, 1, 5, 2, 4): (3, 0, 1, 5, 2, 4),\n",
670 " (3, 0, 1, 5, 4, 2): (3, 0, 1, 5, 4, 2),\n",
671 " (3, 0, 2, 1, 4, 5): (3, 0, 2, 1, 4, 5),\n",
672 " (3, 0, 2, 1, 5, 4): (3, 0, 2, 1, 5, 4),\n",
673 " (3, 0, 2, 4, 1, 5): (3, 0, 2, 4, 1, 5),\n",
674 " (3, 0, 2, 4, 5, 1): (3, 0, 2, 4, 5, 1),\n",
675 " (3, 0, 2, 5, 1, 4): (3, 0, 2, 5, 1, 4),\n",
676 " (3, 0, 2, 5, 4, 1): (3, 0, 2, 5, 4, 1),\n",
677 " (3, 0, 4, 1, 2, 5): (3, 0, 4, 1, 2, 5),\n",
678 " (3, 0, 4, 1, 5, 2): (3, 0, 4, 1, 5, 2),\n",
679 " (3, 0, 4, 2, 1, 5): (3, 0, 4, 2, 1, 5),\n",
680 " (3, 0, 4, 2, 5, 1): (3, 0, 4, 2, 5, 1),\n",
681 " (3, 0, 4, 5, 1, 2): (3, 0, 4, 5, 1, 2),\n",
682 " (3, 0, 4, 5, 2, 1): (3, 0, 4, 5, 2, 1),\n",
683 " (3, 0, 5, 1, 2, 4): (3, 0, 5, 1, 2, 4),\n",
684 " (3, 0, 5, 1, 4, 2): (3, 0, 5, 1, 4, 2),\n",
685 " (3, 0, 5, 2, 1, 4): (3, 0, 5, 2, 1, 4),\n",
686 " (3, 0, 5, 2, 4, 1): (3, 0, 5, 2, 4, 1),\n",
687 " (3, 0, 5, 4, 1, 2): (3, 0, 5, 4, 1, 2),\n",
688 " (3, 0, 5, 4, 2, 1): (3, 0, 5, 4, 2, 1),\n",
689 " (3, 1, 0, 2, 4, 5): (3, 1, 0, 2, 4, 5),\n",
690 " (3, 1, 0, 2, 5, 4): (3, 1, 0, 2, 5, 4),\n",
691 " (3, 1, 0, 4, 2, 5): (3, 1, 0, 4, 2, 5),\n",
692 " (3, 1, 0, 4, 5, 2): (3, 1, 0, 4, 5, 2),\n",
693 " (3, 1, 0, 5, 2, 4): (3, 1, 0, 5, 2, 4),\n",
694 " (3, 1, 0, 5, 4, 2): (3, 1, 0, 5, 4, 2),\n",
695 " (3, 1, 2, 0, 4, 5): (3, 1, 2, 0, 4, 5),\n",
696 " (3, 1, 2, 0, 5, 4): (3, 1, 2, 0, 5, 4),\n",
697 " (3, 1, 2, 4, 0, 5): (3, 1, 2, 4, 0, 5),\n",
698 " (3, 1, 2, 4, 5, 0): (3, 1, 2, 4, 5, 0),\n",
699 " (3, 1, 2, 5, 0, 4): (3, 1, 2, 5, 0, 4),\n",
700 " (3, 1, 2, 5, 4, 0): (3, 1, 2, 5, 4, 0),\n",
701 " (3, 1, 4, 0, 2, 5): (3, 1, 4, 0, 2, 5),\n",
702 " (3, 1, 4, 0, 5, 2): (3, 1, 4, 0, 5, 2),\n",
703 " (3, 1, 4, 2, 0, 5): (3, 1, 4, 2, 0, 5),\n",
704 " (3, 1, 4, 2, 5, 0): (3, 1, 4, 2, 5, 0),\n",
705 " (3, 1, 4, 5, 0, 2): (3, 1, 4, 5, 0, 2),\n",
706 " (3, 1, 4, 5, 2, 0): (3, 1, 4, 5, 2, 0),\n",
707 " (3, 1, 5, 0, 2, 4): (3, 1, 5, 0, 2, 4),\n",
708 " (3, 1, 5, 0, 4, 2): (3, 1, 5, 0, 4, 2),\n",
709 " (3, 1, 5, 2, 0, 4): (3, 1, 5, 2, 0, 4),\n",
710 " (3, 1, 5, 2, 4, 0): (3, 1, 5, 2, 4, 0),\n",
711 " (3, 1, 5, 4, 0, 2): (3, 1, 5, 4, 0, 2),\n",
712 " (3, 1, 5, 4, 2, 0): (3, 1, 5, 4, 2, 0),\n",
713 " (3, 2, 0, 1, 4, 5): (3, 2, 0, 1, 4, 5),\n",
714 " (3, 2, 0, 1, 5, 4): (3, 2, 0, 1, 5, 4),\n",
715 " (3, 2, 0, 4, 1, 5): (3, 2, 0, 4, 1, 5),\n",
716 " (3, 2, 0, 4, 5, 1): (3, 2, 0, 4, 5, 1),\n",
717 " (3, 2, 0, 5, 1, 4): (3, 2, 0, 5, 1, 4),\n",
718 " (3, 2, 0, 5, 4, 1): (3, 2, 0, 5, 4, 1),\n",
719 " (3, 2, 1, 0, 4, 5): (3, 2, 1, 0, 4, 5),\n",
720 " (3, 2, 1, 0, 5, 4): (3, 2, 1, 0, 5, 4),\n",
721 " (3, 2, 1, 4, 0, 5): (3, 2, 1, 4, 0, 5),\n",
722 " (3, 2, 1, 4, 5, 0): (3, 2, 1, 4, 5, 0),\n",
723 " (3, 2, 1, 5, 0, 4): (3, 2, 1, 5, 0, 4),\n",
724 " (3, 2, 1, 5, 4, 0): (3, 2, 1, 5, 4, 0),\n",
725 " (3, 2, 4, 0, 1, 5): (3, 2, 4, 0, 1, 5),\n",
726 " (3, 2, 4, 0, 5, 1): (3, 2, 4, 0, 5, 1),\n",
727 " (3, 2, 4, 1, 0, 5): (3, 2, 4, 1, 0, 5),\n",
728 " (3, 2, 4, 1, 5, 0): (3, 2, 4, 1, 5, 0),\n",
729 " (3, 2, 4, 5, 0, 1): (3, 2, 4, 5, 0, 1),\n",
730 " (3, 2, 4, 5, 1, 0): (3, 2, 4, 5, 1, 0),\n",
731 " (3, 2, 5, 0, 1, 4): (3, 2, 5, 0, 1, 4),\n",
732 " (3, 2, 5, 0, 4, 1): (3, 2, 5, 0, 4, 1),\n",
733 " (3, 2, 5, 1, 0, 4): (3, 2, 5, 1, 0, 4),\n",
734 " (3, 2, 5, 1, 4, 0): (3, 2, 5, 1, 4, 0),\n",
735 " (3, 2, 5, 4, 0, 1): (3, 2, 5, 4, 0, 1),\n",
736 " (3, 2, 5, 4, 1, 0): (3, 2, 5, 4, 1, 0),\n",
737 " (3, 4, 0, 1, 2, 5): (3, 4, 0, 1, 2, 5),\n",
738 " (3, 4, 0, 1, 5, 2): (3, 4, 0, 1, 5, 2),\n",
739 " (3, 4, 0, 2, 1, 5): (3, 4, 0, 2, 1, 5),\n",
740 " (3, 4, 0, 2, 5, 1): (3, 4, 0, 2, 5, 1),\n",
741 " (3, 4, 0, 5, 1, 2): (3, 4, 0, 5, 1, 2),\n",
742 " (3, 4, 0, 5, 2, 1): (3, 4, 0, 5, 2, 1),\n",
743 " (3, 4, 1, 0, 2, 5): (3, 4, 1, 0, 2, 5),\n",
744 " (3, 4, 1, 0, 5, 2): (3, 4, 1, 0, 5, 2),\n",
745 " (3, 4, 1, 2, 0, 5): (3, 4, 1, 2, 0, 5),\n",
746 " (3, 4, 1, 2, 5, 0): (3, 4, 1, 2, 5, 0),\n",
747 " (3, 4, 1, 5, 0, 2): (3, 4, 1, 5, 0, 2),\n",
748 " (3, 4, 1, 5, 2, 0): (3, 4, 1, 5, 2, 0),\n",
749 " (3, 4, 2, 0, 1, 5): (3, 4, 2, 0, 1, 5),\n",
750 " (3, 4, 2, 0, 5, 1): (3, 4, 2, 0, 5, 1),\n",
751 " (3, 4, 2, 1, 0, 5): (3, 4, 2, 1, 0, 5),\n",
752 " (3, 4, 2, 1, 5, 0): (3, 4, 2, 1, 5, 0),\n",
753 " (3, 4, 2, 5, 0, 1): (3, 4, 2, 5, 0, 1),\n",
754 " (3, 4, 2, 5, 1, 0): (3, 4, 2, 5, 1, 0),\n",
755 " (3, 4, 5, 0, 1, 2): (3, 4, 5, 0, 1, 2),\n",
756 " (3, 4, 5, 0, 2, 1): (3, 4, 5, 0, 2, 1),\n",
757 " (3, 4, 5, 1, 0, 2): (3, 4, 5, 1, 0, 2),\n",
758 " (3, 4, 5, 1, 2, 0): (3, 4, 5, 1, 2, 0),\n",
759 " (3, 4, 5, 2, 0, 1): (3, 4, 5, 2, 0, 1),\n",
760 " (3, 4, 5, 2, 1, 0): (3, 4, 5, 2, 1, 0),\n",
761 " (3, 5, 0, 1, 2, 4): (3, 5, 0, 1, 2, 4),\n",
762 " (3, 5, 0, 1, 4, 2): (3, 5, 0, 1, 4, 2),\n",
763 " (3, 5, 0, 2, 1, 4): (3, 5, 0, 2, 1, 4),\n",
764 " (3, 5, 0, 2, 4, 1): (3, 5, 0, 2, 4, 1),\n",
765 " (3, 5, 0, 4, 1, 2): (3, 5, 0, 4, 1, 2),\n",
766 " (3, 5, 0, 4, 2, 1): (3, 5, 0, 4, 2, 1),\n",
767 " (3, 5, 1, 0, 2, 4): (3, 5, 1, 0, 2, 4),\n",
768 " (3, 5, 1, 0, 4, 2): (3, 5, 1, 0, 4, 2),\n",
769 " (3, 5, 1, 2, 0, 4): (3, 5, 1, 2, 0, 4),\n",
770 " (3, 5, 1, 2, 4, 0): (3, 5, 1, 2, 4, 0),\n",
771 " (3, 5, 1, 4, 0, 2): (3, 5, 1, 4, 0, 2),\n",
772 " (3, 5, 1, 4, 2, 0): (3, 5, 1, 4, 2, 0),\n",
773 " (3, 5, 2, 0, 1, 4): (3, 5, 2, 0, 1, 4),\n",
774 " (3, 5, 2, 0, 4, 1): (3, 5, 2, 0, 4, 1),\n",
775 " (3, 5, 2, 1, 0, 4): (3, 5, 2, 1, 0, 4),\n",
776 " (3, 5, 2, 1, 4, 0): (3, 5, 2, 1, 4, 0),\n",
777 " (3, 5, 2, 4, 0, 1): (3, 5, 2, 4, 0, 1),\n",
778 " (3, 5, 2, 4, 1, 0): (3, 5, 2, 4, 1, 0),\n",
779 " (3, 5, 4, 0, 1, 2): (3, 5, 4, 0, 1, 2),\n",
780 " (3, 5, 4, 0, 2, 1): (3, 5, 4, 0, 2, 1),\n",
781 " (3, 5, 4, 1, 0, 2): (3, 5, 4, 1, 0, 2),\n",
782 " (3, 5, 4, 1, 2, 0): (3, 5, 4, 1, 2, 0),\n",
783 " (3, 5, 4, 2, 0, 1): (3, 5, 4, 2, 0, 1),\n",
784 " (3, 5, 4, 2, 1, 0): (3, 5, 4, 2, 1, 0),\n",
785 " (4, 0, 1, 2, 3, 5): (4, 0, 1, 2, 3, 5),\n",
786 " (4, 0, 1, 2, 5, 3): (4, 0, 1, 2, 5, 3),\n",
787 " (4, 0, 1, 3, 2, 5): (4, 0, 1, 3, 2, 5),\n",
788 " (4, 0, 1, 3, 5, 2): (4, 0, 1, 3, 5, 2),\n",
789 " (4, 0, 1, 5, 2, 3): (4, 0, 1, 5, 2, 3),\n",
790 " (4, 0, 1, 5, 3, 2): (4, 0, 1, 5, 3, 2),\n",
791 " (4, 0, 2, 1, 3, 5): (4, 0, 2, 1, 3, 5),\n",
792 " (4, 0, 2, 1, 5, 3): (4, 0, 2, 1, 5, 3),\n",
793 " (4, 0, 2, 3, 1, 5): (4, 0, 2, 3, 1, 5),\n",
794 " (4, 0, 2, 3, 5, 1): (4, 0, 2, 3, 5, 1),\n",
795 " (4, 0, 2, 5, 1, 3): (4, 0, 2, 5, 1, 3),\n",
796 " (4, 0, 2, 5, 3, 1): (4, 0, 2, 5, 3, 1),\n",
797 " (4, 0, 3, 1, 2, 5): (4, 0, 3, 1, 2, 5),\n",
798 " (4, 0, 3, 1, 5, 2): (4, 0, 3, 1, 5, 2),\n",
799 " (4, 0, 3, 2, 1, 5): (4, 0, 3, 2, 1, 5),\n",
800 " (4, 0, 3, 2, 5, 1): (4, 0, 3, 2, 5, 1),\n",
801 " (4, 0, 3, 5, 1, 2): (4, 0, 3, 5, 1, 2),\n",
802 " (4, 0, 3, 5, 2, 1): (4, 0, 3, 5, 2, 1),\n",
803 " (4, 0, 5, 1, 2, 3): (4, 0, 5, 1, 2, 3),\n",
804 " (4, 0, 5, 1, 3, 2): (4, 0, 5, 1, 3, 2),\n",
805 " (4, 0, 5, 2, 1, 3): (4, 0, 5, 2, 1, 3),\n",
806 " (4, 0, 5, 2, 3, 1): (4, 0, 5, 2, 3, 1),\n",
807 " (4, 0, 5, 3, 1, 2): (4, 0, 5, 3, 1, 2),\n",
808 " (4, 0, 5, 3, 2, 1): (4, 0, 5, 3, 2, 1),\n",
809 " (4, 1, 0, 2, 3, 5): (4, 1, 0, 2, 3, 5),\n",
810 " (4, 1, 0, 2, 5, 3): (4, 1, 0, 2, 5, 3),\n",
811 " (4, 1, 0, 3, 2, 5): (4, 1, 0, 3, 2, 5),\n",
812 " (4, 1, 0, 3, 5, 2): (4, 1, 0, 3, 5, 2),\n",
813 " (4, 1, 0, 5, 2, 3): (4, 1, 0, 5, 2, 3),\n",
814 " (4, 1, 0, 5, 3, 2): (4, 1, 0, 5, 3, 2),\n",
815 " (4, 1, 2, 0, 3, 5): (4, 1, 2, 0, 3, 5),\n",
816 " (4, 1, 2, 0, 5, 3): (4, 1, 2, 0, 5, 3),\n",
817 " (4, 1, 2, 3, 0, 5): (4, 1, 2, 3, 0, 5),\n",
818 " (4, 1, 2, 3, 5, 0): (4, 1, 2, 3, 5, 0),\n",
819 " (4, 1, 2, 5, 0, 3): (4, 1, 2, 5, 0, 3),\n",
820 " (4, 1, 2, 5, 3, 0): (4, 1, 2, 5, 3, 0),\n",
821 " (4, 1, 3, 0, 2, 5): (4, 1, 3, 0, 2, 5),\n",
822 " (4, 1, 3, 0, 5, 2): (4, 1, 3, 0, 5, 2),\n",
823 " (4, 1, 3, 2, 0, 5): (4, 1, 3, 2, 0, 5),\n",
824 " (4, 1, 3, 2, 5, 0): (4, 1, 3, 2, 5, 0),\n",
825 " (4, 1, 3, 5, 0, 2): (4, 1, 3, 5, 0, 2),\n",
826 " (4, 1, 3, 5, 2, 0): (4, 1, 3, 5, 2, 0),\n",
827 " (4, 1, 5, 0, 2, 3): (4, 1, 5, 0, 2, 3),\n",
828 " (4, 1, 5, 0, 3, 2): (4, 1, 5, 0, 3, 2),\n",
829 " (4, 1, 5, 2, 0, 3): (4, 1, 5, 2, 0, 3),\n",
830 " (4, 1, 5, 2, 3, 0): (4, 1, 5, 2, 3, 0),\n",
831 " (4, 1, 5, 3, 0, 2): (4, 1, 5, 3, 0, 2),\n",
832 " (4, 1, 5, 3, 2, 0): (4, 1, 5, 3, 2, 0),\n",
833 " (4, 2, 0, 1, 3, 5): (4, 2, 0, 1, 3, 5),\n",
834 " (4, 2, 0, 1, 5, 3): (4, 2, 0, 1, 5, 3),\n",
835 " (4, 2, 0, 3, 1, 5): (4, 2, 0, 3, 1, 5),\n",
836 " (4, 2, 0, 3, 5, 1): (4, 2, 0, 3, 5, 1),\n",
837 " (4, 2, 0, 5, 1, 3): (4, 2, 0, 5, 1, 3),\n",
838 " (4, 2, 0, 5, 3, 1): (4, 2, 0, 5, 3, 1),\n",
839 " (4, 2, 1, 0, 3, 5): (4, 2, 1, 0, 3, 5),\n",
840 " (4, 2, 1, 0, 5, 3): (4, 2, 1, 0, 5, 3),\n",
841 " (4, 2, 1, 3, 0, 5): (4, 2, 1, 3, 0, 5),\n",
842 " (4, 2, 1, 3, 5, 0): (4, 2, 1, 3, 5, 0),\n",
843 " (4, 2, 1, 5, 0, 3): (4, 2, 1, 5, 0, 3),\n",
844 " (4, 2, 1, 5, 3, 0): (4, 2, 1, 5, 3, 0),\n",
845 " (4, 2, 3, 0, 1, 5): (4, 2, 3, 0, 1, 5),\n",
846 " (4, 2, 3, 0, 5, 1): (4, 2, 3, 0, 5, 1),\n",
847 " (4, 2, 3, 1, 0, 5): (4, 2, 3, 1, 0, 5),\n",
848 " (4, 2, 3, 1, 5, 0): (4, 2, 3, 1, 5, 0),\n",
849 " (4, 2, 3, 5, 0, 1): (4, 2, 3, 5, 0, 1),\n",
850 " (4, 2, 3, 5, 1, 0): (4, 2, 3, 5, 1, 0),\n",
851 " (4, 2, 5, 0, 1, 3): (4, 2, 5, 0, 1, 3),\n",
852 " (4, 2, 5, 0, 3, 1): (4, 2, 5, 0, 3, 1),\n",
853 " (4, 2, 5, 1, 0, 3): (4, 2, 5, 1, 0, 3),\n",
854 " (4, 2, 5, 1, 3, 0): (4, 2, 5, 1, 3, 0),\n",
855 " (4, 2, 5, 3, 0, 1): (4, 2, 5, 3, 0, 1),\n",
856 " (4, 2, 5, 3, 1, 0): (4, 2, 5, 3, 1, 0),\n",
857 " (4, 3, 0, 1, 2, 5): (4, 3, 0, 1, 2, 5),\n",
858 " (4, 3, 0, 1, 5, 2): (4, 3, 0, 1, 5, 2),\n",
859 " (4, 3, 0, 2, 1, 5): (4, 3, 0, 2, 1, 5),\n",
860 " (4, 3, 0, 2, 5, 1): (4, 3, 0, 2, 5, 1),\n",
861 " (4, 3, 0, 5, 1, 2): (4, 3, 0, 5, 1, 2),\n",
862 " (4, 3, 0, 5, 2, 1): (4, 3, 0, 5, 2, 1),\n",
863 " (4, 3, 1, 0, 2, 5): (4, 3, 1, 0, 2, 5),\n",
864 " (4, 3, 1, 0, 5, 2): (4, 3, 1, 0, 5, 2),\n",
865 " (4, 3, 1, 2, 0, 5): (4, 3, 1, 2, 0, 5),\n",
866 " (4, 3, 1, 2, 5, 0): (4, 3, 1, 2, 5, 0),\n",
867 " (4, 3, 1, 5, 0, 2): (4, 3, 1, 5, 0, 2),\n",
868 " (4, 3, 1, 5, 2, 0): (4, 3, 1, 5, 2, 0),\n",
869 " (4, 3, 2, 0, 1, 5): (4, 3, 2, 0, 1, 5),\n",
870 " (4, 3, 2, 0, 5, 1): (4, 3, 2, 0, 5, 1),\n",
871 " (4, 3, 2, 1, 0, 5): (4, 3, 2, 1, 0, 5),\n",
872 " (4, 3, 2, 1, 5, 0): (4, 3, 2, 1, 5, 0),\n",
873 " (4, 3, 2, 5, 0, 1): (4, 3, 2, 5, 0, 1),\n",
874 " (4, 3, 2, 5, 1, 0): (4, 3, 2, 5, 1, 0),\n",
875 " (4, 3, 5, 0, 1, 2): (4, 3, 5, 0, 1, 2),\n",
876 " (4, 3, 5, 0, 2, 1): (4, 3, 5, 0, 2, 1),\n",
877 " (4, 3, 5, 1, 0, 2): (4, 3, 5, 1, 0, 2),\n",
878 " (4, 3, 5, 1, 2, 0): (4, 3, 5, 1, 2, 0),\n",
879 " (4, 3, 5, 2, 0, 1): (4, 3, 5, 2, 0, 1),\n",
880 " (4, 3, 5, 2, 1, 0): (4, 3, 5, 2, 1, 0),\n",
881 " (4, 5, 0, 1, 2, 3): (4, 5, 0, 1, 2, 3),\n",
882 " (4, 5, 0, 1, 3, 2): (4, 5, 0, 1, 3, 2),\n",
883 " (4, 5, 0, 2, 1, 3): (4, 5, 0, 2, 1, 3),\n",
884 " (4, 5, 0, 2, 3, 1): (4, 5, 0, 2, 3, 1),\n",
885 " (4, 5, 0, 3, 1, 2): (4, 5, 0, 3, 1, 2),\n",
886 " (4, 5, 0, 3, 2, 1): (4, 5, 0, 3, 2, 1),\n",
887 " (4, 5, 1, 0, 2, 3): (4, 5, 1, 0, 2, 3),\n",
888 " (4, 5, 1, 0, 3, 2): (4, 5, 1, 0, 3, 2),\n",
889 " (4, 5, 1, 2, 0, 3): (4, 5, 1, 2, 0, 3),\n",
890 " (4, 5, 1, 2, 3, 0): (4, 5, 1, 2, 3, 0),\n",
891 " (4, 5, 1, 3, 0, 2): (4, 5, 1, 3, 0, 2),\n",
892 " (4, 5, 1, 3, 2, 0): (4, 5, 1, 3, 2, 0),\n",
893 " (4, 5, 2, 0, 1, 3): (4, 5, 2, 0, 1, 3),\n",
894 " (4, 5, 2, 0, 3, 1): (4, 5, 2, 0, 3, 1),\n",
895 " (4, 5, 2, 1, 0, 3): (4, 5, 2, 1, 0, 3),\n",
896 " (4, 5, 2, 1, 3, 0): (4, 5, 2, 1, 3, 0),\n",
897 " (4, 5, 2, 3, 0, 1): (4, 5, 2, 3, 0, 1),\n",
898 " (4, 5, 2, 3, 1, 0): (4, 5, 2, 3, 1, 0),\n",
899 " (4, 5, 3, 0, 1, 2): (4, 5, 3, 0, 1, 2),\n",
900 " (4, 5, 3, 0, 2, 1): (4, 5, 3, 0, 2, 1),\n",
901 " (4, 5, 3, 1, 0, 2): (4, 5, 3, 1, 0, 2),\n",
902 " (4, 5, 3, 1, 2, 0): (4, 5, 3, 1, 2, 0),\n",
903 " (4, 5, 3, 2, 0, 1): (4, 5, 3, 2, 0, 1),\n",
904 " (4, 5, 3, 2, 1, 0): (4, 5, 3, 2, 1, 0),\n",
905 " (5, 0, 1, 2, 3, 4): (5, 0, 1, 2, 3, 4),\n",
906 " (5, 0, 1, 2, 4, 3): (5, 0, 1, 2, 4, 3),\n",
907 " (5, 0, 1, 3, 2, 4): (5, 0, 1, 3, 2, 4),\n",
908 " (5, 0, 1, 3, 4, 2): (5, 0, 1, 3, 4, 2),\n",
909 " (5, 0, 1, 4, 2, 3): (5, 0, 1, 4, 2, 3),\n",
910 " (5, 0, 1, 4, 3, 2): (5, 0, 1, 4, 3, 2),\n",
911 " (5, 0, 2, 1, 3, 4): (5, 0, 2, 1, 3, 4),\n",
912 " (5, 0, 2, 1, 4, 3): (5, 0, 2, 1, 4, 3),\n",
913 " (5, 0, 2, 3, 1, 4): (5, 0, 2, 3, 1, 4),\n",
914 " (5, 0, 2, 3, 4, 1): (5, 0, 2, 3, 4, 1),\n",
915 " (5, 0, 2, 4, 1, 3): (5, 0, 2, 4, 1, 3),\n",
916 " (5, 0, 2, 4, 3, 1): (5, 0, 2, 4, 3, 1),\n",
917 " (5, 0, 3, 1, 2, 4): (5, 0, 3, 1, 2, 4),\n",
918 " (5, 0, 3, 1, 4, 2): (5, 0, 3, 1, 4, 2),\n",
919 " (5, 0, 3, 2, 1, 4): (5, 0, 3, 2, 1, 4),\n",
920 " (5, 0, 3, 2, 4, 1): (5, 0, 3, 2, 4, 1),\n",
921 " (5, 0, 3, 4, 1, 2): (5, 0, 3, 4, 1, 2),\n",
922 " (5, 0, 3, 4, 2, 1): (5, 0, 3, 4, 2, 1),\n",
923 " (5, 0, 4, 1, 2, 3): (5, 0, 4, 1, 2, 3),\n",
924 " (5, 0, 4, 1, 3, 2): (5, 0, 4, 1, 3, 2),\n",
925 " (5, 0, 4, 2, 1, 3): (5, 0, 4, 2, 1, 3),\n",
926 " (5, 0, 4, 2, 3, 1): (5, 0, 4, 2, 3, 1),\n",
927 " (5, 0, 4, 3, 1, 2): (5, 0, 4, 3, 1, 2),\n",
928 " (5, 0, 4, 3, 2, 1): (5, 0, 4, 3, 2, 1),\n",
929 " (5, 1, 0, 2, 3, 4): (5, 1, 0, 2, 3, 4),\n",
930 " (5, 1, 0, 2, 4, 3): (5, 1, 0, 2, 4, 3),\n",
931 " (5, 1, 0, 3, 2, 4): (5, 1, 0, 3, 2, 4),\n",
932 " (5, 1, 0, 3, 4, 2): (5, 1, 0, 3, 4, 2),\n",
933 " (5, 1, 0, 4, 2, 3): (5, 1, 0, 4, 2, 3),\n",
934 " (5, 1, 0, 4, 3, 2): (5, 1, 0, 4, 3, 2),\n",
935 " (5, 1, 2, 0, 3, 4): (5, 1, 2, 0, 3, 4),\n",
936 " (5, 1, 2, 0, 4, 3): (5, 1, 2, 0, 4, 3),\n",
937 " (5, 1, 2, 3, 0, 4): (5, 1, 2, 3, 0, 4),\n",
938 " (5, 1, 2, 3, 4, 0): (5, 1, 2, 3, 4, 0),\n",
939 " (5, 1, 2, 4, 0, 3): (5, 1, 2, 4, 0, 3),\n",
940 " (5, 1, 2, 4, 3, 0): (5, 1, 2, 4, 3, 0),\n",
941 " (5, 1, 3, 0, 2, 4): (5, 1, 3, 0, 2, 4),\n",
942 " (5, 1, 3, 0, 4, 2): (5, 1, 3, 0, 4, 2),\n",
943 " (5, 1, 3, 2, 0, 4): (5, 1, 3, 2, 0, 4),\n",
944 " (5, 1, 3, 2, 4, 0): (5, 1, 3, 2, 4, 0),\n",
945 " (5, 1, 3, 4, 0, 2): (5, 1, 3, 4, 0, 2),\n",
946 " (5, 1, 3, 4, 2, 0): (5, 1, 3, 4, 2, 0),\n",
947 " (5, 1, 4, 0, 2, 3): (5, 1, 4, 0, 2, 3),\n",
948 " (5, 1, 4, 0, 3, 2): (5, 1, 4, 0, 3, 2),\n",
949 " (5, 1, 4, 2, 0, 3): (5, 1, 4, 2, 0, 3),\n",
950 " (5, 1, 4, 2, 3, 0): (5, 1, 4, 2, 3, 0),\n",
951 " (5, 1, 4, 3, 0, 2): (5, 1, 4, 3, 0, 2),\n",
952 " (5, 1, 4, 3, 2, 0): (5, 1, 4, 3, 2, 0),\n",
953 " (5, 2, 0, 1, 3, 4): (5, 2, 0, 1, 3, 4),\n",
954 " (5, 2, 0, 1, 4, 3): (5, 2, 0, 1, 4, 3),\n",
955 " (5, 2, 0, 3, 1, 4): (5, 2, 0, 3, 1, 4),\n",
956 " (5, 2, 0, 3, 4, 1): (5, 2, 0, 3, 4, 1),\n",
957 " (5, 2, 0, 4, 1, 3): (5, 2, 0, 4, 1, 3),\n",
958 " (5, 2, 0, 4, 3, 1): (5, 2, 0, 4, 3, 1),\n",
959 " (5, 2, 1, 0, 3, 4): (5, 2, 1, 0, 3, 4),\n",
960 " (5, 2, 1, 0, 4, 3): (5, 2, 1, 0, 4, 3),\n",
961 " (5, 2, 1, 3, 0, 4): (5, 2, 1, 3, 0, 4),\n",
962 " (5, 2, 1, 3, 4, 0): (5, 2, 1, 3, 4, 0),\n",
963 " (5, 2, 1, 4, 0, 3): (5, 2, 1, 4, 0, 3),\n",
964 " (5, 2, 1, 4, 3, 0): (5, 2, 1, 4, 3, 0),\n",
965 " (5, 2, 3, 0, 1, 4): (5, 2, 3, 0, 1, 4),\n",
966 " (5, 2, 3, 0, 4, 1): (5, 2, 3, 0, 4, 1),\n",
967 " (5, 2, 3, 1, 0, 4): (5, 2, 3, 1, 0, 4),\n",
968 " (5, 2, 3, 1, 4, 0): (5, 2, 3, 1, 4, 0),\n",
969 " (5, 2, 3, 4, 0, 1): (5, 2, 3, 4, 0, 1),\n",
970 " (5, 2, 3, 4, 1, 0): (5, 2, 3, 4, 1, 0),\n",
971 " (5, 2, 4, 0, 1, 3): (5, 2, 4, 0, 1, 3),\n",
972 " (5, 2, 4, 0, 3, 1): (5, 2, 4, 0, 3, 1),\n",
973 " (5, 2, 4, 1, 0, 3): (5, 2, 4, 1, 0, 3),\n",
974 " (5, 2, 4, 1, 3, 0): (5, 2, 4, 1, 3, 0),\n",
975 " (5, 2, 4, 3, 0, 1): (5, 2, 4, 3, 0, 1),\n",
976 " (5, 2, 4, 3, 1, 0): (5, 2, 4, 3, 1, 0),\n",
977 " (5, 3, 0, 1, 2, 4): (5, 3, 0, 1, 2, 4),\n",
978 " (5, 3, 0, 1, 4, 2): (5, 3, 0, 1, 4, 2),\n",
979 " (5, 3, 0, 2, 1, 4): (5, 3, 0, 2, 1, 4),\n",
980 " (5, 3, 0, 2, 4, 1): (5, 3, 0, 2, 4, 1),\n",
981 " (5, 3, 0, 4, 1, 2): (5, 3, 0, 4, 1, 2),\n",
982 " (5, 3, 0, 4, 2, 1): (5, 3, 0, 4, 2, 1),\n",
983 " (5, 3, 1, 0, 2, 4): (5, 3, 1, 0, 2, 4),\n",
984 " (5, 3, 1, 0, 4, 2): (5, 3, 1, 0, 4, 2),\n",
985 " (5, 3, 1, 2, 0, 4): (5, 3, 1, 2, 0, 4),\n",
986 " (5, 3, 1, 2, 4, 0): (5, 3, 1, 2, 4, 0),\n",
987 " (5, 3, 1, 4, 0, 2): (5, 3, 1, 4, 0, 2),\n",
988 " (5, 3, 1, 4, 2, 0): (5, 3, 1, 4, 2, 0),\n",
989 " (5, 3, 2, 0, 1, 4): (5, 3, 2, 0, 1, 4),\n",
990 " (5, 3, 2, 0, 4, 1): (5, 3, 2, 0, 4, 1),\n",
991 " (5, 3, 2, 1, 0, 4): (5, 3, 2, 1, 0, 4),\n",
992 " (5, 3, 2, 1, 4, 0): (5, 3, 2, 1, 4, 0),\n",
993 " (5, 3, 2, 4, 0, 1): (5, 3, 2, 4, 0, 1),\n",
994 " (5, 3, 2, 4, 1, 0): (5, 3, 2, 4, 1, 0),\n",
995 " (5, 3, 4, 0, 1, 2): (5, 3, 4, 0, 1, 2),\n",
996 " (5, 3, 4, 0, 2, 1): (5, 3, 4, 0, 2, 1),\n",
997 " (5, 3, 4, 1, 0, 2): (5, 3, 4, 1, 0, 2),\n",
998 " (5, 3, 4, 1, 2, 0): (5, 3, 4, 1, 2, 0),\n",
999 " (5, 3, 4, 2, 0, 1): (5, 3, 4, 2, 0, 1),\n",
1000 " (5, 3, 4, 2, 1, 0): (5, 3, 4, 2, 1, 0),\n",
1001 " (5, 4, 0, 1, 2, 3): (5, 4, 0, 1, 2, 3),\n",
1002 " (5, 4, 0, 1, 3, 2): (5, 4, 0, 1, 3, 2),\n",
1003 " (5, 4, 0, 2, 1, 3): (5, 4, 0, 2, 1, 3),\n",
1004 " (5, 4, 0, 2, 3, 1): (5, 4, 0, 2, 3, 1),\n",
1005 " (5, 4, 0, 3, 1, 2): (5, 4, 0, 3, 1, 2),\n",
1006 " (5, 4, 0, 3, 2, 1): (5, 4, 0, 3, 2, 1),\n",
1007 " (5, 4, 1, 0, 2, 3): (5, 4, 1, 0, 2, 3),\n",
1008 " (5, 4, 1, 0, 3, 2): (5, 4, 1, 0, 3, 2),\n",
1009 " (5, 4, 1, 2, 0, 3): (5, 4, 1, 2, 0, 3),\n",
1010 " (5, 4, 1, 2, 3, 0): (5, 4, 1, 2, 3, 0),\n",
1011 " (5, 4, 1, 3, 0, 2): (5, 4, 1, 3, 0, 2),\n",
1012 " (5, 4, 1, 3, 2, 0): (5, 4, 1, 3, 2, 0),\n",
1013 " (5, 4, 2, 0, 1, 3): (5, 4, 2, 0, 1, 3),\n",
1014 " (5, 4, 2, 0, 3, 1): (5, 4, 2, 0, 3, 1),\n",
1015 " (5, 4, 2, 1, 0, 3): (5, 4, 2, 1, 0, 3),\n",
1016 " (5, 4, 2, 1, 3, 0): (5, 4, 2, 1, 3, 0),\n",
1017 " (5, 4, 2, 3, 0, 1): (5, 4, 2, 3, 0, 1),\n",
1018 " (5, 4, 2, 3, 1, 0): (5, 4, 2, 3, 1, 0),\n",
1019 " (5, 4, 3, 0, 1, 2): (5, 4, 3, 0, 1, 2),\n",
1020 " (5, 4, 3, 0, 2, 1): (5, 4, 3, 0, 2, 1),\n",
1021 " (5, 4, 3, 1, 0, 2): (5, 4, 3, 1, 0, 2),\n",
1022 " (5, 4, 3, 1, 2, 0): (5, 4, 3, 1, 2, 0),\n",
1023 " (5, 4, 3, 2, 0, 1): (5, 4, 3, 2, 0, 1),\n",
1024 " (5, 4, 3, 2, 1, 0): (5, 4, 3, 2, 1, 0)}"
1025 ]
1026 },
1027 "execution_count": 10,
1028 "metadata": {},
1029 "output_type": "execute_result"
1030 }
1031 ],
1032 "source": [
1033 "transpositions6 = {t: t for t in set(itertools.permutations(list(range(6))))}\n",
1034 "transpositions6"
1035 ]
1036 },
1037 {
1038 "cell_type": "code",
1039 "execution_count": 13,
1040 "metadata": {},
1041 "outputs": [
1042 {
1043 "data": {
1044 "text/plain": [
1045 "(((2, 4, 3, 5, 0, 1), (1, 2), <AmscoFillStyle.reverse_each_row: 3>),\n",
1046 " -1437.9908206760847)"
1047 ]
1048 },
1049 "execution_count": 13,
1050 "metadata": {},
1051 "output_type": "execute_result"
1052 }
1053 ],
1054 "source": [
1055 "key_b, score = amsco_break(c7b, translist=transpositions6)\n",
1056 "key_b, score"
1057 ]
1058 },
1059 {
1060 "cell_type": "code",
1061 "execution_count": 14,
1062 "metadata": {},
1063 "outputs": [
1064 {
1065 "data": {
1066 "text/plain": [
1067 "[[AmscoSlice(index=0, start=0, end=1),\n",
1068 " AmscoSlice(index=1, start=1, end=3),\n",
1069 " AmscoSlice(index=2, start=3, end=4),\n",
1070 " AmscoSlice(index=3, start=4, end=6),\n",
1071 " AmscoSlice(index=4, start=6, end=7),\n",
1072 " AmscoSlice(index=5, start=7, end=9)],\n",
1073 " [AmscoSlice(index=6, start=9, end=11),\n",
1074 " AmscoSlice(index=7, start=11, end=12),\n",
1075 " AmscoSlice(index=8, start=12, end=14),\n",
1076 " AmscoSlice(index=9, start=14, end=15),\n",
1077 " AmscoSlice(index=10, start=15, end=17),\n",
1078 " AmscoSlice(index=11, start=17, end=18)],\n",
1079 " [AmscoSlice(index=12, start=18, end=19),\n",
1080 " AmscoSlice(index=13, start=19, end=21),\n",
1081 " AmscoSlice(index=14, start=21, end=22),\n",
1082 " AmscoSlice(index=15, start=22, end=24),\n",
1083 " AmscoSlice(index=16, start=24, end=25),\n",
1084 " AmscoSlice(index=17, start=25, end=27)],\n",
1085 " [AmscoSlice(index=18, start=27, end=29),\n",
1086 " AmscoSlice(index=19, start=29, end=30),\n",
1087 " AmscoSlice(index=20, start=30, end=32),\n",
1088 " AmscoSlice(index=21, start=32, end=33),\n",
1089 " AmscoSlice(index=22, start=33, end=35),\n",
1090 " AmscoSlice(index=23, start=35, end=36)],\n",
1091 " [AmscoSlice(index=24, start=36, end=37),\n",
1092 " AmscoSlice(index=25, start=37, end=39),\n",
1093 " AmscoSlice(index=26, start=39, end=40),\n",
1094 " AmscoSlice(index=27, start=40, end=42),\n",
1095 " AmscoSlice(index=28, start=42, end=43),\n",
1096 " AmscoSlice(index=29, start=43, end=45)],\n",
1097 " [AmscoSlice(index=30, start=45, end=47),\n",
1098 " AmscoSlice(index=31, start=47, end=48),\n",
1099 " AmscoSlice(index=32, start=48, end=50),\n",
1100 " AmscoSlice(index=33, start=50, end=51),\n",
1101 " AmscoSlice(index=34, start=51, end=53),\n",
1102 " AmscoSlice(index=35, start=53, end=54)],\n",
1103 " [AmscoSlice(index=36, start=54, end=55),\n",
1104 " AmscoSlice(index=37, start=55, end=57),\n",
1105 " AmscoSlice(index=38, start=57, end=58),\n",
1106 " AmscoSlice(index=39, start=58, end=60),\n",
1107 " AmscoSlice(index=40, start=60, end=61),\n",
1108 " AmscoSlice(index=41, start=61, end=63)],\n",
1109 " [AmscoSlice(index=42, start=63, end=65),\n",
1110 " AmscoSlice(index=43, start=65, end=66),\n",
1111 " AmscoSlice(index=44, start=66, end=68),\n",
1112 " AmscoSlice(index=45, start=68, end=69),\n",
1113 " AmscoSlice(index=46, start=69, end=71),\n",
1114 " AmscoSlice(index=47, start=71, end=72)],\n",
1115 " [AmscoSlice(index=48, start=72, end=73),\n",
1116 " AmscoSlice(index=49, start=73, end=75),\n",
1117 " AmscoSlice(index=50, start=75, end=76),\n",
1118 " AmscoSlice(index=51, start=76, end=78),\n",
1119 " AmscoSlice(index=52, start=78, end=79),\n",
1120 " AmscoSlice(index=53, start=79, end=81)],\n",
1121 " [AmscoSlice(index=54, start=81, end=83),\n",
1122 " AmscoSlice(index=55, start=83, end=84),\n",
1123 " AmscoSlice(index=56, start=84, end=86),\n",
1124 " AmscoSlice(index=57, start=86, end=87),\n",
1125 " AmscoSlice(index=58, start=87, end=89),\n",
1126 " AmscoSlice(index=59, start=89, end=90)],\n",
1127 " [AmscoSlice(index=60, start=90, end=91),\n",
1128 " AmscoSlice(index=61, start=91, end=93),\n",
1129 " AmscoSlice(index=62, start=93, end=94),\n",
1130 " AmscoSlice(index=63, start=94, end=96),\n",
1131 " AmscoSlice(index=64, start=96, end=97),\n",
1132 " AmscoSlice(index=65, start=97, end=99)],\n",
1133 " [AmscoSlice(index=66, start=99, end=101),\n",
1134 " AmscoSlice(index=67, start=101, end=102),\n",
1135 " AmscoSlice(index=68, start=102, end=104),\n",
1136 " AmscoSlice(index=69, start=104, end=105),\n",
1137 " AmscoSlice(index=70, start=105, end=107),\n",
1138 " AmscoSlice(index=71, start=107, end=108)],\n",
1139 " [AmscoSlice(index=72, start=108, end=109),\n",
1140 " AmscoSlice(index=73, start=109, end=111),\n",
1141 " AmscoSlice(index=74, start=111, end=112),\n",
1142 " AmscoSlice(index=75, start=112, end=114),\n",
1143 " AmscoSlice(index=76, start=114, end=115),\n",
1144 " AmscoSlice(index=77, start=115, end=117)],\n",
1145 " [AmscoSlice(index=78, start=117, end=119),\n",
1146 " AmscoSlice(index=79, start=119, end=120),\n",
1147 " AmscoSlice(index=80, start=120, end=122),\n",
1148 " AmscoSlice(index=81, start=122, end=123),\n",
1149 " AmscoSlice(index=82, start=123, end=125),\n",
1150 " AmscoSlice(index=83, start=125, end=126)],\n",
1151 " [AmscoSlice(index=84, start=126, end=127),\n",
1152 " AmscoSlice(index=85, start=127, end=129),\n",
1153 " AmscoSlice(index=86, start=129, end=130),\n",
1154 " AmscoSlice(index=87, start=130, end=132),\n",
1155 " AmscoSlice(index=88, start=132, end=133),\n",
1156 " AmscoSlice(index=89, start=133, end=135)],\n",
1157 " [AmscoSlice(index=90, start=135, end=137),\n",
1158 " AmscoSlice(index=91, start=137, end=138),\n",
1159 " AmscoSlice(index=92, start=138, end=140),\n",
1160 " AmscoSlice(index=93, start=140, end=141),\n",
1161 " AmscoSlice(index=94, start=141, end=143),\n",
1162 " AmscoSlice(index=95, start=143, end=144)],\n",
1163 " [AmscoSlice(index=96, start=144, end=145),\n",
1164 " AmscoSlice(index=97, start=145, end=147),\n",
1165 " AmscoSlice(index=98, start=147, end=148),\n",
1166 " AmscoSlice(index=99, start=148, end=150),\n",
1167 " AmscoSlice(index=100, start=150, end=151),\n",
1168 " AmscoSlice(index=101, start=151, end=153)],\n",
1169 " [AmscoSlice(index=102, start=153, end=155),\n",
1170 " AmscoSlice(index=103, start=155, end=156),\n",
1171 " AmscoSlice(index=104, start=156, end=158),\n",
1172 " AmscoSlice(index=105, start=158, end=159),\n",
1173 " AmscoSlice(index=106, start=159, end=161),\n",
1174 " AmscoSlice(index=107, start=161, end=162)],\n",
1175 " [AmscoSlice(index=108, start=162, end=163),\n",
1176 " AmscoSlice(index=109, start=163, end=165),\n",
1177 " AmscoSlice(index=110, start=165, end=166),\n",
1178 " AmscoSlice(index=111, start=166, end=168),\n",
1179 " AmscoSlice(index=112, start=168, end=169),\n",
1180 " AmscoSlice(index=113, start=169, end=171)],\n",
1181 " [AmscoSlice(index=114, start=171, end=173),\n",
1182 " AmscoSlice(index=115, start=173, end=174),\n",
1183 " AmscoSlice(index=116, start=174, end=176),\n",
1184 " AmscoSlice(index=117, start=176, end=177),\n",
1185 " AmscoSlice(index=118, start=177, end=179),\n",
1186 " AmscoSlice(index=119, start=179, end=180)],\n",
1187 " [AmscoSlice(index=120, start=180, end=181),\n",
1188 " AmscoSlice(index=121, start=181, end=183),\n",
1189 " AmscoSlice(index=122, start=183, end=184),\n",
1190 " AmscoSlice(index=123, start=184, end=186),\n",
1191 " AmscoSlice(index=124, start=186, end=187),\n",
1192 " AmscoSlice(index=125, start=187, end=189)],\n",
1193 " [AmscoSlice(index=126, start=189, end=191),\n",
1194 " AmscoSlice(index=127, start=191, end=192),\n",
1195 " AmscoSlice(index=128, start=192, end=194),\n",
1196 " AmscoSlice(index=129, start=194, end=195),\n",
1197 " AmscoSlice(index=130, start=195, end=197),\n",
1198 " AmscoSlice(index=131, start=197, end=198)],\n",
1199 " [AmscoSlice(index=132, start=198, end=199),\n",
1200 " AmscoSlice(index=133, start=199, end=201),\n",
1201 " AmscoSlice(index=134, start=201, end=202),\n",
1202 " AmscoSlice(index=135, start=202, end=204),\n",
1203 " AmscoSlice(index=136, start=204, end=205),\n",
1204 " AmscoSlice(index=137, start=205, end=207)],\n",
1205 " [AmscoSlice(index=138, start=207, end=209),\n",
1206 " AmscoSlice(index=139, start=209, end=210),\n",
1207 " AmscoSlice(index=140, start=210, end=212),\n",
1208 " AmscoSlice(index=141, start=212, end=213),\n",
1209 " AmscoSlice(index=142, start=213, end=215),\n",
1210 " AmscoSlice(index=143, start=215, end=216)],\n",
1211 " [AmscoSlice(index=144, start=216, end=217),\n",
1212 " AmscoSlice(index=145, start=217, end=219),\n",
1213 " AmscoSlice(index=146, start=219, end=220),\n",
1214 " AmscoSlice(index=147, start=220, end=222),\n",
1215 " AmscoSlice(index=148, start=222, end=223),\n",
1216 " AmscoSlice(index=149, start=223, end=225)],\n",
1217 " [AmscoSlice(index=150, start=225, end=227),\n",
1218 " AmscoSlice(index=151, start=227, end=228),\n",
1219 " AmscoSlice(index=152, start=228, end=230),\n",
1220 " AmscoSlice(index=153, start=230, end=231),\n",
1221 " AmscoSlice(index=154, start=231, end=233),\n",
1222 " AmscoSlice(index=155, start=233, end=234)],\n",
1223 " [AmscoSlice(index=156, start=234, end=235),\n",
1224 " AmscoSlice(index=157, start=235, end=237),\n",
1225 " AmscoSlice(index=158, start=237, end=238),\n",
1226 " AmscoSlice(index=159, start=238, end=240),\n",
1227 " AmscoSlice(index=160, start=240, end=241),\n",
1228 " AmscoSlice(index=161, start=241, end=243)],\n",
1229 " [AmscoSlice(index=162, start=243, end=245),\n",
1230 " AmscoSlice(index=163, start=245, end=246),\n",
1231 " AmscoSlice(index=164, start=246, end=248),\n",
1232 " AmscoSlice(index=165, start=248, end=249),\n",
1233 " AmscoSlice(index=166, start=249, end=251),\n",
1234 " AmscoSlice(index=167, start=251, end=252)],\n",
1235 " [AmscoSlice(index=168, start=252, end=253),\n",
1236 " AmscoSlice(index=169, start=253, end=255),\n",
1237 " AmscoSlice(index=170, start=255, end=256),\n",
1238 " AmscoSlice(index=171, start=256, end=258),\n",
1239 " AmscoSlice(index=172, start=258, end=259),\n",
1240 " AmscoSlice(index=173, start=259, end=261)],\n",
1241 " [AmscoSlice(index=174, start=261, end=263),\n",
1242 " AmscoSlice(index=175, start=263, end=264),\n",
1243 " AmscoSlice(index=176, start=264, end=266),\n",
1244 " AmscoSlice(index=177, start=266, end=267),\n",
1245 " AmscoSlice(index=178, start=267, end=269),\n",
1246 " AmscoSlice(index=179, start=269, end=270)],\n",
1247 " [AmscoSlice(index=180, start=270, end=271),\n",
1248 " AmscoSlice(index=181, start=271, end=273),\n",
1249 " AmscoSlice(index=182, start=273, end=274),\n",
1250 " AmscoSlice(index=183, start=274, end=276),\n",
1251 " AmscoSlice(index=184, start=276, end=277),\n",
1252 " AmscoSlice(index=185, start=277, end=279)],\n",
1253 " [AmscoSlice(index=186, start=279, end=281),\n",
1254 " AmscoSlice(index=187, start=281, end=282),\n",
1255 " AmscoSlice(index=188, start=282, end=284),\n",
1256 " AmscoSlice(index=189, start=284, end=285),\n",
1257 " AmscoSlice(index=190, start=285, end=287),\n",
1258 " AmscoSlice(index=191, start=287, end=288)],\n",
1259 " [AmscoSlice(index=192, start=288, end=289),\n",
1260 " AmscoSlice(index=193, start=289, end=291),\n",
1261 " AmscoSlice(index=194, start=291, end=292),\n",
1262 " AmscoSlice(index=195, start=292, end=294),\n",
1263 " AmscoSlice(index=196, start=294, end=295),\n",
1264 " AmscoSlice(index=197, start=295, end=297)],\n",
1265 " [AmscoSlice(index=198, start=297, end=299),\n",
1266 " AmscoSlice(index=199, start=299, end=300),\n",
1267 " AmscoSlice(index=200, start=300, end=302),\n",
1268 " AmscoSlice(index=201, start=302, end=303),\n",
1269 " AmscoSlice(index=202, start=303, end=305),\n",
1270 " AmscoSlice(index=203, start=305, end=306)],\n",
1271 " [AmscoSlice(index=204, start=306, end=307),\n",
1272 " AmscoSlice(index=205, start=307, end=309),\n",
1273 " AmscoSlice(index=206, start=309, end=310),\n",
1274 " AmscoSlice(index=207, start=310, end=312),\n",
1275 " AmscoSlice(index=208, start=312, end=313),\n",
1276 " AmscoSlice(index=209, start=313, end=315)],\n",
1277 " [AmscoSlice(index=210, start=315, end=317),\n",
1278 " AmscoSlice(index=211, start=317, end=318),\n",
1279 " AmscoSlice(index=212, start=318, end=320),\n",
1280 " AmscoSlice(index=213, start=320, end=321),\n",
1281 " AmscoSlice(index=214, start=321, end=323),\n",
1282 " AmscoSlice(index=215, start=323, end=324)],\n",
1283 " [AmscoSlice(index=216, start=324, end=325),\n",
1284 " AmscoSlice(index=217, start=325, end=327),\n",
1285 " AmscoSlice(index=218, start=327, end=328),\n",
1286 " AmscoSlice(index=219, start=328, end=330),\n",
1287 " AmscoSlice(index=220, start=330, end=331),\n",
1288 " AmscoSlice(index=221, start=331, end=333)],\n",
1289 " [AmscoSlice(index=222, start=333, end=335),\n",
1290 " AmscoSlice(index=223, start=335, end=336),\n",
1291 " AmscoSlice(index=224, start=336, end=338),\n",
1292 " AmscoSlice(index=225, start=338, end=339),\n",
1293 " AmscoSlice(index=226, start=339, end=341),\n",
1294 " AmscoSlice(index=227, start=341, end=342)],\n",
1295 " [AmscoSlice(index=228, start=342, end=343),\n",
1296 " AmscoSlice(index=229, start=343, end=345),\n",
1297 " AmscoSlice(index=230, start=345, end=346),\n",
1298 " AmscoSlice(index=231, start=346, end=348),\n",
1299 " AmscoSlice(index=232, start=348, end=349),\n",
1300 " AmscoSlice(index=233, start=349, end=351)],\n",
1301 " [AmscoSlice(index=234, start=351, end=353),\n",
1302 " AmscoSlice(index=235, start=353, end=354),\n",
1303 " AmscoSlice(index=236, start=354, end=356),\n",
1304 " AmscoSlice(index=237, start=356, end=357),\n",
1305 " AmscoSlice(index=238, start=357, end=359),\n",
1306 " AmscoSlice(index=239, start=359, end=360)],\n",
1307 " [AmscoSlice(index=240, start=360, end=361),\n",
1308 " AmscoSlice(index=241, start=361, end=363),\n",
1309 " AmscoSlice(index=242, start=363, end=364),\n",
1310 " AmscoSlice(index=243, start=364, end=366),\n",
1311 " AmscoSlice(index=244, start=366, end=367),\n",
1312 " AmscoSlice(index=245, start=367, end=369)],\n",
1313 " [AmscoSlice(index=246, start=369, end=371),\n",
1314 " AmscoSlice(index=247, start=371, end=372),\n",
1315 " AmscoSlice(index=248, start=372, end=374),\n",
1316 " AmscoSlice(index=249, start=374, end=375),\n",
1317 " AmscoSlice(index=250, start=375, end=377),\n",
1318 " AmscoSlice(index=251, start=377, end=378)],\n",
1319 " [AmscoSlice(index=252, start=378, end=379),\n",
1320 " AmscoSlice(index=253, start=379, end=381),\n",
1321 " AmscoSlice(index=254, start=381, end=382),\n",
1322 " AmscoSlice(index=255, start=382, end=384),\n",
1323 " AmscoSlice(index=256, start=384, end=385),\n",
1324 " AmscoSlice(index=257, start=385, end=387)],\n",
1325 " [AmscoSlice(index=258, start=387, end=389),\n",
1326 " AmscoSlice(index=259, start=389, end=390),\n",
1327 " AmscoSlice(index=260, start=390, end=392),\n",
1328 " AmscoSlice(index=261, start=392, end=393),\n",
1329 " AmscoSlice(index=262, start=393, end=395),\n",
1330 " AmscoSlice(index=263, start=395, end=396)],\n",
1331 " [AmscoSlice(index=264, start=396, end=397),\n",
1332 " AmscoSlice(index=265, start=397, end=399),\n",
1333 " AmscoSlice(index=266, start=399, end=400),\n",
1334 " AmscoSlice(index=267, start=400, end=402),\n",
1335 " AmscoSlice(index=268, start=402, end=403),\n",
1336 " AmscoSlice(index=269, start=403, end=405)],\n",
1337 " [AmscoSlice(index=270, start=405, end=407),\n",
1338 " AmscoSlice(index=271, start=407, end=408),\n",
1339 " AmscoSlice(index=272, start=408, end=410),\n",
1340 " AmscoSlice(index=273, start=410, end=411),\n",
1341 " AmscoSlice(index=274, start=411, end=413),\n",
1342 " AmscoSlice(index=275, start=413, end=414)],\n",
1343 " [AmscoSlice(index=276, start=414, end=415),\n",
1344 " AmscoSlice(index=277, start=415, end=417),\n",
1345 " AmscoSlice(index=278, start=417, end=418),\n",
1346 " AmscoSlice(index=279, start=418, end=420),\n",
1347 " AmscoSlice(index=280, start=420, end=421),\n",
1348 " AmscoSlice(index=281, start=421, end=423)],\n",
1349 " [AmscoSlice(index=282, start=423, end=425),\n",
1350 " AmscoSlice(index=283, start=425, end=426),\n",
1351 " AmscoSlice(index=284, start=426, end=428),\n",
1352 " AmscoSlice(index=285, start=428, end=429),\n",
1353 " AmscoSlice(index=286, start=429, end=431),\n",
1354 " AmscoSlice(index=287, start=431, end=432)],\n",
1355 " [AmscoSlice(index=288, start=432, end=433),\n",
1356 " AmscoSlice(index=289, start=433, end=435),\n",
1357 " AmscoSlice(index=290, start=435, end=436),\n",
1358 " AmscoSlice(index=291, start=436, end=438),\n",
1359 " AmscoSlice(index=292, start=438, end=439),\n",
1360 " AmscoSlice(index=293, start=439, end=441)],\n",
1361 " [AmscoSlice(index=294, start=441, end=443),\n",
1362 " AmscoSlice(index=295, start=443, end=444),\n",
1363 " AmscoSlice(index=296, start=444, end=446),\n",
1364 " AmscoSlice(index=297, start=446, end=447),\n",
1365 " AmscoSlice(index=298, start=447, end=449),\n",
1366 " AmscoSlice(index=299, start=449, end=450)],\n",
1367 " [AmscoSlice(index=300, start=450, end=451),\n",
1368 " AmscoSlice(index=301, start=451, end=453),\n",
1369 " AmscoSlice(index=302, start=453, end=454),\n",
1370 " AmscoSlice(index=303, start=454, end=456),\n",
1371 " AmscoSlice(index=304, start=456, end=457),\n",
1372 " AmscoSlice(index=305, start=457, end=459)],\n",
1373 " [AmscoSlice(index=306, start=459, end=461),\n",
1374 " AmscoSlice(index=307, start=461, end=462),\n",
1375 " AmscoSlice(index=308, start=462, end=464),\n",
1376 " AmscoSlice(index=309, start=464, end=465),\n",
1377 " AmscoSlice(index=310, start=465, end=467),\n",
1378 " AmscoSlice(index=311, start=467, end=468)],\n",
1379 " [AmscoSlice(index=312, start=468, end=469),\n",
1380 " AmscoSlice(index=313, start=469, end=471),\n",
1381 " AmscoSlice(index=314, start=471, end=472),\n",
1382 " AmscoSlice(index=315, start=472, end=474),\n",
1383 " AmscoSlice(index=316, start=474, end=475),\n",
1384 " AmscoSlice(index=317, start=475, end=477)],\n",
1385 " [AmscoSlice(index=318, start=477, end=479),\n",
1386 " AmscoSlice(index=319, start=479, end=480),\n",
1387 " AmscoSlice(index=320, start=480, end=482),\n",
1388 " AmscoSlice(index=321, start=482, end=483),\n",
1389 " AmscoSlice(index=322, start=483, end=485),\n",
1390 " AmscoSlice(index=323, start=485, end=486)],\n",
1391 " [AmscoSlice(index=324, start=486, end=487),\n",
1392 " AmscoSlice(index=325, start=487, end=489),\n",
1393 " AmscoSlice(index=326, start=489, end=490),\n",
1394 " AmscoSlice(index=327, start=490, end=492),\n",
1395 " AmscoSlice(index=328, start=492, end=493),\n",
1396 " AmscoSlice(index=329, start=493, end=495)],\n",
1397 " [AmscoSlice(index=330, start=495, end=497),\n",
1398 " AmscoSlice(index=331, start=497, end=498),\n",
1399 " AmscoSlice(index=332, start=498, end=500),\n",
1400 " AmscoSlice(index=333, start=500, end=501),\n",
1401 " AmscoSlice(index=334, start=501, end=503),\n",
1402 " AmscoSlice(index=335, start=503, end=504)],\n",
1403 " [AmscoSlice(index=336, start=504, end=505),\n",
1404 " AmscoSlice(index=337, start=505, end=507),\n",
1405 " AmscoSlice(index=338, start=507, end=508),\n",
1406 " AmscoSlice(index=339, start=508, end=510),\n",
1407 " AmscoSlice(index=340, start=510, end=511),\n",
1408 " AmscoSlice(index=341, start=511, end=513)],\n",
1409 " [AmscoSlice(index=342, start=513, end=515),\n",
1410 " AmscoSlice(index=343, start=515, end=516),\n",
1411 " AmscoSlice(index=344, start=516, end=518),\n",
1412 " AmscoSlice(index=345, start=518, end=519),\n",
1413 " AmscoSlice(index=346, start=519, end=521),\n",
1414 " AmscoSlice(index=347, start=521, end=522)],\n",
1415 " [AmscoSlice(index=348, start=522, end=523),\n",
1416 " AmscoSlice(index=349, start=523, end=525),\n",
1417 " AmscoSlice(index=350, start=525, end=526),\n",
1418 " AmscoSlice(index=351, start=526, end=528),\n",
1419 " AmscoSlice(index=352, start=528, end=529),\n",
1420 " AmscoSlice(index=353, start=529, end=531)],\n",
1421 " [AmscoSlice(index=354, start=531, end=533),\n",
1422 " AmscoSlice(index=355, start=533, end=534),\n",
1423 " AmscoSlice(index=356, start=534, end=536),\n",
1424 " AmscoSlice(index=357, start=536, end=537),\n",
1425 " AmscoSlice(index=358, start=537, end=539),\n",
1426 " AmscoSlice(index=359, start=539, end=540)],\n",
1427 " [AmscoSlice(index=360, start=540, end=541),\n",
1428 " AmscoSlice(index=361, start=541, end=543),\n",
1429 " AmscoSlice(index=362, start=543, end=544),\n",
1430 " AmscoSlice(index=363, start=544, end=546),\n",
1431 " AmscoSlice(index=364, start=546, end=547),\n",
1432 " AmscoSlice(index=365, start=547, end=549)],\n",
1433 " [AmscoSlice(index=366, start=549, end=551),\n",
1434 " AmscoSlice(index=367, start=551, end=552),\n",
1435 " AmscoSlice(index=368, start=552, end=554),\n",
1436 " AmscoSlice(index=369, start=554, end=555),\n",
1437 " AmscoSlice(index=370, start=555, end=557),\n",
1438 " AmscoSlice(index=371, start=557, end=558)],\n",
1439 " [AmscoSlice(index=372, start=558, end=559),\n",
1440 " AmscoSlice(index=373, start=559, end=561),\n",
1441 " AmscoSlice(index=374, start=561, end=562),\n",
1442 " AmscoSlice(index=375, start=562, end=564),\n",
1443 " AmscoSlice(index=376, start=564, end=565),\n",
1444 " AmscoSlice(index=377, start=565, end=567)],\n",
1445 " [AmscoSlice(index=378, start=567, end=569),\n",
1446 " AmscoSlice(index=379, start=569, end=570),\n",
1447 " AmscoSlice(index=380, start=570, end=572),\n",
1448 " AmscoSlice(index=381, start=572, end=573),\n",
1449 " AmscoSlice(index=382, start=573, end=575),\n",
1450 " AmscoSlice(index=383, start=575, end=576)],\n",
1451 " [AmscoSlice(index=384, start=576, end=577),\n",
1452 " AmscoSlice(index=385, start=577, end=579),\n",
1453 " AmscoSlice(index=386, start=579, end=580),\n",
1454 " AmscoSlice(index=387, start=580, end=582),\n",
1455 " AmscoSlice(index=388, start=582, end=583),\n",
1456 " AmscoSlice(index=389, start=583, end=585)],\n",
1457 " [AmscoSlice(index=390, start=585, end=587),\n",
1458 " AmscoSlice(index=391, start=587, end=588),\n",
1459 " AmscoSlice(index=392, start=588, end=590),\n",
1460 " AmscoSlice(index=393, start=590, end=591),\n",
1461 " AmscoSlice(index=394, start=591, end=593),\n",
1462 " AmscoSlice(index=395, start=593, end=594)],\n",
1463 " [AmscoSlice(index=396, start=594, end=595),\n",
1464 " AmscoSlice(index=397, start=595, end=597),\n",
1465 " AmscoSlice(index=398, start=597, end=598),\n",
1466 " AmscoSlice(index=399, start=598, end=600),\n",
1467 " AmscoSlice(index=400, start=600, end=601),\n",
1468 " AmscoSlice(index=401, start=601, end=603)],\n",
1469 " [AmscoSlice(index=402, start=603, end=605),\n",
1470 " AmscoSlice(index=403, start=605, end=606),\n",
1471 " AmscoSlice(index=404, start=606, end=608),\n",
1472 " AmscoSlice(index=405, start=608, end=609),\n",
1473 " AmscoSlice(index=406, start=609, end=611),\n",
1474 " AmscoSlice(index=407, start=611, end=612)]]"
1475 ]
1476 },
1477 "execution_count": 14,
1478 "metadata": {},
1479 "output_type": "execute_result"
1480 }
1481 ],
1482 "source": [
1483 "amsco_transposition_positions(c7b, 'abcdef', \n",
1484 " fillpattern=(1, 2),\n",
1485 " fillstyle=AmscoFillStyle.reverse_each_row)"
1486 ]
1487 },
1488 {
1489 "cell_type": "code",
1490 "execution_count": 15,
1491 "metadata": {
1492 "scrolled": true
1493 },
1494 "outputs": [
1495 {
1496 "data": {
1497 "text/plain": [
1498 "['stager',\n",
1499 " 'staler',\n",
1500 " 'stalin',\n",
1501 " 'stamen',\n",
1502 " 'sucker',\n",
1503 " 'tucker',\n",
1504 " 'twangs',\n",
1505 " 'twerps',\n",
1506 " 'twirls',\n",
1507 " 'staffer',\n",
1508 " 'stagers',\n",
1509 " 'stagger',\n",
1510 " 'stalins',\n",
1511 " 'stamens',\n",
1512 " 'stamina',\n",
1513 " 'stammer',\n",
1514 " 'statler',\n",
1515 " 'suckers',\n",
1516 " 'sudsier',\n",
1517 " 'swagger',\n",
1518 " 'tubbier',\n",
1519 " 'tycoons',\n",
1520 " 'loadable',\n",
1521 " 'noblemen',\n",
1522 " 'rubidium',\n",
1523 " 'staffers',\n",
1524 " 'staggers',\n",
1525 " 'staminas',\n",
1526 " 'stammers',\n",
1527 " 'standard',\n",
1528 " 'steelier',\n",
1529 " 'submerse',\n",
1530 " 'swaggers',\n",
1531 " 'tubbiest',\n",
1532 " 'tuitions',\n",
1533 " 'twenties',\n",
1534 " 'stalemate',\n",
1535 " 'staleness',\n",
1536 " 'stalinist',\n",
1537 " 'stammerer',\n",
1538 " 'standards',\n",
1539 " 'submerses',\n",
1540 " 'swaggerer',\n",
1541 " 'stalemates',\n",
1542 " 'stalenesss',\n",
1543 " 'stammerers',\n",
1544 " 'stepsister',\n",
1545 " 'succulence',\n",
1546 " 'statistical',\n",
1547 " 'stepsisters',\n",
1548 " 'succulences',\n",
1549 " 'statistician',\n",
1550 " 'statisticians']"
1551 ]
1552 },
1553 "execution_count": 15,
1554 "metadata": {},
1555 "output_type": "execute_result"
1556 }
1557 ],
1558 "source": [
1559 "transpositions[key_b[0]]"
1560 ]
1561 },
1562 {
1563 "cell_type": "code",
1564 "execution_count": 16,
1565 "metadata": {},
1566 "outputs": [
1567 {
1568 "name": "stdout",
1569 "output_type": "stream",
1570 "text": [
1571 "security protocol solitaire comrades under a decree from moscow we are confined to using a new high security stream cipher stolen from the americans the solitaire cipher all files classified top secret and above are to be archived using this method this new field cipher has been tested and proven to match the security of the fi alka machine without the overhead of the technology you will need only a deck of cards to implement the cipher the key to be used will be provided and distributed on a one time pad and you must destroy the key as you use it the key consists of a random shuffle of a full deck of cards together with two distinguishable jokers agents should be freely able to carry this equipment without arousing suspicion\n"
1572 ]
1573 }
1574 ],
1575 "source": [
1576 "print(' '.join(segment(sanitise(\n",
1577 " amsco_transposition_decipher(sanitise(c7b), \n",
1578 " keyword=transpositions[key_b[0]][0], \n",
1579 " fillpattern=key_b[1],\n",
1580 " fillstyle=key_b[2])\n",
1581 " ))))"
1582 ]
1583 },
1584 {
1585 "cell_type": "code",
1586 "execution_count": null,
1587 "metadata": {},
1588 "outputs": [],
1589 "source": []
1590 }
1591 ],
1592 "metadata": {
1593 "kernelspec": {
1594 "display_name": "Python 3",
1595 "language": "python",
1596 "name": "python3"
1597 },
1598 "language_info": {
1599 "codemirror_mode": {
1600 "name": "ipython",
1601 "version": 3
1602 },
1603 "file_extension": ".py",
1604 "mimetype": "text/x-python",
1605 "name": "python",
1606 "nbconvert_exporter": "python",
1607 "pygments_lexer": "ipython3",
1608 "version": "3.6.3"
1609 }
1610 },
1611 "nbformat": 4,
1612 "nbformat_minor": 1
1613 }