Best JavaScript code snippet using fast-check-monorepo

prepared-transactions.spec

Source:prepared-transactions.spec

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

alg_joint_estimation_3d.py

Source:alg_joint_estimation_3d.py

**1**import numpy as np**2**from scipy import linalg**3**from 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_idealLP**6**from alg_joint_estimation_2d import compute_fitting_error**7**from poly_common_roots_3d import find_roots_3d**8**from alg_joint_estimation_3d_efficient import dirac_recon_joint_alg_fast**9**def 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 jointly**15** :param a: the given measurements of the 3D Dirac deltas**16** :param num_dirac: number of Dirac deltas**17** :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 filtering**19** :param taus: a tuple of size 3 for the periods of the Dirac stream along x, y and z axis**20** :param noise_level: noise level present in the given measurements**21** :param max_ini: maximum number of random initializations**22** :param stop_cri: stopping criterion, either 'mse' or 'max_iter'**23** :param max_inner_iter: maximum number of inner iterations for each random initializations**24** :param strategy: either 'aggregate', which reconstructs amplitudes for**25** 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 the**27** reconstructed xk_recon, yk_recon and zk_recon each time. The ones that contributes least**28** 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 locations**32** 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 locations**34** 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 the**36** exact implmentation.**37** :return:**38** """**39** Bx, By, Bz = bandwidth**40** taux, tauy, tauz = taus**41** 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 sinusoids**46** # to the ideally lowpass filtered samples**47** mtx_fri2samp = build_G_mtx_idealLP(samp_loc, bandwidth, taus, shape_b)**48** # apply joint FRI estimation**49** if use_fast_alg:**50** # a faster implementation**51** 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 parameters**67** # function handel to build the mapping from Dirac amplitudes to given samples**68** 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_recon**74**# TODO: update the implementation with the new formulation (reduce number of unknowns)**75**def 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 jointly**80** min |a - Gb|^2**81** s.t. c_1 * b = 0**82** c_2 * b = 0**83** c_3 * b = 0**84** This is the exact form that we have in the paper without any alternations for**85** performance considerations, e.g., reusing intermediate results, etc.**86** :param G: the linear mapping that links the unknown uniformly sampled**87** sinusoids to the given measurements**88** :param measurement: the given measurements of the 3D Dirac deltas**89** :param num_dirac: number of Dirac deltas**90** :param shape_b: shape of the (3D) uniformly sampled sinusoids**91** :param noise_level: noise level present in the given measurements**92** :param max_ini: maximum number of random initializations**93** :param stop_cri: stopping criterion, either 'mse' or 'max_iter'**94** :param max_inner_iter: maximum number of inner iterations for each random initializations**95** :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 locations**98** 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 locations**100** 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 + 3**106** # choose the shapes of the 3D annihilating filters**107** 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 check**136** assert shape_c1_0 * shape_c1_1 * shape_c1_2 >= num_non_zero**137** 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_2**140** 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 equations**144** update_shape = True**145** 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 = 0**154** 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]] += 1**161** else:**162** shapes[dict_keys[exp_count]][shapes_update_neq[exp_count]] += 1**163** exp_count += 1**164** exp_count = np.mod(exp_count, 3)**165** update_shape = True**166** else:**167** update_shape = False**168** 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 dimension**172** # TODO: add this constraints**173** # total number of coefficients in c1 and c2**174** 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 matrix**178** 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].size**185** except ValueError:**186** # the effective number of equations as predicted by the derivation**187** 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 / vectors**192** sz_coef = num_coef1 + num_coef2 + num_coef3**193** sz_S0 = sz_coef - 3 * num_non_zero**194** sz_R1 = np.prod(shape_b)**195** # a few indices that are fixed**196** idx_bg0_Tb = sz_coef**197** idx_end0_Tb = sz_coef + shape_Tb0_effective**198** idx_bg1_Tb = 0**199** idx_end1_Tb = sz_coef**200** idx_bg0_TbH = 0**201** idx_end0_TbH = sz_coef**202** idx_bg1_TbH = sz_coef**203** idx_end1_TbH = sz_coef + shape_Tb0_effective**204** idx_bg0_Rc = sz_coef**205** idx_end0_Rc = sz_coef + shape_Tb0_effective**206** idx_bg1_Rc = sz_coef + shape_Tb0_effective**207** idx_end1_Rc = sz_coef + shape_Tb0_effective + sz_R1**208** idx_bg0_RcH = sz_coef + shape_Tb0_effective**209** idx_end0_RcH = sz_coef + shape_Tb0_effective + sz_R1**210** idx_bg1_RcH = sz_coef**211** idx_end1_RcH = sz_coef + shape_Tb0_effective**212** # pre-compute a few things**213** 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** # initializations**219** min_error = np.inf**220** 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 = None**224** c2_opt = None**225** c3_opt = None**226** # iterations over different random initializations of the annihilating filter coefficients**227** ini = 0**228** while ini < max_ini:**229** ini += 1**230** 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 coefficients**234** 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 OUT**238** 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 valued**244** mtx_S_row = np.hstack((S, np.zeros((sz_S0, shape_Tb0_effective + sz_R1 + sz_S0 + 3))))**245** # last row in mtx_loop**246** 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 equations**251** Q_H = linalg.qr(R_loop, mode='economic',**252** pivoting=False)[0][:, :shape_Tb0_effective].conj().T**253** R_loop = np.dot(Q_H, R_loop)**254** Tbeta_loop = np.dot(Q_H, Tbeta0)**255** # inner loop for each random initialization**256** 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_row**272** ))**273** else:**274** mtx_loop[idx_bg0_Tb:idx_end0_Tb, idx_bg1_Tb:idx_end1_Tb] = Tbeta_loop**275** mtx_loop[idx_bg0_TbH:idx_end0_TbH, idx_bg1_TbH:idx_end1_TbH] = Tbeta_loop.conj().T**276** mtx_loop[idx_bg0_Rc:idx_end0_Rc, idx_bg1_Rc:idx_end1_Rc] = -R_loop**277** mtx_loop[idx_bg0_RcH:idx_end0_RcH, idx_bg1_RcH:idx_end1_RcH] = -R_loop.conj().T**278** # solve annihilating filter coefficients**279** try:**280** coef = linalg.solve(mtx_loop, rhs)[:sz_coef]**281** except linalg.LinAlgError:**282** break**283** 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 coefficients**287** R_loop = R_mtx_joint3d(c1, c2, c3, shape_b)**288** # use QR decomposition to extract effective lines of equations**289** Q_H = linalg.qr(R_loop, mode='economic',**290** pivoting=False)[0][:, :shape_Tb0_effective].conj().T**291** R_loop = np.dot(Q_H, R_loop)**292** Tbeta_loop = np.dot(Q_H, Tbeta0)**293** # reconstruct b**294** 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().T**301** mtx_brecon[sz_R1:, :sz_R1] = R_loop**302** b_recon = linalg.solve(mtx_brecon, rhs_bl)[:sz_R1]**303** # compute fitting error**304** 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 are**307** # indeed num_dirac + 1 (could be less)**308** c1[np.abs(c1) < 1e-2 * np.max(np.abs(c1))] = 0**309** c2[np.abs(c2) < 1e-2 * np.max(np.abs(c2))] = 0**310** c3[np.abs(c3) < 1e-2 * np.max(np.abs(c3))] = 0**311** 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_zero**315** # TODO: add the checks for cases when certain number of Dirac share the x, y, z coordinates**316** if nnz_cond:**317** min_error = error_loop**318** b_opt = b_recon**319** c1_opt = c1**320** c2_opt = c2**321** c3_opt = c3**322** if compute_mse and min_error < noise_level:**323** break**324** if compute_mse and min_error < noise_level:**325** break**326** if c1_opt is None or c2_opt is None or c3_opt is None:**327** max_ini += 1**328** 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, ini**330**def 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 c3**335** :param measurement: the given measurements**336** :param num_dirac: number of Dirac deltas to extract**337** :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 Dirac**342** 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 axis**344** :param strategy: either 'aggregate', which reconstructs amplitudes for**345** 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 the**347** reconstructed xk_recon and yk_recon each time. The ones that contributes least**348** 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 = taus**353** # root finding**354** 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/2**373** xk_recon[xk_recon > 0.5 * tau_x] -= tau_x**374** yk_recon[yk_recon > 0.5 * tau_y] -= tau_y**375** zk_recon[zk_recon > 0.5 * tau_z] -= tau_z**376** 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 reconstructions**379** total_num_dirac = xk_recon.size**380** if total_num_dirac <= num_dirac:**381** dirac_loc_reliable = dirac_loc_recon**382** 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_reliable**391**def cubical_select_reliable_recon(measurement, dirac_locs, num_dirac_sel,**392** samp_locs, func_amp2samp, strategy='both'):**393** """**394** Select reliable reconstructions**395** :param measurement: the given measurements**396** :param dirac_locs: a num_dirac by 3 matrix with the columns corresponds to**397** the Dirac x, y and z locations. num_dirac is the number of Dirac**398** :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 3D**400** 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 Dirac**402** 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 for**405** 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 the**407** reconstructed xk_recon and yk_recon each time. The ones that contributes least**408** are eliminated.**409** :return:**410** """**411** measurement = measurement.flatten('F')**412** # build the linear mapping from the Dirac amplitudes to the measurements**413** # for all xk_recon, yk_recon and zk_recon**414** amp_mtx_all = func_amp2samp(dirac_locs, samp_locs)**415** if strategy == 'aggregate':**416** # find the amplitudes for all Dirac deltas**417** 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 amplitudes**420** 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 removed**427** num_removal = num_dirac_recon - num_dirac_sel**428** 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 error**433** 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 = 0**439** 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 error**444** '''aggregate'''**445** # find the amplitudes for all Dirac deltas**446** 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 amplitudes**449** 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 removed**458** num_removal = num_dirac_recon - num_dirac_sel**459** 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 error**464** 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 = 0**470** 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_agg**477** amp_reliable = amp_reliable_agg**478** else:**479** dirac_locs_reliable = dirac_locs_reliable_1by1**480** amp_reliable = amp_reliable_1by1**...**

test_constantsimp.py

Source:test_constantsimp.py

**1**"""**2**If the arbitrary constant class from issue 4435 is ever implemented, this**3**should serve as a set of test cases.**4**"""**5**from sympy import (acos, cos, cosh, Eq, exp, Function, I, Integral, log, Pow,**6** S, sin, sinh, sqrt, Symbol)**7**from sympy.solvers.ode import constant_renumber, constantsimp**8**from sympy.utilities.pytest import XFAIL**9**x = Symbol('x')**10**y = Symbol('y')**11**z = Symbol('z')**12**C1 = Symbol('C1')**13**C2 = Symbol('C2')**14**C3 = Symbol('C3')**15**f = Function('f')**16**def test_constant_mul():**17** # We want C1 (Constant) below to absorb the y's, but not the x's**18** assert constant_renumber(constantsimp(y*C1, [C1]), 'C', 1, 1) == C1*y**19** assert constant_renumber(constantsimp(C1*y, [C1]), 'C', 1, 1) == C1*y**20** assert constant_renumber(constantsimp(x*C1, [C1]), 'C', 1, 1) == x*C1**21** assert constant_renumber(constantsimp(C1*x, [C1]), 'C', 1, 1) == x*C1**22** assert constant_renumber(constantsimp(2*C1, [C1]), 'C', 1, 1) == C1**23** assert constant_renumber(constantsimp(C1*2, [C1]), 'C', 1, 1) == C1**24** assert constant_renumber(constantsimp(y*C1*x, [C1, y]), 'C', 1, 1) == C1*x**25** assert constant_renumber(constantsimp(x*y*C1, [C1, y]), 'C', 1, 1) == x*C1**26** assert constant_renumber(constantsimp(y*x*C1, [C1, y]), 'C', 1, 1) == x*C1**27** assert constant_renumber(constantsimp(C1*x*y, [C1, y]), 'C', 1, 1) == C1*x**28** assert constant_renumber(constantsimp(x*C1*y, [C1, y]), 'C', 1, 1) == x*C1**29** 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*C1**32** assert constant_renumber(constantsimp(x*(C1*y), [C1]), 'C', 1, 1) == x*y*C1**33** assert constant_renumber(constantsimp(C1*(x*y), [C1, y]), 'C', 1, 1) == C1*x**34** assert constant_renumber(constantsimp((x*y)*C1, [C1, y]), 'C', 1, 1) == x*C1**35** assert constant_renumber(constantsimp((y*x)*C1, [C1, y]), 'C', 1, 1) == x*C1**36** assert constant_renumber(constantsimp(y*(y + 1)*C1, [C1, y]), 'C', 1, 1) == C1**37** assert constant_renumber(constantsimp((C1*x)*y, [C1, y]), 'C', 1, 1) == C1*x**38** assert constant_renumber(constantsimp(y*(x*C1), [C1, y]), 'C', 1, 1) == x*C1**39** assert constant_renumber(constantsimp((x*C1)*y, [C1, y]), 'C', 1, 1) == x*C1**40** assert constant_renumber(**41** constantsimp(C1*x*y*x*y*2, [C1, y]), 'C', 1, 1) == C1*x**2**42** assert constant_renumber(constantsimp(C1*x*y*z, [C1, y, z]), 'C', 1, 1) == C1*x**43** assert constant_renumber(**44** constantsimp(C1*x*y**2*sin(z), [C1, y, z]), 'C', 1, 1) == C1*x**45** assert constant_renumber(constantsimp(C1*C1, [C1]), 'C', 1, 1) == C1**46** assert constant_renumber(constantsimp(C1*C2, [C1, C2]), 'C', 1, 2) == C1**47** assert constant_renumber(constantsimp(C2*C2, [C1, C2]), 'C', 1, 2) == C1**48** assert constant_renumber(constantsimp(C1*C1*C2, [C1, C2]), 'C', 1, 2) == C1**49** assert constant_renumber(**50** constantsimp(C1*x*2**x, [C1]), 'C', 1, 1) == C1*x*2**x**51**def test_constant_add():**52** assert constant_renumber(constantsimp(C1 + C1, [C1]), 'C', 1, 1) == C1**53** assert constant_renumber(constantsimp(C1 + 2, [C1]), 'C', 1, 1) == C1**54** assert constant_renumber(constantsimp(2 + C1, [C1]), 'C', 1, 1) == C1**55** assert constant_renumber(constantsimp(C1 + y, [C1, y]), 'C', 1, 1) == C1**56** assert constant_renumber(constantsimp(C1 + x, [C1]), 'C', 1, 1) == C1 + x**57** assert constant_renumber(constantsimp(C1 + C1, [C1]), 'C', 1, 1) == C1**58** assert constant_renumber(constantsimp(C1 + C2, [C1, C2]), 'C', 1, 2) == C1**59** assert constant_renumber(constantsimp(C2 + C1, [C1, C2]), 'C', 1, 2) == C1**60** assert constant_renumber(constantsimp(C1 + C2 + C1, [C1, C2]), 'C', 1, 2) == C1**61**def test_constant_power_as_base():**62** assert constant_renumber(constantsimp(C1**C1, [C1]), 'C', 1, 1) == C1**63** assert constant_renumber(constantsimp(Pow(C1, C1), [C1]), 'C', 1, 1) == C1**64** assert constant_renumber(constantsimp(C1**C1, [C1]), 'C', 1, 1) == C1**65** assert constant_renumber(constantsimp(C1**C2, [C1, C2]), 'C', 1, 2) == C1**66** assert constant_renumber(constantsimp(C2**C1, [C1, C2]), 'C', 1, 2) == C1**67** assert constant_renumber(constantsimp(C2**C2, [C1, C2]), 'C', 1, 2) == C1**68** assert constant_renumber(constantsimp(C1**y, [C1, y]), 'C', 1, 1) == C1**69** assert constant_renumber(constantsimp(C1**x, [C1]), 'C', 1, 1) == C1**x**70** assert constant_renumber(constantsimp(C1**2, [C1]), 'C', 1, 1) == C1**71** assert constant_renumber(**72** constantsimp(C1**(x*y), [C1]), 'C', 1, 1) == C1**(x*y)**73**def test_constant_power_as_exp():**74** assert constant_renumber(constantsimp(x**C1, [C1]), 'C', 1, 1) == x**C1**75** assert constant_renumber(constantsimp(y**C1, [C1, y]), 'C', 1, 1) == C1**76** assert constant_renumber(constantsimp(x**y**C1, [C1, y]), 'C', 1, 1) == x**C1**77** assert constant_renumber(**78** constantsimp((x**y)**C1, [C1]), 'C', 1, 1) == (x**y)**C1**79** assert constant_renumber(**80** constantsimp(x**(y**C1), [C1, y]), 'C', 1, 1) == x**C1**81** assert constant_renumber(constantsimp(x**C1**y, [C1, y]), 'C', 1, 1) == x**C1**82** assert constant_renumber(**83** constantsimp(x**(C1**y), [C1, y]), 'C', 1, 1) == x**C1**84** assert constant_renumber(**85** constantsimp((x**C1)**y, [C1]), 'C', 1, 1) == (x**C1)**y**86** assert constant_renumber(constantsimp(2**C1, [C1]), 'C', 1, 1) == C1**87** assert constant_renumber(constantsimp(S(2)**C1, [C1]), 'C', 1, 1) == C1**88** assert constant_renumber(constantsimp(exp(C1), [C1]), 'C', 1, 1) == C1**89** 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) == C1**92**def test_constant_function():**93** assert constant_renumber(constantsimp(sin(C1), [C1]), 'C', 1, 1) == C1**94** assert constant_renumber(constantsimp(f(C1), [C1]), 'C', 1, 1) == C1**95** assert constant_renumber(constantsimp(f(C1, C1), [C1]), 'C', 1, 1) == C1**96** assert constant_renumber(constantsimp(f(C1, C2), [C1, C2]), 'C', 1, 2) == C1**97** assert constant_renumber(constantsimp(f(C2, C1), [C1, C2]), 'C', 1, 2) == C1**98** assert constant_renumber(constantsimp(f(C2, C2), [C1, C2]), 'C', 1, 2) == C1**99** 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) == C1**102** assert constant_renumber(constantsimp(f(y, C1), [C1, y]), 'C', 1, 2) == C1**103** assert constant_renumber(constantsimp(f(C1, y, C2), [C1, C2, y]), 'C', 1, 2) == C1**104**def test_constant_function_multiple():**105** # The rules to not renumber in this case would be too complicated, and**106** # 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)**109**def test_constant_multiple():**110** assert constant_renumber(constantsimp(C1*2 + 2, [C1]), 'C', 1, 1) == C1**111** assert constant_renumber(constantsimp(x*2/C1, [C1]), 'C', 1, 1) == C1*x**112** assert constant_renumber(constantsimp(C1**2*2 + 2, [C1]), 'C', 1, 1) == C1**113** assert constant_renumber(**114** constantsimp(sin(2*C1) + x + sqrt(2), [C1]), 'C', 1, 1) == C1 + x**115** assert constant_renumber(constantsimp(2*C1 + C2, [C1, C2]), 'C', 1, 2) == C1**116**def test_constant_repeated():**117** assert C1 + C1*x == constant_renumber( C1 + C1*x, 'C', 1, 3)**118**def test_ode_solutions():**119** # only a few examples here, the rest will be tested in the actual dsolve tests**120** 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**@XFAIL**146**def test_nonlocal_simplification():**147** assert constantsimp(C1 + C2+x*C2, [C1, C2]) == C1 + C2*x**148**def test_constant_Eq():**149** # C1 on the rhs is well-tested, but the lhs is only tested here**150** assert constantsimp(Eq(C1, 3 + f(x)*x), [C1]) == Eq(x*f(x), C1)**...**

col_set_addition.py

Source:col_set_addition.py

**1**"""Encapsulates the basic collision set addition functions, so they can**2**be accessible to any code that uses it**3****4**Also provides exceptions for indicating no solution or out of time**5**"""**6****7****8**def add_col_set_recursive(c1, c2):**9** """Returns a new collision set resulting from adding c1 to c2. No**10** side effecting**11****12** collision set is done for the recursive case, where**13** ({1, 2}, ) + ({3, 4}, ) = ({1, 2}, {3, 4})**14****15** c1, c2 - tuples of (immutable) sets**16****17** returns:**18** recursive collision set containing c1 and c2**19****20** """**21** # Make shallow copies**22** c1 = list(c1)**23** c2 = list(c2)**24** while len(c1) > 0:**25** i = 0**26** # Whether c1[-1] overlaps with any element of c2**27** found_overlap = False**28** while i < len(c2):**29** if not c2[i].isdisjoint(c1[-1]):**30** # Found overlap**31** if c2[i].issuperset(c1[-1]):**32** # No change in c2**33** c1.pop()**34** found_overlap = True**35** break**36** # Have found a non-trivial overlap. Need to add the**37** # union to c1 so that we can check if the union has any**38** # further overlap with elements of c2**39** 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 = True**43** break**44** else:**45** # No overlap between c1[-1] and c2[i], so check next**46** # element of c2**47** i += 1**48** if not found_overlap:**49** # c1[-1] has no overlap with any element of c2, so it can be**50** # added as is to c2**51** c2.append(c1.pop())**52** return tuple(c2)**53****54****55**def add_col_set(c1, c2):**56** """Adds the collision sets c1 to c2. c2 is assumed to contain a**57** single,**58** possibly empty, set**59****60** c1, c2 - input collision sets**61****62** returns:**63** combined collision set containing c1 and c2**64****65** """**66** temp = frozenset([])**67** if len(c2) >= 1:**68** temp = c2[0]**69** assert len(c2) == 1**70** for i in c1:**71** temp = temp.union(i)**72** if len(temp) == 0:**73** return ()**74** return (temp, )**75****76****77**def col_set_add(c1, c2, recursive):**78** """Adds two collision sets**79****80** c1, c2 - input collision sets**81** recursive - boolean, whether to perform recursive M* style addition**82****83** returns:**84** collision set containing c1 and c2**85****86** """**87** if recursive:**88** return add_col_set_recursive(c1, c2)**89** else:**90** return add_col_set(c1, c2)**91****92****93**def effective_col_set(col_set, prev_col_set):**94** """Computes the effective collision set to use given the current**95** collision set and the collision set used to get to the current node**96****97** Only makes sense when used with recursive M***98****99** The purpose of this code is that in recursive M*, you invoke a**100** subplanner to figure out how to get to the goal, which caches the**101** entire path to the goal . The next step, you have an empty**102** collision set, so you don't query the subplanner with the cached**103** path, and have to find a bunch of collisions before using the cached**104** solution. This is intended for use with a memory of what the**105** collision set was when you reached a given node.**106****107** Computes the "effecitve collision set". Elements of the memorized**108** collision set are used if they have no non-empty intersections with**109** elements of the current collision set that are not subsets of the**110** memorized component.**111****112** elements of col_set are NOT used if they are contained within some**113** element of prev_col_set that is used. Elements of prev_col_set are**114** used if they completely contain all elements of col_set with which**115** they intersect**116****117** col_set - current collision set**118** prev_col_set - "memorized" collision set, i.e. the collision set of**119** the optimal predecessor at the time the path from the**120** optimal predecessor was first found**121****122** returns:**123** effective collision set. Consists of the elements of the previous**124** collision set, which should index subplanners which have cached**125** paths available, and elements of the current collision set which**126** are not contained within prev_col_set**127** """**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 be**133** # used, because the containing element of prev_col_set may be**134** # invalidated by a later element of col_set**135** col_set_to_remove = []**136** j = 0**137** 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 be**140** # skipped unless prev_col_set-1] is invalidated by some**141** # later element of col_set**142** 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 of**146** # prev_col_set**147** prev_col_set.pop()**148** # return the elements of col_set we were going to remove**149** col_set.extend(col_set_to_remove)**150** break**151** else:**152** j += 1**153** else:**154** # Never broke, so prev_col_set can be used as part of the**155** # effective collision set**156** effective_set.append(prev_col_set.pop())**157** # Just copy over any elements of col_set that survived**158** effective_set.extend(col_set)**159** return tuple(effective_set)**160****161****162**class OutOfTimeError(Exception):**163** def __init__(self, value=None):**164** self.value = value**165****166** def __str__(self):**167** return repr(self.value)**168****169****170**class NoSolutionError(Exception):**171** def __init__(self, value=None):**172** self.value = value**173****174** def __str__(self):**175** return repr(self.value)**176****177****178**class OutOfScopeError(NoSolutionError):**179** def __init__(self, value=None, col_set=()):**180** self.value = value**181** self.col_set = col_set**182****183** def __str__(self):
**...**

transfer2.py

Source:transfer2.py

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

naive_bayes.py

Source:naive_bayes.py

**...****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_c1**33** self.word = []**34** self.tf_c1 = []**35** self.tf_c2 = []**36** #add to list**37** 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 tf**46** 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)] += 1**51** 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)] += 1**56** def train(self):**57** sum_tf_c1 = 0**58** sum_tf_c2 = 0**59** 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 1**73** 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 = 1**78** 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'**85**if __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()**...**

mend.py

Source:mend.py

**1**#!/usr/bin/python**2**# -*- coding: utf-8 -*-**3**nodes = []**4**class Node:**5** def __init__(self, par):**6** self.p = par**7** 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)**13**def buildtree(tree):**14** class cur:**15** pos = 0**16** dd = {}**17** def getnode(par):**18** cc = Node(par)**19** if tree[cur.pos] == '(':**20** while tree[cur.pos] in '(,':**21** cur.pos += 1**22** cc.s.add(getnode(cc))**23** cur.pos += 1**24** cc.s = tuple(cc.s)**25** ff = cur.pos**26** while tree[cur.pos] not in '), ;':**27** cur.pos += 1**28** nam = tree[ff:cur.pos]**29** cc.lab = nam**30** if nam != '':**31** dd[nam] = cc**32** return cc**33** return (getnode(None), dd)**34**def 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.0**42** else:**43** cur.probs[i] = 0.0**44** else:**45** c1 = cur.s[0].probs**46** c2 = cur.s[1].probs**47** cur.probs['AA'] = c1['AA'] * c2['AA'] + c1['Aa'] * c2['Aa'] / 4 + c1['AA'] * c2['Aa'] / 2 + c1['Aa'] * c2['AA'] / 2**48** 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'] / 2**49** cur.probs['aa'] = c1['aa'] * c2['aa'] + c1['Aa'] * c2['Aa'] / 4 + c1['aa'] * c2['Aa'] / 2 + c1['Aa'] * c2['aa'] / 2**50**with open('rosalind_mend.txt') as f:**51** (root, d) = buildtree(f.readline().strip())**52** cnt(root)**...**

boxes.py

Source:boxes.py

**1**A1 = int(input()) # Box 1**2**B1 = int(input())**3**C1 = int(input())**4**A2 = int(input()) # Box 2**5**B2 = int(input())**6**C2 = int(input())**7**if ((A1 == A2 and B1 == B2 and C1 == C2) or**8** (A1 == A2 and B1 == C2 and C1 == B2) or**9** (A1 == C2 and B1 == A2 and C1 == B2) or**10** (A1 == B2 and B1 == A2 and C1 == C2) or**11** (A1 == B2 and B1 == C2 and C1 == A2) or**12** (A1 == C2 and B1 == B2 and C1 == A2)):**13** print('Boxes are equal')**14**elif ((A1 <= A2 and B1 <= B2 and C1 <= C2) or**15** (A1 <= A2 and B1 <= C2 and C1 <= B2) or**16** (A1 <= C2 and B1 <= A2 and C1 <= B2) or**17** (A1 <= B2 and B1 <= A2 and C1 <= C2) or**18** (A1 <= B2 and B1 <= C2 and C1 <= A2) or**19** (A1 <= C2 and B1 <= B2 and C1 <= A2)):**20** print('The first box is smaller than the second one')**21**elif ((A1 >= A2 and B1 >= B2 and C1 >= C2) or**22** (A1 >= A2 and B1 >= C2 and C1 >= B2) or**23** (A1 >= C2 and B1 >= A2 and C1 >= B2) or**24** (A1 >= B2 and B1 >= A2 and C1 >= C2) or**25** (A1 >= B2 and B1 >= C2 and C1 >= A2) or**26** (A1 >= C2 and B1 >= B2 and C1 >= A2)):**27** print('The first box is larger than the second one')**28**else:**...**

Using AI Code Generation

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

Using AI Code Generation

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

Using AI Code Generation

**1**const {c1} = require('fast-check-monorepo');**2**console.log(c1());**3**const {c2} = require('fast-check-monorepo');**4**console.log(c2());**5**"dependencies": {**6** }**7**def add(x, y):**8**print(add(4, 5))**9**var exec = require('child_process').exec, child;**10**child = 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**});

Using AI Code Generation

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

Using AI Code Generation

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

Using AI Code Generation

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

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.

- JUnit Tutorial
- TestNG Tutorial
- Webdriver Tutorial
- WebDriverIO Tutorial
- Protractor Tutorial
- Selenium 4 Tutorial
- Jenkins Tutorial
- NUnit Tutorial
- Jest Tutorial
- Playwright Tutorial
- Cypress Tutorial
- PyTest Tutorial

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

Get 100 minutes of automation test minutes FREE!!