How to use c1 method in fast-check-monorepo

Best JavaScript code snippet using fast-check-monorepo

prepared-transactions.spec

Source:prepared-transactions.spec Github

copy

Full Screen

1# This test verifies that if there's a series of rw-conflicts2# s1 ---> s2 ---> s3, with s3 committing first3# at least one transaction will be aborted, regardless of the order in4# which the conflicts are detected and transactions prepare and5# commit.6#7#8# Tables test2 and test3 are used to create the9# s1 --> s2 and s2 --> s3 rw-dependencies respectively10#11# test1 isn't involved in the anomaly; s1 only inserts a row into it12# so that there's an easy way to tell (by looking for that row) if s113# successfully committed.14#15# force_snapshot is used to force s2 and s3 to take their snapshot16# immediately after BEGIN, so we can be sure the three transactions17# overlap.18setup19{20 CREATE TABLE test1 (a int);21 CREATE TABLE test2 (b int);22 CREATE TABLE test3 (c int);23 CREATE TABLE force_snapshot (a int);24}25teardown26{27 DROP TABLE test1;28 DROP TABLE test2;29 DROP TABLE test3;30 DROP TABLE force_snapshot;31}32session "s1"33setup { BEGIN ISOLATION LEVEL SERIALIZABLE; INSERT INTO test1 VALUES (1); }34step "r1" { SELECT * FROM test2; }35step "p1" { PREPARE TRANSACTION 's1'; }36step "c1" { COMMIT PREPARED 's1'; }37session "s2"38setup { BEGIN ISOLATION LEVEL SERIALIZABLE; SELECT * FROM force_snapshot; }39step "r2" { SELECT * FROM test3; }40step "w2" { INSERT INTO test2 VALUES (2); }41step "p2" { PREPARE TRANSACTION 's2'; }42step "c2" { COMMIT PREPARED 's2'; }43session "s3"44setup { BEGIN ISOLATION LEVEL SERIALIZABLE; SELECT * FROM force_snapshot; }45step "w3" { INSERT INTO test3 VALUES (3); }46step "p3" { PREPARE TRANSACTION 's3'; }47step "c3" { COMMIT PREPARED 's3'; }48# When run at the end of the permutations below, this SELECT statement49# should never return any tuples, because at least one of the three50# transactions involved should be aborted.51session "s4"52step "check" { SELECT * FROM test1,test2,test3; }53# We run on all permutations of the statements above subject to the54# following constraints:55# - each transaction's reads/writes must happen before it prepares56# - each transaction must prepare before committing57# - s3 must be the first of the three transactions to commit58# ...which means that each permutation should fail.59#60# To bring the number of permutations down a bit, we further require61# them to satisfy *one* of the following:62# - r1 < w2 < r2 < w3 (T1-->T2 conflict on write, T2-->T3 on write)63# - r1 < w2 < w3 < r2 (T1-->T2 conflict on read, T2-->T3 on write)64# - w2 < r1 < r2 < w3 (T1-->T2 conflict on write, T2-->T3 on read)65# - w2 < r1 < w3 < r2 (T1-->T2 conflict on read, T2-->T3 on read)66# This eliminates some redundant combinations. For example, it doesn't67# matter if w2 happens before w3 as long as both come before the68# conflicting reads.69permutation "r1" "r2" "w2" "w3" "p1" "p2" "p3" "c3" "c1" "c2" "check"70permutation "r1" "r2" "w2" "w3" "p1" "p2" "p3" "c3" "c2" "c1" "check"71permutation "r1" "r2" "w2" "w3" "p1" "p3" "p2" "c3" "c1" "c2" "check"72permutation "r1" "r2" "w2" "w3" "p1" "p3" "p2" "c3" "c2" "c1" "check"73permutation "r1" "r2" "w2" "w3" "p1" "p3" "c3" "p2" "c1" "c2" "check"74permutation "r1" "r2" "w2" "w3" "p1" "p3" "c3" "p2" "c2" "c1" "check"75permutation "r1" "r2" "w2" "w3" "p1" "p3" "c3" "c1" "p2" "c2" "check"76permutation "r1" "r2" "w2" "w3" "p2" "p1" "p3" "c3" "c1" "c2" "check"77permutation "r1" "r2" "w2" "w3" "p2" "p1" "p3" "c3" "c2" "c1" "check"78permutation "r1" "r2" "w2" "w3" "p2" "p3" "p1" "c3" "c1" "c2" "check"79permutation "r1" "r2" "w2" "w3" "p2" "p3" "p1" "c3" "c2" "c1" "check"80permutation "r1" "r2" "w2" "w3" "p2" "p3" "c3" "p1" "c1" "c2" "check"81permutation "r1" "r2" "w2" "w3" "p2" "p3" "c3" "p1" "c2" "c1" "check"82permutation "r1" "r2" "w2" "w3" "p2" "p3" "c3" "c2" "p1" "c1" "check"83permutation "r1" "r2" "w2" "w3" "p3" "p1" "p2" "c3" "c1" "c2" "check"84permutation "r1" "r2" "w2" "w3" "p3" "p1" "p2" "c3" "c2" "c1" "check"85permutation "r1" "r2" "w2" "w3" "p3" "p1" "c3" "p2" "c1" "c2" "check"86permutation "r1" "r2" "w2" "w3" "p3" "p1" "c3" "p2" "c2" "c1" "check"87permutation "r1" "r2" "w2" "w3" "p3" "p1" "c3" "c1" "p2" "c2" "check"88permutation "r1" "r2" "w2" "w3" "p3" "p2" "p1" "c3" "c1" "c2" "check"89permutation "r1" "r2" "w2" "w3" "p3" "p2" "p1" "c3" "c2" "c1" "check"90permutation "r1" "r2" "w2" "w3" "p3" "p2" "c3" "p1" "c1" "c2" "check"91permutation "r1" "r2" "w2" "w3" "p3" "p2" "c3" "p1" "c2" "c1" "check"92permutation "r1" "r2" "w2" "w3" "p3" "p2" "c3" "c2" "p1" "c1" "check"93permutation "r1" "r2" "w2" "w3" "p3" "c3" "p1" "p2" "c1" "c2" "check"94permutation "r1" "r2" "w2" "w3" "p3" "c3" "p1" "p2" "c2" "c1" "check"95permutation "r1" "r2" "w2" "w3" "p3" "c3" "p1" "c1" "p2" "c2" "check"96permutation "r1" "r2" "w2" "w3" "p3" "c3" "p2" "p1" "c1" "c2" "check"97permutation "r1" "r2" "w2" "w3" "p3" "c3" "p2" "p1" "c2" "c1" "check"98permutation "r1" "r2" "w2" "w3" "p3" "c3" "p2" "c2" "p1" "c1" "check"99permutation "r1" "r2" "w2" "p1" "w3" "p2" "p3" "c3" "c1" "c2" "check"100permutation "r1" "r2" "w2" "p1" "w3" "p2" "p3" "c3" "c2" "c1" "check"101permutation "r1" "r2" "w2" "p1" "w3" "p3" "p2" "c3" "c1" "c2" "check"102permutation "r1" "r2" "w2" "p1" "w3" "p3" "p2" "c3" "c2" "c1" "check"103permutation "r1" "r2" "w2" "p1" "w3" "p3" "c3" "p2" "c1" "c2" "check"104permutation "r1" "r2" "w2" "p1" "w3" "p3" "c3" "p2" "c2" "c1" "check"105permutation "r1" "r2" "w2" "p1" "w3" "p3" "c3" "c1" "p2" "c2" "check"106permutation "r1" "r2" "w2" "p1" "p2" "w3" "p3" "c3" "c1" "c2" "check"107permutation "r1" "r2" "w2" "p1" "p2" "w3" "p3" "c3" "c2" "c1" "check"108permutation "r1" "r2" "w2" "p2" "w3" "p1" "p3" "c3" "c1" "c2" "check"109permutation "r1" "r2" "w2" "p2" "w3" "p1" "p3" "c3" "c2" "c1" "check"110permutation "r1" "r2" "w2" "p2" "w3" "p3" "p1" "c3" "c1" "c2" "check"111permutation "r1" "r2" "w2" "p2" "w3" "p3" "p1" "c3" "c2" "c1" "check"112permutation "r1" "r2" "w2" "p2" "w3" "p3" "c3" "p1" "c1" "c2" "check"113permutation "r1" "r2" "w2" "p2" "w3" "p3" "c3" "p1" "c2" "c1" "check"114permutation "r1" "r2" "w2" "p2" "w3" "p3" "c3" "c2" "p1" "c1" "check"115permutation "r1" "r2" "w2" "p2" "p1" "w3" "p3" "c3" "c1" "c2" "check"116permutation "r1" "r2" "w2" "p2" "p1" "w3" "p3" "c3" "c2" "c1" "check"117permutation "r1" "r2" "p1" "w2" "w3" "p2" "p3" "c3" "c1" "c2" "check"118permutation "r1" "r2" "p1" "w2" "w3" "p2" "p3" "c3" "c2" "c1" "check"119permutation "r1" "r2" "p1" "w2" "w3" "p3" "p2" "c3" "c1" "c2" "check"120permutation "r1" "r2" "p1" "w2" "w3" "p3" "p2" "c3" "c2" "c1" "check"121permutation "r1" "r2" "p1" "w2" "w3" "p3" "c3" "p2" "c1" "c2" "check"122permutation "r1" "r2" "p1" "w2" "w3" "p3" "c3" "p2" "c2" "c1" "check"123permutation "r1" "r2" "p1" "w2" "w3" "p3" "c3" "c1" "p2" "c2" "check"124permutation "r1" "r2" "p1" "w2" "p2" "w3" "p3" "c3" "c1" "c2" "check"125permutation "r1" "r2" "p1" "w2" "p2" "w3" "p3" "c3" "c2" "c1" "check"126permutation "r1" "w2" "w3" "r2" "p1" "p2" "p3" "c3" "c1" "c2" "check"127permutation "r1" "w2" "w3" "r2" "p1" "p2" "p3" "c3" "c2" "c1" "check"128permutation "r1" "w2" "w3" "r2" "p1" "p3" "p2" "c3" "c1" "c2" "check"129permutation "r1" "w2" "w3" "r2" "p1" "p3" "p2" "c3" "c2" "c1" "check"130permutation "r1" "w2" "w3" "r2" "p1" "p3" "c3" "p2" "c1" "c2" "check"131permutation "r1" "w2" "w3" "r2" "p1" "p3" "c3" "p2" "c2" "c1" "check"132permutation "r1" "w2" "w3" "r2" "p1" "p3" "c3" "c1" "p2" "c2" "check"133permutation "r1" "w2" "w3" "r2" "p2" "p1" "p3" "c3" "c1" "c2" "check"134permutation "r1" "w2" "w3" "r2" "p2" "p1" "p3" "c3" "c2" "c1" "check"135permutation "r1" "w2" "w3" "r2" "p2" "p3" "p1" "c3" "c1" "c2" "check"136permutation "r1" "w2" "w3" "r2" "p2" "p3" "p1" "c3" "c2" "c1" "check"137permutation "r1" "w2" "w3" "r2" "p2" "p3" "c3" "p1" "c1" "c2" "check"138permutation "r1" "w2" "w3" "r2" "p2" "p3" "c3" "p1" "c2" "c1" "check"139permutation "r1" "w2" "w3" "r2" "p2" "p3" "c3" "c2" "p1" "c1" "check"140permutation "r1" "w2" "w3" "r2" "p3" "p1" "p2" "c3" "c1" "c2" "check"141permutation "r1" "w2" "w3" "r2" "p3" "p1" "p2" "c3" "c2" "c1" "check"142permutation "r1" "w2" "w3" "r2" "p3" "p1" "c3" "p2" "c1" "c2" "check"143permutation "r1" "w2" "w3" "r2" "p3" "p1" "c3" "p2" "c2" "c1" "check"144permutation "r1" "w2" "w3" "r2" "p3" "p1" "c3" "c1" "p2" "c2" "check"145permutation "r1" "w2" "w3" "r2" "p3" "p2" "p1" "c3" "c1" "c2" "check"146permutation "r1" "w2" "w3" "r2" "p3" "p2" "p1" "c3" "c2" "c1" "check"147permutation "r1" "w2" "w3" "r2" "p3" "p2" "c3" "p1" "c1" "c2" "check"148permutation "r1" "w2" "w3" "r2" "p3" "p2" "c3" "p1" "c2" "c1" "check"149permutation "r1" "w2" "w3" "r2" "p3" "p2" "c3" "c2" "p1" "c1" "check"150permutation "r1" "w2" "w3" "r2" "p3" "c3" "p1" "p2" "c1" "c2" "check"151permutation "r1" "w2" "w3" "r2" "p3" "c3" "p1" "p2" "c2" "c1" "check"152permutation "r1" "w2" "w3" "r2" "p3" "c3" "p1" "c1" "p2" "c2" "check"153permutation "r1" "w2" "w3" "r2" "p3" "c3" "p2" "p1" "c1" "c2" "check"154permutation "r1" "w2" "w3" "r2" "p3" "c3" "p2" "p1" "c2" "c1" "check"155permutation "r1" "w2" "w3" "r2" "p3" "c3" "p2" "c2" "p1" "c1" "check"156permutation "r1" "w2" "w3" "p1" "r2" "p2" "p3" "c3" "c1" "c2" "check"157permutation "r1" "w2" "w3" "p1" "r2" "p2" "p3" "c3" "c2" "c1" "check"158permutation "r1" "w2" "w3" "p1" "r2" "p3" "p2" "c3" "c1" "c2" "check"159permutation "r1" "w2" "w3" "p1" "r2" "p3" "p2" "c3" "c2" "c1" "check"160permutation "r1" "w2" "w3" "p1" "r2" "p3" "c3" "p2" "c1" "c2" "check"161permutation "r1" "w2" "w3" "p1" "r2" "p3" "c3" "p2" "c2" "c1" "check"162permutation "r1" "w2" "w3" "p1" "r2" "p3" "c3" "c1" "p2" "c2" "check"163permutation "r1" "w2" "w3" "p1" "p3" "r2" "p2" "c3" "c1" "c2" "check"164permutation "r1" "w2" "w3" "p1" "p3" "r2" "p2" "c3" "c2" "c1" "check"165permutation "r1" "w2" "w3" "p1" "p3" "r2" "c3" "p2" "c1" "c2" "check"166permutation "r1" "w2" "w3" "p1" "p3" "r2" "c3" "p2" "c2" "c1" "check"167permutation "r1" "w2" "w3" "p1" "p3" "r2" "c3" "c1" "p2" "c2" "check"168permutation "r1" "w2" "w3" "p1" "p3" "c3" "r2" "p2" "c1" "c2" "check"169permutation "r1" "w2" "w3" "p1" "p3" "c3" "r2" "p2" "c2" "c1" "check"170permutation "r1" "w2" "w3" "p1" "p3" "c3" "r2" "c1" "p2" "c2" "check"171permutation "r1" "w2" "w3" "p1" "p3" "c3" "c1" "r2" "p2" "c2" "check"172permutation "r1" "w2" "w3" "p3" "r2" "p1" "p2" "c3" "c1" "c2" "check"173permutation "r1" "w2" "w3" "p3" "r2" "p1" "p2" "c3" "c2" "c1" "check"174permutation "r1" "w2" "w3" "p3" "r2" "p1" "c3" "p2" "c1" "c2" "check"175permutation "r1" "w2" "w3" "p3" "r2" "p1" "c3" "p2" "c2" "c1" "check"176permutation "r1" "w2" "w3" "p3" "r2" "p1" "c3" "c1" "p2" "c2" "check"177permutation "r1" "w2" "w3" "p3" "r2" "p2" "p1" "c3" "c1" "c2" "check"178permutation "r1" "w2" "w3" "p3" "r2" "p2" "p1" "c3" "c2" "c1" "check"179permutation "r1" "w2" "w3" "p3" "r2" "p2" "c3" "p1" "c1" "c2" "check"180permutation "r1" "w2" "w3" "p3" "r2" "p2" "c3" "p1" "c2" "c1" "check"181permutation "r1" "w2" "w3" "p3" "r2" "p2" "c3" "c2" "p1" "c1" "check"182permutation "r1" "w2" "w3" "p3" "r2" "c3" "p1" "p2" "c1" "c2" "check"183permutation "r1" "w2" "w3" "p3" "r2" "c3" "p1" "p2" "c2" "c1" "check"184permutation "r1" "w2" "w3" "p3" "r2" "c3" "p1" "c1" "p2" "c2" "check"185permutation "r1" "w2" "w3" "p3" "r2" "c3" "p2" "p1" "c1" "c2" "check"186permutation "r1" "w2" "w3" "p3" "r2" "c3" "p2" "p1" "c2" "c1" "check"187permutation "r1" "w2" "w3" "p3" "r2" "c3" "p2" "c2" "p1" "c1" "check"188permutation "r1" "w2" "w3" "p3" "p1" "r2" "p2" "c3" "c1" "c2" "check"189permutation "r1" "w2" "w3" "p3" "p1" "r2" "p2" "c3" "c2" "c1" "check"190permutation "r1" "w2" "w3" "p3" "p1" "r2" "c3" "p2" "c1" "c2" "check"191permutation "r1" "w2" "w3" "p3" "p1" "r2" "c3" "p2" "c2" "c1" "check"192permutation "r1" "w2" "w3" "p3" "p1" "r2" "c3" "c1" "p2" "c2" "check"193permutation "r1" "w2" "w3" "p3" "p1" "c3" "r2" "p2" "c1" "c2" "check"194permutation "r1" "w2" "w3" "p3" "p1" "c3" "r2" "p2" "c2" "c1" "check"195permutation "r1" "w2" "w3" "p3" "p1" "c3" "r2" "c1" "p2" "c2" "check"196permutation "r1" "w2" "w3" "p3" "p1" "c3" "c1" "r2" "p2" "c2" "check"197permutation "r1" "w2" "w3" "p3" "c3" "r2" "p1" "p2" "c1" "c2" "check"198permutation "r1" "w2" "w3" "p3" "c3" "r2" "p1" "p2" "c2" "c1" "check"199permutation "r1" "w2" "w3" "p3" "c3" "r2" "p1" "c1" "p2" "c2" "check"200permutation "r1" "w2" "w3" "p3" "c3" "r2" "p2" "p1" "c1" "c2" "check"201permutation "r1" "w2" "w3" "p3" "c3" "r2" "p2" "p1" "c2" "c1" "check"202permutation "r1" "w2" "w3" "p3" "c3" "r2" "p2" "c2" "p1" "c1" "check"203permutation "r1" "w2" "w3" "p3" "c3" "p1" "r2" "p2" "c1" "c2" "check"204permutation "r1" "w2" "w3" "p3" "c3" "p1" "r2" "p2" "c2" "c1" "check"205permutation "r1" "w2" "w3" "p3" "c3" "p1" "r2" "c1" "p2" "c2" "check"206permutation "r1" "w2" "w3" "p3" "c3" "p1" "c1" "r2" "p2" "c2" "check"207permutation "r1" "w2" "p1" "w3" "r2" "p2" "p3" "c3" "c1" "c2" "check"208permutation "r1" "w2" "p1" "w3" "r2" "p2" "p3" "c3" "c2" "c1" "check"209permutation "r1" "w2" "p1" "w3" "r2" "p3" "p2" "c3" "c1" "c2" "check"210permutation "r1" "w2" "p1" "w3" "r2" "p3" "p2" "c3" "c2" "c1" "check"211permutation "r1" "w2" "p1" "w3" "r2" "p3" "c3" "p2" "c1" "c2" "check"212permutation "r1" "w2" "p1" "w3" "r2" "p3" "c3" "p2" "c2" "c1" "check"213permutation "r1" "w2" "p1" "w3" "r2" "p3" "c3" "c1" "p2" "c2" "check"214permutation "r1" "w2" "p1" "w3" "p3" "r2" "p2" "c3" "c1" "c2" "check"215permutation "r1" "w2" "p1" "w3" "p3" "r2" "p2" "c3" "c2" "c1" "check"216permutation "r1" "w2" "p1" "w3" "p3" "r2" "c3" "p2" "c1" "c2" "check"217permutation "r1" "w2" "p1" "w3" "p3" "r2" "c3" "p2" "c2" "c1" "check"218permutation "r1" "w2" "p1" "w3" "p3" "r2" "c3" "c1" "p2" "c2" "check"219permutation "r1" "w2" "p1" "w3" "p3" "c3" "r2" "p2" "c1" "c2" "check"220permutation "r1" "w2" "p1" "w3" "p3" "c3" "r2" "p2" "c2" "c1" "check"221permutation "r1" "w2" "p1" "w3" "p3" "c3" "r2" "c1" "p2" "c2" "check"222permutation "r1" "w2" "p1" "w3" "p3" "c3" "c1" "r2" "p2" "c2" "check"223permutation "r1" "w3" "r2" "w2" "p1" "p2" "p3" "c3" "c1" "c2" "check"224permutation "r1" "w3" "r2" "w2" "p1" "p2" "p3" "c3" "c2" "c1" "check"225permutation "r1" "w3" "r2" "w2" "p1" "p3" "p2" "c3" "c1" "c2" "check"226permutation "r1" "w3" "r2" "w2" "p1" "p3" "p2" "c3" "c2" "c1" "check"227permutation "r1" "w3" "r2" "w2" "p1" "p3" "c3" "p2" "c1" "c2" "check"228permutation "r1" "w3" "r2" "w2" "p1" "p3" "c3" "p2" "c2" "c1" "check"229permutation "r1" "w3" "r2" "w2" "p1" "p3" "c3" "c1" "p2" "c2" "check"230permutation "r1" "w3" "r2" "w2" "p2" "p1" "p3" "c3" "c1" "c2" "check"231permutation "r1" "w3" "r2" "w2" "p2" "p1" "p3" "c3" "c2" "c1" "check"232permutation "r1" "w3" "r2" "w2" "p2" "p3" "p1" "c3" "c1" "c2" "check"233permutation "r1" "w3" "r2" "w2" "p2" "p3" "p1" "c3" "c2" "c1" "check"234permutation "r1" "w3" "r2" "w2" "p2" "p3" "c3" "p1" "c1" "c2" "check"235permutation "r1" "w3" "r2" "w2" "p2" "p3" "c3" "p1" "c2" "c1" "check"236permutation "r1" "w3" "r2" "w2" "p2" "p3" "c3" "c2" "p1" "c1" "check"237permutation "r1" "w3" "r2" "w2" "p3" "p1" "p2" "c3" "c1" "c2" "check"238permutation "r1" "w3" "r2" "w2" "p3" "p1" "p2" "c3" "c2" "c1" "check"239permutation "r1" "w3" "r2" "w2" "p3" "p1" "c3" "p2" "c1" "c2" "check"240permutation "r1" "w3" "r2" "w2" "p3" "p1" "c3" "p2" "c2" "c1" "check"241permutation "r1" "w3" "r2" "w2" "p3" "p1" "c3" "c1" "p2" "c2" "check"242permutation "r1" "w3" "r2" "w2" "p3" "p2" "p1" "c3" "c1" "c2" "check"243permutation "r1" "w3" "r2" "w2" "p3" "p2" "p1" "c3" "c2" "c1" "check"244permutation "r1" "w3" "r2" "w2" "p3" "p2" "c3" "p1" "c1" "c2" "check"245permutation "r1" "w3" "r2" "w2" "p3" "p2" "c3" "p1" "c2" "c1" "check"246permutation "r1" "w3" "r2" "w2" "p3" "p2" "c3" "c2" "p1" "c1" "check"247permutation "r1" "w3" "r2" "w2" "p3" "c3" "p1" "p2" "c1" "c2" "check"248permutation "r1" "w3" "r2" "w2" "p3" "c3" "p1" "p2" "c2" "c1" "check"249permutation "r1" "w3" "r2" "w2" "p3" "c3" "p1" "c1" "p2" "c2" "check"250permutation "r1" "w3" "r2" "w2" "p3" "c3" "p2" "p1" "c1" "c2" "check"251permutation "r1" "w3" "r2" "w2" "p3" "c3" "p2" "p1" "c2" "c1" "check"252permutation "r1" "w3" "r2" "w2" "p3" "c3" "p2" "c2" "p1" "c1" "check"253permutation "r1" "w3" "r2" "p1" "w2" "p2" "p3" "c3" "c1" "c2" "check"254permutation "r1" "w3" "r2" "p1" "w2" "p2" "p3" "c3" "c2" "c1" "check"255permutation "r1" "w3" "r2" "p1" "w2" "p3" "p2" "c3" "c1" "c2" "check"256permutation "r1" "w3" "r2" "p1" "w2" "p3" "p2" "c3" "c2" "c1" "check"257permutation "r1" "w3" "r2" "p1" "w2" "p3" "c3" "p2" "c1" "c2" "check"258permutation "r1" "w3" "r2" "p1" "w2" "p3" "c3" "p2" "c2" "c1" "check"259permutation "r1" "w3" "r2" "p1" "w2" "p3" "c3" "c1" "p2" "c2" "check"260permutation "r1" "w3" "r2" "p1" "p3" "w2" "p2" "c3" "c1" "c2" "check"261permutation "r1" "w3" "r2" "p1" "p3" "w2" "p2" "c3" "c2" "c1" "check"262permutation "r1" "w3" "r2" "p1" "p3" "w2" "c3" "p2" "c1" "c2" "check"263permutation "r1" "w3" "r2" "p1" "p3" "w2" "c3" "p2" "c2" "c1" "check"264permutation "r1" "w3" "r2" "p1" "p3" "w2" "c3" "c1" "p2" "c2" "check"265permutation "r1" "w3" "r2" "p1" "p3" "c3" "w2" "p2" "c1" "c2" "check"266permutation "r1" "w3" "r2" "p1" "p3" "c3" "w2" "p2" "c2" "c1" "check"267permutation "r1" "w3" "r2" "p1" "p3" "c3" "w2" "c1" "p2" "c2" "check"268permutation "r1" "w3" "r2" "p1" "p3" "c3" "c1" "w2" "p2" "c2" "check"269permutation "r1" "w3" "r2" "p3" "w2" "p1" "p2" "c3" "c1" "c2" "check"270permutation "r1" "w3" "r2" "p3" "w2" "p1" "p2" "c3" "c2" "c1" "check"271permutation "r1" "w3" "r2" "p3" "w2" "p1" "c3" "p2" "c1" "c2" "check"272permutation "r1" "w3" "r2" "p3" "w2" "p1" "c3" "p2" "c2" "c1" "check"273permutation "r1" "w3" "r2" "p3" "w2" "p1" "c3" "c1" "p2" "c2" "check"274permutation "r1" "w3" "r2" "p3" "w2" "p2" "p1" "c3" "c1" "c2" "check"275permutation "r1" "w3" "r2" "p3" "w2" "p2" "p1" "c3" "c2" "c1" "check"276permutation "r1" "w3" "r2" "p3" "w2" "p2" "c3" "p1" "c1" "c2" "check"277permutation "r1" "w3" "r2" "p3" "w2" "p2" "c3" "p1" "c2" "c1" "check"278permutation "r1" "w3" "r2" "p3" "w2" "p2" "c3" "c2" "p1" "c1" "check"279permutation "r1" "w3" "r2" "p3" "w2" "c3" "p1" "p2" "c1" "c2" "check"280permutation "r1" "w3" "r2" "p3" "w2" "c3" "p1" "p2" "c2" "c1" "check"281permutation "r1" "w3" "r2" "p3" "w2" "c3" "p1" "c1" "p2" "c2" "check"282permutation "r1" "w3" "r2" "p3" "w2" "c3" "p2" "p1" "c1" "c2" "check"283permutation "r1" "w3" "r2" "p3" "w2" "c3" "p2" "p1" "c2" "c1" "check"284permutation "r1" "w3" "r2" "p3" "w2" "c3" "p2" "c2" "p1" "c1" "check"285permutation "r1" "w3" "r2" "p3" "p1" "w2" "p2" "c3" "c1" "c2" "check"286permutation "r1" "w3" "r2" "p3" "p1" "w2" "p2" "c3" "c2" "c1" "check"287permutation "r1" "w3" "r2" "p3" "p1" "w2" "c3" "p2" "c1" "c2" "check"288permutation "r1" "w3" "r2" "p3" "p1" "w2" "c3" "p2" "c2" "c1" "check"289permutation "r1" "w3" "r2" "p3" "p1" "w2" "c3" "c1" "p2" "c2" "check"290permutation "r1" "w3" "r2" "p3" "p1" "c3" "w2" "p2" "c1" "c2" "check"291permutation "r1" "w3" "r2" "p3" "p1" "c3" "w2" "p2" "c2" "c1" "check"292permutation "r1" "w3" "r2" "p3" "p1" "c3" "w2" "c1" "p2" "c2" "check"293permutation "r1" "w3" "r2" "p3" "p1" "c3" "c1" "w2" "p2" "c2" "check"294permutation "r1" "w3" "r2" "p3" "c3" "w2" "p1" "p2" "c1" "c2" "check"295permutation "r1" "w3" "r2" "p3" "c3" "w2" "p1" "p2" "c2" "c1" "check"296permutation "r1" "w3" "r2" "p3" "c3" "w2" "p1" "c1" "p2" "c2" "check"297permutation "r1" "w3" "r2" "p3" "c3" "w2" "p2" "p1" "c1" "c2" "check"298permutation "r1" "w3" "r2" "p3" "c3" "w2" "p2" "p1" "c2" "c1" "check"299permutation "r1" "w3" "r2" "p3" "c3" "w2" "p2" "c2" "p1" "c1" "check"300permutation "r1" "w3" "r2" "p3" "c3" "p1" "w2" "p2" "c1" "c2" "check"301permutation "r1" "w3" "r2" "p3" "c3" "p1" "w2" "p2" "c2" "c1" "check"302permutation "r1" "w3" "r2" "p3" "c3" "p1" "w2" "c1" "p2" "c2" "check"303permutation "r1" "w3" "r2" "p3" "c3" "p1" "c1" "w2" "p2" "c2" "check"304permutation "r1" "w3" "w2" "r2" "p1" "p2" "p3" "c3" "c1" "c2" "check"305permutation "r1" "w3" "w2" "r2" "p1" "p2" "p3" "c3" "c2" "c1" "check"306permutation "r1" "w3" "w2" "r2" "p1" "p3" "p2" "c3" "c1" "c2" "check"307permutation "r1" "w3" "w2" "r2" "p1" "p3" "p2" "c3" "c2" "c1" "check"308permutation "r1" "w3" "w2" "r2" "p1" "p3" "c3" "p2" "c1" "c2" "check"309permutation "r1" "w3" "w2" "r2" "p1" "p3" "c3" "p2" "c2" "c1" "check"310permutation "r1" "w3" "w2" "r2" "p1" "p3" "c3" "c1" "p2" "c2" "check"311permutation "r1" "w3" "w2" "r2" "p2" "p1" "p3" "c3" "c1" "c2" "check"312permutation "r1" "w3" "w2" "r2" "p2" "p1" "p3" "c3" "c2" "c1" "check"313permutation "r1" "w3" "w2" "r2" "p2" "p3" "p1" "c3" "c1" "c2" "check"314permutation "r1" "w3" "w2" "r2" "p2" "p3" "p1" "c3" "c2" "c1" "check"315permutation "r1" "w3" "w2" "r2" "p2" "p3" "c3" "p1" "c1" "c2" "check"316permutation "r1" "w3" "w2" "r2" "p2" "p3" "c3" "p1" "c2" "c1" "check"317permutation "r1" "w3" "w2" "r2" "p2" "p3" "c3" "c2" "p1" "c1" "check"318permutation "r1" "w3" "w2" "r2" "p3" "p1" "p2" "c3" "c1" "c2" "check"319permutation "r1" "w3" "w2" "r2" "p3" "p1" "p2" "c3" "c2" "c1" "check"320permutation "r1" "w3" "w2" "r2" "p3" "p1" "c3" "p2" "c1" "c2" "check"321permutation "r1" "w3" "w2" "r2" "p3" "p1" "c3" "p2" "c2" "c1" "check"322permutation "r1" "w3" "w2" "r2" "p3" "p1" "c3" "c1" "p2" "c2" "check"323permutation "r1" "w3" "w2" "r2" "p3" "p2" "p1" "c3" "c1" "c2" "check"324permutation "r1" "w3" "w2" "r2" "p3" "p2" "p1" "c3" "c2" "c1" "check"325permutation "r1" "w3" "w2" "r2" "p3" "p2" "c3" "p1" "c1" "c2" "check"326permutation "r1" "w3" "w2" "r2" "p3" "p2" "c3" "p1" "c2" "c1" "check"327permutation "r1" "w3" "w2" "r2" "p3" "p2" "c3" "c2" "p1" "c1" "check"328permutation "r1" "w3" "w2" "r2" "p3" "c3" "p1" "p2" "c1" "c2" "check"329permutation "r1" "w3" "w2" "r2" "p3" "c3" "p1" "p2" "c2" "c1" "check"330permutation "r1" "w3" "w2" "r2" "p3" "c3" "p1" "c1" "p2" "c2" "check"331permutation "r1" "w3" "w2" "r2" "p3" "c3" "p2" "p1" "c1" "c2" "check"332permutation "r1" "w3" "w2" "r2" "p3" "c3" "p2" "p1" "c2" "c1" "check"333permutation "r1" "w3" "w2" "r2" "p3" "c3" "p2" "c2" "p1" "c1" "check"334permutation "r1" "w3" "w2" "p1" "r2" "p2" "p3" "c3" "c1" "c2" "check"335permutation "r1" "w3" "w2" "p1" "r2" "p2" "p3" "c3" "c2" "c1" "check"336permutation "r1" "w3" "w2" "p1" "r2" "p3" "p2" "c3" "c1" "c2" "check"337permutation "r1" "w3" "w2" "p1" "r2" "p3" "p2" "c3" "c2" "c1" "check"338permutation "r1" "w3" "w2" "p1" "r2" "p3" "c3" "p2" "c1" "c2" "check"339permutation "r1" "w3" "w2" "p1" "r2" "p3" "c3" "p2" "c2" "c1" "check"340permutation "r1" "w3" "w2" "p1" "r2" "p3" "c3" "c1" "p2" "c2" "check"341permutation "r1" "w3" "w2" "p1" "p3" "r2" "p2" "c3" "c1" "c2" "check"342permutation "r1" "w3" "w2" "p1" "p3" "r2" "p2" "c3" "c2" "c1" "check"343permutation "r1" "w3" "w2" "p1" "p3" "r2" "c3" "p2" "c1" "c2" "check"344permutation "r1" "w3" "w2" "p1" "p3" "r2" "c3" "p2" "c2" "c1" "check"345permutation "r1" "w3" "w2" "p1" "p3" "r2" "c3" "c1" "p2" "c2" "check"346permutation "r1" "w3" "w2" "p1" "p3" "c3" "r2" "p2" "c1" "c2" "check"347permutation "r1" "w3" "w2" "p1" "p3" "c3" "r2" "p2" "c2" "c1" "check"348permutation "r1" "w3" "w2" "p1" "p3" "c3" "r2" "c1" "p2" "c2" "check"349permutation "r1" "w3" "w2" "p1" "p3" "c3" "c1" "r2" "p2" "c2" "check"350permutation "r1" "w3" "w2" "p3" "r2" "p1" "p2" "c3" "c1" "c2" "check"351permutation "r1" "w3" "w2" "p3" "r2" "p1" "p2" "c3" "c2" "c1" "check"352permutation "r1" "w3" "w2" "p3" "r2" "p1" "c3" "p2" "c1" "c2" "check"353permutation "r1" "w3" "w2" "p3" "r2" "p1" "c3" "p2" "c2" "c1" "check"354permutation "r1" "w3" "w2" "p3" "r2" "p1" "c3" "c1" "p2" "c2" "check"355permutation "r1" "w3" "w2" "p3" "r2" "p2" "p1" "c3" "c1" "c2" "check"356permutation "r1" "w3" "w2" "p3" "r2" "p2" "p1" "c3" "c2" "c1" "check"357permutation "r1" "w3" "w2" "p3" "r2" "p2" "c3" "p1" "c1" "c2" "check"358permutation "r1" "w3" "w2" "p3" "r2" "p2" "c3" "p1" "c2" "c1" "check"359permutation "r1" "w3" "w2" "p3" "r2" "p2" "c3" "c2" "p1" "c1" "check"360permutation "r1" "w3" "w2" "p3" "r2" "c3" "p1" "p2" "c1" "c2" "check"361permutation "r1" "w3" "w2" "p3" "r2" "c3" "p1" "p2" "c2" "c1" "check"362permutation "r1" "w3" "w2" "p3" "r2" "c3" "p1" "c1" "p2" "c2" "check"363permutation "r1" "w3" "w2" "p3" "r2" "c3" "p2" "p1" "c1" "c2" "check"364permutation "r1" "w3" "w2" "p3" "r2" "c3" "p2" "p1" "c2" "c1" "check"365permutation "r1" "w3" "w2" "p3" "r2" "c3" "p2" "c2" "p1" "c1" "check"366permutation "r1" "w3" "w2" "p3" "p1" "r2" "p2" "c3" "c1" "c2" "check"367permutation "r1" "w3" "w2" "p3" "p1" "r2" "p2" "c3" "c2" "c1" "check"368permutation "r1" "w3" "w2" "p3" "p1" "r2" "c3" "p2" "c1" "c2" "check"369permutation "r1" "w3" "w2" "p3" "p1" "r2" "c3" "p2" "c2" "c1" "check"370permutation "r1" "w3" "w2" "p3" "p1" "r2" "c3" "c1" "p2" "c2" "check"371permutation "r1" "w3" "w2" "p3" "p1" "c3" "r2" "p2" "c1" "c2" "check"372permutation "r1" "w3" "w2" "p3" "p1" "c3" "r2" "p2" "c2" "c1" "check"373permutation "r1" "w3" "w2" "p3" "p1" "c3" "r2" "c1" "p2" "c2" "check"374permutation "r1" "w3" "w2" "p3" "p1" "c3" "c1" "r2" "p2" "c2" "check"375permutation "r1" "w3" "w2" "p3" "c3" "r2" "p1" "p2" "c1" "c2" "check"376permutation "r1" "w3" "w2" "p3" "c3" "r2" "p1" "p2" "c2" "c1" "check"377permutation "r1" "w3" "w2" "p3" "c3" "r2" "p1" "c1" "p2" "c2" "check"378permutation "r1" "w3" "w2" "p3" "c3" "r2" "p2" "p1" "c1" "c2" "check"379permutation "r1" "w3" "w2" "p3" "c3" "r2" "p2" "p1" "c2" "c1" "check"380permutation "r1" "w3" "w2" "p3" "c3" "r2" "p2" "c2" "p1" "c1" "check"381permutation "r1" "w3" "w2" "p3" "c3" "p1" "r2" "p2" "c1" "c2" "check"382permutation "r1" "w3" "w2" "p3" "c3" "p1" "r2" "p2" "c2" "c1" "check"383permutation "r1" "w3" "w2" "p3" "c3" "p1" "r2" "c1" "p2" "c2" "check"384permutation "r1" "w3" "w2" "p3" "c3" "p1" "c1" "r2" "p2" "c2" "check"385permutation "r1" "w3" "p1" "r2" "w2" "p2" "p3" "c3" "c1" "c2" "check"386permutation "r1" "w3" "p1" "r2" "w2" "p2" "p3" "c3" "c2" "c1" "check"387permutation "r1" "w3" "p1" "r2" "w2" "p3" "p2" "c3" "c1" "c2" "check"388permutation "r1" "w3" "p1" "r2" "w2" "p3" "p2" "c3" "c2" "c1" "check"389permutation "r1" "w3" "p1" "r2" "w2" "p3" "c3" "p2" "c1" "c2" "check"390permutation "r1" "w3" "p1" "r2" "w2" "p3" "c3" "p2" "c2" "c1" "check"391permutation "r1" "w3" "p1" "r2" "w2" "p3" "c3" "c1" "p2" "c2" "check"392permutation "r1" "w3" "p1" "r2" "p3" "w2" "p2" "c3" "c1" "c2" "check"393permutation "r1" "w3" "p1" "r2" "p3" "w2" "p2" "c3" "c2" "c1" "check"394permutation "r1" "w3" "p1" "r2" "p3" "w2" "c3" "p2" "c1" "c2" "check"395permutation "r1" "w3" "p1" "r2" "p3" "w2" "c3" "p2" "c2" "c1" "check"396permutation "r1" "w3" "p1" "r2" "p3" "w2" "c3" "c1" "p2" "c2" "check"397permutation "r1" "w3" "p1" "r2" "p3" "c3" "w2" "p2" "c1" "c2" "check"398permutation "r1" "w3" "p1" "r2" "p3" "c3" "w2" "p2" "c2" "c1" "check"399permutation "r1" "w3" "p1" "r2" "p3" "c3" "w2" "c1" "p2" "c2" "check"400permutation "r1" "w3" "p1" "r2" "p3" "c3" "c1" "w2" "p2" "c2" "check"401permutation "r1" "w3" "p1" "w2" "r2" "p2" "p3" "c3" "c1" "c2" "check"402permutation "r1" "w3" "p1" "w2" "r2" "p2" "p3" "c3" "c2" "c1" "check"403permutation "r1" "w3" "p1" "w2" "r2" "p3" "p2" "c3" "c1" "c2" "check"404permutation "r1" "w3" "p1" "w2" "r2" "p3" "p2" "c3" "c2" "c1" "check"405permutation "r1" "w3" "p1" "w2" "r2" "p3" "c3" "p2" "c1" "c2" "check"406permutation "r1" "w3" "p1" "w2" "r2" "p3" "c3" "p2" "c2" "c1" "check"407permutation "r1" "w3" "p1" "w2" "r2" "p3" "c3" "c1" "p2" "c2" "check"408permutation "r1" "w3" "p1" "w2" "p3" "r2" "p2" "c3" "c1" "c2" "check"409permutation "r1" "w3" "p1" "w2" "p3" "r2" "p2" "c3" "c2" "c1" "check"410permutation "r1" "w3" "p1" "w2" "p3" "r2" "c3" "p2" "c1" "c2" "check"411permutation "r1" "w3" "p1" "w2" "p3" "r2" "c3" "p2" "c2" "c1" "check"412permutation "r1" "w3" "p1" "w2" "p3" "r2" "c3" "c1" "p2" "c2" "check"413permutation "r1" "w3" "p1" "w2" "p3" "c3" "r2" "p2" "c1" "c2" "check"414permutation "r1" "w3" "p1" "w2" "p3" "c3" "r2" "p2" "c2" "c1" "check"415permutation "r1" "w3" "p1" "w2" "p3" "c3" "r2" "c1" "p2" "c2" "check"416permutation "r1" "w3" "p1" "w2" "p3" "c3" "c1" "r2" "p2" "c2" "check"417permutation "r1" "w3" "p1" "p3" "r2" "w2" "p2" "c3" "c1" "c2" "check"418permutation "r1" "w3" "p1" "p3" "r2" "w2" "p2" "c3" "c2" "c1" "check"419permutation "r1" "w3" "p1" "p3" "r2" "w2" "c3" "p2" "c1" "c2" "check"420permutation "r1" "w3" "p1" "p3" "r2" "w2" "c3" "p2" "c2" "c1" "check"421permutation "r1" "w3" "p1" "p3" "r2" "w2" "c3" "c1" "p2" "c2" "check"422permutation "r1" "w3" "p1" "p3" "r2" "c3" "w2" "p2" "c1" "c2" "check"423permutation "r1" "w3" "p1" "p3" "r2" "c3" "w2" "p2" "c2" "c1" "check"424permutation "r1" "w3" "p1" "p3" "r2" "c3" "w2" "c1" "p2" "c2" "check"425permutation "r1" "w3" "p1" "p3" "r2" "c3" "c1" "w2" "p2" "c2" "check"426permutation "r1" "w3" "p1" "p3" "w2" "r2" "p2" "c3" "c1" "c2" "check"427permutation "r1" "w3" "p1" "p3" "w2" "r2" "p2" "c3" "c2" "c1" "check"428permutation "r1" "w3" "p1" "p3" "w2" "r2" "c3" "p2" "c1" "c2" "check"429permutation "r1" "w3" "p1" "p3" "w2" "r2" "c3" "p2" "c2" "c1" "check"430permutation "r1" "w3" "p1" "p3" "w2" "r2" "c3" "c1" "p2" "c2" "check"431permutation "r1" "w3" "p1" "p3" "w2" "c3" "r2" "p2" "c1" "c2" "check"432permutation "r1" "w3" "p1" "p3" "w2" "c3" "r2" "p2" "c2" "c1" "check"433permutation "r1" "w3" "p1" "p3" "w2" "c3" "r2" "c1" "p2" "c2" "check"434permutation "r1" "w3" "p1" "p3" "w2" "c3" "c1" "r2" "p2" "c2" "check"435permutation "r1" "w3" "p1" "p3" "c3" "r2" "w2" "p2" "c1" "c2" "check"436permutation "r1" "w3" "p1" "p3" "c3" "r2" "w2" "p2" "c2" "c1" "check"437permutation "r1" "w3" "p1" "p3" "c3" "r2" "w2" "c1" "p2" "c2" "check"438permutation "r1" "w3" "p1" "p3" "c3" "r2" "c1" "w2" "p2" "c2" "check"439permutation "r1" "w3" "p1" "p3" "c3" "w2" "r2" "p2" "c1" "c2" "check"440permutation "r1" "w3" "p1" "p3" "c3" "w2" "r2" "p2" "c2" "c1" "check"441permutation "r1" "w3" "p1" "p3" "c3" "w2" "r2" "c1" "p2" "c2" "check"442permutation "r1" "w3" "p1" "p3" "c3" "w2" "c1" "r2" "p2" "c2" "check"443permutation "r1" "w3" "p1" "p3" "c3" "c1" "r2" "w2" "p2" "c2" "check"444permutation "r1" "w3" "p1" "p3" "c3" "c1" "w2" "r2" "p2" "c2" "check"445permutation "r1" "w3" "p3" "r2" "w2" "p1" "p2" "c3" "c1" "c2" "check"446permutation "r1" "w3" "p3" "r2" "w2" "p1" "p2" "c3" "c2" "c1" "check"447permutation "r1" "w3" "p3" "r2" "w2" "p1" "c3" "p2" "c1" "c2" "check"448permutation "r1" "w3" "p3" "r2" "w2" "p1" "c3" "p2" "c2" "c1" "check"449permutation "r1" "w3" "p3" "r2" "w2" "p1" "c3" "c1" "p2" "c2" "check"450permutation "r1" "w3" "p3" "r2" "w2" "p2" "p1" "c3" "c1" "c2" "check"451permutation "r1" "w3" "p3" "r2" "w2" "p2" "p1" "c3" "c2" "c1" "check"452permutation "r1" "w3" "p3" "r2" "w2" "p2" "c3" "p1" "c1" "c2" "check"453permutation "r1" "w3" "p3" "r2" "w2" "p2" "c3" "p1" "c2" "c1" "check"454permutation "r1" "w3" "p3" "r2" "w2" "p2" "c3" "c2" "p1" "c1" "check"455permutation "r1" "w3" "p3" "r2" "w2" "c3" "p1" "p2" "c1" "c2" "check"456permutation "r1" "w3" "p3" "r2" "w2" "c3" "p1" "p2" "c2" "c1" "check"457permutation "r1" "w3" "p3" "r2" "w2" "c3" "p1" "c1" "p2" "c2" "check"458permutation "r1" "w3" "p3" "r2" "w2" "c3" "p2" "p1" "c1" "c2" "check"459permutation "r1" "w3" "p3" "r2" "w2" "c3" "p2" "p1" "c2" "c1" "check"460permutation "r1" "w3" "p3" "r2" "w2" "c3" "p2" "c2" "p1" "c1" "check"461permutation "r1" "w3" "p3" "r2" "p1" "w2" "p2" "c3" "c1" "c2" "check"462permutation "r1" "w3" "p3" "r2" "p1" "w2" "p2" "c3" "c2" "c1" "check"463permutation "r1" "w3" "p3" "r2" "p1" "w2" "c3" "p2" "c1" "c2" "check"464permutation "r1" "w3" "p3" "r2" "p1" "w2" "c3" "p2" "c2" "c1" "check"465permutation "r1" "w3" "p3" "r2" "p1" "w2" "c3" "c1" "p2" "c2" "check"466permutation "r1" "w3" "p3" "r2" "p1" "c3" "w2" "p2" "c1" "c2" "check"467permutation "r1" "w3" "p3" "r2" "p1" "c3" "w2" "p2" "c2" "c1" "check"468permutation "r1" "w3" "p3" "r2" "p1" "c3" "w2" "c1" "p2" "c2" "check"469permutation "r1" "w3" "p3" "r2" "p1" "c3" "c1" "w2" "p2" "c2" "check"470permutation "r1" "w3" "p3" "r2" "c3" "w2" "p1" "p2" "c1" "c2" "check"471permutation "r1" "w3" "p3" "r2" "c3" "w2" "p1" "p2" "c2" "c1" "check"472permutation "r1" "w3" "p3" "r2" "c3" "w2" "p1" "c1" "p2" "c2" "check"473permutation "r1" "w3" "p3" "r2" "c3" "w2" "p2" "p1" "c1" "c2" "check"474permutation "r1" "w3" "p3" "r2" "c3" "w2" "p2" "p1" "c2" "c1" "check"475permutation "r1" "w3" "p3" "r2" "c3" "w2" "p2" "c2" "p1" "c1" "check"476permutation "r1" "w3" "p3" "r2" "c3" "p1" "w2" "p2" "c1" "c2" "check"477permutation "r1" "w3" "p3" "r2" "c3" "p1" "w2" "p2" "c2" "c1" "check"478permutation "r1" "w3" "p3" "r2" "c3" "p1" "w2" "c1" "p2" "c2" "check"479permutation "r1" "w3" "p3" "r2" "c3" "p1" "c1" "w2" "p2" "c2" "check"480permutation "r1" "w3" "p3" "w2" "r2" "p1" "p2" "c3" "c1" "c2" "check"481permutation "r1" "w3" "p3" "w2" "r2" "p1" "p2" "c3" "c2" "c1" "check"482permutation "r1" "w3" "p3" "w2" "r2" "p1" "c3" "p2" "c1" "c2" "check"483permutation "r1" "w3" "p3" "w2" "r2" "p1" "c3" "p2" "c2" "c1" "check"484permutation "r1" "w3" "p3" "w2" "r2" "p1" "c3" "c1" "p2" "c2" "check"485permutation "r1" "w3" "p3" "w2" "r2" "p2" "p1" "c3" "c1" "c2" "check"486permutation "r1" "w3" "p3" "w2" "r2" "p2" "p1" "c3" "c2" "c1" "check"487permutation "r1" "w3" "p3" "w2" "r2" "p2" "c3" "p1" "c1" "c2" "check"488permutation "r1" "w3" "p3" "w2" "r2" "p2" "c3" "p1" "c2" "c1" "check"489permutation "r1" "w3" "p3" "w2" "r2" "p2" "c3" "c2" "p1" "c1" "check"490permutation "r1" "w3" "p3" "w2" "r2" "c3" "p1" "p2" "c1" "c2" "check"491permutation "r1" "w3" "p3" "w2" "r2" "c3" "p1" "p2" "c2" "c1" "check"492permutation "r1" "w3" "p3" "w2" "r2" "c3" "p1" "c1" "p2" "c2" "check"493permutation "r1" "w3" "p3" "w2" "r2" "c3" "p2" "p1" "c1" "c2" "check"494permutation "r1" "w3" "p3" "w2" "r2" "c3" "p2" "p1" "c2" "c1" "check"495permutation "r1" "w3" "p3" "w2" "r2" "c3" "p2" "c2" "p1" "c1" "check"496permutation "r1" "w3" "p3" "w2" "p1" "r2" "p2" "c3" "c1" "c2" "check"497permutation "r1" "w3" "p3" "w2" "p1" "r2" "p2" "c3" "c2" "c1" "check"498permutation "r1" "w3" "p3" "w2" "p1" "r2" "c3" "p2" "c1" "c2" "check"499permutation "r1" "w3" "p3" "w2" "p1" "r2" "c3" "p2" "c2" "c1" "check"500permutation "r1" "w3" "p3" "w2" "p1" "r2" "c3" "c1" "p2" "c2" "check"501permutation "r1" "w3" "p3" "w2" "p1" "c3" "r2" "p2" "c1" "c2" "check"502permutation "r1" "w3" "p3" "w2" "p1" "c3" "r2" "p2" "c2" "c1" "check"503permutation "r1" "w3" "p3" "w2" "p1" "c3" "r2" "c1" "p2" "c2" "check"504permutation "r1" "w3" "p3" "w2" "p1" "c3" "c1" "r2" "p2" "c2" "check"505permutation "r1" "w3" "p3" "w2" "c3" "r2" "p1" "p2" "c1" "c2" "check"506permutation "r1" "w3" "p3" "w2" "c3" "r2" "p1" "p2" "c2" "c1" "check"507permutation "r1" "w3" "p3" "w2" "c3" "r2" "p1" "c1" "p2" "c2" "check"508permutation "r1" "w3" "p3" "w2" "c3" "r2" "p2" "p1" "c1" "c2" "check"509permutation "r1" "w3" "p3" "w2" "c3" "r2" "p2" "p1" "c2" "c1" "check"510permutation "r1" "w3" "p3" "w2" "c3" "r2" "p2" "c2" "p1" "c1" "check"511permutation "r1" "w3" "p3" "w2" "c3" "p1" "r2" "p2" "c1" "c2" "check"512permutation "r1" "w3" "p3" "w2" "c3" "p1" "r2" "p2" "c2" "c1" "check"513permutation "r1" "w3" "p3" "w2" "c3" "p1" "r2" "c1" "p2" "c2" "check"514permutation "r1" "w3" "p3" "w2" "c3" "p1" "c1" "r2" "p2" "c2" "check"515permutation "r1" "w3" "p3" "p1" "r2" "w2" "p2" "c3" "c1" "c2" "check"516permutation "r1" "w3" "p3" "p1" "r2" "w2" "p2" "c3" "c2" "c1" "check"517permutation "r1" "w3" "p3" "p1" "r2" "w2" "c3" "p2" "c1" "c2" "check"518permutation "r1" "w3" "p3" "p1" "r2" "w2" "c3" "p2" "c2" "c1" "check"519permutation "r1" "w3" "p3" "p1" "r2" "w2" "c3" "c1" "p2" "c2" "check"520permutation "r1" "w3" "p3" "p1" "r2" "c3" "w2" "p2" "c1" "c2" "check"521permutation "r1" "w3" "p3" "p1" "r2" "c3" "w2" "p2" "c2" "c1" "check"522permutation "r1" "w3" "p3" "p1" "r2" "c3" "w2" "c1" "p2" "c2" "check"523permutation "r1" "w3" "p3" "p1" "r2" "c3" "c1" "w2" "p2" "c2" "check"524permutation "r1" "w3" "p3" "p1" "w2" "r2" "p2" "c3" "c1" "c2" "check"525permutation "r1" "w3" "p3" "p1" "w2" "r2" "p2" "c3" "c2" "c1" "check"526permutation "r1" "w3" "p3" "p1" "w2" "r2" "c3" "p2" "c1" "c2" "check"527permutation "r1" "w3" "p3" "p1" "w2" "r2" "c3" "p2" "c2" "c1" "check"528permutation "r1" "w3" "p3" "p1" "w2" "r2" "c3" "c1" "p2" "c2" "check"529permutation "r1" "w3" "p3" "p1" "w2" "c3" "r2" "p2" "c1" "c2" "check"530permutation "r1" "w3" "p3" "p1" "w2" "c3" "r2" "p2" "c2" "c1" "check"531permutation "r1" "w3" "p3" "p1" "w2" "c3" "r2" "c1" "p2" "c2" "check"532permutation "r1" "w3" "p3" "p1" "w2" "c3" "c1" "r2" "p2" "c2" "check"533permutation "r1" "w3" "p3" "p1" "c3" "r2" "w2" "p2" "c1" "c2" "check"534permutation "r1" "w3" "p3" "p1" "c3" "r2" "w2" "p2" "c2" "c1" "check"535permutation "r1" "w3" "p3" "p1" "c3" "r2" "w2" "c1" "p2" "c2" "check"536permutation "r1" "w3" "p3" "p1" "c3" "r2" "c1" "w2" "p2" "c2" "check"537permutation "r1" "w3" "p3" "p1" "c3" "w2" "r2" "p2" "c1" "c2" "check"538permutation "r1" "w3" "p3" "p1" "c3" "w2" "r2" "p2" "c2" "c1" "check"539permutation "r1" "w3" "p3" "p1" "c3" "w2" "r2" "c1" "p2" "c2" "check"540permutation "r1" "w3" "p3" "p1" "c3" "w2" "c1" "r2" "p2" "c2" "check"541permutation "r1" "w3" "p3" "p1" "c3" "c1" "r2" "w2" "p2" "c2" "check"542permutation "r1" "w3" "p3" "p1" "c3" "c1" "w2" "r2" "p2" "c2" "check"543permutation "r1" "w3" "p3" "c3" "r2" "w2" "p1" "p2" "c1" "c2" "check"544permutation "r1" "w3" "p3" "c3" "r2" "w2" "p1" "p2" "c2" "c1" "check"545permutation "r1" "w3" "p3" "c3" "r2" "w2" "p1" "c1" "p2" "c2" "check"546permutation "r1" "w3" "p3" "c3" "r2" "w2" "p2" "p1" "c1" "c2" "check"547permutation "r1" "w3" "p3" "c3" "r2" "w2" "p2" "p1" "c2" "c1" "check"548permutation "r1" "w3" "p3" "c3" "r2" "w2" "p2" "c2" "p1" "c1" "check"549permutation "r1" "w3" "p3" "c3" "r2" "p1" "w2" "p2" "c1" "c2" "check"550permutation "r1" "w3" "p3" "c3" "r2" "p1" "w2" "p2" "c2" "c1" "check"551permutation "r1" "w3" "p3" "c3" "r2" "p1" "w2" "c1" "p2" "c2" "check"552permutation "r1" "w3" "p3" "c3" "r2" "p1" "c1" "w2" "p2" "c2" "check"553permutation "r1" "w3" "p3" "c3" "w2" "r2" "p1" "p2" "c1" "c2" "check"554permutation "r1" "w3" "p3" "c3" "w2" "r2" "p1" "p2" "c2" "c1" "check"555permutation "r1" "w3" "p3" "c3" "w2" "r2" "p1" "c1" "p2" "c2" "check"556permutation "r1" "w3" "p3" "c3" "w2" "r2" "p2" "p1" "c1" "c2" "check"557permutation "r1" "w3" "p3" "c3" "w2" "r2" "p2" "p1" "c2" "c1" "check"558permutation "r1" "w3" "p3" "c3" "w2" "r2" "p2" "c2" "p1" "c1" "check"559permutation "r1" "w3" "p3" "c3" "w2" "p1" "r2" "p2" "c1" "c2" "check"560permutation "r1" "w3" "p3" "c3" "w2" "p1" "r2" "p2" "c2" "c1" "check"561permutation "r1" "w3" "p3" "c3" "w2" "p1" "r2" "c1" "p2" "c2" "check"562permutation "r1" "w3" "p3" "c3" "w2" "p1" "c1" "r2" "p2" "c2" "check"563permutation "r1" "w3" "p3" "c3" "p1" "r2" "w2" "p2" "c1" "c2" "check"564permutation "r1" "w3" "p3" "c3" "p1" "r2" "w2" "p2" "c2" "c1" "check"565permutation "r1" "w3" "p3" "c3" "p1" "r2" "w2" "c1" "p2" "c2" "check"566permutation "r1" "w3" "p3" "c3" "p1" "r2" "c1" "w2" "p2" "c2" "check"567permutation "r1" "w3" "p3" "c3" "p1" "w2" "r2" "p2" "c1" "c2" "check"568permutation "r1" "w3" "p3" "c3" "p1" "w2" "r2" "p2" "c2" "c1" "check"569permutation "r1" "w3" "p3" "c3" "p1" "w2" "r2" "c1" "p2" "c2" "check"570permutation "r1" "w3" "p3" "c3" "p1" "w2" "c1" "r2" "p2" "c2" "check"571permutation "r1" "w3" "p3" "c3" "p1" "c1" "r2" "w2" "p2" "c2" "check"572permutation "r1" "w3" "p3" "c3" "p1" "c1" "w2" "r2" "p2" "c2" "check"573permutation "r1" "p1" "r2" "w2" "w3" "p2" "p3" "c3" "c1" "c2" "check"574permutation "r1" "p1" "r2" "w2" "w3" "p2" "p3" "c3" "c2" "c1" "check"575permutation "r1" "p1" "r2" "w2" "w3" "p3" "p2" "c3" "c1" "c2" "check"576permutation "r1" "p1" "r2" "w2" "w3" "p3" "p2" "c3" "c2" "c1" "check"577permutation "r1" "p1" "r2" "w2" "w3" "p3" "c3" "p2" "c1" "c2" "check"578permutation "r1" "p1" "r2" "w2" "w3" "p3" "c3" "p2" "c2" "c1" "check"579permutation "r1" "p1" "r2" "w2" "w3" "p3" "c3" "c1" "p2" "c2" "check"580permutation "r1" "p1" "r2" "w2" "p2" "w3" "p3" "c3" "c1" "c2" "check"581permutation "r1" "p1" "r2" "w2" "p2" "w3" "p3" "c3" "c2" "c1" "check"582permutation "r1" "p1" "w2" "w3" "r2" "p2" "p3" "c3" "c1" "c2" "check"583permutation "r1" "p1" "w2" "w3" "r2" "p2" "p3" "c3" "c2" "c1" "check"584permutation "r1" "p1" "w2" "w3" "r2" "p3" "p2" "c3" "c1" "c2" "check"585permutation "r1" "p1" "w2" "w3" "r2" "p3" "p2" "c3" "c2" "c1" "check"586permutation "r1" "p1" "w2" "w3" "r2" "p3" "c3" "p2" "c1" "c2" "check"587permutation "r1" "p1" "w2" "w3" "r2" "p3" "c3" "p2" "c2" "c1" "check"588permutation "r1" "p1" "w2" "w3" "r2" "p3" "c3" "c1" "p2" "c2" "check"589permutation "r1" "p1" "w2" "w3" "p3" "r2" "p2" "c3" "c1" "c2" "check"590permutation "r1" "p1" "w2" "w3" "p3" "r2" "p2" "c3" "c2" "c1" "check"591permutation "r1" "p1" "w2" "w3" "p3" "r2" "c3" "p2" "c1" "c2" "check"592permutation "r1" "p1" "w2" "w3" "p3" "r2" "c3" "p2" "c2" "c1" "check"593permutation "r1" "p1" "w2" "w3" "p3" "r2" "c3" "c1" "p2" "c2" "check"594permutation "r1" "p1" "w2" "w3" "p3" "c3" "r2" "p2" "c1" "c2" "check"595permutation "r1" "p1" "w2" "w3" "p3" "c3" "r2" "p2" "c2" "c1" "check"596permutation "r1" "p1" "w2" "w3" "p3" "c3" "r2" "c1" "p2" "c2" "check"597permutation "r1" "p1" "w2" "w3" "p3" "c3" "c1" "r2" "p2" "c2" "check"598permutation "r1" "p1" "w3" "r2" "w2" "p2" "p3" "c3" "c1" "c2" "check"599permutation "r1" "p1" "w3" "r2" "w2" "p2" "p3" "c3" "c2" "c1" "check"600permutation "r1" "p1" "w3" "r2" "w2" "p3" "p2" "c3" "c1" "c2" "check"601permutation "r1" "p1" "w3" "r2" "w2" "p3" "p2" "c3" "c2" "c1" "check"602permutation "r1" "p1" "w3" "r2" "w2" "p3" "c3" "p2" "c1" "c2" "check"603permutation "r1" "p1" "w3" "r2" "w2" "p3" "c3" "p2" "c2" "c1" "check"604permutation "r1" "p1" "w3" "r2" "w2" "p3" "c3" "c1" "p2" "c2" "check"605permutation "r1" "p1" "w3" "r2" "p3" "w2" "p2" "c3" "c1" "c2" "check"606permutation "r1" "p1" "w3" "r2" "p3" "w2" "p2" "c3" "c2" "c1" "check"607permutation "r1" "p1" "w3" "r2" "p3" "w2" "c3" "p2" "c1" "c2" "check"608permutation "r1" "p1" "w3" "r2" "p3" "w2" "c3" "p2" "c2" "c1" "check"609permutation "r1" "p1" "w3" "r2" "p3" "w2" "c3" "c1" "p2" "c2" "check"610permutation "r1" "p1" "w3" "r2" "p3" "c3" "w2" "p2" "c1" "c2" "check"611permutation "r1" "p1" "w3" "r2" "p3" "c3" "w2" "p2" "c2" "c1" "check"612permutation "r1" "p1" "w3" "r2" "p3" "c3" "w2" "c1" "p2" "c2" "check"613permutation "r1" "p1" "w3" "r2" "p3" "c3" "c1" "w2" "p2" "c2" "check"614permutation "r1" "p1" "w3" "w2" "r2" "p2" "p3" "c3" "c1" "c2" "check"615permutation "r1" "p1" "w3" "w2" "r2" "p2" "p3" "c3" "c2" "c1" "check"616permutation "r1" "p1" "w3" "w2" "r2" "p3" "p2" "c3" "c1" "c2" "check"617permutation "r1" "p1" "w3" "w2" "r2" "p3" "p2" "c3" "c2" "c1" "check"618permutation "r1" "p1" "w3" "w2" "r2" "p3" "c3" "p2" "c1" "c2" "check"619permutation "r1" "p1" "w3" "w2" "r2" "p3" "c3" "p2" "c2" "c1" "check"620permutation "r1" "p1" "w3" "w2" "r2" "p3" "c3" "c1" "p2" "c2" "check"621permutation "r1" "p1" "w3" "w2" "p3" "r2" "p2" "c3" "c1" "c2" "check"622permutation "r1" "p1" "w3" "w2" "p3" "r2" "p2" "c3" "c2" "c1" "check"623permutation "r1" "p1" "w3" "w2" "p3" "r2" "c3" "p2" "c1" "c2" "check"624permutation "r1" "p1" "w3" "w2" "p3" "r2" "c3" "p2" "c2" "c1" "check"625permutation "r1" "p1" "w3" "w2" "p3" "r2" "c3" "c1" "p2" "c2" "check"626permutation "r1" "p1" "w3" "w2" "p3" "c3" "r2" "p2" "c1" "c2" "check"627permutation "r1" "p1" "w3" "w2" "p3" "c3" "r2" "p2" "c2" "c1" "check"628permutation "r1" "p1" "w3" "w2" "p3" "c3" "r2" "c1" "p2" "c2" "check"629permutation "r1" "p1" "w3" "w2" "p3" "c3" "c1" "r2" "p2" "c2" "check"630permutation "r1" "p1" "w3" "p3" "r2" "w2" "p2" "c3" "c1" "c2" "check"631permutation "r1" "p1" "w3" "p3" "r2" "w2" "p2" "c3" "c2" "c1" "check"632permutation "r1" "p1" "w3" "p3" "r2" "w2" "c3" "p2" "c1" "c2" "check"633permutation "r1" "p1" "w3" "p3" "r2" "w2" "c3" "p2" "c2" "c1" "check"634permutation "r1" "p1" "w3" "p3" "r2" "w2" "c3" "c1" "p2" "c2" "check"635permutation "r1" "p1" "w3" "p3" "r2" "c3" "w2" "p2" "c1" "c2" "check"636permutation "r1" "p1" "w3" "p3" "r2" "c3" "w2" "p2" "c2" "c1" "check"637permutation "r1" "p1" "w3" "p3" "r2" "c3" "w2" "c1" "p2" "c2" "check"638permutation "r1" "p1" "w3" "p3" "r2" "c3" "c1" "w2" "p2" "c2" "check"639permutation "r1" "p1" "w3" "p3" "w2" "r2" "p2" "c3" "c1" "c2" "check"640permutation "r1" "p1" "w3" "p3" "w2" "r2" "p2" "c3" "c2" "c1" "check"641permutation "r1" "p1" "w3" "p3" "w2" "r2" "c3" "p2" "c1" "c2" "check"642permutation "r1" "p1" "w3" "p3" "w2" "r2" "c3" "p2" "c2" "c1" "check"643permutation "r1" "p1" "w3" "p3" "w2" "r2" "c3" "c1" "p2" "c2" "check"644permutation "r1" "p1" "w3" "p3" "w2" "c3" "r2" "p2" "c1" "c2" "check"645permutation "r1" "p1" "w3" "p3" "w2" "c3" "r2" "p2" "c2" "c1" "check"646permutation "r1" "p1" "w3" "p3" "w2" "c3" "r2" "c1" "p2" "c2" "check"647permutation "r1" "p1" "w3" "p3" "w2" "c3" "c1" "r2" "p2" "c2" "check"648permutation "r1" "p1" "w3" "p3" "c3" "r2" "w2" "p2" "c1" "c2" "check"649permutation "r1" "p1" "w3" "p3" "c3" "r2" "w2" "p2" "c2" "c1" "check"650permutation "r1" "p1" "w3" "p3" "c3" "r2" "w2" "c1" "p2" "c2" "check"651permutation "r1" "p1" "w3" "p3" "c3" "r2" "c1" "w2" "p2" "c2" "check"652permutation "r1" "p1" "w3" "p3" "c3" "w2" "r2" "p2" "c1" "c2" "check"653permutation "r1" "p1" "w3" "p3" "c3" "w2" "r2" "p2" "c2" "c1" "check"654permutation "r1" "p1" "w3" "p3" "c3" "w2" "r2" "c1" "p2" "c2" "check"655permutation "r1" "p1" "w3" "p3" "c3" "w2" "c1" "r2" "p2" "c2" "check"656permutation "r1" "p1" "w3" "p3" "c3" "c1" "r2" "w2" "p2" "c2" "check"657permutation "r1" "p1" "w3" "p3" "c3" "c1" "w2" "r2" "p2" "c2" "check"658permutation "w2" "r1" "r2" "w3" "p1" "p2" "p3" "c3" "c1" "c2" "check"659permutation "w2" "r1" "r2" "w3" "p1" "p2" "p3" "c3" "c2" "c1" "check"660permutation "w2" "r1" "r2" "w3" "p1" "p3" "p2" "c3" "c1" "c2" "check"661permutation "w2" "r1" "r2" "w3" "p1" "p3" "p2" "c3" "c2" "c1" "check"662permutation "w2" "r1" "r2" "w3" "p1" "p3" "c3" "p2" "c1" "c2" "check"663permutation "w2" "r1" "r2" "w3" "p1" "p3" "c3" "p2" "c2" "c1" "check"664permutation "w2" "r1" "r2" "w3" "p1" "p3" "c3" "c1" "p2" "c2" "check"665permutation "w2" "r1" "r2" "w3" "p2" "p1" "p3" "c3" "c1" "c2" "check"666permutation "w2" "r1" "r2" "w3" "p2" "p1" "p3" "c3" "c2" "c1" "check"667permutation "w2" "r1" "r2" "w3" "p2" "p3" "p1" "c3" "c1" "c2" "check"668permutation "w2" "r1" "r2" "w3" "p2" "p3" "p1" "c3" "c2" "c1" "check"669permutation "w2" "r1" "r2" "w3" "p2" "p3" "c3" "p1" "c1" "c2" "check"670permutation "w2" "r1" "r2" "w3" "p2" "p3" "c3" "p1" "c2" "c1" "check"671permutation "w2" "r1" "r2" "w3" "p2" "p3" "c3" "c2" "p1" "c1" "check"672permutation "w2" "r1" "r2" "w3" "p3" "p1" "p2" "c3" "c1" "c2" "check"673permutation "w2" "r1" "r2" "w3" "p3" "p1" "p2" "c3" "c2" "c1" "check"674permutation "w2" "r1" "r2" "w3" "p3" "p1" "c3" "p2" "c1" "c2" "check"675permutation "w2" "r1" "r2" "w3" "p3" "p1" "c3" "p2" "c2" "c1" "check"676permutation "w2" "r1" "r2" "w3" "p3" "p1" "c3" "c1" "p2" "c2" "check"677permutation "w2" "r1" "r2" "w3" "p3" "p2" "p1" "c3" "c1" "c2" "check"678permutation "w2" "r1" "r2" "w3" "p3" "p2" "p1" "c3" "c2" "c1" "check"679permutation "w2" "r1" "r2" "w3" "p3" "p2" "c3" "p1" "c1" "c2" "check"680permutation "w2" "r1" "r2" "w3" "p3" "p2" "c3" "p1" "c2" "c1" "check"681permutation "w2" "r1" "r2" "w3" "p3" "p2" "c3" "c2" "p1" "c1" "check"682permutation "w2" "r1" "r2" "w3" "p3" "c3" "p1" "p2" "c1" "c2" "check"683permutation "w2" "r1" "r2" "w3" "p3" "c3" "p1" "p2" "c2" "c1" "check"684permutation "w2" "r1" "r2" "w3" "p3" "c3" "p1" "c1" "p2" "c2" "check"685permutation "w2" "r1" "r2" "w3" "p3" "c3" "p2" "p1" "c1" "c2" "check"686permutation "w2" "r1" "r2" "w3" "p3" "c3" "p2" "p1" "c2" "c1" "check"687permutation "w2" "r1" "r2" "w3" "p3" "c3" "p2" "c2" "p1" "c1" "check"688permutation "w2" "r1" "r2" "p1" "w3" "p2" "p3" "c3" "c1" "c2" "check"689permutation "w2" "r1" "r2" "p1" "w3" "p2" "p3" "c3" "c2" "c1" "check"690permutation "w2" "r1" "r2" "p1" "w3" "p3" "p2" "c3" "c1" "c2" "check"691permutation "w2" "r1" "r2" "p1" "w3" "p3" "p2" "c3" "c2" "c1" "check"692permutation "w2" "r1" "r2" "p1" "w3" "p3" "c3" "p2" "c1" "c2" "check"693permutation "w2" "r1" "r2" "p1" "w3" "p3" "c3" "p2" "c2" "c1" "check"694permutation "w2" "r1" "r2" "p1" "w3" "p3" "c3" "c1" "p2" "c2" "check"695permutation "w2" "r1" "r2" "p1" "p2" "w3" "p3" "c3" "c1" "c2" "check"696permutation "w2" "r1" "r2" "p1" "p2" "w3" "p3" "c3" "c2" "c1" "check"697permutation "w2" "r1" "r2" "p2" "w3" "p1" "p3" "c3" "c1" "c2" "check"698permutation "w2" "r1" "r2" "p2" "w3" "p1" "p3" "c3" "c2" "c1" "check"699permutation "w2" "r1" "r2" "p2" "w3" "p3" "p1" "c3" "c1" "c2" "check"700permutation "w2" "r1" "r2" "p2" "w3" "p3" "p1" "c3" "c2" "c1" "check"701permutation "w2" "r1" "r2" "p2" "w3" "p3" "c3" "p1" "c1" "c2" "check"702permutation "w2" "r1" "r2" "p2" "w3" "p3" "c3" "p1" "c2" "c1" "check"703permutation "w2" "r1" "r2" "p2" "w3" "p3" "c3" "c2" "p1" "c1" "check"704permutation "w2" "r1" "r2" "p2" "p1" "w3" "p3" "c3" "c1" "c2" "check"705permutation "w2" "r1" "r2" "p2" "p1" "w3" "p3" "c3" "c2" "c1" "check"706permutation "w2" "r1" "w3" "r2" "p1" "p2" "p3" "c3" "c1" "c2" "check"707permutation "w2" "r1" "w3" "r2" "p1" "p2" "p3" "c3" "c2" "c1" "check"708permutation "w2" "r1" "w3" "r2" "p1" "p3" "p2" "c3" "c1" "c2" "check"709permutation "w2" "r1" "w3" "r2" "p1" "p3" "p2" "c3" "c2" "c1" "check"710permutation "w2" "r1" "w3" "r2" "p1" "p3" "c3" "p2" "c1" "c2" "check"711permutation "w2" "r1" "w3" "r2" "p1" "p3" "c3" "p2" "c2" "c1" "check"712permutation "w2" "r1" "w3" "r2" "p1" "p3" "c3" "c1" "p2" "c2" "check"713permutation "w2" "r1" "w3" "r2" "p2" "p1" "p3" "c3" "c1" "c2" "check"714permutation "w2" "r1" "w3" "r2" "p2" "p1" "p3" "c3" "c2" "c1" "check"715permutation "w2" "r1" "w3" "r2" "p2" "p3" "p1" "c3" "c1" "c2" "check"716permutation "w2" "r1" "w3" "r2" "p2" "p3" "p1" "c3" "c2" "c1" "check"717permutation "w2" "r1" "w3" "r2" "p2" "p3" "c3" "p1" "c1" "c2" "check"718permutation "w2" "r1" "w3" "r2" "p2" "p3" "c3" "p1" "c2" "c1" "check"719permutation "w2" "r1" "w3" "r2" "p2" "p3" "c3" "c2" "p1" "c1" "check"720permutation "w2" "r1" "w3" "r2" "p3" "p1" "p2" "c3" "c1" "c2" "check"721permutation "w2" "r1" "w3" "r2" "p3" "p1" "p2" "c3" "c2" "c1" "check"722permutation "w2" "r1" "w3" "r2" "p3" "p1" "c3" "p2" "c1" "c2" "check"723permutation "w2" "r1" "w3" "r2" "p3" "p1" "c3" "p2" "c2" "c1" "check"724permutation "w2" "r1" "w3" "r2" "p3" "p1" "c3" "c1" "p2" "c2" "check"725permutation "w2" "r1" "w3" "r2" "p3" "p2" "p1" "c3" "c1" "c2" "check"726permutation "w2" "r1" "w3" "r2" "p3" "p2" "p1" "c3" "c2" "c1" "check"727permutation "w2" "r1" "w3" "r2" "p3" "p2" "c3" "p1" "c1" "c2" "check"728permutation "w2" "r1" "w3" "r2" "p3" "p2" "c3" "p1" "c2" "c1" "check"729permutation "w2" "r1" "w3" "r2" "p3" "p2" "c3" "c2" "p1" "c1" "check"730permutation "w2" "r1" "w3" "r2" "p3" "c3" "p1" "p2" "c1" "c2" "check"731permutation "w2" "r1" "w3" "r2" "p3" "c3" "p1" "p2" "c2" "c1" "check"732permutation "w2" "r1" "w3" "r2" "p3" "c3" "p1" "c1" "p2" "c2" "check"733permutation "w2" "r1" "w3" "r2" "p3" "c3" "p2" "p1" "c1" "c2" "check"734permutation "w2" "r1" "w3" "r2" "p3" "c3" "p2" "p1" "c2" "c1" "check"735permutation "w2" "r1" "w3" "r2" "p3" "c3" "p2" "c2" "p1" "c1" "check"736permutation "w2" "r1" "w3" "p1" "r2" "p2" "p3" "c3" "c1" "c2" "check"737permutation "w2" "r1" "w3" "p1" "r2" "p2" "p3" "c3" "c2" "c1" "check"738permutation "w2" "r1" "w3" "p1" "r2" "p3" "p2" "c3" "c1" "c2" "check"739permutation "w2" "r1" "w3" "p1" "r2" "p3" "p2" "c3" "c2" "c1" "check"740permutation "w2" "r1" "w3" "p1" "r2" "p3" "c3" "p2" "c1" "c2" "check"741permutation "w2" "r1" "w3" "p1" "r2" "p3" "c3" "p2" "c2" "c1" "check"742permutation "w2" "r1" "w3" "p1" "r2" "p3" "c3" "c1" "p2" "c2" "check"743permutation "w2" "r1" "w3" "p1" "p3" "r2" "p2" "c3" "c1" "c2" "check"744permutation "w2" "r1" "w3" "p1" "p3" "r2" "p2" "c3" "c2" "c1" "check"745permutation "w2" "r1" "w3" "p1" "p3" "r2" "c3" "p2" "c1" "c2" "check"746permutation "w2" "r1" "w3" "p1" "p3" "r2" "c3" "p2" "c2" "c1" "check"747permutation "w2" "r1" "w3" "p1" "p3" "r2" "c3" "c1" "p2" "c2" "check"748permutation "w2" "r1" "w3" "p1" "p3" "c3" "r2" "p2" "c1" "c2" "check"749permutation "w2" "r1" "w3" "p1" "p3" "c3" "r2" "p2" "c2" "c1" "check"750permutation "w2" "r1" "w3" "p1" "p3" "c3" "r2" "c1" "p2" "c2" "check"751permutation "w2" "r1" "w3" "p1" "p3" "c3" "c1" "r2" "p2" "c2" "check"752permutation "w2" "r1" "w3" "p3" "r2" "p1" "p2" "c3" "c1" "c2" "check"753permutation "w2" "r1" "w3" "p3" "r2" "p1" "p2" "c3" "c2" "c1" "check"754permutation "w2" "r1" "w3" "p3" "r2" "p1" "c3" "p2" "c1" "c2" "check"755permutation "w2" "r1" "w3" "p3" "r2" "p1" "c3" "p2" "c2" "c1" "check"756permutation "w2" "r1" "w3" "p3" "r2" "p1" "c3" "c1" "p2" "c2" "check"757permutation "w2" "r1" "w3" "p3" "r2" "p2" "p1" "c3" "c1" "c2" "check"758permutation "w2" "r1" "w3" "p3" "r2" "p2" "p1" "c3" "c2" "c1" "check"759permutation "w2" "r1" "w3" "p3" "r2" "p2" "c3" "p1" "c1" "c2" "check"760permutation "w2" "r1" "w3" "p3" "r2" "p2" "c3" "p1" "c2" "c1" "check"761permutation "w2" "r1" "w3" "p3" "r2" "p2" "c3" "c2" "p1" "c1" "check"762permutation "w2" "r1" "w3" "p3" "r2" "c3" "p1" "p2" "c1" "c2" "check"763permutation "w2" "r1" "w3" "p3" "r2" "c3" "p1" "p2" "c2" "c1" "check"764permutation "w2" "r1" "w3" "p3" "r2" "c3" "p1" "c1" "p2" "c2" "check"765permutation "w2" "r1" "w3" "p3" "r2" "c3" "p2" "p1" "c1" "c2" "check"766permutation "w2" "r1" "w3" "p3" "r2" "c3" "p2" "p1" "c2" "c1" "check"767permutation "w2" "r1" "w3" "p3" "r2" "c3" "p2" "c2" "p1" "c1" "check"768permutation "w2" "r1" "w3" "p3" "p1" "r2" "p2" "c3" "c1" "c2" "check"769permutation "w2" "r1" "w3" "p3" "p1" "r2" "p2" "c3" "c2" "c1" "check"770permutation "w2" "r1" "w3" "p3" "p1" "r2" "c3" "p2" "c1" "c2" "check"771permutation "w2" "r1" "w3" "p3" "p1" "r2" "c3" "p2" "c2" "c1" "check"772permutation "w2" "r1" "w3" "p3" "p1" "r2" "c3" "c1" "p2" "c2" "check"773permutation "w2" "r1" "w3" "p3" "p1" "c3" "r2" "p2" "c1" "c2" "check"774permutation "w2" "r1" "w3" "p3" "p1" "c3" "r2" "p2" "c2" "c1" "check"775permutation "w2" "r1" "w3" "p3" "p1" "c3" "r2" "c1" "p2" "c2" "check"776permutation "w2" "r1" "w3" "p3" "p1" "c3" "c1" "r2" "p2" "c2" "check"777permutation "w2" "r1" "w3" "p3" "c3" "r2" "p1" "p2" "c1" "c2" "check"778permutation "w2" "r1" "w3" "p3" "c3" "r2" "p1" "p2" "c2" "c1" "check"779permutation "w2" "r1" "w3" "p3" "c3" "r2" "p1" "c1" "p2" "c2" "check"780permutation "w2" "r1" "w3" "p3" "c3" "r2" "p2" "p1" "c1" "c2" "check"781permutation "w2" "r1" "w3" "p3" "c3" "r2" "p2" "p1" "c2" "c1" "check"782permutation "w2" "r1" "w3" "p3" "c3" "r2" "p2" "c2" "p1" "c1" "check"783permutation "w2" "r1" "w3" "p3" "c3" "p1" "r2" "p2" "c1" "c2" "check"784permutation "w2" "r1" "w3" "p3" "c3" "p1" "r2" "p2" "c2" "c1" "check"785permutation "w2" "r1" "w3" "p3" "c3" "p1" "r2" "c1" "p2" "c2" "check"786permutation "w2" "r1" "w3" "p3" "c3" "p1" "c1" "r2" "p2" "c2" "check"787permutation "w2" "r1" "p1" "r2" "w3" "p2" "p3" "c3" "c1" "c2" "check"788permutation "w2" "r1" "p1" "r2" "w3" "p2" "p3" "c3" "c2" "c1" "check"789permutation "w2" "r1" "p1" "r2" "w3" "p3" "p2" "c3" "c1" "c2" "check"790permutation "w2" "r1" "p1" "r2" "w3" "p3" "p2" "c3" "c2" "c1" "check"791permutation "w2" "r1" "p1" "r2" "w3" "p3" "c3" "p2" "c1" "c2" "check"792permutation "w2" "r1" "p1" "r2" "w3" "p3" "c3" "p2" "c2" "c1" "check"793permutation "w2" "r1" "p1" "r2" "w3" "p3" "c3" "c1" "p2" "c2" "check"794permutation "w2" "r1" "p1" "r2" "p2" "w3" "p3" "c3" "c1" "c2" "check"795permutation "w2" "r1" "p1" "r2" "p2" "w3" "p3" "c3" "c2" "c1" "check"796permutation "w2" "r1" "p1" "w3" "r2" "p2" "p3" "c3" "c1" "c2" "check"797permutation "w2" "r1" "p1" "w3" "r2" "p2" "p3" "c3" "c2" "c1" "check"798permutation "w2" "r1" "p1" "w3" "r2" "p3" "p2" "c3" "c1" "c2" "check"799permutation "w2" "r1" "p1" "w3" "r2" "p3" "p2" "c3" "c2" "c1" "check"800permutation "w2" "r1" "p1" "w3" "r2" "p3" "c3" "p2" "c1" "c2" "check"801permutation "w2" "r1" "p1" "w3" "r2" "p3" "c3" "p2" "c2" "c1" "check"802permutation "w2" "r1" "p1" "w3" "r2" "p3" "c3" "c1" "p2" "c2" "check"803permutation "w2" "r1" "p1" "w3" "p3" "r2" "p2" "c3" "c1" "c2" "check"804permutation "w2" "r1" "p1" "w3" "p3" "r2" "p2" "c3" "c2" "c1" "check"805permutation "w2" "r1" "p1" "w3" "p3" "r2" "c3" "p2" "c1" "c2" "check"806permutation "w2" "r1" "p1" "w3" "p3" "r2" "c3" "p2" "c2" "c1" "check"807permutation "w2" "r1" "p1" "w3" "p3" "r2" "c3" "c1" "p2" "c2" "check"808permutation "w2" "r1" "p1" "w3" "p3" "c3" "r2" "p2" "c1" "c2" "check"809permutation "w2" "r1" "p1" "w3" "p3" "c3" "r2" "p2" "c2" "c1" "check"810permutation "w2" "r1" "p1" "w3" "p3" "c3" "r2" "c1" "p2" "c2" "check"811permutation "w2" "r1" "p1" "w3" "p3" "c3" "c1" "r2" "p2" "c2" "check"812permutation "w3" "r1" "r2" "w2" "p1" "p2" "p3" "c3" "c1" "c2" "check"813permutation "w3" "r1" "r2" "w2" "p1" "p2" "p3" "c3" "c2" "c1" "check"814permutation "w3" "r1" "r2" "w2" "p1" "p3" "p2" "c3" "c1" "c2" "check"815permutation "w3" "r1" "r2" "w2" "p1" "p3" "p2" "c3" "c2" "c1" "check"816permutation "w3" "r1" "r2" "w2" "p1" "p3" "c3" "p2" "c1" "c2" "check"817permutation "w3" "r1" "r2" "w2" "p1" "p3" "c3" "p2" "c2" "c1" "check"818permutation "w3" "r1" "r2" "w2" "p1" "p3" "c3" "c1" "p2" "c2" "check"819permutation "w3" "r1" "r2" "w2" "p2" "p1" "p3" "c3" "c1" "c2" "check"820permutation "w3" "r1" "r2" "w2" "p2" "p1" "p3" "c3" "c2" "c1" "check"821permutation "w3" "r1" "r2" "w2" "p2" "p3" "p1" "c3" "c1" "c2" "check"822permutation "w3" "r1" "r2" "w2" "p2" "p3" "p1" "c3" "c2" "c1" "check"823permutation "w3" "r1" "r2" "w2" "p2" "p3" "c3" "p1" "c1" "c2" "check"824permutation "w3" "r1" "r2" "w2" "p2" "p3" "c3" "p1" "c2" "c1" "check"825permutation "w3" "r1" "r2" "w2" "p2" "p3" "c3" "c2" "p1" "c1" "check"826permutation "w3" "r1" "r2" "w2" "p3" "p1" "p2" "c3" "c1" "c2" "check"827permutation "w3" "r1" "r2" "w2" "p3" "p1" "p2" "c3" "c2" "c1" "check"828permutation "w3" "r1" "r2" "w2" "p3" "p1" "c3" "p2" "c1" "c2" "check"829permutation "w3" "r1" "r2" "w2" "p3" "p1" "c3" "p2" "c2" "c1" "check"830permutation "w3" "r1" "r2" "w2" "p3" "p1" "c3" "c1" "p2" "c2" "check"831permutation "w3" "r1" "r2" "w2" "p3" "p2" "p1" "c3" "c1" "c2" "check"832permutation "w3" "r1" "r2" "w2" "p3" "p2" "p1" "c3" "c2" "c1" "check"833permutation "w3" "r1" "r2" "w2" "p3" "p2" "c3" "p1" "c1" "c2" "check"834permutation "w3" "r1" "r2" "w2" "p3" "p2" "c3" "p1" "c2" "c1" "check"835permutation "w3" "r1" "r2" "w2" "p3" "p2" "c3" "c2" "p1" "c1" "check"836permutation "w3" "r1" "r2" "w2" "p3" "c3" "p1" "p2" "c1" "c2" "check"837permutation "w3" "r1" "r2" "w2" "p3" "c3" "p1" "p2" "c2" "c1" "check"838permutation "w3" "r1" "r2" "w2" "p3" "c3" "p1" "c1" "p2" "c2" "check"839permutation "w3" "r1" "r2" "w2" "p3" "c3" "p2" "p1" "c1" "c2" "check"840permutation "w3" "r1" "r2" "w2" "p3" "c3" "p2" "p1" "c2" "c1" "check"841permutation "w3" "r1" "r2" "w2" "p3" "c3" "p2" "c2" "p1" "c1" "check"842permutation "w3" "r1" "r2" "p1" "w2" "p2" "p3" "c3" "c1" "c2" "check"843permutation "w3" "r1" "r2" "p1" "w2" "p2" "p3" "c3" "c2" "c1" "check"844permutation "w3" "r1" "r2" "p1" "w2" "p3" "p2" "c3" "c1" "c2" "check"845permutation "w3" "r1" "r2" "p1" "w2" "p3" "p2" "c3" "c2" "c1" "check"846permutation "w3" "r1" "r2" "p1" "w2" "p3" "c3" "p2" "c1" "c2" "check"847permutation "w3" "r1" "r2" "p1" "w2" "p3" "c3" "p2" "c2" "c1" "check"848permutation "w3" "r1" "r2" "p1" "w2" "p3" "c3" "c1" "p2" "c2" "check"849permutation "w3" "r1" "r2" "p1" "p3" "w2" "p2" "c3" "c1" "c2" "check"850permutation "w3" "r1" "r2" "p1" "p3" "w2" "p2" "c3" "c2" "c1" "check"851permutation "w3" "r1" "r2" "p1" "p3" "w2" "c3" "p2" "c1" "c2" "check"852permutation "w3" "r1" "r2" "p1" "p3" "w2" "c3" "p2" "c2" "c1" "check"853permutation "w3" "r1" "r2" "p1" "p3" "w2" "c3" "c1" "p2" "c2" "check"854permutation "w3" "r1" "r2" "p1" "p3" "c3" "w2" "p2" "c1" "c2" "check"855permutation "w3" "r1" "r2" "p1" "p3" "c3" "w2" "p2" "c2" "c1" "check"856permutation "w3" "r1" "r2" "p1" "p3" "c3" "w2" "c1" "p2" "c2" "check"857permutation "w3" "r1" "r2" "p1" "p3" "c3" "c1" "w2" "p2" "c2" "check"858permutation "w3" "r1" "r2" "p3" "w2" "p1" "p2" "c3" "c1" "c2" "check"859permutation "w3" "r1" "r2" "p3" "w2" "p1" "p2" "c3" "c2" "c1" "check"860permutation "w3" "r1" "r2" "p3" "w2" "p1" "c3" "p2" "c1" "c2" "check"861permutation "w3" "r1" "r2" "p3" "w2" "p1" "c3" "p2" "c2" "c1" "check"862permutation "w3" "r1" "r2" "p3" "w2" "p1" "c3" "c1" "p2" "c2" "check"863permutation "w3" "r1" "r2" "p3" "w2" "p2" "p1" "c3" "c1" "c2" "check"864permutation "w3" "r1" "r2" "p3" "w2" "p2" "p1" "c3" "c2" "c1" "check"865permutation "w3" "r1" "r2" "p3" "w2" "p2" "c3" "p1" "c1" "c2" "check"866permutation "w3" "r1" "r2" "p3" "w2" "p2" "c3" "p1" "c2" "c1" "check"867permutation "w3" "r1" "r2" "p3" "w2" "p2" "c3" "c2" "p1" "c1" "check"868permutation "w3" "r1" "r2" "p3" "w2" "c3" "p1" "p2" "c1" "c2" "check"869permutation "w3" "r1" "r2" "p3" "w2" "c3" "p1" "p2" "c2" "c1" "check"870permutation "w3" "r1" "r2" "p3" "w2" "c3" "p1" "c1" "p2" "c2" "check"871permutation "w3" "r1" "r2" "p3" "w2" "c3" "p2" "p1" "c1" "c2" "check"872permutation "w3" "r1" "r2" "p3" "w2" "c3" "p2" "p1" "c2" "c1" "check"873permutation "w3" "r1" "r2" "p3" "w2" "c3" "p2" "c2" "p1" "c1" "check"874permutation "w3" "r1" "r2" "p3" "p1" "w2" "p2" "c3" "c1" "c2" "check"875permutation "w3" "r1" "r2" "p3" "p1" "w2" "p2" "c3" "c2" "c1" "check"876permutation "w3" "r1" "r2" "p3" "p1" "w2" "c3" "p2" "c1" "c2" "check"877permutation "w3" "r1" "r2" "p3" "p1" "w2" "c3" "p2" "c2" "c1" "check"878permutation "w3" "r1" "r2" "p3" "p1" "w2" "c3" "c1" "p2" "c2" "check"879permutation "w3" "r1" "r2" "p3" "p1" "c3" "w2" "p2" "c1" "c2" "check"880permutation "w3" "r1" "r2" "p3" "p1" "c3" "w2" "p2" "c2" "c1" "check"881permutation "w3" "r1" "r2" "p3" "p1" "c3" "w2" "c1" "p2" "c2" "check"882permutation "w3" "r1" "r2" "p3" "p1" "c3" "c1" "w2" "p2" "c2" "check"883permutation "w3" "r1" "r2" "p3" "c3" "w2" "p1" "p2" "c1" "c2" "check"884permutation "w3" "r1" "r2" "p3" "c3" "w2" "p1" "p2" "c2" "c1" "check"885permutation "w3" "r1" "r2" "p3" "c3" "w2" "p1" "c1" "p2" "c2" "check"886permutation "w3" "r1" "r2" "p3" "c3" "w2" "p2" "p1" "c1" "c2" "check"887permutation "w3" "r1" "r2" "p3" "c3" "w2" "p2" "p1" "c2" "c1" "check"888permutation "w3" "r1" "r2" "p3" "c3" "w2" "p2" "c2" "p1" "c1" "check"889permutation "w3" "r1" "r2" "p3" "c3" "p1" "w2" "p2" "c1" "c2" "check"890permutation "w3" "r1" "r2" "p3" "c3" "p1" "w2" "p2" "c2" "c1" "check"891permutation "w3" "r1" "r2" "p3" "c3" "p1" "w2" "c1" "p2" "c2" "check"892permutation "w3" "r1" "r2" "p3" "c3" "p1" "c1" "w2" "p2" "c2" "check"893permutation "w3" "r1" "w2" "r2" "p1" "p2" "p3" "c3" "c1" "c2" "check"894permutation "w3" "r1" "w2" "r2" "p1" "p2" "p3" "c3" "c2" "c1" "check"895permutation "w3" "r1" "w2" "r2" "p1" "p3" "p2" "c3" "c1" "c2" "check"896permutation "w3" "r1" "w2" "r2" "p1" "p3" "p2" "c3" "c2" "c1" "check"897permutation "w3" "r1" "w2" "r2" "p1" "p3" "c3" "p2" "c1" "c2" "check"898permutation "w3" "r1" "w2" "r2" "p1" "p3" "c3" "p2" "c2" "c1" "check"899permutation "w3" "r1" "w2" "r2" "p1" "p3" "c3" "c1" "p2" "c2" "check"900permutation "w3" "r1" "w2" "r2" "p2" "p1" "p3" "c3" "c1" "c2" "check"901permutation "w3" "r1" "w2" "r2" "p2" "p1" "p3" "c3" "c2" "c1" "check"902permutation "w3" "r1" "w2" "r2" "p2" "p3" "p1" "c3" "c1" "c2" "check"903permutation "w3" "r1" "w2" "r2" "p2" "p3" "p1" "c3" "c2" "c1" "check"904permutation "w3" "r1" "w2" "r2" "p2" "p3" "c3" "p1" "c1" "c2" "check"905permutation "w3" "r1" "w2" "r2" "p2" "p3" "c3" "p1" "c2" "c1" "check"906permutation "w3" "r1" "w2" "r2" "p2" "p3" "c3" "c2" "p1" "c1" "check"907permutation "w3" "r1" "w2" "r2" "p3" "p1" "p2" "c3" "c1" "c2" "check"908permutation "w3" "r1" "w2" "r2" "p3" "p1" "p2" "c3" "c2" "c1" "check"909permutation "w3" "r1" "w2" "r2" "p3" "p1" "c3" "p2" "c1" "c2" "check"910permutation "w3" "r1" "w2" "r2" "p3" "p1" "c3" "p2" "c2" "c1" "check"911permutation "w3" "r1" "w2" "r2" "p3" "p1" "c3" "c1" "p2" "c2" "check"912permutation "w3" "r1" "w2" "r2" "p3" "p2" "p1" "c3" "c1" "c2" "check"913permutation "w3" "r1" "w2" "r2" "p3" "p2" "p1" "c3" "c2" "c1" "check"914permutation "w3" "r1" "w2" "r2" "p3" "p2" "c3" "p1" "c1" "c2" "check"915permutation "w3" "r1" "w2" "r2" "p3" "p2" "c3" "p1" "c2" "c1" "check"916permutation "w3" "r1" "w2" "r2" "p3" "p2" "c3" "c2" "p1" "c1" "check"917permutation "w3" "r1" "w2" "r2" "p3" "c3" "p1" "p2" "c1" "c2" "check"918permutation "w3" "r1" "w2" "r2" "p3" "c3" "p1" "p2" "c2" "c1" "check"919permutation "w3" "r1" "w2" "r2" "p3" "c3" "p1" "c1" "p2" "c2" "check"920permutation "w3" "r1" "w2" "r2" "p3" "c3" "p2" "p1" "c1" "c2" "check"921permutation "w3" "r1" "w2" "r2" "p3" "c3" "p2" "p1" "c2" "c1" "check"922permutation "w3" "r1" "w2" "r2" "p3" "c3" "p2" "c2" "p1" "c1" "check"923permutation "w3" "r1" "w2" "p1" "r2" "p2" "p3" "c3" "c1" "c2" "check"924permutation "w3" "r1" "w2" "p1" "r2" "p2" "p3" "c3" "c2" "c1" "check"925permutation "w3" "r1" "w2" "p1" "r2" "p3" "p2" "c3" "c1" "c2" "check"926permutation "w3" "r1" "w2" "p1" "r2" "p3" "p2" "c3" "c2" "c1" "check"927permutation "w3" "r1" "w2" "p1" "r2" "p3" "c3" "p2" "c1" "c2" "check"928permutation "w3" "r1" "w2" "p1" "r2" "p3" "c3" "p2" "c2" "c1" "check"929permutation "w3" "r1" "w2" "p1" "r2" "p3" "c3" "c1" "p2" "c2" "check"930permutation "w3" "r1" "w2" "p1" "p3" "r2" "p2" "c3" "c1" "c2" "check"931permutation "w3" "r1" "w2" "p1" "p3" "r2" "p2" "c3" "c2" "c1" "check"932permutation "w3" "r1" "w2" "p1" "p3" "r2" "c3" "p2" "c1" "c2" "check"933permutation "w3" "r1" "w2" "p1" "p3" "r2" "c3" "p2" "c2" "c1" "check"934permutation "w3" "r1" "w2" "p1" "p3" "r2" "c3" "c1" "p2" "c2" "check"935permutation "w3" "r1" "w2" "p1" "p3" "c3" "r2" "p2" "c1" "c2" "check"936permutation "w3" "r1" "w2" "p1" "p3" "c3" "r2" "p2" "c2" "c1" "check"937permutation "w3" "r1" "w2" "p1" "p3" "c3" "r2" "c1" "p2" "c2" "check"938permutation "w3" "r1" "w2" "p1" "p3" "c3" "c1" "r2" "p2" "c2" "check"939permutation "w3" "r1" "w2" "p3" "r2" "p1" "p2" "c3" "c1" "c2" "check"940permutation "w3" "r1" "w2" "p3" "r2" "p1" "p2" "c3" "c2" "c1" "check"941permutation "w3" "r1" "w2" "p3" "r2" "p1" "c3" "p2" "c1" "c2" "check"942permutation "w3" "r1" "w2" "p3" "r2" "p1" "c3" "p2" "c2" "c1" "check"943permutation "w3" "r1" "w2" "p3" "r2" "p1" "c3" "c1" "p2" "c2" "check"944permutation "w3" "r1" "w2" "p3" "r2" "p2" "p1" "c3" "c1" "c2" "check"945permutation "w3" "r1" "w2" "p3" "r2" "p2" "p1" "c3" "c2" "c1" "check"946permutation "w3" "r1" "w2" "p3" "r2" "p2" "c3" "p1" "c1" "c2" "check"947permutation "w3" "r1" "w2" "p3" "r2" "p2" "c3" "p1" "c2" "c1" "check"948permutation "w3" "r1" "w2" "p3" "r2" "p2" "c3" "c2" "p1" "c1" "check"949permutation "w3" "r1" "w2" "p3" "r2" "c3" "p1" "p2" "c1" "c2" "check"950permutation "w3" "r1" "w2" "p3" "r2" "c3" "p1" "p2" "c2" "c1" "check"951permutation "w3" "r1" "w2" "p3" "r2" "c3" "p1" "c1" "p2" "c2" "check"952permutation "w3" "r1" "w2" "p3" "r2" "c3" "p2" "p1" "c1" "c2" "check"953permutation "w3" "r1" "w2" "p3" "r2" "c3" "p2" "p1" "c2" "c1" "check"954permutation "w3" "r1" "w2" "p3" "r2" "c3" "p2" "c2" "p1" "c1" "check"955permutation "w3" "r1" "w2" "p3" "p1" "r2" "p2" "c3" "c1" "c2" "check"956permutation "w3" "r1" "w2" "p3" "p1" "r2" "p2" "c3" "c2" "c1" "check"957permutation "w3" "r1" "w2" "p3" "p1" "r2" "c3" "p2" "c1" "c2" "check"958permutation "w3" "r1" "w2" "p3" "p1" "r2" "c3" "p2" "c2" "c1" "check"959permutation "w3" "r1" "w2" "p3" "p1" "r2" "c3" "c1" "p2" "c2" "check"960permutation "w3" "r1" "w2" "p3" "p1" "c3" "r2" "p2" "c1" "c2" "check"961permutation "w3" "r1" "w2" "p3" "p1" "c3" "r2" "p2" "c2" "c1" "check"962permutation "w3" "r1" "w2" "p3" "p1" "c3" "r2" "c1" "p2" "c2" "check"963permutation "w3" "r1" "w2" "p3" "p1" "c3" "c1" "r2" "p2" "c2" "check"964permutation "w3" "r1" "w2" "p3" "c3" "r2" "p1" "p2" "c1" "c2" "check"965permutation "w3" "r1" "w2" "p3" "c3" "r2" "p1" "p2" "c2" "c1" "check"966permutation "w3" "r1" "w2" "p3" "c3" "r2" "p1" "c1" "p2" "c2" "check"967permutation "w3" "r1" "w2" "p3" "c3" "r2" "p2" "p1" "c1" "c2" "check"968permutation "w3" "r1" "w2" "p3" "c3" "r2" "p2" "p1" "c2" "c1" "check"969permutation "w3" "r1" "w2" "p3" "c3" "r2" "p2" "c2" "p1" "c1" "check"970permutation "w3" "r1" "w2" "p3" "c3" "p1" "r2" "p2" "c1" "c2" "check"971permutation "w3" "r1" "w2" "p3" "c3" "p1" "r2" "p2" "c2" "c1" "check"972permutation "w3" "r1" "w2" "p3" "c3" "p1" "r2" "c1" "p2" "c2" "check"973permutation "w3" "r1" "w2" "p3" "c3" "p1" "c1" "r2" "p2" "c2" "check"974permutation "w3" "r1" "p1" "r2" "w2" "p2" "p3" "c3" "c1" "c2" "check"975permutation "w3" "r1" "p1" "r2" "w2" "p2" "p3" "c3" "c2" "c1" "check"976permutation "w3" "r1" "p1" "r2" "w2" "p3" "p2" "c3" "c1" "c2" "check"977permutation "w3" "r1" "p1" "r2" "w2" "p3" "p2" "c3" "c2" "c1" "check"978permutation "w3" "r1" "p1" "r2" "w2" "p3" "c3" "p2" "c1" "c2" "check"979permutation "w3" "r1" "p1" "r2" "w2" "p3" "c3" "p2" "c2" "c1" "check"980permutation "w3" "r1" "p1" "r2" "w2" "p3" "c3" "c1" "p2" "c2" "check"981permutation "w3" "r1" "p1" "r2" "p3" "w2" "p2" "c3" "c1" "c2" "check"982permutation "w3" "r1" "p1" "r2" "p3" "w2" "p2" "c3" "c2" "c1" "check"983permutation "w3" "r1" "p1" "r2" "p3" "w2" "c3" "p2" "c1" "c2" "check"984permutation "w3" "r1" "p1" "r2" "p3" "w2" "c3" "p2" "c2" "c1" "check"985permutation "w3" "r1" "p1" "r2" "p3" "w2" "c3" "c1" "p2" "c2" "check"986permutation "w3" "r1" "p1" "r2" "p3" "c3" "w2" "p2" "c1" "c2" "check"987permutation "w3" "r1" "p1" "r2" "p3" "c3" "w2" "p2" "c2" "c1" "check"988permutation "w3" "r1" "p1" "r2" "p3" "c3" "w2" "c1" "p2" "c2" "check"989permutation "w3" "r1" "p1" "r2" "p3" "c3" "c1" "w2" "p2" "c2" "check"990permutation "w3" "r1" "p1" "w2" "r2" "p2" "p3" "c3" "c1" "c2" "check"991permutation "w3" "r1" "p1" "w2" "r2" "p2" "p3" "c3" "c2" "c1" "check"992permutation "w3" "r1" "p1" "w2" "r2" "p3" "p2" "c3" "c1" "c2" "check"993permutation "w3" "r1" "p1" "w2" "r2" "p3" "p2" "c3" "c2" "c1" "check"994permutation "w3" "r1" "p1" "w2" "r2" "p3" "c3" "p2" "c1" "c2" "check"995permutation "w3" "r1" "p1" "w2" "r2" "p3" "c3" "p2" "c2" "c1" "check"996permutation "w3" "r1" "p1" "w2" "r2" "p3" "c3" "c1" "p2" "c2" "check"997permutation "w3" "r1" "p1" "w2" "p3" "r2" "p2" "c3" "c1" "c2" "check"998permutation "w3" "r1" "p1" "w2" "p3" "r2" "p2" "c3" "c2" "c1" "check"999permutation "w3" "r1" "p1" "w2" "p3" "r2" "c3" "p2" "c1" "c2" "check"1000permutation "w3" "r1" "p1" "w2" "p3" "r2" "c3" "p2" "c2" "c1" "check"1001permutation "w3" "r1" "p1" "w2" "p3" "r2" "c3" "c1" "p2" "c2" "check"1002permutation "w3" "r1" "p1" "w2" "p3" "c3" "r2" "p2" "c1" "c2" "check"1003permutation "w3" "r1" "p1" "w2" "p3" "c3" "r2" "p2" "c2" "c1" "check"1004permutation "w3" "r1" "p1" "w2" "p3" "c3" "r2" "c1" "p2" "c2" "check"1005permutation "w3" "r1" "p1" "w2" "p3" "c3" "c1" "r2" "p2" "c2" "check"1006permutation "w3" "r1" "p1" "p3" "r2" "w2" "p2" "c3" "c1" "c2" "check"1007permutation "w3" "r1" "p1" "p3" "r2" "w2" "p2" "c3" "c2" "c1" "check"1008permutation "w3" "r1" "p1" "p3" "r2" "w2" "c3" "p2" "c1" "c2" "check"1009permutation "w3" "r1" "p1" "p3" "r2" "w2" "c3" "p2" "c2" "c1" "check"1010permutation "w3" "r1" "p1" "p3" "r2" "w2" "c3" "c1" "p2" "c2" "check"1011permutation "w3" "r1" "p1" "p3" "r2" "c3" "w2" "p2" "c1" "c2" "check"1012permutation "w3" "r1" "p1" "p3" "r2" "c3" "w2" "p2" "c2" "c1" "check"1013permutation "w3" "r1" "p1" "p3" "r2" "c3" "w2" "c1" "p2" "c2" "check"1014permutation "w3" "r1" "p1" "p3" "r2" "c3" "c1" "w2" "p2" "c2" "check"1015permutation "w3" "r1" "p1" "p3" "w2" "r2" "p2" "c3" "c1" "c2" "check"1016permutation "w3" "r1" "p1" "p3" "w2" "r2" "p2" "c3" "c2" "c1" "check"1017permutation "w3" "r1" "p1" "p3" "w2" "r2" "c3" "p2" "c1" "c2" "check"1018permutation "w3" "r1" "p1" "p3" "w2" "r2" "c3" "p2" "c2" "c1" "check"1019permutation "w3" "r1" "p1" "p3" "w2" "r2" "c3" "c1" "p2" "c2" "check"1020permutation "w3" "r1" "p1" "p3" "w2" "c3" "r2" "p2" "c1" "c2" "check"1021permutation "w3" "r1" "p1" "p3" "w2" "c3" "r2" "p2" "c2" "c1" "check"1022permutation "w3" "r1" "p1" "p3" "w2" "c3" "r2" "c1" "p2" "c2" "check"1023permutation "w3" "r1" "p1" "p3" "w2" "c3" "c1" "r2" "p2" "c2" "check"1024permutation "w3" "r1" "p1" "p3" "c3" "r2" "w2" "p2" "c1" "c2" "check"1025permutation "w3" "r1" "p1" "p3" "c3" "r2" "w2" "p2" "c2" "c1" "check"1026permutation "w3" "r1" "p1" "p3" "c3" "r2" "w2" "c1" "p2" "c2" "check"1027permutation "w3" "r1" "p1" "p3" "c3" "r2" "c1" "w2" "p2" "c2" "check"1028permutation "w3" "r1" "p1" "p3" "c3" "w2" "r2" "p2" "c1" "c2" "check"1029permutation "w3" "r1" "p1" "p3" "c3" "w2" "r2" "p2" "c2" "c1" "check"1030permutation "w3" "r1" "p1" "p3" "c3" "w2" "r2" "c1" "p2" "c2" "check"1031permutation "w3" "r1" "p1" "p3" "c3" "w2" "c1" "r2" "p2" "c2" "check"1032permutation "w3" "r1" "p1" "p3" "c3" "c1" "r2" "w2" "p2" "c2" "check"1033permutation "w3" "r1" "p1" "p3" "c3" "c1" "w2" "r2" "p2" "c2" "check"1034permutation "w3" "r1" "p3" "r2" "w2" "p1" "p2" "c3" "c1" "c2" "check"1035permutation "w3" "r1" "p3" "r2" "w2" "p1" "p2" "c3" "c2" "c1" "check"1036permutation "w3" "r1" "p3" "r2" "w2" "p1" "c3" "p2" "c1" "c2" "check"1037permutation "w3" "r1" "p3" "r2" "w2" "p1" "c3" "p2" "c2" "c1" "check"1038permutation "w3" "r1" "p3" "r2" "w2" "p1" "c3" "c1" "p2" "c2" "check"1039permutation "w3" "r1" "p3" "r2" "w2" "p2" "p1" "c3" "c1" "c2" "check"1040permutation "w3" "r1" "p3" "r2" "w2" "p2" "p1" "c3" "c2" "c1" "check"1041permutation "w3" "r1" "p3" "r2" "w2" "p2" "c3" "p1" "c1" "c2" "check"1042permutation "w3" "r1" "p3" "r2" "w2" "p2" "c3" "p1" "c2" "c1" "check"1043permutation "w3" "r1" "p3" "r2" "w2" "p2" "c3" "c2" "p1" "c1" "check"1044permutation "w3" "r1" "p3" "r2" "w2" "c3" "p1" "p2" "c1" "c2" "check"1045permutation "w3" "r1" "p3" "r2" "w2" "c3" "p1" "p2" "c2" "c1" "check"1046permutation "w3" "r1" "p3" "r2" "w2" "c3" "p1" "c1" "p2" "c2" "check"1047permutation "w3" "r1" "p3" "r2" "w2" "c3" "p2" "p1" "c1" "c2" "check"1048permutation "w3" "r1" "p3" "r2" "w2" "c3" "p2" "p1" "c2" "c1" "check"1049permutation "w3" "r1" "p3" "r2" "w2" "c3" "p2" "c2" "p1" "c1" "check"1050permutation "w3" "r1" "p3" "r2" "p1" "w2" "p2" "c3" "c1" "c2" "check"1051permutation "w3" "r1" "p3" "r2" "p1" "w2" "p2" "c3" "c2" "c1" "check"1052permutation "w3" "r1" "p3" "r2" "p1" "w2" "c3" "p2" "c1" "c2" "check"1053permutation "w3" "r1" "p3" "r2" "p1" "w2" "c3" "p2" "c2" "c1" "check"1054permutation "w3" "r1" "p3" "r2" "p1" "w2" "c3" "c1" "p2" "c2" "check"1055permutation "w3" "r1" "p3" "r2" "p1" "c3" "w2" "p2" "c1" "c2" "check"1056permutation "w3" "r1" "p3" "r2" "p1" "c3" "w2" "p2" "c2" "c1" "check"1057permutation "w3" "r1" "p3" "r2" "p1" "c3" "w2" "c1" "p2" "c2" "check"1058permutation "w3" "r1" "p3" "r2" "p1" "c3" "c1" "w2" "p2" "c2" "check"1059permutation "w3" "r1" "p3" "r2" "c3" "w2" "p1" "p2" "c1" "c2" "check"1060permutation "w3" "r1" "p3" "r2" "c3" "w2" "p1" "p2" "c2" "c1" "check"1061permutation "w3" "r1" "p3" "r2" "c3" "w2" "p1" "c1" "p2" "c2" "check"1062permutation "w3" "r1" "p3" "r2" "c3" "w2" "p2" "p1" "c1" "c2" "check"1063permutation "w3" "r1" "p3" "r2" "c3" "w2" "p2" "p1" "c2" "c1" "check"1064permutation "w3" "r1" "p3" "r2" "c3" "w2" "p2" "c2" "p1" "c1" "check"1065permutation "w3" "r1" "p3" "r2" "c3" "p1" "w2" "p2" "c1" "c2" "check"1066permutation "w3" "r1" "p3" "r2" "c3" "p1" "w2" "p2" "c2" "c1" "check"1067permutation "w3" "r1" "p3" "r2" "c3" "p1" "w2" "c1" "p2" "c2" "check"1068permutation "w3" "r1" "p3" "r2" "c3" "p1" "c1" "w2" "p2" "c2" "check"1069permutation "w3" "r1" "p3" "w2" "r2" "p1" "p2" "c3" "c1" "c2" "check"1070permutation "w3" "r1" "p3" "w2" "r2" "p1" "p2" "c3" "c2" "c1" "check"1071permutation "w3" "r1" "p3" "w2" "r2" "p1" "c3" "p2" "c1" "c2" "check"1072permutation "w3" "r1" "p3" "w2" "r2" "p1" "c3" "p2" "c2" "c1" "check"1073permutation "w3" "r1" "p3" "w2" "r2" "p1" "c3" "c1" "p2" "c2" "check"1074permutation "w3" "r1" "p3" "w2" "r2" "p2" "p1" "c3" "c1" "c2" "check"1075permutation "w3" "r1" "p3" "w2" "r2" "p2" "p1" "c3" "c2" "c1" "check"1076permutation "w3" "r1" "p3" "w2" "r2" "p2" "c3" "p1" "c1" "c2" "check"1077permutation "w3" "r1" "p3" "w2" "r2" "p2" "c3" "p1" "c2" "c1" "check"1078permutation "w3" "r1" "p3" "w2" "r2" "p2" "c3" "c2" "p1" "c1" "check"1079permutation "w3" "r1" "p3" "w2" "r2" "c3" "p1" "p2" "c1" "c2" "check"1080permutation "w3" "r1" "p3" "w2" "r2" "c3" "p1" "p2" "c2" "c1" "check"1081permutation "w3" "r1" "p3" "w2" "r2" "c3" "p1" "c1" "p2" "c2" "check"1082permutation "w3" "r1" "p3" "w2" "r2" "c3" "p2" "p1" "c1" "c2" "check"1083permutation "w3" "r1" "p3" "w2" "r2" "c3" "p2" "p1" "c2" "c1" "check"1084permutation "w3" "r1" "p3" "w2" "r2" "c3" "p2" "c2" "p1" "c1" "check"1085permutation "w3" "r1" "p3" "w2" "p1" "r2" "p2" "c3" "c1" "c2" "check"1086permutation "w3" "r1" "p3" "w2" "p1" "r2" "p2" "c3" "c2" "c1" "check"1087permutation "w3" "r1" "p3" "w2" "p1" "r2" "c3" "p2" "c1" "c2" "check"1088permutation "w3" "r1" "p3" "w2" "p1" "r2" "c3" "p2" "c2" "c1" "check"1089permutation "w3" "r1" "p3" "w2" "p1" "r2" "c3" "c1" "p2" "c2" "check"1090permutation "w3" "r1" "p3" "w2" "p1" "c3" "r2" "p2" "c1" "c2" "check"1091permutation "w3" "r1" "p3" "w2" "p1" "c3" "r2" "p2" "c2" "c1" "check"1092permutation "w3" "r1" "p3" "w2" "p1" "c3" "r2" "c1" "p2" "c2" "check"1093permutation "w3" "r1" "p3" "w2" "p1" "c3" "c1" "r2" "p2" "c2" "check"1094permutation "w3" "r1" "p3" "w2" "c3" "r2" "p1" "p2" "c1" "c2" "check"1095permutation "w3" "r1" "p3" "w2" "c3" "r2" "p1" "p2" "c2" "c1" "check"1096permutation "w3" "r1" "p3" "w2" "c3" "r2" "p1" "c1" "p2" "c2" "check"1097permutation "w3" "r1" "p3" "w2" "c3" "r2" "p2" "p1" "c1" "c2" "check"1098permutation "w3" "r1" "p3" "w2" "c3" "r2" "p2" "p1" "c2" "c1" "check"1099permutation "w3" "r1" "p3" "w2" "c3" "r2" "p2" "c2" "p1" "c1" "check"1100permutation "w3" "r1" "p3" "w2" "c3" "p1" "r2" "p2" "c1" "c2" "check"1101permutation "w3" "r1" "p3" "w2" "c3" "p1" "r2" "p2" "c2" "c1" "check"1102permutation "w3" "r1" "p3" "w2" "c3" "p1" "r2" "c1" "p2" "c2" "check"1103permutation "w3" "r1" "p3" "w2" "c3" "p1" "c1" "r2" "p2" "c2" "check"1104permutation "w3" "r1" "p3" "p1" "r2" "w2" "p2" "c3" "c1" "c2" "check"1105permutation "w3" "r1" "p3" "p1" "r2" "w2" "p2" "c3" "c2" "c1" "check"1106permutation "w3" "r1" "p3" "p1" "r2" "w2" "c3" "p2" "c1" "c2" "check"1107permutation "w3" "r1" "p3" "p1" "r2" "w2" "c3" "p2" "c2" "c1" "check"1108permutation "w3" "r1" "p3" "p1" "r2" "w2" "c3" "c1" "p2" "c2" "check"1109permutation "w3" "r1" "p3" "p1" "r2" "c3" "w2" "p2" "c1" "c2" "check"1110permutation "w3" "r1" "p3" "p1" "r2" "c3" "w2" "p2" "c2" "c1" "check"1111permutation "w3" "r1" "p3" "p1" "r2" "c3" "w2" "c1" "p2" "c2" "check"1112permutation "w3" "r1" "p3" "p1" "r2" "c3" "c1" "w2" "p2" "c2" "check"1113permutation "w3" "r1" "p3" "p1" "w2" "r2" "p2" "c3" "c1" "c2" "check"1114permutation "w3" "r1" "p3" "p1" "w2" "r2" "p2" "c3" "c2" "c1" "check"1115permutation "w3" "r1" "p3" "p1" "w2" "r2" "c3" "p2" "c1" "c2" "check"1116permutation "w3" "r1" "p3" "p1" "w2" "r2" "c3" "p2" "c2" "c1" "check"1117permutation "w3" "r1" "p3" "p1" "w2" "r2" "c3" "c1" "p2" "c2" "check"1118permutation "w3" "r1" "p3" "p1" "w2" "c3" "r2" "p2" "c1" "c2" "check"1119permutation "w3" "r1" "p3" "p1" "w2" "c3" "r2" "p2" "c2" "c1" "check"1120permutation "w3" "r1" "p3" "p1" "w2" "c3" "r2" "c1" "p2" "c2" "check"1121permutation "w3" "r1" "p3" "p1" "w2" "c3" "c1" "r2" "p2" "c2" "check"1122permutation "w3" "r1" "p3" "p1" "c3" "r2" "w2" "p2" "c1" "c2" "check"1123permutation "w3" "r1" "p3" "p1" "c3" "r2" "w2" "p2" "c2" "c1" "check"1124permutation "w3" "r1" "p3" "p1" "c3" "r2" "w2" "c1" "p2" "c2" "check"1125permutation "w3" "r1" "p3" "p1" "c3" "r2" "c1" "w2" "p2" "c2" "check"1126permutation "w3" "r1" "p3" "p1" "c3" "w2" "r2" "p2" "c1" "c2" "check"1127permutation "w3" "r1" "p3" "p1" "c3" "w2" "r2" "p2" "c2" "c1" "check"1128permutation "w3" "r1" "p3" "p1" "c3" "w2" "r2" "c1" "p2" "c2" "check"1129permutation "w3" "r1" "p3" "p1" "c3" "w2" "c1" "r2" "p2" "c2" "check"1130permutation "w3" "r1" "p3" "p1" "c3" "c1" "r2" "w2" "p2" "c2" "check"1131permutation "w3" "r1" "p3" "p1" "c3" "c1" "w2" "r2" "p2" "c2" "check"1132permutation "w3" "r1" "p3" "c3" "r2" "w2" "p1" "p2" "c1" "c2" "check"1133permutation "w3" "r1" "p3" "c3" "r2" "w2" "p1" "p2" "c2" "c1" "check"1134permutation "w3" "r1" "p3" "c3" "r2" "w2" "p1" "c1" "p2" "c2" "check"1135permutation "w3" "r1" "p3" "c3" "r2" "w2" "p2" "p1" "c1" "c2" "check"1136permutation "w3" "r1" "p3" "c3" "r2" "w2" "p2" "p1" "c2" "c1" "check"1137permutation "w3" "r1" "p3" "c3" "r2" "w2" "p2" "c2" "p1" "c1" "check"1138permutation "w3" "r1" "p3" "c3" "r2" "p1" "w2" "p2" "c1" "c2" "check"1139permutation "w3" "r1" "p3" "c3" "r2" "p1" "w2" "p2" "c2" "c1" "check"1140permutation "w3" "r1" "p3" "c3" "r2" "p1" "w2" "c1" "p2" "c2" "check"1141permutation "w3" "r1" "p3" "c3" "r2" "p1" "c1" "w2" "p2" "c2" "check"1142permutation "w3" "r1" "p3" "c3" "w2" "r2" "p1" "p2" "c1" "c2" "check"1143permutation "w3" "r1" "p3" "c3" "w2" "r2" "p1" "p2" "c2" "c1" "check"1144permutation "w3" "r1" "p3" "c3" "w2" "r2" "p1" "c1" "p2" "c2" "check"1145permutation "w3" "r1" "p3" "c3" "w2" "r2" "p2" "p1" "c1" "c2" "check"1146permutation "w3" "r1" "p3" "c3" "w2" "r2" "p2" "p1" "c2" "c1" "check"1147permutation "w3" "r1" "p3" "c3" "w2" "r2" "p2" "c2" "p1" "c1" "check"1148permutation "w3" "r1" "p3" "c3" "w2" "p1" "r2" "p2" "c1" "c2" "check"1149permutation "w3" "r1" "p3" "c3" "w2" "p1" "r2" "p2" "c2" "c1" "check"1150permutation "w3" "r1" "p3" "c3" "w2" "p1" "r2" "c1" "p2" "c2" "check"1151permutation "w3" "r1" "p3" "c3" "w2" "p1" "c1" "r2" "p2" "c2" "check"1152permutation "w3" "r1" "p3" "c3" "p1" "r2" "w2" "p2" "c1" "c2" "check"1153permutation "w3" "r1" "p3" "c3" "p1" "r2" "w2" "p2" "c2" "c1" "check"1154permutation "w3" "r1" "p3" "c3" "p1" "r2" "w2" "c1" "p2" "c2" "check"1155permutation "w3" "r1" "p3" "c3" "p1" "r2" "c1" "w2" "p2" "c2" "check"1156permutation "w3" "r1" "p3" "c3" "p1" "w2" "r2" "p2" "c1" "c2" "check"1157permutation "w3" "r1" "p3" "c3" "p1" "w2" "r2" "p2" "c2" "c1" "check"1158permutation "w3" "r1" "p3" "c3" "p1" "w2" "r2" "c1" "p2" "c2" "check"1159permutation "w3" "r1" "p3" "c3" "p1" "w2" "c1" "r2" "p2" "c2" "check"1160permutation "w3" "r1" "p3" "c3" "p1" "c1" "r2" "w2" "p2" "c2" "check"1161permutation "w3" "r1" "p3" "c3" "p1" "c1" "w2" "r2" "p2" "c2" "check"1162permutation "w3" "r2" "r1" "w2" "p1" "p2" "p3" "c3" "c1" "c2" "check"1163permutation "w3" "r2" "r1" "w2" "p1" "p2" "p3" "c3" "c2" "c1" "check"1164permutation "w3" "r2" "r1" "w2" "p1" "p3" "p2" "c3" "c1" "c2" "check"1165permutation "w3" "r2" "r1" "w2" "p1" "p3" "p2" "c3" "c2" "c1" "check"1166permutation "w3" "r2" "r1" "w2" "p1" "p3" "c3" "p2" "c1" "c2" "check"1167permutation "w3" "r2" "r1" "w2" "p1" "p3" "c3" "p2" "c2" "c1" "check"1168permutation "w3" "r2" "r1" "w2" "p1" "p3" "c3" "c1" "p2" "c2" "check"1169permutation "w3" "r2" "r1" "w2" "p2" "p1" "p3" "c3" "c1" "c2" "check"1170permutation "w3" "r2" "r1" "w2" "p2" "p1" "p3" "c3" "c2" "c1" "check"1171permutation "w3" "r2" "r1" "w2" "p2" "p3" "p1" "c3" "c1" "c2" "check"1172permutation "w3" "r2" "r1" "w2" "p2" "p3" "p1" "c3" "c2" "c1" "check"1173permutation "w3" "r2" "r1" "w2" "p2" "p3" "c3" "p1" "c1" "c2" "check"1174permutation "w3" "r2" "r1" "w2" "p2" "p3" "c3" "p1" "c2" "c1" "check"1175permutation "w3" "r2" "r1" "w2" "p2" "p3" "c3" "c2" "p1" "c1" "check"1176permutation "w3" "r2" "r1" "w2" "p3" "p1" "p2" "c3" "c1" "c2" "check"1177permutation "w3" "r2" "r1" "w2" "p3" "p1" "p2" "c3" "c2" "c1" "check"1178permutation "w3" "r2" "r1" "w2" "p3" "p1" "c3" "p2" "c1" "c2" "check"1179permutation "w3" "r2" "r1" "w2" "p3" "p1" "c3" "p2" "c2" "c1" "check"1180permutation "w3" "r2" "r1" "w2" "p3" "p1" "c3" "c1" "p2" "c2" "check"1181permutation "w3" "r2" "r1" "w2" "p3" "p2" "p1" "c3" "c1" "c2" "check"1182permutation "w3" "r2" "r1" "w2" "p3" "p2" "p1" "c3" "c2" "c1" "check"1183permutation "w3" "r2" "r1" "w2" "p3" "p2" "c3" "p1" "c1" "c2" "check"1184permutation "w3" "r2" "r1" "w2" "p3" "p2" "c3" "p1" "c2" "c1" "check"1185permutation "w3" "r2" "r1" "w2" "p3" "p2" "c3" "c2" "p1" "c1" "check"1186permutation "w3" "r2" "r1" "w2" "p3" "c3" "p1" "p2" "c1" "c2" "check"1187permutation "w3" "r2" "r1" "w2" "p3" "c3" "p1" "p2" "c2" "c1" "check"1188permutation "w3" "r2" "r1" "w2" "p3" "c3" "p1" "c1" "p2" "c2" "check"1189permutation "w3" "r2" "r1" "w2" "p3" "c3" "p2" "p1" "c1" "c2" "check"1190permutation "w3" "r2" "r1" "w2" "p3" "c3" "p2" "p1" "c2" "c1" "check"1191permutation "w3" "r2" "r1" "w2" "p3" "c3" "p2" "c2" "p1" "c1" "check"1192permutation "w3" "r2" "r1" "p1" "w2" "p2" "p3" "c3" "c1" "c2" "check"1193permutation "w3" "r2" "r1" "p1" "w2" "p2" "p3" "c3" "c2" "c1" "check"1194permutation "w3" "r2" "r1" "p1" "w2" "p3" "p2" "c3" "c1" "c2" "check"1195permutation "w3" "r2" "r1" "p1" "w2" "p3" "p2" "c3" "c2" "c1" "check"1196permutation "w3" "r2" "r1" "p1" "w2" "p3" "c3" "p2" "c1" "c2" "check"1197permutation "w3" "r2" "r1" "p1" "w2" "p3" "c3" "p2" "c2" "c1" "check"1198permutation "w3" "r2" "r1" "p1" "w2" "p3" "c3" "c1" "p2" "c2" "check"1199permutation "w3" "r2" "r1" "p1" "p3" "w2" "p2" "c3" "c1" "c2" "check"1200permutation "w3" "r2" "r1" "p1" "p3" "w2" "p2" "c3" "c2" "c1" "check"1201permutation "w3" "r2" "r1" "p1" "p3" "w2" "c3" "p2" "c1" "c2" "check"1202permutation "w3" "r2" "r1" "p1" "p3" "w2" "c3" "p2" "c2" "c1" "check"1203permutation "w3" "r2" "r1" "p1" "p3" "w2" "c3" "c1" "p2" "c2" "check"1204permutation "w3" "r2" "r1" "p1" "p3" "c3" "w2" "p2" "c1" "c2" "check"1205permutation "w3" "r2" "r1" "p1" "p3" "c3" "w2" "p2" "c2" "c1" "check"1206permutation "w3" "r2" "r1" "p1" "p3" "c3" "w2" "c1" "p2" "c2" "check"1207permutation "w3" "r2" "r1" "p1" "p3" "c3" "c1" "w2" "p2" "c2" "check"1208permutation "w3" "r2" "r1" "p3" "w2" "p1" "p2" "c3" "c1" "c2" "check"1209permutation "w3" "r2" "r1" "p3" "w2" "p1" "p2" "c3" "c2" "c1" "check"1210permutation "w3" "r2" "r1" "p3" "w2" "p1" "c3" "p2" "c1" "c2" "check"1211permutation "w3" "r2" "r1" "p3" "w2" "p1" "c3" "p2" "c2" "c1" "check"1212permutation "w3" "r2" "r1" "p3" "w2" "p1" "c3" "c1" "p2" "c2" "check"1213permutation "w3" "r2" "r1" "p3" "w2" "p2" "p1" "c3" "c1" "c2" "check"1214permutation "w3" "r2" "r1" "p3" "w2" "p2" "p1" "c3" "c2" "c1" "check"1215permutation "w3" "r2" "r1" "p3" "w2" "p2" "c3" "p1" "c1" "c2" "check"1216permutation "w3" "r2" "r1" "p3" "w2" "p2" "c3" "p1" "c2" "c1" "check"1217permutation "w3" "r2" "r1" "p3" "w2" "p2" "c3" "c2" "p1" "c1" "check"1218permutation "w3" "r2" "r1" "p3" "w2" "c3" "p1" "p2" "c1" "c2" "check"1219permutation "w3" "r2" "r1" "p3" "w2" "c3" "p1" "p2" "c2" "c1" "check"1220permutation "w3" "r2" "r1" "p3" "w2" "c3" "p1" "c1" "p2" "c2" "check"1221permutation "w3" "r2" "r1" "p3" "w2" "c3" "p2" "p1" "c1" "c2" "check"1222permutation "w3" "r2" "r1" "p3" "w2" "c3" "p2" "p1" "c2" "c1" "check"1223permutation "w3" "r2" "r1" "p3" "w2" "c3" "p2" "c2" "p1" "c1" "check"1224permutation "w3" "r2" "r1" "p3" "p1" "w2" "p2" "c3" "c1" "c2" "check"1225permutation "w3" "r2" "r1" "p3" "p1" "w2" "p2" "c3" "c2" "c1" "check"1226permutation "w3" "r2" "r1" "p3" "p1" "w2" "c3" "p2" "c1" "c2" "check"1227permutation "w3" "r2" "r1" "p3" "p1" "w2" "c3" "p2" "c2" "c1" "check"1228permutation "w3" "r2" "r1" "p3" "p1" "w2" "c3" "c1" "p2" "c2" "check"1229permutation "w3" "r2" "r1" "p3" "p1" "c3" "w2" "p2" "c1" "c2" "check"1230permutation "w3" "r2" "r1" "p3" "p1" "c3" "w2" "p2" "c2" "c1" "check"1231permutation "w3" "r2" "r1" "p3" "p1" "c3" "w2" "c1" "p2" "c2" "check"1232permutation "w3" "r2" "r1" "p3" "p1" "c3" "c1" "w2" "p2" "c2" "check"1233permutation "w3" "r2" "r1" "p3" "c3" "w2" "p1" "p2" "c1" "c2" "check"1234permutation "w3" "r2" "r1" "p3" "c3" "w2" "p1" "p2" "c2" "c1" "check"1235permutation "w3" "r2" "r1" "p3" "c3" "w2" "p1" "c1" "p2" "c2" "check"1236permutation "w3" "r2" "r1" "p3" "c3" "w2" "p2" "p1" "c1" "c2" "check"1237permutation "w3" "r2" "r1" "p3" "c3" "w2" "p2" "p1" "c2" "c1" "check"1238permutation "w3" "r2" "r1" "p3" "c3" "w2" "p2" "c2" "p1" "c1" "check"1239permutation "w3" "r2" "r1" "p3" "c3" "p1" "w2" "p2" "c1" "c2" "check"1240permutation "w3" "r2" "r1" "p3" "c3" "p1" "w2" "p2" "c2" "c1" "check"1241permutation "w3" "r2" "r1" "p3" "c3" "p1" "w2" "c1" "p2" "c2" "check"1242permutation "w3" "r2" "r1" "p3" "c3" "p1" "c1" "w2" "p2" "c2" "check"1243permutation "w3" "r2" "p3" "r1" "w2" "p1" "p2" "c3" "c1" "c2" "check"1244permutation "w3" "r2" "p3" "r1" "w2" "p1" "p2" "c3" "c2" "c1" "check"1245permutation "w3" "r2" "p3" "r1" "w2" "p1" "c3" "p2" "c1" "c2" "check"1246permutation "w3" "r2" "p3" "r1" "w2" "p1" "c3" "p2" "c2" "c1" "check"1247permutation "w3" "r2" "p3" "r1" "w2" "p1" "c3" "c1" "p2" "c2" "check"1248permutation "w3" "r2" "p3" "r1" "w2" "p2" "p1" "c3" "c1" "c2" "check"1249permutation "w3" "r2" "p3" "r1" "w2" "p2" "p1" "c3" "c2" "c1" "check"1250permutation "w3" "r2" "p3" "r1" "w2" "p2" "c3" "p1" "c1" "c2" "check"1251permutation "w3" "r2" "p3" "r1" "w2" "p2" "c3" "p1" "c2" "c1" "check"1252permutation "w3" "r2" "p3" "r1" "w2" "p2" "c3" "c2" "p1" "c1" "check"1253permutation "w3" "r2" "p3" "r1" "w2" "c3" "p1" "p2" "c1" "c2" "check"1254permutation "w3" "r2" "p3" "r1" "w2" "c3" "p1" "p2" "c2" "c1" "check"1255permutation "w3" "r2" "p3" "r1" "w2" "c3" "p1" "c1" "p2" "c2" "check"1256permutation "w3" "r2" "p3" "r1" "w2" "c3" "p2" "p1" "c1" "c2" "check"1257permutation "w3" "r2" "p3" "r1" "w2" "c3" "p2" "p1" "c2" "c1" "check"1258permutation "w3" "r2" "p3" "r1" "w2" "c3" "p2" "c2" "p1" "c1" "check"1259permutation "w3" "r2" "p3" "r1" "p1" "w2" "p2" "c3" "c1" "c2" "check"1260permutation "w3" "r2" "p3" "r1" "p1" "w2" "p2" "c3" "c2" "c1" "check"1261permutation "w3" "r2" "p3" "r1" "p1" "w2" "c3" "p2" "c1" "c2" "check"1262permutation "w3" "r2" "p3" "r1" "p1" "w2" "c3" "p2" "c2" "c1" "check"1263permutation "w3" "r2" "p3" "r1" "p1" "w2" "c3" "c1" "p2" "c2" "check"1264permutation "w3" "r2" "p3" "r1" "p1" "c3" "w2" "p2" "c1" "c2" "check"1265permutation "w3" "r2" "p3" "r1" "p1" "c3" "w2" "p2" "c2" "c1" "check"1266permutation "w3" "r2" "p3" "r1" "p1" "c3" "w2" "c1" "p2" "c2" "check"1267permutation "w3" "r2" "p3" "r1" "p1" "c3" "c1" "w2" "p2" "c2" "check"1268permutation "w3" "r2" "p3" "r1" "c3" "w2" "p1" "p2" "c1" "c2" "check"1269permutation "w3" "r2" "p3" "r1" "c3" "w2" "p1" "p2" "c2" "c1" "check"1270permutation "w3" "r2" "p3" "r1" "c3" "w2" "p1" "c1" "p2" "c2" "check"1271permutation "w3" "r2" "p3" "r1" "c3" "w2" "p2" "p1" "c1" "c2" "check"1272permutation "w3" "r2" "p3" "r1" "c3" "w2" "p2" "p1" "c2" "c1" "check"1273permutation "w3" "r2" "p3" "r1" "c3" "w2" "p2" "c2" "p1" "c1" "check"1274permutation "w3" "r2" "p3" "r1" "c3" "p1" "w2" "p2" "c1" "c2" "check"1275permutation "w3" "r2" "p3" "r1" "c3" "p1" "w2" "p2" "c2" "c1" "check"1276permutation "w3" "r2" "p3" "r1" "c3" "p1" "w2" "c1" "p2" "c2" "check"1277permutation "w3" "r2" "p3" "r1" "c3" "p1" "c1" "w2" "p2" "c2" "check"1278permutation "w3" "r2" "p3" "c3" "r1" "w2" "p1" "p2" "c1" "c2" "check"1279permutation "w3" "r2" "p3" "c3" "r1" "w2" "p1" "p2" "c2" "c1" "check"1280permutation "w3" "r2" "p3" "c3" "r1" "w2" "p1" "c1" "p2" "c2" "check"1281permutation "w3" "r2" "p3" "c3" "r1" "w2" "p2" "p1" "c1" "c2" "check"1282permutation "w3" "r2" "p3" "c3" "r1" "w2" "p2" "p1" "c2" "c1" "check"1283permutation "w3" "r2" "p3" "c3" "r1" "w2" "p2" "c2" "p1" "c1" "check"1284permutation "w3" "r2" "p3" "c3" "r1" "p1" "w2" "p2" "c1" "c2" "check"1285permutation "w3" "r2" "p3" "c3" "r1" "p1" "w2" "p2" "c2" "c1" "check"1286permutation "w3" "r2" "p3" "c3" "r1" "p1" "w2" "c1" "p2" "c2" "check"1287permutation "w3" "r2" "p3" "c3" "r1" "p1" "c1" "w2" "p2" "c2" "check"1288permutation "w3" "p3" "r1" "r2" "w2" "p1" "p2" "c3" "c1" "c2" "check"1289permutation "w3" "p3" "r1" "r2" "w2" "p1" "p2" "c3" "c2" "c1" "check"1290permutation "w3" "p3" "r1" "r2" "w2" "p1" "c3" "p2" "c1" "c2" "check"1291permutation "w3" "p3" "r1" "r2" "w2" "p1" "c3" "p2" "c2" "c1" "check"1292permutation "w3" "p3" "r1" "r2" "w2" "p1" "c3" "c1" "p2" "c2" "check"1293permutation "w3" "p3" "r1" "r2" "w2" "p2" "p1" "c3" "c1" "c2" "check"1294permutation "w3" "p3" "r1" "r2" "w2" "p2" "p1" "c3" "c2" "c1" "check"1295permutation "w3" "p3" "r1" "r2" "w2" "p2" "c3" "p1" "c1" "c2" "check"1296permutation "w3" "p3" "r1" "r2" "w2" "p2" "c3" "p1" "c2" "c1" "check"1297permutation "w3" "p3" "r1" "r2" "w2" "p2" "c3" "c2" "p1" "c1" "check"1298permutation "w3" "p3" "r1" "r2" "w2" "c3" "p1" "p2" "c1" "c2" "check"1299permutation "w3" "p3" "r1" "r2" "w2" "c3" "p1" "p2" "c2" "c1" "check"1300permutation "w3" "p3" "r1" "r2" "w2" "c3" "p1" "c1" "p2" "c2" "check"1301permutation "w3" "p3" "r1" "r2" "w2" "c3" "p2" "p1" "c1" "c2" "check"1302permutation "w3" "p3" "r1" "r2" "w2" "c3" "p2" "p1" "c2" "c1" "check"1303permutation "w3" "p3" "r1" "r2" "w2" "c3" "p2" "c2" "p1" "c1" "check"1304permutation "w3" "p3" "r1" "r2" "p1" "w2" "p2" "c3" "c1" "c2" "check"1305permutation "w3" "p3" "r1" "r2" "p1" "w2" "p2" "c3" "c2" "c1" "check"1306permutation "w3" "p3" "r1" "r2" "p1" "w2" "c3" "p2" "c1" "c2" "check"1307permutation "w3" "p3" "r1" "r2" "p1" "w2" "c3" "p2" "c2" "c1" "check"1308permutation "w3" "p3" "r1" "r2" "p1" "w2" "c3" "c1" "p2" "c2" "check"1309permutation "w3" "p3" "r1" "r2" "p1" "c3" "w2" "p2" "c1" "c2" "check"1310permutation "w3" "p3" "r1" "r2" "p1" "c3" "w2" "p2" "c2" "c1" "check"1311permutation "w3" "p3" "r1" "r2" "p1" "c3" "w2" "c1" "p2" "c2" "check"1312permutation "w3" "p3" "r1" "r2" "p1" "c3" "c1" "w2" "p2" "c2" "check"1313permutation "w3" "p3" "r1" "r2" "c3" "w2" "p1" "p2" "c1" "c2" "check"1314permutation "w3" "p3" "r1" "r2" "c3" "w2" "p1" "p2" "c2" "c1" "check"1315permutation "w3" "p3" "r1" "r2" "c3" "w2" "p1" "c1" "p2" "c2" "check"1316permutation "w3" "p3" "r1" "r2" "c3" "w2" "p2" "p1" "c1" "c2" "check"1317permutation "w3" "p3" "r1" "r2" "c3" "w2" "p2" "p1" "c2" "c1" "check"1318permutation "w3" "p3" "r1" "r2" "c3" "w2" "p2" "c2" "p1" "c1" "check"1319permutation "w3" "p3" "r1" "r2" "c3" "p1" "w2" "p2" "c1" "c2" "check"1320permutation "w3" "p3" "r1" "r2" "c3" "p1" "w2" "p2" "c2" "c1" "check"1321permutation "w3" "p3" "r1" "r2" "c3" "p1" "w2" "c1" "p2" "c2" "check"1322permutation "w3" "p3" "r1" "r2" "c3" "p1" "c1" "w2" "p2" "c2" "check"1323permutation "w3" "p3" "r1" "w2" "r2" "p1" "p2" "c3" "c1" "c2" "check"1324permutation "w3" "p3" "r1" "w2" "r2" "p1" "p2" "c3" "c2" "c1" "check"1325permutation "w3" "p3" "r1" "w2" "r2" "p1" "c3" "p2" "c1" "c2" "check"1326permutation "w3" "p3" "r1" "w2" "r2" "p1" "c3" "p2" "c2" "c1" "check"1327permutation "w3" "p3" "r1" "w2" "r2" "p1" "c3" "c1" "p2" "c2" "check"1328permutation "w3" "p3" "r1" "w2" "r2" "p2" "p1" "c3" "c1" "c2" "check"1329permutation "w3" "p3" "r1" "w2" "r2" "p2" "p1" "c3" "c2" "c1" "check"1330permutation "w3" "p3" "r1" "w2" "r2" "p2" "c3" "p1" "c1" "c2" "check"1331permutation "w3" "p3" "r1" "w2" "r2" "p2" "c3" "p1" "c2" "c1" "check"1332permutation "w3" "p3" "r1" "w2" "r2" "p2" "c3" "c2" "p1" "c1" "check"1333permutation "w3" "p3" "r1" "w2" "r2" "c3" "p1" "p2" "c1" "c2" "check"1334permutation "w3" "p3" "r1" "w2" "r2" "c3" "p1" "p2" "c2" "c1" "check"1335permutation "w3" "p3" "r1" "w2" "r2" "c3" "p1" "c1" "p2" "c2" "check"1336permutation "w3" "p3" "r1" "w2" "r2" "c3" "p2" "p1" "c1" "c2" "check"1337permutation "w3" "p3" "r1" "w2" "r2" "c3" "p2" "p1" "c2" "c1" "check"1338permutation "w3" "p3" "r1" "w2" "r2" "c3" "p2" "c2" "p1" "c1" "check"1339permutation "w3" "p3" "r1" "w2" "p1" "r2" "p2" "c3" "c1" "c2" "check"1340permutation "w3" "p3" "r1" "w2" "p1" "r2" "p2" "c3" "c2" "c1" "check"1341permutation "w3" "p3" "r1" "w2" "p1" "r2" "c3" "p2" "c1" "c2" "check"1342permutation "w3" "p3" "r1" "w2" "p1" "r2" "c3" "p2" "c2" "c1" "check"1343permutation "w3" "p3" "r1" "w2" "p1" "r2" "c3" "c1" "p2" "c2" "check"1344permutation "w3" "p3" "r1" "w2" "p1" "c3" "r2" "p2" "c1" "c2" "check"1345permutation "w3" "p3" "r1" "w2" "p1" "c3" "r2" "p2" "c2" "c1" "check"1346permutation "w3" "p3" "r1" "w2" "p1" "c3" "r2" "c1" "p2" "c2" "check"1347permutation "w3" "p3" "r1" "w2" "p1" "c3" "c1" "r2" "p2" "c2" "check"1348permutation "w3" "p3" "r1" "w2" "c3" "r2" "p1" "p2" "c1" "c2" "check"1349permutation "w3" "p3" "r1" "w2" "c3" "r2" "p1" "p2" "c2" "c1" "check"1350permutation "w3" "p3" "r1" "w2" "c3" "r2" "p1" "c1" "p2" "c2" "check"1351permutation "w3" "p3" "r1" "w2" "c3" "r2" "p2" "p1" "c1" "c2" "check"1352permutation "w3" "p3" "r1" "w2" "c3" "r2" "p2" "p1" "c2" "c1" "check"1353permutation "w3" "p3" "r1" "w2" "c3" "r2" "p2" "c2" "p1" "c1" "check"1354permutation "w3" "p3" "r1" "w2" "c3" "p1" "r2" "p2" "c1" "c2" "check"1355permutation "w3" "p3" "r1" "w2" "c3" "p1" "r2" "p2" "c2" "c1" "check"1356permutation "w3" "p3" "r1" "w2" "c3" "p1" "r2" "c1" "p2" "c2" "check"1357permutation "w3" "p3" "r1" "w2" "c3" "p1" "c1" "r2" "p2" "c2" "check"1358permutation "w3" "p3" "r1" "p1" "r2" "w2" "p2" "c3" "c1" "c2" "check"1359permutation "w3" "p3" "r1" "p1" "r2" "w2" "p2" "c3" "c2" "c1" "check"1360permutation "w3" "p3" "r1" "p1" "r2" "w2" "c3" "p2" "c1" "c2" "check"1361permutation "w3" "p3" "r1" "p1" "r2" "w2" "c3" "p2" "c2" "c1" "check"1362permutation "w3" "p3" "r1" "p1" "r2" "w2" "c3" "c1" "p2" "c2" "check"1363permutation "w3" "p3" "r1" "p1" "r2" "c3" "w2" "p2" "c1" "c2" "check"1364permutation "w3" "p3" "r1" "p1" "r2" "c3" "w2" "p2" "c2" "c1" "check"1365permutation "w3" "p3" "r1" "p1" "r2" "c3" "w2" "c1" "p2" "c2" "check"1366permutation "w3" "p3" "r1" "p1" "r2" "c3" "c1" "w2" "p2" "c2" "check"1367permutation "w3" "p3" "r1" "p1" "w2" "r2" "p2" "c3" "c1" "c2" "check"1368permutation "w3" "p3" "r1" "p1" "w2" "r2" "p2" "c3" "c2" "c1" "check"1369permutation "w3" "p3" "r1" "p1" "w2" "r2" "c3" "p2" "c1" "c2" "check"1370permutation "w3" "p3" "r1" "p1" "w2" "r2" "c3" "p2" "c2" "c1" "check"1371permutation "w3" "p3" "r1" "p1" "w2" "r2" "c3" "c1" "p2" "c2" "check"1372permutation "w3" "p3" "r1" "p1" "w2" "c3" "r2" "p2" "c1" "c2" "check"1373permutation "w3" "p3" "r1" "p1" "w2" "c3" "r2" "p2" "c2" "c1" "check"1374permutation "w3" "p3" "r1" "p1" "w2" "c3" "r2" "c1" "p2" "c2" "check"1375permutation "w3" "p3" "r1" "p1" "w2" "c3" "c1" "r2" "p2" "c2" "check"1376permutation "w3" "p3" "r1" "p1" "c3" "r2" "w2" "p2" "c1" "c2" "check"1377permutation "w3" "p3" "r1" "p1" "c3" "r2" "w2" "p2" "c2" "c1" "check"1378permutation "w3" "p3" "r1" "p1" "c3" "r2" "w2" "c1" "p2" "c2" "check"1379permutation "w3" "p3" "r1" "p1" "c3" "r2" "c1" "w2" "p2" "c2" "check"1380permutation "w3" "p3" "r1" "p1" "c3" "w2" "r2" "p2" "c1" "c2" "check"1381permutation "w3" "p3" "r1" "p1" "c3" "w2" "r2" "p2" "c2" "c1" "check"1382permutation "w3" "p3" "r1" "p1" "c3" "w2" "r2" "c1" "p2" "c2" "check"1383permutation "w3" "p3" "r1" "p1" "c3" "w2" "c1" "r2" "p2" "c2" "check"1384permutation "w3" "p3" "r1" "p1" "c3" "c1" "r2" "w2" "p2" "c2" "check"1385permutation "w3" "p3" "r1" "p1" "c3" "c1" "w2" "r2" "p2" "c2" "check"1386permutation "w3" "p3" "r1" "c3" "r2" "w2" "p1" "p2" "c1" "c2" "check"1387permutation "w3" "p3" "r1" "c3" "r2" "w2" "p1" "p2" "c2" "c1" "check"1388permutation "w3" "p3" "r1" "c3" "r2" "w2" "p1" "c1" "p2" "c2" "check"1389permutation "w3" "p3" "r1" "c3" "r2" "w2" "p2" "p1" "c1" "c2" "check"1390permutation "w3" "p3" "r1" "c3" "r2" "w2" "p2" "p1" "c2" "c1" "check"1391permutation "w3" "p3" "r1" "c3" "r2" "w2" "p2" "c2" "p1" "c1" "check"1392permutation "w3" "p3" "r1" "c3" "r2" "p1" "w2" "p2" "c1" "c2" "check"1393permutation "w3" "p3" "r1" "c3" "r2" "p1" "w2" "p2" "c2" "c1" "check"1394permutation "w3" "p3" "r1" "c3" "r2" "p1" "w2" "c1" "p2" "c2" "check"1395permutation "w3" "p3" "r1" "c3" "r2" "p1" "c1" "w2" "p2" "c2" "check"1396permutation "w3" "p3" "r1" "c3" "w2" "r2" "p1" "p2" "c1" "c2" "check"1397permutation "w3" "p3" "r1" "c3" "w2" "r2" "p1" "p2" "c2" "c1" "check"1398permutation "w3" "p3" "r1" "c3" "w2" "r2" "p1" "c1" "p2" "c2" "check"1399permutation "w3" "p3" "r1" "c3" "w2" "r2" "p2" "p1" "c1" "c2" "check"1400permutation "w3" "p3" "r1" "c3" "w2" "r2" "p2" "p1" "c2" "c1" "check"1401permutation "w3" "p3" "r1" "c3" "w2" "r2" "p2" "c2" "p1" "c1" "check"1402permutation "w3" "p3" "r1" "c3" "w2" "p1" "r2" "p2" "c1" "c2" "check"1403permutation "w3" "p3" "r1" "c3" "w2" "p1" "r2" "p2" "c2" "c1" "check"1404permutation "w3" "p3" "r1" "c3" "w2" "p1" "r2" "c1" "p2" "c2" "check"1405permutation "w3" "p3" "r1" "c3" "w2" "p1" "c1" "r2" "p2" "c2" "check"1406permutation "w3" "p3" "r1" "c3" "p1" "r2" "w2" "p2" "c1" "c2" "check"1407permutation "w3" "p3" "r1" "c3" "p1" "r2" "w2" "p2" "c2" "c1" "check"1408permutation "w3" "p3" "r1" "c3" "p1" "r2" "w2" "c1" "p2" "c2" "check"1409permutation "w3" "p3" "r1" "c3" "p1" "r2" "c1" "w2" "p2" "c2" "check"1410permutation "w3" "p3" "r1" "c3" "p1" "w2" "r2" "p2" "c1" "c2" "check"1411permutation "w3" "p3" "r1" "c3" "p1" "w2" "r2" "p2" "c2" "c1" "check"1412permutation "w3" "p3" "r1" "c3" "p1" "w2" "r2" "c1" "p2" "c2" "check"1413permutation "w3" "p3" "r1" "c3" "p1" "w2" "c1" "r2" "p2" "c2" "check"1414permutation "w3" "p3" "r1" "c3" "p1" "c1" "r2" "w2" "p2" "c2" "check"1415permutation "w3" "p3" "r1" "c3" "p1" "c1" "w2" "r2" "p2" "c2" "check"1416permutation "w3" "p3" "r2" "r1" "w2" "p1" "p2" "c3" "c1" "c2" "check"1417permutation "w3" "p3" "r2" "r1" "w2" "p1" "p2" "c3" "c2" "c1" "check"1418permutation "w3" "p3" "r2" "r1" "w2" "p1" "c3" "p2" "c1" "c2" "check"1419permutation "w3" "p3" "r2" "r1" "w2" "p1" "c3" "p2" "c2" "c1" "check"1420permutation "w3" "p3" "r2" "r1" "w2" "p1" "c3" "c1" "p2" "c2" "check"1421permutation "w3" "p3" "r2" "r1" "w2" "p2" "p1" "c3" "c1" "c2" "check"1422permutation "w3" "p3" "r2" "r1" "w2" "p2" "p1" "c3" "c2" "c1" "check"1423permutation "w3" "p3" "r2" "r1" "w2" "p2" "c3" "p1" "c1" "c2" "check"1424permutation "w3" "p3" "r2" "r1" "w2" "p2" "c3" "p1" "c2" "c1" "check"1425permutation "w3" "p3" "r2" "r1" "w2" "p2" "c3" "c2" "p1" "c1" "check"1426permutation "w3" "p3" "r2" "r1" "w2" "c3" "p1" "p2" "c1" "c2" "check"1427permutation "w3" "p3" "r2" "r1" "w2" "c3" "p1" "p2" "c2" "c1" "check"1428permutation "w3" "p3" "r2" "r1" "w2" "c3" "p1" "c1" "p2" "c2" "check"1429permutation "w3" "p3" "r2" "r1" "w2" "c3" "p2" "p1" "c1" "c2" "check"1430permutation "w3" "p3" "r2" "r1" "w2" "c3" "p2" "p1" "c2" "c1" "check"1431permutation "w3" "p3" "r2" "r1" "w2" "c3" "p2" "c2" "p1" "c1" "check"1432permutation "w3" "p3" "r2" "r1" "p1" "w2" "p2" "c3" "c1" "c2" "check"1433permutation "w3" "p3" "r2" "r1" "p1" "w2" "p2" "c3" "c2" "c1" "check"1434permutation "w3" "p3" "r2" "r1" "p1" "w2" "c3" "p2" "c1" "c2" "check"1435permutation "w3" "p3" "r2" "r1" "p1" "w2" "c3" "p2" "c2" "c1" "check"1436permutation "w3" "p3" "r2" "r1" "p1" "w2" "c3" "c1" "p2" "c2" "check"1437permutation "w3" "p3" "r2" "r1" "p1" "c3" "w2" "p2" "c1" "c2" "check"1438permutation "w3" "p3" "r2" "r1" "p1" "c3" "w2" "p2" "c2" "c1" "check"1439permutation "w3" "p3" "r2" "r1" "p1" "c3" "w2" "c1" "p2" "c2" "check"1440permutation "w3" "p3" "r2" "r1" "p1" "c3" "c1" "w2" "p2" "c2" "check"1441permutation "w3" "p3" "r2" "r1" "c3" "w2" "p1" "p2" "c1" "c2" "check"1442permutation "w3" "p3" "r2" "r1" "c3" "w2" "p1" "p2" "c2" "c1" "check"1443permutation "w3" "p3" "r2" "r1" "c3" "w2" "p1" "c1" "p2" "c2" "check"1444permutation "w3" "p3" "r2" "r1" "c3" "w2" "p2" "p1" "c1" "c2" "check"1445permutation "w3" "p3" "r2" "r1" "c3" "w2" "p2" "p1" "c2" "c1" "check"1446permutation "w3" "p3" "r2" "r1" "c3" "w2" "p2" "c2" "p1" "c1" "check"1447permutation "w3" "p3" "r2" "r1" "c3" "p1" "w2" "p2" "c1" "c2" "check"1448permutation "w3" "p3" "r2" "r1" "c3" "p1" "w2" "p2" "c2" "c1" "check"1449permutation "w3" "p3" "r2" "r1" "c3" "p1" "w2" "c1" "p2" "c2" "check"1450permutation "w3" "p3" "r2" "r1" "c3" "p1" "c1" "w2" "p2" "c2" "check"1451permutation "w3" "p3" "r2" "c3" "r1" "w2" "p1" "p2" "c1" "c2" "check"1452permutation "w3" "p3" "r2" "c3" "r1" "w2" "p1" "p2" "c2" "c1" "check"1453permutation "w3" "p3" "r2" "c3" "r1" "w2" "p1" "c1" "p2" "c2" "check"1454permutation "w3" "p3" "r2" "c3" "r1" "w2" "p2" "p1" "c1" "c2" "check"1455permutation "w3" "p3" "r2" "c3" "r1" "w2" "p2" "p1" "c2" "c1" "check"1456permutation "w3" "p3" "r2" "c3" "r1" "w2" "p2" "c2" "p1" "c1" "check"1457permutation "w3" "p3" "r2" "c3" "r1" "p1" "w2" "p2" "c1" "c2" "check"1458permutation "w3" "p3" "r2" "c3" "r1" "p1" "w2" "p2" "c2" "c1" "check"1459permutation "w3" "p3" "r2" "c3" "r1" "p1" "w2" "c1" "p2" "c2" "check"1460permutation "w3" "p3" "r2" "c3" "r1" "p1" "c1" "w2" "p2" "c2" "check"1461permutation "w3" "p3" "c3" "r1" "r2" "w2" "p1" "p2" "c1" "c2" "check"1462permutation "w3" "p3" "c3" "r1" "r2" "w2" "p1" "p2" "c2" "c1" "check"1463permutation "w3" "p3" "c3" "r1" "r2" "w2" "p1" "c1" "p2" "c2" "check"1464permutation "w3" "p3" "c3" "r1" "r2" "w2" "p2" "p1" "c1" "c2" "check"1465permutation "w3" "p3" "c3" "r1" "r2" "w2" "p2" "p1" "c2" "c1" "check"1466permutation "w3" "p3" "c3" "r1" "r2" "w2" "p2" "c2" "p1" "c1" "check"1467permutation "w3" "p3" "c3" "r1" "r2" "p1" "w2" "p2" "c1" "c2" "check"1468permutation "w3" "p3" "c3" "r1" "r2" "p1" "w2" "p2" "c2" "c1" "check"1469permutation "w3" "p3" "c3" "r1" "r2" "p1" "w2" "c1" "p2" "c2" "check"1470permutation "w3" "p3" "c3" "r1" "r2" "p1" "c1" "w2" "p2" "c2" "check"1471permutation "w3" "p3" "c3" "r1" "w2" "r2" "p1" "p2" "c1" "c2" "check"1472permutation "w3" "p3" "c3" "r1" "w2" "r2" "p1" "p2" "c2" "c1" "check"1473permutation "w3" "p3" "c3" "r1" "w2" "r2" "p1" "c1" "p2" "c2" "check"1474permutation "w3" "p3" "c3" "r1" "w2" "r2" "p2" "p1" "c1" "c2" "check"1475permutation "w3" "p3" "c3" "r1" "w2" "r2" "p2" "p1" "c2" "c1" "check"1476permutation "w3" "p3" "c3" "r1" "w2" "r2" "p2" "c2" "p1" "c1" "check"1477permutation "w3" "p3" "c3" "r1" "w2" "p1" "r2" "p2" "c1" "c2" "check"1478permutation "w3" "p3" "c3" "r1" "w2" "p1" "r2" "p2" "c2" "c1" "check"1479permutation "w3" "p3" "c3" "r1" "w2" "p1" "r2" "c1" "p2" "c2" "check"1480permutation "w3" "p3" "c3" "r1" "w2" "p1" "c1" "r2" "p2" "c2" "check"1481permutation "w3" "p3" "c3" "r1" "p1" "r2" "w2" "p2" "c1" "c2" "check"1482permutation "w3" "p3" "c3" "r1" "p1" "r2" "w2" "p2" "c2" "c1" "check"1483permutation "w3" "p3" "c3" "r1" "p1" "r2" "w2" "c1" "p2" "c2" "check"1484permutation "w3" "p3" "c3" "r1" "p1" "r2" "c1" "w2" "p2" "c2" "check"1485permutation "w3" "p3" "c3" "r1" "p1" "w2" "r2" "p2" "c1" "c2" "check"1486permutation "w3" "p3" "c3" "r1" "p1" "w2" "r2" "p2" "c2" "c1" "check"1487permutation "w3" "p3" "c3" "r1" "p1" "w2" "r2" "c1" "p2" "c2" "check"1488permutation "w3" "p3" "c3" "r1" "p1" "w2" "c1" "r2" "p2" "c2" "check"1489permutation "w3" "p3" "c3" "r1" "p1" "c1" "r2" "w2" "p2" "c2" "check"1490permutation "w3" "p3" "c3" "r1" "p1" "c1" "w2" "r2" "p2" "c2" "check"1491permutation "w3" "p3" "c3" "r2" "r1" "w2" "p1" "p2" "c1" "c2" "check"1492permutation "w3" "p3" "c3" "r2" "r1" "w2" "p1" "p2" "c2" "c1" "check"1493permutation "w3" "p3" "c3" "r2" "r1" "w2" "p1" "c1" "p2" "c2" "check"1494permutation "w3" "p3" "c3" "r2" "r1" "w2" "p2" "p1" "c1" "c2" "check"1495permutation "w3" "p3" "c3" "r2" "r1" "w2" "p2" "p1" "c2" "c1" "check"1496permutation "w3" "p3" "c3" "r2" "r1" "w2" "p2" "c2" "p1" "c1" "check"1497permutation "w3" "p3" "c3" "r2" "r1" "p1" "w2" "p2" "c1" "c2" "check"1498permutation "w3" "p3" "c3" "r2" "r1" "p1" "w2" "p2" "c2" "c1" "check"1499permutation "w3" "p3" "c3" "r2" "r1" "p1" "w2" "c1" "p2" "c2" "check"...

Full Screen

Full Screen

alg_joint_estimation_3d.py

Source:alg_joint_estimation_3d.py Github

copy

Full Screen

1import numpy as np2from scipy import linalg3from build_linear_mapping_joint3d import cubical_sel_coef_subset, \4 R_mtx_joint3d, T_mtx_joint3d, cubical_amp_mtx, compute_effective_num_eq_3d, \5 build_G_mtx_idealLP6from alg_joint_estimation_2d import compute_fitting_error7from poly_common_roots_3d import find_roots_3d8from alg_joint_estimation_3d_efficient import dirac_recon_joint_alg_fast9def dirac_recon_joint_ideal_interface(a, num_dirac, samp_loc, bandwidth, taus, noise_level=0,10 max_ini=100, stop_cri='max_iter', max_inner_iter=20,11 strategy='both', max_num_same_x=1, max_num_same_y=1,12 max_num_same_z=1, use_fast_alg=False):13 """14 INTERFACE that reconstructs 3D Dirac deltas jointly15 :param a: the given measurements of the 3D Dirac deltas16 :param num_dirac: number of Dirac deltas17 :param samp_loc: a 3-COLUMN matrix that contains sampling locations (x, y, z)18 :param bandwidth: a tuple of size 3 for the bandwidth of the low-pass filtering19 :param taus: a tuple of size 3 for the periods of the Dirac stream along x, y and z axis20 :param noise_level: noise level present in the given measurements21 :param max_ini: maximum number of random initializations22 :param stop_cri: stopping criterion, either 'mse' or 'max_iter'23 :param max_inner_iter: maximum number of inner iterations for each random initializations24 :param strategy: either 'aggregate', which reconstructs amplitudes for25 all xk_recon, yk_recon and zk_recon and select the ones that have the largest amplitudes;26 Or 'one_by_one', which computes the fitting error by leaving out one of the27 reconstructed xk_recon, yk_recon and zk_recon each time. The ones that contributes least28 are eliminated.29 :param max_num_same_x: maximum number of Dirac deltas that have the same horizontal locations.30 This will impose the minimum dimension of the annihilating filter used.31 :param max_num_same_y: maximum number of Dirac deltas that have the same vertical locations32 This will impose the minimum dimension of the annihilating filter used.33 :param max_num_same_z: maximum number of Dirac deltas that have the same depth locations34 This will impose the minimum dimension of the annihilating filter used.35 :param use_fast_alg: whether to use a faster implementation but may not be as stable as the36 exact implmentation.37 :return:38 """39 Bx, By, Bz = bandwidth40 taux, tauy, tauz = taus41 shape_b = (int(By * tauy), int(Bx * taux), int(Bz * tauz))42 assert shape_b[0] // 2 * 2 + 1 == shape_b[0]43 assert shape_b[1] // 2 * 2 + 1 == shape_b[1]44 assert shape_b[2] // 2 * 2 + 1 == shape_b[2]45 # build the linear mapping that links the uniformly sampled sinusoids46 # to the ideally lowpass filtered samples47 mtx_fri2samp = build_G_mtx_idealLP(samp_loc, bandwidth, taus, shape_b)48 # apply joint FRI estimation49 if use_fast_alg:50 # a faster implementation51 c1_opt, c2_opt, c3_opt = \52 dirac_recon_joint_alg_fast(mtx_fri2samp, a, num_dirac, shape_b,53 noise_level=noise_level, max_ini=max_ini,54 stop_cri=stop_cri, max_inner_iter=max_inner_iter,55 max_num_same_x=max_num_same_x,56 max_num_same_y=max_num_same_y,57 max_num_same_z=max_num_same_z)[:3]58 else:59 c1_opt, c2_opt, c3_opt = \60 dirac_recon_joint_alg(mtx_fri2samp, a, num_dirac, shape_b,61 noise_level=noise_level, max_ini=max_ini,62 stop_cri=stop_cri, max_inner_iter=max_inner_iter,63 max_num_same_x=max_num_same_x,64 max_num_same_y=max_num_same_y,65 max_num_same_z=max_num_same_z)[:3]66 # retrieve Dirac parameters67 # function handel to build the mapping from Dirac amplitudes to given samples68 def func_amp2samp(dirac_loc, samp_loc):69 return cubical_amp_mtx(dirac_loc, samp_loc, bandwidth, taus)70 dirac_loc_recon, amp_recon = \71 cubical_extract_innovation(a, num_dirac, c1_opt, c2_opt, c3_opt,72 samp_loc, func_amp2samp, taus, strategy=strategy)73 return dirac_loc_recon, amp_recon74# TODO: update the implementation with the new formulation (reduce number of unknowns)75def dirac_recon_joint_alg(G, measurement, num_dirac, shape_b, noise_level=0,76 max_ini=100, stop_cri='mse', max_inner_iter=20,77 max_num_same_x=1, max_num_same_y=1, max_num_same_z=1):78 """79 ALGORITHM that reconstructs 2D Dirac deltas jointly80 min |a - Gb|^281 s.t. c_1 * b = 082 c_2 * b = 083 c_3 * b = 084 This is the exact form that we have in the paper without any alternations for85 performance considerations, e.g., reusing intermediate results, etc.86 :param G: the linear mapping that links the unknown uniformly sampled87 sinusoids to the given measurements88 :param measurement: the given measurements of the 3D Dirac deltas89 :param num_dirac: number of Dirac deltas90 :param shape_b: shape of the (3D) uniformly sampled sinusoids91 :param noise_level: noise level present in the given measurements92 :param max_ini: maximum number of random initializations93 :param stop_cri: stopping criterion, either 'mse' or 'max_iter'94 :param max_inner_iter: maximum number of inner iterations for each random initializations95 :param max_num_same_x: maximum number of Dirac deltas that have the same horizontal locations.96 This will impose the minimum dimension of the annihilating filter used.97 :param max_num_same_y: maximum number of Dirac deltas that have the same vertical locations98 This will impose the minimum dimension of the annihilating filter used.99 :param max_num_same_z: maximum number of Dirac deltas that have the same depth locations100 This will impose the minimum dimension of the annihilating filter used.101 :return:102 """103 compute_mse = (stop_cri == 'mse')104 measurement = measurement.flatten('F')105 num_non_zero = num_dirac + 3106 # choose the shapes of the 3D annihilating filters107 shape_c1_0 = shape_c1_1 = shape_c1_2 = int(np.ceil(num_non_zero ** (1. / 3)))108 if shape_c1_2 > shape_b[2]:109 shape_c1_2 = shape_b[2]110 shape_c1_0 = shape_c1_1 = int(np.ceil(np.sqrt(num_non_zero / shape_c1_2)))111 if shape_c1_1 > shape_b[1]:112 shape_c1_1 = shape_b[1]113 shape_c1_0 = int(np.ceil(num_non_zero / (shape_c1_1 * shape_c1_2)))114 elif shape_c1_0 > shape_b[0]:115 shape_c1_0 = shape_b[0]116 shape_c1_1 = int(np.ceil(num_non_zero / (shape_c1_0 * shape_c1_2)))117 elif shape_c1_1 > shape_b[1]:118 shape_c1_1 = shape_b[1]119 shape_c1_0 = shape_c1_2 = int(np.ceil(np.sqrt(num_non_zero / shape_c1_1)))120 if shape_c1_0 > shape_b[0]:121 shape_c1_0 = shape_b[0]122 shape_c1_2 = int(np.ceil(num_non_zero / (shape_c1_0 * shape_c1_1)))123 elif shape_c1_2 > shape_b[2]:124 shape_c1_2 = shape_b[2]125 shape_c1_0 = int(np.ceil(num_non_zero / (shape_c1_1 * shape_c1_2)))126 elif shape_c1_0 > shape_b[0]:127 shape_c1_0 = shape_b[0]128 shape_c1_1 = shape_c1_2 = int(np.ceil(np.sqrt(num_non_zero / shape_c1_0)))129 if shape_c1_1 > shape_b[1]:130 shape_c1_1 = shape_b[1]131 shape_c1_2 = int(np.ceil(num_non_zero / (shape_c1_0 * shape_c1_1)))132 elif shape_c1_2 > shape_b[2]:133 shape_c1_2 = shape_b[2]134 shape_c1_1 = int(np.ceil(num_non_zero / (shape_c1_0 * shape_c1_2)))135 # sanity check136 assert shape_c1_0 * shape_c1_1 * shape_c1_2 >= num_non_zero137 assert shape_c1_0 <= shape_b[0] and shape_c1_1 <= shape_b[1] and shape_c1_2 <= shape_b[2]138 shape_c3_0, shape_c3_1, shape_c3_2 = \139 shape_c2_0, shape_c2_1, shape_c2_2 = shape_c1_0, shape_c1_1, shape_c1_2140 shape_c1 = (shape_c1_0, shape_c1_1, shape_c1_2)141 shape_c2 = (shape_c2_0, shape_c2_1, shape_c2_2)142 shape_c3 = (shape_c3_0, shape_c3_1, shape_c3_2)143 # check if there will be sufficient number of effective number of equations144 update_shape = True145 dict_keys = ['shape_c1', 'shape_c2', 'shape_c3']146 shapes = {147 'shape_c1': list(shape_c1),148 'shape_c2': list(shape_c2),149 'shape_c3': list(shape_c3)150 }151 shapes_update_eq = [1, 0, 2]152 shapes_update_neq = [2, 1, 0]153 exp_count = 0154 while update_shape:155 if compute_effective_num_eq_3d(shapes['shape_c1'],156 shapes['shape_c2'],157 shapes['shape_c3']) < num_dirac:158 shape_loop = shapes[dict_keys[exp_count]]159 if shape_loop[0] == shape_loop[1] == shape_loop[2]:160 shapes[dict_keys[exp_count]][shapes_update_eq[exp_count]] += 1161 else:162 shapes[dict_keys[exp_count]][shapes_update_neq[exp_count]] += 1163 exp_count += 1164 exp_count = np.mod(exp_count, 3)165 update_shape = True166 else:167 update_shape = False168 shape_c1 = tuple(shapes['shape_c1'])169 shape_c2 = tuple(shapes['shape_c2'])170 shape_c3 = tuple(shapes['shape_c3'])171 # in case of common roots, the filter has to satisfy a certain minimum dimension172 # TODO: add this constraints173 # total number of coefficients in c1 and c2174 num_coef1 = np.prod(shape_c1)175 num_coef2 = np.prod(shape_c2)176 num_coef3 = np.prod(shape_c3)177 # determine the effective row rank of the joint annihilation right-dual matrix178 c1_test = np.random.randn(*shape_c1) + 1j * np.random.randn(*shape_c1)179 c2_test = np.random.randn(*shape_c2) + 1j * np.random.randn(*shape_c2)180 c3_test = np.random.randn(*shape_c3) + 1j * np.random.randn(*shape_c3)181 R_test = R_mtx_joint3d(c1_test, c2_test, c3_test, shape_b)182 try:183 s_test = linalg.svd(R_test, compute_uv=False)184 shape_Tb0_effective = min(R_test.shape) - np.where(np.abs(s_test) < 1e-12)[0].size185 except ValueError:186 # the effective number of equations as predicted by the derivation187 shape_Tb0_effective = \188 min(max(num_coef1 - 1 + num_coef2 - 1 + num_coef3 - 1,189 np.prod(shape_b) - compute_effective_num_eq_3d(shape_c1, shape_c2, shape_c3)),190 R_test.shape[0])191 # sizes of various matrices / vectors192 sz_coef = num_coef1 + num_coef2 + num_coef3193 sz_S0 = sz_coef - 3 * num_non_zero194 sz_R1 = np.prod(shape_b)195 # a few indices that are fixed196 idx_bg0_Tb = sz_coef197 idx_end0_Tb = sz_coef + shape_Tb0_effective198 idx_bg1_Tb = 0199 idx_end1_Tb = sz_coef200 idx_bg0_TbH = 0201 idx_end0_TbH = sz_coef202 idx_bg1_TbH = sz_coef203 idx_end1_TbH = sz_coef + shape_Tb0_effective204 idx_bg0_Rc = sz_coef205 idx_end0_Rc = sz_coef + shape_Tb0_effective206 idx_bg1_Rc = sz_coef + shape_Tb0_effective207 idx_end1_Rc = sz_coef + shape_Tb0_effective + sz_R1208 idx_bg0_RcH = sz_coef + shape_Tb0_effective209 idx_end0_RcH = sz_coef + shape_Tb0_effective + sz_R1210 idx_bg1_RcH = sz_coef211 idx_end1_RcH = sz_coef + shape_Tb0_effective212 # pre-compute a few things213 GtG = np.dot(G.conj().T, G)214 Gt_a = np.dot(G.conj().T, measurement)215 beta = linalg.lstsq(G, measurement)[0]216 Tbeta0 = T_mtx_joint3d(np.reshape(beta, shape_b, order='F'),217 shape_c1, shape_c2, shape_c3)218 # initializations219 min_error = np.inf220 rhs = np.concatenate((np.zeros(sz_coef + shape_Tb0_effective + sz_R1 + sz_S0, dtype=complex),221 np.ones(3, dtype=complex)))222 rhs_bl = np.concatenate((Gt_a, np.zeros(shape_Tb0_effective, dtype=Gt_a.dtype)))223 c1_opt = None224 c2_opt = None225 c3_opt = None226 # iterations over different random initializations of the annihilating filter coefficients227 ini = 0228 while ini < max_ini:229 ini += 1230 c1 = np.random.randn(*shape_c1) + 1j * np.random.randn(*shape_c1)231 c2 = np.random.randn(*shape_c2) + 1j * np.random.randn(*shape_c2)232 c3 = np.random.randn(*shape_c3) + 1j * np.random.randn(*shape_c3)233 # the initializations of the annihilating filter coefficients234 c0 = linalg.block_diag(c1.flatten('F')[:, np.newaxis],235 c2.flatten('F')[:, np.newaxis],236 c3.flatten('F')[:, np.newaxis])237 # build a selection matrix that chooses a subset of c1 and c2 to ZERO OUT238 S = cubical_sel_coef_subset(shape_c1, shape_c2, shape_c3,239 num_non_zero=num_non_zero,240 max_num_same_x=max_num_same_x,241 max_num_same_y=max_num_same_y,242 max_num_same_z=max_num_same_z)243 S_H = S.T # S is real valued244 mtx_S_row = np.hstack((S, np.zeros((sz_S0, shape_Tb0_effective + sz_R1 + sz_S0 + 3))))245 # last row in mtx_loop246 mtx_last_row = \247 np.hstack((c0.conj().T,248 np.zeros((3, shape_Tb0_effective + sz_R1 + sz_S0 + 3))))249 R_loop = R_mtx_joint3d(c1, c2, c3, shape_b)250 # use QR decomposition to extract effective lines of equations251 Q_H = linalg.qr(R_loop, mode='economic',252 pivoting=False)[0][:, :shape_Tb0_effective].conj().T253 R_loop = np.dot(Q_H, R_loop)254 Tbeta_loop = np.dot(Q_H, Tbeta0)255 # inner loop for each random initialization256 for inner in range(max_inner_iter):257 if inner == 0:258 mtx_loop = np.vstack((259 np.hstack((np.zeros((sz_coef, sz_coef)),260 Tbeta_loop.conj().T,261 np.zeros((sz_coef, sz_R1)), S_H, c0)),262 np.hstack((Tbeta_loop,263 np.zeros((shape_Tb0_effective, shape_Tb0_effective)),264 -R_loop,265 np.zeros((shape_Tb0_effective, 3 + sz_S0)))),266 np.hstack((np.zeros((sz_R1, sz_coef)),267 -R_loop.conj().T,268 GtG,269 np.zeros((sz_R1, 3 + sz_S0)))),270 mtx_S_row,271 mtx_last_row272 ))273 else:274 mtx_loop[idx_bg0_Tb:idx_end0_Tb, idx_bg1_Tb:idx_end1_Tb] = Tbeta_loop275 mtx_loop[idx_bg0_TbH:idx_end0_TbH, idx_bg1_TbH:idx_end1_TbH] = Tbeta_loop.conj().T276 mtx_loop[idx_bg0_Rc:idx_end0_Rc, idx_bg1_Rc:idx_end1_Rc] = -R_loop277 mtx_loop[idx_bg0_RcH:idx_end0_RcH, idx_bg1_RcH:idx_end1_RcH] = -R_loop.conj().T278 # solve annihilating filter coefficients279 try:280 coef = linalg.solve(mtx_loop, rhs)[:sz_coef]281 except linalg.LinAlgError:282 break283 c1 = np.reshape(coef[:num_coef1], shape_c1, order='F')284 c2 = np.reshape(coef[num_coef1:num_coef1 + num_coef2], shape_c2, order='F')285 c3 = np.reshape(coef[num_coef1 + num_coef2:], shape_c3, order='F')286 # update the right-dual matrix R and T based on the new coefficients287 R_loop = R_mtx_joint3d(c1, c2, c3, shape_b)288 # use QR decomposition to extract effective lines of equations289 Q_H = linalg.qr(R_loop, mode='economic',290 pivoting=False)[0][:, :shape_Tb0_effective].conj().T291 R_loop = np.dot(Q_H, R_loop)292 Tbeta_loop = np.dot(Q_H, Tbeta0)293 # reconstruct b294 if inner == 0:295 mtx_brecon = np.vstack((296 np.hstack((GtG, R_loop.conj().T)),297 np.hstack((R_loop, np.zeros((shape_Tb0_effective, shape_Tb0_effective))))298 ))299 else:300 mtx_brecon[:sz_R1, sz_R1:] = R_loop.conj().T301 mtx_brecon[sz_R1:, :sz_R1] = R_loop302 b_recon = linalg.solve(mtx_brecon, rhs_bl)[:sz_R1]303 # compute fitting error304 error_loop = linalg.norm(measurement - np.dot(G, b_recon))305 if 0 <= error_loop < min_error:306 # check that the number of non-zero entries are307 # indeed num_dirac + 1 (could be less)308 c1[np.abs(c1) < 1e-2 * np.max(np.abs(c1))] = 0309 c2[np.abs(c2) < 1e-2 * np.max(np.abs(c2))] = 0310 c3[np.abs(c3) < 1e-2 * np.max(np.abs(c3))] = 0311 nnz_cond = \312 np.sum(1 - np.isclose(np.abs(c1), 0).astype(int)) == num_non_zero and \313 np.sum(1 - np.isclose(np.abs(c2), 0).astype(int)) == num_non_zero and \314 np.sum(1 - np.isclose(np.abs(c3), 0).astype(int)) == num_non_zero315 # TODO: add the checks for cases when certain number of Dirac share the x, y, z coordinates316 if nnz_cond:317 min_error = error_loop318 b_opt = b_recon319 c1_opt = c1320 c2_opt = c2321 c3_opt = c3322 if compute_mse and min_error < noise_level:323 break324 if compute_mse and min_error < noise_level:325 break326 if c1_opt is None or c2_opt is None or c3_opt is None:327 max_ini += 1328 print('fitting SNR {:.2f}'.format(20 * np.log10(linalg.norm(measurement) / min_error)))329 return c1_opt, c2_opt, c3_opt, min_error, b_opt, ini330def cubical_extract_innovation(measurement, num_dirac, c1, c2, c3, samp_loc,331 func_amp2samp, taus, strategy='both',332 around_zero=False):333 """334 Reconstruct Dirac parameters from the annihilating filter coefficients c1, c2, and c3335 :param measurement: the given measurements336 :param num_dirac: number of Dirac deltas to extract337 :param c1: the first annihilating filter (horizontal direction dominating)338 :param c2: the second annihilating filter (vertical direction dominating)339 :param c3: the third annihilating filter (depth direction dominating)340 :param samp_loc: a 3-COLUMN matrix that contains sampling locations (x, y, z)341 :param func_amp2samp: a function handel that build the linear mapping from the Dirac342 amplitudes to the given samples.343 :param taus: a tuple of size 3 for the periods of the Dirac stream along x, y and z axis344 :param strategy: either 'aggregate', which reconstructs amplitudes for345 all xk_recon and yk_recon and select the ones that have the largest amplitudes;346 Or 'one_by_one', which computes the fitting error by leaving out one of the347 reconstructed xk_recon and yk_recon each time. The ones that contributes least348 are eliminated.349 :param around_zero: whether to center the interval around zero or not.350 :return:351 """352 tau_x, tau_y, tau_z = taus353 # root finding354 z1, z2, z3 = find_roots_3d(c1, c2, c3)355 z1 = z1.squeeze()356 z2 = z2.squeeze()357 z3 = z3.squeeze()358 # the roots should be on a unit circle (for the Dirac cases)359 valid_idx = ~np.bitwise_or(np.isclose(z1, 0), np.isclose(z2, 0), np.isclose(z3, 0))360 if z1.size > 1 and z2.size > 1 and z3.size > 1:361 z1, z2, z3 = z1[valid_idx], z2[valid_idx], z3[valid_idx]362 z1 /= np.abs(z1)363 z2 /= np.abs(z2)364 z3 /= np.abs(z3)365 xk_recon = np.mod(np.angle(z1) * tau_x / (-2 * np.pi), tau_x)366 yk_recon = np.mod(np.angle(z2) * tau_y / (-2 * np.pi), tau_y)367 zk_recon = np.mod(np.angle(z3) * tau_z / (-2 * np.pi), tau_z)368 xk_recon = xk_recon.flatten()369 yk_recon = yk_recon.flatten()370 zk_recon = zk_recon.flatten()371 if around_zero:372 # put Dirac locations within one period center around zero: -tau/2 to tau/2373 xk_recon[xk_recon > 0.5 * tau_x] -= tau_x374 yk_recon[yk_recon > 0.5 * tau_y] -= tau_y375 zk_recon[zk_recon > 0.5 * tau_z] -= tau_z376 print(xk_recon.size, yk_recon.size, zk_recon.size)377 dirac_loc_recon = np.column_stack((xk_recon, yk_recon, zk_recon))378 # select reliable Dirac reconstructions379 total_num_dirac = xk_recon.size380 if total_num_dirac <= num_dirac:381 dirac_loc_reliable = dirac_loc_recon382 if total_num_dirac > 0:383 amp_mtx = func_amp2samp(dirac_loc_reliable, samp_loc)384 amp_reliable = linalg.lstsq(amp_mtx, measurement)[0]385 else:386 amp_reliable = np.array([])387 else:388 dirac_loc_reliable, amp_reliable = cubical_select_reliable_recon(389 measurement, dirac_loc_recon, num_dirac, samp_loc, func_amp2samp, strategy=strategy)390 return dirac_loc_reliable, amp_reliable391def cubical_select_reliable_recon(measurement, dirac_locs, num_dirac_sel,392 samp_locs, func_amp2samp, strategy='both'):393 """394 Select reliable reconstructions395 :param measurement: the given measurements396 :param dirac_locs: a num_dirac by 3 matrix with the columns corresponds to397 the Dirac x, y and z locations. num_dirac is the number of Dirac398 :param num_dirac_sel: number of Dirac deltas to be extracted (as reliable reconstruction)399 :param samp_locs: an N by 3 matrix with the columns corresponds to the 3D400 sampling locations along the x, y and z axis. N is the total number of samples.401 :param func_amp2samp: a function handel that build the linear mapping from the Dirac402 amplitudes to the given samples.403 :param taus: a tuple of size 3 for the periods of the Dirac stream along x, y and z axis.404 :param strategy: either 'aggregate', which reconstructs amplitudes for405 all xk_recon and yk_recon and select the ones that have the largest amplitudes;406 Or 'one_by_one', which computes the fitting error by leaving out one of the407 reconstructed xk_recon and yk_recon each time. The ones that contributes least408 are eliminated.409 :return:410 """411 measurement = measurement.flatten('F')412 # build the linear mapping from the Dirac amplitudes to the measurements413 # for all xk_recon, yk_recon and zk_recon414 amp_mtx_all = func_amp2samp(dirac_locs, samp_locs)415 if strategy == 'aggregate':416 # find the amplitudes for all Dirac deltas417 amp_recon_all = compute_fitting_error(measurement, amp_mtx_all)[1]418 amp_sort_idx = np.argsort(np.abs(amp_recon_all))[-num_dirac_sel:]419 # select the reliable reconstruction based on the amplitudes420 dirac_locs_reliable = dirac_locs[amp_sort_idx, :]421 amp_mtx_reliable = func_amp2samp(dirac_locs_reliable, samp_locs)422 amp_reliable = linalg.lstsq(amp_mtx_reliable, measurement)[0]423 elif strategy == 'one_by_one':424 num_dirac_recon = dirac_locs.shape[0]425 if num_dirac_recon > 1:426 # number of Dirac to be removed427 num_removal = num_dirac_recon - num_dirac_sel428 mask_all = (429 np.ones((num_dirac_recon, num_dirac_recon), dtype=int) -430 np.eye(num_dirac_recon, dtype=int)431 ).astype(bool)432 # compute leave-one-out error433 leave_one_out_error = [434 compute_fitting_error(measurement, amp_mtx_all[:, mask_all[removal_ind, :]])[0]435 for removal_ind in range(mask_all.shape[0])]436 idx_opt = np.argsort(np.asarray(leave_one_out_error))[num_removal:]437 else:438 idx_opt = 0439 dirac_locs_reliable = dirac_locs[idx_opt, :]440 amp_mtx_reliable = \441 func_amp2samp(dirac_locs_reliable, samp_locs)442 amp_reliable = linalg.lstsq(amp_mtx_reliable, measurement)[0]443 else: # use both to use whichever that gives smaller fitting error444 '''aggregate'''445 # find the amplitudes for all Dirac deltas446 amp_recon_all = compute_fitting_error(measurement, amp_mtx_all)[1]447 amp_sort_idx = np.argsort(np.abs(amp_recon_all))[-num_dirac_sel:]448 # select the reliable reconstruction based on the amplitudes449 dirac_locs_reliable_agg = dirac_locs[amp_sort_idx, :]450 amp_mtx_reliable_agg = \451 func_amp2samp(dirac_locs_reliable_agg, samp_locs)452 amp_reliable_agg, fitting_error_agg = \453 linalg.lstsq(amp_mtx_reliable_agg, measurement)[:2]454 '''one by one strategy'''455 num_dirac_recon = dirac_locs.shape[0]456 if num_dirac_recon > 1:457 # number of Dirac to be removed458 num_removal = num_dirac_recon - num_dirac_sel459 mask_all = (460 np.ones((num_dirac_recon, num_dirac_recon), dtype=int) -461 np.eye(num_dirac_recon, dtype=int)462 ).astype(bool)463 # compute leave-one-out error464 leave_one_out_error = [465 compute_fitting_error(measurement, amp_mtx_all[:, mask_all[removal_ind, :]])[0]466 for removal_ind in range(mask_all.shape[0])]467 idx_opt = np.argsort(np.asarray(leave_one_out_error))[num_removal:]468 else:469 idx_opt = 0470 dirac_locs_reliable_1by1 = dirac_locs[idx_opt, :]471 amp_mtx_reliable_1by1 = \472 func_amp2samp(dirac_locs_reliable_1by1, samp_locs)473 amp_reliable_1by1, fitting_error_1by1 = \474 linalg.lstsq(amp_mtx_reliable_1by1, measurement)[:2]475 if fitting_error_agg < fitting_error_1by1:476 dirac_locs_reliable = dirac_locs_reliable_agg477 amp_reliable = amp_reliable_agg478 else:479 dirac_locs_reliable = dirac_locs_reliable_1by1480 amp_reliable = amp_reliable_1by1...

Full Screen

Full Screen

test_constantsimp.py

Source:test_constantsimp.py Github

copy

Full Screen

1"""2If the arbitrary constant class from issue 4435 is ever implemented, this3should serve as a set of test cases.4"""5from sympy import (acos, cos, cosh, Eq, exp, Function, I, Integral, log, Pow,6 S, sin, sinh, sqrt, Symbol)7from sympy.solvers.ode import constant_renumber, constantsimp8from sympy.utilities.pytest import XFAIL9x = Symbol('x')10y = Symbol('y')11z = Symbol('z')12C1 = Symbol('C1')13C2 = Symbol('C2')14C3 = Symbol('C3')15f = Function('f')16def test_constant_mul():17 # We want C1 (Constant) below to absorb the y's, but not the x's18 assert constant_renumber(constantsimp(y*C1, [C1]), 'C', 1, 1) == C1*y19 assert constant_renumber(constantsimp(C1*y, [C1]), 'C', 1, 1) == C1*y20 assert constant_renumber(constantsimp(x*C1, [C1]), 'C', 1, 1) == x*C121 assert constant_renumber(constantsimp(C1*x, [C1]), 'C', 1, 1) == x*C122 assert constant_renumber(constantsimp(2*C1, [C1]), 'C', 1, 1) == C123 assert constant_renumber(constantsimp(C1*2, [C1]), 'C', 1, 1) == C124 assert constant_renumber(constantsimp(y*C1*x, [C1, y]), 'C', 1, 1) == C1*x25 assert constant_renumber(constantsimp(x*y*C1, [C1, y]), 'C', 1, 1) == x*C126 assert constant_renumber(constantsimp(y*x*C1, [C1, y]), 'C', 1, 1) == x*C127 assert constant_renumber(constantsimp(C1*x*y, [C1, y]), 'C', 1, 1) == C1*x28 assert constant_renumber(constantsimp(x*C1*y, [C1, y]), 'C', 1, 1) == x*C129 assert constant_renumber(constantsimp(C1*y*(y + 1), [C1]), 'C', 1, 1) == C1*y*(y+1)30 assert constant_renumber(constantsimp(y*C1*(y + 1), [C1]), 'C', 1, 1) == C1*y*(y+1)31 assert constant_renumber(constantsimp(x*(y*C1), [C1]), 'C', 1, 1) == x*y*C132 assert constant_renumber(constantsimp(x*(C1*y), [C1]), 'C', 1, 1) == x*y*C133 assert constant_renumber(constantsimp(C1*(x*y), [C1, y]), 'C', 1, 1) == C1*x34 assert constant_renumber(constantsimp((x*y)*C1, [C1, y]), 'C', 1, 1) == x*C135 assert constant_renumber(constantsimp((y*x)*C1, [C1, y]), 'C', 1, 1) == x*C136 assert constant_renumber(constantsimp(y*(y + 1)*C1, [C1, y]), 'C', 1, 1) == C137 assert constant_renumber(constantsimp((C1*x)*y, [C1, y]), 'C', 1, 1) == C1*x38 assert constant_renumber(constantsimp(y*(x*C1), [C1, y]), 'C', 1, 1) == x*C139 assert constant_renumber(constantsimp((x*C1)*y, [C1, y]), 'C', 1, 1) == x*C140 assert constant_renumber(41 constantsimp(C1*x*y*x*y*2, [C1, y]), 'C', 1, 1) == C1*x**242 assert constant_renumber(constantsimp(C1*x*y*z, [C1, y, z]), 'C', 1, 1) == C1*x43 assert constant_renumber(44 constantsimp(C1*x*y**2*sin(z), [C1, y, z]), 'C', 1, 1) == C1*x45 assert constant_renumber(constantsimp(C1*C1, [C1]), 'C', 1, 1) == C146 assert constant_renumber(constantsimp(C1*C2, [C1, C2]), 'C', 1, 2) == C147 assert constant_renumber(constantsimp(C2*C2, [C1, C2]), 'C', 1, 2) == C148 assert constant_renumber(constantsimp(C1*C1*C2, [C1, C2]), 'C', 1, 2) == C149 assert constant_renumber(50 constantsimp(C1*x*2**x, [C1]), 'C', 1, 1) == C1*x*2**x51def test_constant_add():52 assert constant_renumber(constantsimp(C1 + C1, [C1]), 'C', 1, 1) == C153 assert constant_renumber(constantsimp(C1 + 2, [C1]), 'C', 1, 1) == C154 assert constant_renumber(constantsimp(2 + C1, [C1]), 'C', 1, 1) == C155 assert constant_renumber(constantsimp(C1 + y, [C1, y]), 'C', 1, 1) == C156 assert constant_renumber(constantsimp(C1 + x, [C1]), 'C', 1, 1) == C1 + x57 assert constant_renumber(constantsimp(C1 + C1, [C1]), 'C', 1, 1) == C158 assert constant_renumber(constantsimp(C1 + C2, [C1, C2]), 'C', 1, 2) == C159 assert constant_renumber(constantsimp(C2 + C1, [C1, C2]), 'C', 1, 2) == C160 assert constant_renumber(constantsimp(C1 + C2 + C1, [C1, C2]), 'C', 1, 2) == C161def test_constant_power_as_base():62 assert constant_renumber(constantsimp(C1**C1, [C1]), 'C', 1, 1) == C163 assert constant_renumber(constantsimp(Pow(C1, C1), [C1]), 'C', 1, 1) == C164 assert constant_renumber(constantsimp(C1**C1, [C1]), 'C', 1, 1) == C165 assert constant_renumber(constantsimp(C1**C2, [C1, C2]), 'C', 1, 2) == C166 assert constant_renumber(constantsimp(C2**C1, [C1, C2]), 'C', 1, 2) == C167 assert constant_renumber(constantsimp(C2**C2, [C1, C2]), 'C', 1, 2) == C168 assert constant_renumber(constantsimp(C1**y, [C1, y]), 'C', 1, 1) == C169 assert constant_renumber(constantsimp(C1**x, [C1]), 'C', 1, 1) == C1**x70 assert constant_renumber(constantsimp(C1**2, [C1]), 'C', 1, 1) == C171 assert constant_renumber(72 constantsimp(C1**(x*y), [C1]), 'C', 1, 1) == C1**(x*y)73def test_constant_power_as_exp():74 assert constant_renumber(constantsimp(x**C1, [C1]), 'C', 1, 1) == x**C175 assert constant_renumber(constantsimp(y**C1, [C1, y]), 'C', 1, 1) == C176 assert constant_renumber(constantsimp(x**y**C1, [C1, y]), 'C', 1, 1) == x**C177 assert constant_renumber(78 constantsimp((x**y)**C1, [C1]), 'C', 1, 1) == (x**y)**C179 assert constant_renumber(80 constantsimp(x**(y**C1), [C1, y]), 'C', 1, 1) == x**C181 assert constant_renumber(constantsimp(x**C1**y, [C1, y]), 'C', 1, 1) == x**C182 assert constant_renumber(83 constantsimp(x**(C1**y), [C1, y]), 'C', 1, 1) == x**C184 assert constant_renumber(85 constantsimp((x**C1)**y, [C1]), 'C', 1, 1) == (x**C1)**y86 assert constant_renumber(constantsimp(2**C1, [C1]), 'C', 1, 1) == C187 assert constant_renumber(constantsimp(S(2)**C1, [C1]), 'C', 1, 1) == C188 assert constant_renumber(constantsimp(exp(C1), [C1]), 'C', 1, 1) == C189 assert constant_renumber(90 constantsimp(exp(C1 + x), [C1]), 'C', 1, 1) == C1*exp(x)91 assert constant_renumber(constantsimp(Pow(2, C1), [C1]), 'C', 1, 1) == C192def test_constant_function():93 assert constant_renumber(constantsimp(sin(C1), [C1]), 'C', 1, 1) == C194 assert constant_renumber(constantsimp(f(C1), [C1]), 'C', 1, 1) == C195 assert constant_renumber(constantsimp(f(C1, C1), [C1]), 'C', 1, 1) == C196 assert constant_renumber(constantsimp(f(C1, C2), [C1, C2]), 'C', 1, 2) == C197 assert constant_renumber(constantsimp(f(C2, C1), [C1, C2]), 'C', 1, 2) == C198 assert constant_renumber(constantsimp(f(C2, C2), [C1, C2]), 'C', 1, 2) == C199 assert constant_renumber(100 constantsimp(f(C1, x), [C1]), 'C', 1, 2) == f(C1, x)101 assert constant_renumber(constantsimp(f(C1, y), [C1, y]), 'C', 1, 2) == C1102 assert constant_renumber(constantsimp(f(y, C1), [C1, y]), 'C', 1, 2) == C1103 assert constant_renumber(constantsimp(f(C1, y, C2), [C1, C2, y]), 'C', 1, 2) == C1104def test_constant_function_multiple():105 # The rules to not renumber in this case would be too complicated, and106 # dsolve is not likely to ever encounter anything remotely like this.107 assert constant_renumber(108 constantsimp(f(C1, C1, x), [C1]), 'C', 1, 1) == f(C1, C1, x)109def test_constant_multiple():110 assert constant_renumber(constantsimp(C1*2 + 2, [C1]), 'C', 1, 1) == C1111 assert constant_renumber(constantsimp(x*2/C1, [C1]), 'C', 1, 1) == C1*x112 assert constant_renumber(constantsimp(C1**2*2 + 2, [C1]), 'C', 1, 1) == C1113 assert constant_renumber(114 constantsimp(sin(2*C1) + x + sqrt(2), [C1]), 'C', 1, 1) == C1 + x115 assert constant_renumber(constantsimp(2*C1 + C2, [C1, C2]), 'C', 1, 2) == C1116def test_constant_repeated():117 assert C1 + C1*x == constant_renumber( C1 + C1*x, 'C', 1, 3)118def test_ode_solutions():119 # only a few examples here, the rest will be tested in the actual dsolve tests120 assert constant_renumber(constantsimp(C1*exp(2*x) + exp(x)*(C2 + C3), [C1, C2, C3]), 'C', 1, 3) == \121 constant_renumber((C1*exp(x) + C2*exp(2*x)), 'C', 1, 2)122 assert constant_renumber(123 constantsimp(Eq(f(x), I*C1*sinh(x/3) + C2*cosh(x/3)), [C1, C2]),124 'C', 1, 2) == constant_renumber(Eq(f(x), C1*sinh(x/3) + C2*cosh(x/3)), 'C', 1, 2)125 assert constant_renumber(constantsimp(Eq(f(x), acos((-C1)/cos(x))), [C1]), 'C', 1, 1) == \126 Eq(f(x), acos(C1/cos(x)))127 assert constant_renumber(128 constantsimp(Eq(log(f(x)/C1) + 2*exp(x/f(x)), 0), [C1]),129 'C', 1, 1) == Eq(log(C1*f(x)) + 2*exp(x/f(x)), 0)130 assert constant_renumber(constantsimp(Eq(log(x*sqrt(2)*sqrt(1/x)*sqrt(f(x))131 /C1) + x**2/(2*f(x)**2), 0), [C1]), 'C', 1, 1) == \132 Eq(log(C1*sqrt(x)*sqrt(f(x))) + x**2/(2*f(x)**2), 0)133 assert constant_renumber(constantsimp(Eq(-exp(-f(x)/x)*sin(f(x)/x)/2 + log(x/C1) -134 cos(f(x)/x)*exp(-f(x)/x)/2, 0), [C1]), 'C', 1, 1) == \135 Eq(-exp(-f(x)/x)*sin(f(x)/x)/2 + log(C1*x) - cos(f(x)/x)*136 exp(-f(x)/x)/2, 0)137 u2 = Symbol('u2')138 _a = Symbol('_a')139 assert constant_renumber(constantsimp(Eq(-Integral(-1/(sqrt(1 - u2**2)*u2),140 (u2, _a, x/f(x))) + log(f(x)/C1), 0), [C1]), 'C', 1, 1) == \141 Eq(-Integral(-1/(u2*sqrt(1 - u2**2)), (u2, _a, x/f(x))) +142 log(C1*f(x)), 0)143 assert [constantsimp(i, [C1]) for i in [Eq(f(x), sqrt(-C1*x + x**2)), Eq(f(x), -sqrt(-C1*x + x**2))]] == \144 [Eq(f(x), sqrt(x*(C1 + x))), Eq(f(x), -sqrt(x*(C1 + x)))]145@XFAIL146def test_nonlocal_simplification():147 assert constantsimp(C1 + C2+x*C2, [C1, C2]) == C1 + C2*x148def test_constant_Eq():149 # C1 on the rhs is well-tested, but the lhs is only tested here150 assert constantsimp(Eq(C1, 3 + f(x)*x), [C1]) == Eq(x*f(x), C1)...

Full Screen

Full Screen

col_set_addition.py

Source:col_set_addition.py Github

copy

Full Screen

1"""Encapsulates the basic collision set addition functions, so they can2be accessible to any code that uses it34Also provides exceptions for indicating no solution or out of time5"""678def add_col_set_recursive(c1, c2):9 """Returns a new collision set resulting from adding c1 to c2. No10 side effecting1112 collision set is done for the recursive case, where13 ({1, 2}, ) + ({3, 4}, ) = ({1, 2}, {3, 4})1415 c1, c2 - tuples of (immutable) sets1617 returns:18 recursive collision set containing c1 and c21920 """21 # Make shallow copies22 c1 = list(c1)23 c2 = list(c2)24 while len(c1) > 0:25 i = 026 # Whether c1[-1] overlaps with any element of c227 found_overlap = False28 while i < len(c2):29 if not c2[i].isdisjoint(c1[-1]):30 # Found overlap31 if c2[i].issuperset(c1[-1]):32 # No change in c233 c1.pop()34 found_overlap = True35 break36 # Have found a non-trivial overlap. Need to add the37 # union to c1 so that we can check if the union has any38 # further overlap with elements of c239 temp = c2.pop(i)40 # replace c2[i] with the union of c2[i] and c1[-1]41 c1.append(temp.union(c1.pop()))42 found_overlap = True43 break44 else:45 # No overlap between c1[-1] and c2[i], so check next46 # element of c247 i += 148 if not found_overlap:49 # c1[-1] has no overlap with any element of c2, so it can be50 # added as is to c251 c2.append(c1.pop())52 return tuple(c2)535455def add_col_set(c1, c2):56 """Adds the collision sets c1 to c2. c2 is assumed to contain a57 single,58 possibly empty, set5960 c1, c2 - input collision sets6162 returns:63 combined collision set containing c1 and c26465 """66 temp = frozenset([])67 if len(c2) >= 1:68 temp = c2[0]69 assert len(c2) == 170 for i in c1:71 temp = temp.union(i)72 if len(temp) == 0:73 return ()74 return (temp, )757677def col_set_add(c1, c2, recursive):78 """Adds two collision sets7980 c1, c2 - input collision sets81 recursive - boolean, whether to perform recursive M* style addition8283 returns:84 collision set containing c1 and c28586 """87 if recursive:88 return add_col_set_recursive(c1, c2)89 else:90 return add_col_set(c1, c2)919293def effective_col_set(col_set, prev_col_set):94 """Computes the effective collision set to use given the current95 collision set and the collision set used to get to the current node9697 Only makes sense when used with recursive M*9899 The purpose of this code is that in recursive M*, you invoke a100 subplanner to figure out how to get to the goal, which caches the101 entire path to the goal . The next step, you have an empty102 collision set, so you don't query the subplanner with the cached103 path, and have to find a bunch of collisions before using the cached104 solution. This is intended for use with a memory of what the105 collision set was when you reached a given node.106107 Computes the "effecitve collision set". Elements of the memorized108 collision set are used if they have no non-empty intersections with109 elements of the current collision set that are not subsets of the110 memorized component.111112 elements of col_set are NOT used if they are contained within some113 element of prev_col_set that is used. Elements of prev_col_set are114 used if they completely contain all elements of col_set with which115 they intersect116117 col_set - current collision set118 prev_col_set - "memorized" collision set, i.e. the collision set of119 the optimal predecessor at the time the path from the120 optimal predecessor was first found121122 returns:123 effective collision set. Consists of the elements of the previous124 collision set, which should index subplanners which have cached125 paths available, and elements of the current collision set which126 are not contained within prev_col_set127 """128 effective_set = []129 prev_col_set = list(prev_col_set)130 col_set = list(col_set)131 while(len(prev_col_set) > 0):132 # Need to keep around the elements of col_set that won't be133 # used, because the containing element of prev_col_set may be134 # invalidated by a later element of col_set135 col_set_to_remove = []136 j = 0137 while (j < len(col_set)):138 if col_set[j].issubset(prev_col_set[-1]):139 # this element is contained in prev_col_set, so can be140 # skipped unless prev_col_set-1] is invalidated by some141 # later element of col_set142 col_set_to_remove.append(col_set.pop(j))143 elif not col_set[j].isdisjoint(prev_col_set[-1]):144 # this element partially overlaps prev_col_set,145 # invalidating it, so cannot use this element of146 # prev_col_set147 prev_col_set.pop()148 # return the elements of col_set we were going to remove149 col_set.extend(col_set_to_remove)150 break151 else:152 j += 1153 else:154 # Never broke, so prev_col_set can be used as part of the155 # effective collision set156 effective_set.append(prev_col_set.pop())157 # Just copy over any elements of col_set that survived158 effective_set.extend(col_set)159 return tuple(effective_set)160161162class OutOfTimeError(Exception):163 def __init__(self, value=None):164 self.value = value165166 def __str__(self):167 return repr(self.value)168169170class NoSolutionError(Exception):171 def __init__(self, value=None):172 self.value = value173174 def __str__(self):175 return repr(self.value)176177178class OutOfScopeError(NoSolutionError):179 def __init__(self, value=None, col_set=()):180 self.value = value181 self.col_set = col_set182183 def __str__(self): ...

Full Screen

Full Screen

transfer2.py

Source:transfer2.py Github

copy

Full Screen

1# coding=utf-82import sympy as sp3from utils import algebra4from scipy import signal5from decimal import *6r1 = [2.28e3, 1.39e3]7k = [0.16, 0.165]8c = [680e-12, 1e-9]9av = [0.033, 0.033]10r2 = [20.5e3, 12.6e3]11getcontext().prec = 2812R1 = Decimal(r1[0])13K = Decimal(k[0])14C = Decimal(c[0])15a = Decimal(av[0])16R2 = Decimal(r2[0])17R11 = Decimal(r1[1])18K1 = Decimal(k[1])19C1 = Decimal(c[1])20A1 = Decimal(av[1])21R21 = Decimal(r2[1])22coef = [[4*A1*C**3*C1**3*K*K1*R1**2*R11**2*R2**2*R21**2*a - 4*A1*C**3*C1**3*K*R1**2*R11**2*R2**2*R21**2*a - 4*A1*C**3*C1**3*K1*R1**2*R11**2*R2**2*R21**2*a + 4*A1*C**3*C1**3*R1**2*R11**2*R2**2*R21**2*a, 0, 0], [4*C**4*C1**4*K**2*K1**2*R1**3*R11**3*R2**2*R21**2 - 8*C**4*C1**4*K**2*K1*R1**3*R11**3*R2**2*R21**2 + 4*C**4*C1**4*K**2*R1**3*R11**3*R2**2*R21**2 - 8*C**4*C1**4*K*K1**2*R1**3*R11**3*R2**2*R21**2 + 16*C**4*C1**4*K*K1*R1**3*R11**3*R2**2*R21**2 - 8*C**4*C1**4*K*R1**3*R11**3*R2**2*R21**2 + 4*C**4*C1**4*K1**2*R1**3*R11**3*R2**2*R21**2 - 8*C**4*C1**4*K1*R1**3*R11**3*R2**2*R21**2 + 4*C**4*C1**4*R1**3*R11**3*R2**2*R21**2, 8*C**4*C1**3*K**2*K1**2*R1**3*R11**3*R2**2*R21 + 4*C**4*C1**3*K**2*K1**2*R1**3*R11**2*R2**2*R21**2 - 16*C**4*C1**3*K**2*K1*R1**3*R11**3*R2**2*R21 - 4*C**4*C1**3*K**2*K1*R1**3*R11**2*R2**2*R21**2 + 8*C**4*C1**3*K**2*R1**3*R11**3*R2**2*R21 - 16*C**4*C1**3*K*K1**2*R1**3*R11**3*R2**2*R21 - 8*C**4*C1**3*K*K1**2*R1**3*R11**2*R2**2*R21**2 + 32*C**4*C1**3*K*K1*R1**3*R11**3*R2**2*R21 + 8*C**4*C1**3*K*K1*R1**3*R11**2*R2**2*R21**2 - 16*C**4*C1**3*K*R1**3*R11**3*R2**2*R21 + 8*C**4*C1**3*K1**2*R1**3*R11**3*R2**2*R21 + 4*C**4*C1**3*K1**2*R1**3*R11**2*R2**2*R21**2 - 16*C**4*C1**3*K1*R1**3*R11**3*R2**2*R21 - 4*C**4*C1**3*K1*R1**3*R11**2*R2**2*R21**2 + 8*C**4*C1**3*R1**3*R11**3*R2**2*R21 + 8*C**3*C1**4*K**2*K1**2*R1**3*R11**3*R2*R21**2 + 4*C**3*C1**4*K**2*K1**2*R1**2*R11**3*R2**2*R21**2 - 16*C**3*C1**4*K**2*K1*R1**3*R11**3*R2*R21**2 - 8*C**3*C1**4*K**2*K1*R1**2*R11**3*R2**2*R21**2 + 8*C**3*C1**4*K**2*R1**3*R11**3*R2*R21**2 + 4*C**3*C1**4*K**2*R1**2*R11**3*R2**2*R21**2 - 16*C**3*C1**4*K*K1**2*R1**3*R11**3*R2*R21**2 - 4*C**3*C1**4*K*K1**2*R1**2*R11**3*R2**2*R21**2 + 32*C**3*C1**4*K*K1*R1**3*R11**3*R2*R21**2 + 8*C**3*C1**4*K*K1*R1**2*R11**3*R2**2*R21**2 - 16*C**3*C1**4*K*R1**3*R11**3*R2*R21**2 - 4*C**3*C1**4*K*R1**2*R11**3*R2**2*R21**2 + 8*C**3*C1**4*K1**2*R1**3*R11**3*R2*R21**2 - 16*C**3*C1**4*K1*R1**3*R11**3*R2*R21**2 + 8*C**3*C1**4*R1**3*R11**3*R2*R21**2, 4*C**4*C1**2*K**2*K1**2*R1**3*R11**2*R2**2*R21 - 8*C**4*C1**2*K**2*K1*R1**3*R11**2*R2**2*R21 + 4*C**4*C1**2*K**2*R1**3*R11**2*R2**2*R21 - 8*C**4*C1**2*K*K1**2*R1**3*R11**2*R2**2*R21 + 16*C**4*C1**2*K*K1*R1**3*R11**2*R2**2*R21 - 8*C**4*C1**2*K*R1**3*R11**2*R2**2*R21 + 4*C**4*C1**2*K1**2*R1**3*R11**2*R2**2*R21 - 8*C**4*C1**2*K1*R1**3*R11**2*R2**2*R21 + 4*C**4*C1**2*R1**3*R11**2*R2**2*R21 + 16*C**3*C1**3*K**2*K1**2*R1**3*R11**3*R2*R21 + 8*C**3*C1**3*K**2*K1**2*R1**3*R11**2*R2*R21**2 + 8*C**3*C1**3*K**2*K1**2*R1**2*R11**3*R2**2*R21 + 4*C**3*C1**3*K**2*K1**2*R1**2*R11**2*R2**2*R21**2 - 32*C**3*C1**3*K**2*K1*R1**3*R11**3*R2*R21 - 8*C**3*C1**3*K**2*K1*R1**3*R11**2*R2*R21**2 - 16*C**3*C1**3*K**2*K1*R1**2*R11**3*R2**2*R21 - 4*C**3*C1**3*K**2*K1*R1**2*R11**2*R2**2*R21**2 + 16*C**3*C1**3*K**2*R1**3*R11**3*R2*R21 + 8*C**3*C1**3*K**2*R1**2*R11**3*R2**2*R21 - 32*C**3*C1**3*K*K1**2*R1**3*R11**3*R2*R21 - 16*C**3*C1**3*K*K1**2*R1**3*R11**2*R2*R21**2 - 8*C**3*C1**3*K*K1**2*R1**2*R11**3*R2**2*R21 - 4*C**3*C1**3*K*K1**2*R1**2*R11**2*R2**2*R21**2 + 64*C**3*C1**3*K*K1*R1**3*R11**3*R2*R21 + 16*C**3*C1**3*K*K1*R1**3*R11**2*R2*R21**2 + 16*C**3*C1**3*K*K1*R1**2*R11**3*R2**2*R21 + 4*C**3*C1**3*K*K1*R1**2*R11**2*R2**2*R21**2 - 32*C**3*C1**3*K*R1**3*R11**3*R2*R21 - 8*C**3*C1**3*K*R1**2*R11**3*R2**2*R21 + 16*C**3*C1**3*K1**2*R1**3*R11**3*R2*R21 + 8*C**3*C1**3*K1**2*R1**3*R11**2*R2*R21**2 - 32*C**3*C1**3*K1*R1**3*R11**3*R2*R21 - 8*C**3*C1**3*K1*R1**3*R11**2*R2*R21**2 + 16*C**3*C1**3*R1**3*R11**3*R2*R21 + 4*C**2*C1**4*K**2*K1**2*R1**2*R11**3*R2*R21**2 - 8*C**2*C1**4*K**2*K1*R1**2*R11**3*R2*R21**2 + 4*C**2*C1**4*K**2*R1**2*R11**3*R2*R21**2 - 8*C**2*C1**4*K*K1**2*R1**2*R11**3*R2*R21**2 + 16*C**2*C1**4*K*K1*R1**2*R11**3*R2*R21**2 - 8*C**2*C1**4*K*R1**2*R11**3*R2*R21**2 + 4*C**2*C1**4*K1**2*R1**2*R11**3*R2*R21**2 - 8*C**2*C1**4*K1*R1**2*R11**3*R2*R21**2 + 4*C**2*C1**4*R1**2*R11**3*R2*R21**2, 8*C**3*C1**2*K**2*K1**2*R1**3*R11**2*R2*R21 + 4*C**3*C1**2*K**2*K1**2*R1**2*R11**2*R2**2*R21 - 16*C**3*C1**2*K**2*K1*R1**3*R11**2*R2*R21 - 8*C**3*C1**2*K**2*K1*R1**2*R11**2*R2**2*R21 + 8*C**3*C1**2*K**2*R1**3*R11**2*R2*R21 + 4*C**3*C1**2*K**2*R1**2*R11**2*R2**2*R21 - 16*C**3*C1**2*K*K1**2*R1**3*R11**2*R2*R21 - 4*C**3*C1**2*K*K1**2*R1**2*R11**2*R2**2*R21 + 32*C**3*C1**2*K*K1*R1**3*R11**2*R2*R21 + 8*C**3*C1**2*K*K1*R1**2*R11**2*R2**2*R21 - 16*C**3*C1**2*K*R1**3*R11**2*R2*R21 - 4*C**3*C1**2*K*R1**2*R11**2*R2**2*R21 + 8*C**3*C1**2*K1**2*R1**3*R11**2*R2*R21 - 16*C**3*C1**2*K1*R1**3*R11**2*R2*R21 + 8*C**3*C1**2*R1**3*R11**2*R2*R21 + 8*C**2*C1**3*K**2*K1**2*R1**2*R11**3*R2*R21 + 4*C**2*C1**3*K**2*K1**2*R1**2*R11**2*R2*R21**2 - 16*C**2*C1**3*K**2*K1*R1**2*R11**3*R2*R21 - 4*C**2*C1**3*K**2*K1*R1**2*R11**2*R2*R21**2 + 8*C**2*C1**3*K**2*R1**2*R11**3*R2*R21 - 16*C**2*C1**3*K*K1**2*R1**2*R11**3*R2*R21 - 8*C**2*C1**3*K*K1**2*R1**2*R11**2*R2*R21**2 + 32*C**2*C1**3*K*K1*R1**2*R11**3*R2*R21 + 8*C**2*C1**3*K*K1*R1**2*R11**2*R2*R21**2 - 16*C**2*C1**3*K*R1**2*R11**3*R2*R21 + 8*C**2*C1**3*K1**2*R1**2*R11**3*R2*R21 + 4*C**2*C1**3*K1**2*R1**2*R11**2*R2*R21**2 - 16*C**2*C1**3*K1*R1**2*R11**3*R2*R21 - 4*C**2*C1**3*K1*R1**2*R11**2*R2*R21**2 + 8*C**2*C1**3*R1**2*R11**3*R2*R21, 4*C**2*C1**2*K**2*K1**2*R1**2*R11**2*R2*R21 - 8*C**2*C1**2*K**2*K1*R1**2*R11**2*R2*R21 + 4*C**2*C1**2*K**2*R1**2*R11**2*R2*R21 - 8*C**2*C1**2*K*K1**2*R1**2*R11**2*R2*R21 + 16*C**2*C1**2*K*K1*R1**2*R11**2*R2*R21 - 8*C**2*C1**2*K*R1**2*R11**2*R2*R21 + 4*C**2*C1**2*K1**2*R1**2*R11**2*R2*R21 - 8*C**2*C1**2*K1*R1**2*R11**2*R2*R21 + 4*C**2*C1**2*R1**2*R11**2*R2*R21]]23for i in range(len(coef[0])):24 coef[0][i] = float(coef[0][i])25for i in range(len(coef[1])):26 coef[1][i] = float(coef[1][i])27print(coef[0], coef[1])...

Full Screen

Full Screen

naive_bayes.py

Source:naive_bayes.py Github

copy

Full Screen

...9 def __init__(self):10 self.current_dir = os.path.dirname(__file__)11 self.sorted_words = SortedWords()12 self.preprocessor = Preprocessor()13 def set_doc_c1(self):14 fo = open(self.current_dir + '/../resources/pos_text.txt', 'r')15 self.text_c1 = fo.read()16 self.text_c1 = self.text_c1.split('\n')17 self.text_c1 = self.preprocessor.remove_mark_docs(self.text_c1)18 fo.close()19 def set_doc_c2(self):20 fo = open(self.current_dir + '/../resources/neg_text.txt', 'r')21 self.text_c2 = fo.read()22 self.text_c2 = self.text_c2.split('\n')23 self.text_c2 = self.preprocessor.remove_mark_docs(self.text_c2)24 def set_doc_classify(self):25 fo = open(self.current_dir + '/../resources/classify_text.txt', 'r')26 self.text_classify = fo.read()27 self.text_classify = self.text_classify.split('\n')28 self.text_classify = self.preprocessor.remove_mark_docs(self.text_classify)29 fo.close()30 def probability_cal(self):31 self.p_c1 = len(self.text_c1)*1.0/(len(self.text_c1) + len(self.text_c2))32 self.p_c2 = 1 - self.p_c133 self.word = []34 self.tf_c1 = []35 self.tf_c2 = []36 #add to list37 for sentence in self.text_c1:38 s_words = sentence.split(' ')39 for w in s_words:40 self.sorted_words.add(word=w)41 for sentence in self.text_c2:42 s_words = sentence.split(' ')43 for w in s_words:44 self.sorted_words.add(word=w)45 #cal tf46 self.tf_c1 = [0 for i in range(len(self.sorted_words.words))]47 for sentence in self.text_c1:48 s_words = sentence.split(' ')49 for w in s_words:50 self.tf_c1[self.sorted_words.find(w)] += 151 self.tf_c2 = [0 for i in range(len(self.sorted_words.words))]52 for sentence in self.text_c2:53 s_words = sentence.split(' ')54 for w in s_words:55 self.tf_c2[self.sorted_words.find(w)] += 156 def train(self):57 sum_tf_c1 = 058 sum_tf_c2 = 059 for i in range(len(self.word)):60 sum_tf_c1 += self.tf_c1[i]61 sum_tf_c2 += self.tf_c2[i]62 self.probability_c1 = []63 self.probability_c2 = []64 for i in range(len(self.sorted_words.words)):65 self.probability_c1.append((self.tf_c1[i] + 1.0)/(len(self.sorted_words.words) + sum_tf_c1))66 self.probability_c2.append((self.tf_c2[i] + 1.0)/(len(self.sorted_words.words) + sum_tf_c2))67 def get_rate_probability_c1(self, word):68 position = self.sorted_words.find(word)69 if word == self.sorted_words.words[position]:70 return self.probability_c1[position]/self.probability_c2[position]71 else:72 return 173 def test(self):74 for sentence in self.text_classify:75 self.test_doc(sentence)76 def test_doc(self, text):77 rate_px_c1 = 178 s_words = text.split(' ')79 for w in s_words:80 rate_px_c1 *= self.get_rate_probability_c1(w)81 if rate_px_c1*self.p_c1 >= self.p_c2:82 print text + ': belong c1'83 else:84 print text + ': belong c2'85if __name__ == '__main__':86 naive_bayes_classify = NaiveBayesClassify()87 naive_bayes_classify.set_doc_c1()88 naive_bayes_classify.set_doc_c2()89 naive_bayes_classify.set_doc_classify()90 naive_bayes_classify.probability_cal()91 naive_bayes_classify.train()...

Full Screen

Full Screen

mend.py

Source:mend.py Github

copy

Full Screen

1#!/usr/bin/python2# -*- coding: utf-8 -*-3nodes = []4class Node:5 def __init__(self, par):6 self.p = par7 self.s = set()8 self.lab = ''9 self.probs = {}10 nodes.append(self)11 def __repr__(self):12 return '%s(s=%s)' % (self.lab or 'Node', self.s)13def buildtree(tree):14 class cur:15 pos = 016 dd = {}17 def getnode(par):18 cc = Node(par)19 if tree[cur.pos] == '(':20 while tree[cur.pos] in '(,':21 cur.pos += 122 cc.s.add(getnode(cc))23 cur.pos += 124 cc.s = tuple(cc.s)25 ff = cur.pos26 while tree[cur.pos] not in '), ;':27 cur.pos += 128 nam = tree[ff:cur.pos]29 cc.lab = nam30 if nam != '':31 dd[nam] = cc32 return cc33 return (getnode(None), dd)34def cnt(cur):35 trt = set()36 for son in cur.s:37 cnt(son)38 if cur.lab:39 for i in ('AA', 'Aa', 'aa'):40 if i == ''.join(sorted(cur.lab)):41 cur.probs[i] = 1.042 else:43 cur.probs[i] = 0.044 else:45 c1 = cur.s[0].probs46 c2 = cur.s[1].probs47 cur.probs['AA'] = c1['AA'] * c2['AA'] + c1['Aa'] * c2['Aa'] / 4 + c1['AA'] * c2['Aa'] / 2 + c1['Aa'] * c2['AA'] / 248 cur.probs['Aa'] = c1['AA'] * c2['aa'] + c1['aa'] * c2['AA'] + c1['Aa'] * c2['Aa'] / 2 + c1['AA'] * c2['Aa'] / 2 + c1['Aa'] * c2['AA'] / 2 + c1['aa'] * c2['Aa'] / 2 + c1['Aa'] * c2['aa'] / 249 cur.probs['aa'] = c1['aa'] * c2['aa'] + c1['Aa'] * c2['Aa'] / 4 + c1['aa'] * c2['Aa'] / 2 + c1['Aa'] * c2['aa'] / 250with open('rosalind_mend.txt') as f:51 (root, d) = buildtree(f.readline().strip())52 cnt(root)...

Full Screen

Full Screen

boxes.py

Source:boxes.py Github

copy

Full Screen

1A1 = int(input()) # Box 12B1 = int(input())3C1 = int(input())4A2 = int(input()) # Box 25B2 = int(input())6C2 = int(input())7if ((A1 == A2 and B1 == B2 and C1 == C2) or8 (A1 == A2 and B1 == C2 and C1 == B2) or9 (A1 == C2 and B1 == A2 and C1 == B2) or10 (A1 == B2 and B1 == A2 and C1 == C2) or11 (A1 == B2 and B1 == C2 and C1 == A2) or12 (A1 == C2 and B1 == B2 and C1 == A2)):13 print('Boxes are equal')14elif ((A1 <= A2 and B1 <= B2 and C1 <= C2) or15 (A1 <= A2 and B1 <= C2 and C1 <= B2) or16 (A1 <= C2 and B1 <= A2 and C1 <= B2) or17 (A1 <= B2 and B1 <= A2 and C1 <= C2) or18 (A1 <= B2 and B1 <= C2 and C1 <= A2) or19 (A1 <= C2 and B1 <= B2 and C1 <= A2)):20 print('The first box is smaller than the second one')21elif ((A1 >= A2 and B1 >= B2 and C1 >= C2) or22 (A1 >= A2 and B1 >= C2 and C1 >= B2) or23 (A1 >= C2 and B1 >= A2 and C1 >= B2) or24 (A1 >= B2 and B1 >= A2 and C1 >= C2) or25 (A1 >= B2 and B1 >= C2 and C1 >= A2) or26 (A1 >= C2 and B1 >= B2 and C1 >= A2)):27 print('The first box is larger than the second one')28else:...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const c1 = require('fast-check-monorepo/c1');2console.log(c1());3const c1 = require('fast-check-monorepo/c1');4console.log(c1());5const c1 = require('fast-check-monorepo/c1');6console.log(c1());7const c1 = require('fast-check-monorepo/c1');8console.log(c1());9const c1 = require('fast-check-monorepo/c1');10console.log(c1());11const c1 = require('fast-check-monorepo/c1');12console.log(c1());13const c1 = require('fast-check-monorepo/c1');14console.log(c1());15const c1 = require('fast-check-monorepo/c1');16console.log(c1());17const c1 = require('fast-check-monorepo/c1');18console.log(c1());19const c1 = require('fast-check-monorepo/c1');20console.log(c1());21const c1 = require('fast-check-monorepo/c1');22console.log(c1());23const c1 = require('fast-check-monorepo/c1');24console.log(c1());25const c1 = require('fast-check-monorepo/c1');26console.log(c1

Full Screen

Using AI Code Generation

copy

Full Screen

1const c1 = require('fast-check-monorepo/c1');2c1();3const c2 = require('fast-check-monorepo/c2');4c2();5const c3 = require('fast-check-monorepo/c3');6c3();7const c4 = require('fast-check-monorepo/c4');8c4();9const c5 = require('fast-check-monorepo/c5');10c5();11const c6 = require('fast-check-monorepo/c6');12c6();13const c7 = require('fast-check-monorepo/c7');14c7();15const c8 = require('fast-check-monorepo/c8');16c8();17const c9 = require('fast-check-monorepo/c9');18c9();19const c10 = require('fast-check-monorepo/c10');20c10();21const c11 = require('fast-check-monorepo/c11');22c11();23const c12 = require('fast-check-monorepo/c12');24c12();25const c13 = require('fast-check-monorepo/c13');26c13();

Full Screen

Using AI Code Generation

copy

Full Screen

1const {c1} = require('fast-check-monorepo');2console.log(c1());3const {c2} = require('fast-check-monorepo');4console.log(c2());5"dependencies": {6 }7def add(x, y):8print(add(4, 5))9var exec = require('child_process').exec, child;10child = exec('python3 test.py',11 function (error, stdout, stderr) {12 console.log('stdout: ' + stdout);13 console.log('stderr: ' + stderr);14 if (error !== null) {15 console.log('exec error: ' + error);16 }17});

Full Screen

Using AI Code Generation

copy

Full Screen

1const c1 = require('fast-check-monorepo');2console.log(c1());3const c1 = require('fast-check-monorepo');4console.log(c1());5const c1 = require('fast-check-monorepo');6console.log(c1());7const c1 = require('fast-check-monorepo');8console.log(c1());9const c1 = require('fast-check-monorepo');10console.log(c1());11const c1 = require('fast-check-monorepo');12console.log(c1());13const c1 = require('fast-check-monorepo');14console.log(c1());15const c1 = require('fast-check-monorepo');16console.log(c1());17const c1 = require('fast-check-monorepo');18console.log(c1());19const c1 = require('fast-check-monorepo');20console.log(c1());21const c1 = require('fast-check-monorepo');22console.log(c1());23const c1 = require('fast-check-monorepo');24console.log(c1());25const c1 = require('fast-check-monorepo');26console.log(c1());

Full Screen

Using AI Code Generation

copy

Full Screen

1const c1 = require('fast-check-monorepo/lib/c1');2const c2 = require('fast-check-monorepo/lib/c2');3describe('test 3', () => {4 it('should pass', () => {5 expect(c1()).toBe('c1');6 expect(c2()).toBe('c2');7 });8});9const c1 = require('fast-check-monorepo/lib/c1');10const c2 = require('fast-check-monorepo/lib/c2');11describe('test 4', () => {12 it('should pass', () => {13 expect(c1()).toBe('c1');14 expect(c2()).toBe('c2');15 });16});

Full Screen

Using AI Code Generation

copy

Full Screen

1const c1 = require('fast-check-monorepo/lib/issue-339/c1.js');2console.log(c1(10));3const c2 = require('fast-check-monorepo/lib/issue-339/c2.js');4console.log(c2(10));5const c3 = require('fast-check-monorepo/lib/issue-339/c3.js');6console.log(c3(10));7const c4 = require('fast-check-monorepo/lib/issue-339/c4.js');8console.log(c4(10));9const c5 = require('fast-check-monorepo/lib/issue-339/c5.js');10console.log(c5(10));11const c6 = require('fast-check-monorepo/lib/issue-339/c6.js');12console.log(c6(10));13const c7 = require('fast-check-monorepo/lib/issue-339/c7.js');14console.log(c7(10));15const c8 = require('fast-check-monorepo/lib/issue-339/c8.js');16console.log(c8(10));17const c9 = require('fast-check-monorepo/lib/issue-339/c9.js');18console.log(c9(10));19const c10 = require('fast-check-monorepo/lib/issue-339/c10.js');20console.log(c10(10));21const c11 = require('fast-check-monorepo/lib/issue-339/c11

Full Screen

Automation Testing Tutorials

Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.

LambdaTest Learning Hubs:

YouTube

You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.

Run fast-check-monorepo automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful