dwolter_SparQ/Calculi/flipflop.lisp
;;; 
;;; Flip-flop Calculus
;;;

(def-calculus "FlipFlop Calculus (FFC)"
    :arity :ternary
    :basis-entity :2d-point
    :parametric? nil
    :consistency :unknown
    ;; the qualifier makes use of a convenience function provided by SparQ
    :qualifier #'(lambda (p1 p2 p3)
		   (dipole-point-relation (append p1 p2) p3))  
    :identity-relation e
    :inverse-operation (
			( b  f )
			( s  e )
			( i  i )
			( l  r )
			( r  l )
			( e  s )
			( f  b )
			( Dou  Dou )
			( Tri  Tri ))
    
    :shortcut-operation (( b  b )
			 ( s  Dou )
			 ( i  f )
			 ( l  r )
			 ( r  l )
			 ( e  e )
			 ( f  i )
			 ( Dou  s )
			 ( Tri  Tri ))
    
    :homing-operation (( b  i )
		       ( s  e )
		       ( i  f )
		       ( l  l )
		       ( r  r )
		       ( e  dou )
		       ( f  b )
		       ( Dou  s )
		       ( Tri  Tri ))

    :base-relations ( b s i l r e f Dou Tri )  
    ;; semantics:
    ;;
    ;; Tri : a = b = c
    ;; Dou : a = b, a /= c
    ;; in all other cases a /= b
    ;; f   : c on line ab, c in front of a
    ;; b   : c on line ab, c behind of a
    ;; i   : c on line ab, c between a and b
    ;; s   : a = c
    ;; e   : b = c
    ;; l   : c is left of line ab
    ;; r   : c is right of line ab
    :algebraic-specification ((Tri ((1 ((ax 1))) = (1 ((bx 1)))) ; a = b
				   ((1 ((ay 1))) = (1 ((by 1))))
				   ((1 ((ax 1))) = (1 ((cx 1)))) ; a = c
				   ((1 ((ay 1))) = (1 ((cy 1)))))
			      (Dou ((1 ((ax 1))) = (1 ((bx 1)))) ; a = b
				   ((1 ((ay 1))) = (1 ((by 1))))
				   (0 < (1 ((ax 2))) (-2 ((ax 1) (cx 1))) (1 ((cx 2))) (1 ((ay 2))) (-2 ((ay 1) (cy 1))) (1 ((cy 2)))))
			      (f   (0 < ( 1 ((bx 1)(cx 1))) (-1 ((ax 1)(cx 1))) (1 ((ax 1)(bx 1))) (-1 ((bx 2))) 
				      ( 1 ((by 1)(cy 1))) (-1 ((ay 1)(cy 1))) (1 ((ay 1)(by 1))) (-1 ((by 2))))
				   (0 < ( 1 ((bx 1)(cx 1))) (-1 ((bx 1)(ax 1))) (-1 ((ax 1)(cx 1))) (1 ((ax 2))) 
				      ( 1 ((by 1)(cy 1))) (-1 ((ay 1)(by 1))) (-1 ((ay 1)(cy 1))) ( 1 ((ay 2))))
				   (0 = (-1 ((ax 1)(by 1))) ( 1 ((ax 1)(cy 1))) ( 1 ((ay 1)(bx 1)))
				      (-1 ((ay 1)(cx 1))) (-1 ((bx 1)(cy 1))) ( 1 ((by 1)(cx 1))))
				   (0 < (1 ((ax 2))) (-2 ((ax 1) (bx 1))) (1 ((bx 2))) (1 ((ay 2))) (-2 ((ay 1) (by 1))) (1 ((by 2)))) ;; a/=b
				   )

			      (b  (0 > ( 1 ((bx 1)(cx 1))) (-1 ((bx 1)(ax 1))) (-1 ((ax 1)(cx 1))) ( 1 ((ax 2))) 
				       ( 1 ((by 1)(cy 1))) (-1 ((ay 1)(by 1))) (-1 ((ay 1)(cy 1))) ( 1 ((ay 2))))
				  (0 > ( 1 ((bx 1)(cx 1))) (-1 ((ax 1)(cx 1))) ( 1 ((ax 1)(bx 1))) (-1 ((bx 2))) 
				       ( 1 ((by 1)(cy 1))) (-1 ((ay 1)(cy 1))) ( 1 ((ay 1)(by 1))) (-1 ((by 2))))
				  (0 = (-1 ((ax 1)(by 1))) ( 1 ((ax 1)(cy 1))) ( 1 ((ay 1)(bx 1)))
				     (-1 ((ay 1)(cx 1))) (-1 ((bx 1)(cy 1))) ( 1 ((by 1)(cx 1))))
				  (0 < (1 ((ax 2))) (-2 ((ax 1) (bx 1))) (1 ((bx 2))) (1 ((ay 2))) (-2 ((ay 1) (by 1))) (1 ((by 2)))))
			      (i  (0 > ( 1 ((bx 1)(cx 1))) (-1 ((ax 1)(cx 1))) ( 1 ((ax 1)(bx 1))) (-1 ((bx 2))) 
					( 1 ((by 1)(cy 1))) (-1 ((ay 1)(cy 1))) ( 1 ((ay 1)(by 1))) (-1 ((by 2))))
				  (0 < ( 1 ((bx 1)(cx 1))) (-1 ((bx 1)(ax 1))) (-1 ((ax 1)(cx 1))) ( 1 ((ax 2))) 
					( 1 ((by 1)(cy 1))) (-1 ((ay 1)(by 1))) (-1 ((ay 1)(cy 1))) ( 1 ((ay 2))))
				  (0 = (-1 ((ax 1)(by 1))) ( 1 ((ax 1)(cy 1))) ( 1 ((ay 1)(bx 1)))
					(-1 ((ay 1)(cx 1))) (-1 ((bx 1)(cy 1))) ( 1 ((by 1)(cx 1))))
				  (0 < (1 ((ax 2))) (-2 ((ax 1) (bx 1))) (1 ((bx 2))) (1 ((ay 2))) (-2 ((ay 1) (by 1))) (1 ((by 2)))))
			      (s  ((1 ((ax 1))) = (1 ((cx 1))))
				  ((1 ((ay 1))) = (1 ((cy 1))))
				  (0 < (1 ((ax 2))) (-2 ((ax 1) (bx 1))) (1 ((bx 2))) ; a /= b
					(1 ((ay 2))) (-2 ((ay 1) (by 1))) (1 ((by 2)))))
			      (e  ((1 ((bx 1))) = (1 ((cx 1))))
				  ((1 ((by 1))) = (1 ((cy 1))))
				  (0 < (1 ((ax 2))) (-2 ((ax 1) (bx 1))) (1 ((bx 2))) ; a /= b
					(1 ((ay 2))) (-2 ((ay 1) (by 1))) (1 ((by 2)))))
			      (l  (0 > (-1 ((ax 1)(by 1))) ( 1 ((ax 1)(cy 1))) ( 1 ((ay 1)(bx 1)))
					(-1 ((ay 1)(cx 1))) (-1 ((bx 1)(cy 1))) ( 1 ((by 1)(cx 1))))
				  (0 < (1 ((ax 2))) (-2 ((ax 1) (bx 1))) (1 ((bx 2))) ; a /= b
					(1 ((ay 2))) (-2 ((ay 1) (by 1))) (1 ((by 2)))))
			      (r  (0 < (-1 ((ax 1)(by 1))) ( 1 ((ax 1)(cy 1))) ( 1 ((ay 1)(bx 1)))
					(-1 ((ay 1)(cx 1))) (-1 ((bx 1)(cy 1))) ( 1 ((by 1)(cx 1))))
				  (0 < (1 ((ax 2))) (-2 ((ax 1) (bx 1))) (1 ((bx 2))) ; a/= b
					(1 ((ay 2))) (-2 ((ay 1) (by 1))) (1 ((by 2))))))

    :composition-operation (( b b ( f ))
			    ( b s ( e ))
			    ( b i ( b s i ))
			    ( b l ( r ))
			    ( b r ( l ))
			    ( b e ( b ))
			    ( b f ( b ))
			    ( b Dou (  ))
			    ( b Tri (  ))
			    ( s b ( f ))
			    ( s s ( e ))
			    ( s i ( i ))
			    ( s l ( r ))
			    ( s r ( l ))
			    ( s e ( s ))
			    ( s f ( b ))
			    ( s Dou (  ))
			    ( s Tri (  ))
			    ( i b ( f ))
			    ( i s ( e ))
			    ( i i ( i ))
			    ( i l ( r ))
			    ( i r ( l ))
			    ( i e ( i ))
			    ( i f ( b s i))
			    ( i Dou (  ))
			    ( i Tri (  ))
			    ( l b ( r ))
			    ( l s ( e ))
			    ( l i ( l ))
			    ( l l ( b s i l r ))
			    ( l r ( f l r ))
			    ( l e ( l ))
			    ( l f ( l ))
			    ( l Dou (  ))
			    ( l Tri (  ))
			    ( r b ( l ))
			    ( r s ( e ))
			    ( r i ( r ))
			    ( r l ( f l r ))
			    ( r r ( b s i l r ))
			    ( r e ( r ))
			    ( r f ( r ))
			    ( r Dou (  ))
			    ( r Tri (  ))
			    ( e b (  ))
			    ( e s (  ))
			    ( e i (  ))
			    ( e l (  ))
			    ( e r (  ))
			    ( e e (  ))
			    ( e f (  ))
			    ( e Dou ( b s i l r f ))
			    ( e Tri ( e ))
			    ( f b ( b s i ))
			    ( f s ( e ))
			    ( f i ( f ))
			    ( f l ( l ))
			    ( f r ( r ))
			    ( f e ( f ))
			    ( f f ( f ))
			    ( f Dou (  ))
			    ( f Tri (  ))
			    ( Dou b ( Dou ))
			    ( Dou s ( Tri ))
			    ( Dou i ( Dou ))
			    ( Dou l ( Dou ))
			    ( Dou r ( Dou ))
			    ( Dou e ( Dou ))
			    ( Dou f ( Dou ))
			    ( Dou Dou (  ))
			    ( Dou Tri (  ))
			    ( Tri b (  ))
			    ( Tri s (  ))
			    ( Tri i (  ))
			    ( Tri l (  ))
			    ( Tri r (  ))
			    ( Tri e (  ))
			    ( Tri f (  ))
			    ( Tri Dou ( Dou ))
			    ( Tri Tri ( Tri )))

    :n-ary-composition-operation (
			   (Tri Tri Tri ( Tri )) 
			   ( Tri Tri Dou ( )) 
			   ( Tri Tri F ( )) 
			   ( Tri Tri E ( )) 
			   ( Tri Tri I ( )) 
			   ( Tri Tri S ( )) 
			   ( Tri Tri B ( )) 
			   ( Tri Tri R ( )) 
			   ( Tri Tri L ( )) 
			   ( Tri Dou Tri ( )) 
			   ( Tri Dou Dou ( Dou )) 
			   ( Tri Dou F ( )) 
			   ( Tri Dou E ( )) 
			   ( Tri Dou I ( )) 
			   ( Tri Dou S ( )) 
			   ( Tri Dou B ( )) 
			   ( Tri Dou R ( )) 
			   ( Tri Dou L ( )) 
			   ( Tri F Tri ( )) 
			   ( Tri F Dou ( )) 
			   ( Tri F F ( )) 
			   ( Tri F E ( )) 
			   ( Tri F I ( )) 
			   ( Tri F S ( )) 
			   ( Tri F B ( )) 
			   ( Tri F R ( )) 
			   ( Tri F L ( )) 
			   ( Tri E Tri ( )) 
			   ( Tri E Dou ( )) 
			   ( Tri E F ( )) 
			   ( Tri E E ( )) 
			   ( Tri E I ( )) 
			   ( Tri E S ( )) 
			   ( Tri E B ( )) 
			   ( Tri E R ( )) 
			   ( Tri E L ( )) 
			   ( Tri I Tri ( )) 
			   ( Tri I Dou ( )) 
			   ( Tri I F ( )) 
			   ( Tri I E ( )) 
			   ( Tri I I ( )) 
			   ( Tri I S ( )) 
			   ( Tri I B ( )) 
			   ( Tri I R ( )) 
			   ( Tri I L ( )) 
			   ( Tri S Tri ( )) 
			   ( Tri S Dou ( )) 
			   ( Tri S F ( )) 
			   ( Tri S E ( )) 
			   ( Tri S I ( )) 
			   ( Tri S S ( )) 
			   ( Tri S B ( )) 
			   ( Tri S R ( )) 
			   ( Tri S L ( )) 
			   ( Tri B Tri ( )) 
			   ( Tri B Dou ( )) 
			   ( Tri B F ( )) 
			   ( Tri B E ( )) 
			   ( Tri B I ( )) 
			   ( Tri B S ( )) 
			   ( Tri B B ( )) 
			   ( Tri B R ( )) 
			   ( Tri B L ( )) 
			   ( Tri R Tri ( )) 
			   ( Tri R Dou ( )) 
			   ( Tri R F ( )) 
			   ( Tri R E ( )) 
			   ( Tri R I ( )) 
			   ( Tri R S ( )) 
			   ( Tri R B ( )) 
			   ( Tri R R ( )) 
			   ( Tri R L ( )) 
			   ( Tri L Tri ( )) 
			   ( Tri L Dou ( )) 
			   ( Tri L F ( )) 
			   ( Tri L E ( )) 
			   ( Tri L I ( )) 
			   ( Tri L S ( )) 
			   ( Tri L B ( )) 
			   ( Tri L R ( )) 
			   ( Tri L L ( )) 
			   ( Dou Tri Tri ( )) 
			   ( Dou Tri Dou ( )) 
			   ( Dou Tri F ( )) 
			   ( Dou Tri E ( )) 
			   ( Dou Tri I ( )) 
			   ( Dou Tri S ( )) 
			   ( Dou Tri B ( )) 
			   ( Dou Tri R ( )) 
			   ( Dou Tri L ( )) 
			   ( Dou Dou Tri ( )) 
			   ( Dou Dou Dou ( )) 
			   ( Dou Dou F ( )) 
			   ( Dou Dou E ( )) 
			   ( Dou Dou I ( )) 
			   ( Dou Dou S ( )) 
			   ( Dou Dou B ( )) 
			   ( Dou Dou R ( )) 
			   ( Dou Dou L ( )) 
			   ( Dou F Tri ( )) 
			   ( Dou F Dou ( )) 
			   ( Dou F F ( )) 
			   ( Dou F E ( )) 
			   ( Dou F I ( )) 
			   ( Dou F S ( )) 
			   ( Dou F B ( Dou )) 
			   ( Dou F R ( )) 
			   ( Dou F L ( )) 
			   ( Dou E Tri ( )) 
			   ( Dou E Dou ( )) 
			   ( Dou E F ( )) 
			   ( Dou E E ( )) 
			   ( Dou E I ( )) 
			   ( Dou E S ( Dou )) 
			   ( Dou E B ( )) 
			   ( Dou E R ( )) 
			   ( Dou E L ( )) 
			   ( Dou I Tri ( )) 
			   ( Dou I Dou ( )) 
			   ( Dou I F ( )) 
			   ( Dou I E ( )) 
			   ( Dou I I ( Dou )) 
			   ( Dou I S ( )) 
			   ( Dou I B ( )) 
			   ( Dou I R ( )) 
			   ( Dou I L ( )) 
			   ( Dou S Tri ( )) 
			   ( Dou S Dou ( )) 
			   ( Dou S F ( )) 
			   ( Dou S E ( Tri )) 
			   ( Dou S I ( )) 
			   ( Dou S S ( )) 
			   ( Dou S B ( )) 
			   ( Dou S R ( )) 
			   ( Dou S L ( )) 
			   ( Dou B Tri ( )) 
			   ( Dou B Dou ( )) 
			   ( Dou B F ( Dou )) 
			   ( Dou B E ( )) 
			   ( Dou B I ( )) 
			   ( Dou B S ( )) 
			   ( Dou B B ( )) 
			   ( Dou B R ( )) 
			   ( Dou B L ( )) 
			   ( Dou R Tri ( )) 
			   ( Dou R Dou ( )) 
			   ( Dou R F ( )) 
			   ( Dou R E ( )) 
			   ( Dou R I ( )) 
			   ( Dou R S ( )) 
			   ( Dou R B ( )) 
			   ( Dou R R ( )) 
			   ( Dou R L ( Dou )) 
			   ( Dou L Tri ( )) 
			   ( Dou L Dou ( )) 
			   ( Dou L F ( )) 
			   ( Dou L E ( )) 
			   ( Dou L I ( )) 
			   ( Dou L S ( )) 
			   ( Dou L B ( )) 
			   ( Dou L R ( Dou )) 
			   ( Dou L L ( )) 
			   ( F Tri Tri ( )) 
			   ( F Tri Dou ( )) 
			   ( F Tri F ( )) 
			   ( F Tri E ( )) 
			   ( F Tri I ( )) 
			   ( F Tri S ( )) 
			   ( F Tri B ( )) 
			   ( F Tri R ( )) 
			   ( F Tri L ( )) 
			   ( F Dou Tri ( )) 
			   ( F Dou Dou ( )) 
			   ( F Dou F ( )) 
			   ( F Dou E ( )) 
			   ( F Dou I ( )) 
			   ( F Dou S ( )) 
			   ( F Dou B ( )) 
			   ( F Dou R ( )) 
			   ( F Dou L ( )) 
			   ( F F Tri ( )) 
			   ( F F Dou ( )) 
			   ( F F F ( )) 
			   ( F F E ( )) 
			   ( F F I ( )) 
			   ( F F S ( )) 
			   ( F F B ( F )) 
			   ( F F R ( )) 
			   ( F F L ( )) 
			   ( F E Tri ( )) 
			   ( F E Dou ( )) 
			   ( F E F ( )) 
			   ( F E E ( )) 
			   ( F E I ( )) 
			   ( F E S ( F )) 
			   ( F E B ( )) 
			   ( F E R ( )) 
			   ( F E L ( )) 
			   ( F I Tri ( )) 
			   ( F I Dou ( )) 
			   ( F I F ( I )) 
			   ( F I E ( E )) 
			   ( F I I ( F )) 
			   ( F I S ( )) 
			   ( F I B ( )) 
			   ( F I R ( )) 
			   ( F I L ( )) 
			   ( F S Tri ( )) 
			   ( F S Dou ( )) 
			   ( F S F ( S )) 
			   ( F S E ( )) 
			   ( F S I ( )) 
			   ( F S S ( )) 
			   ( F S B ( )) 
			   ( F S R ( )) 
			   ( F S L ( )) 
			   ( F B Tri ( )) 
			   ( F B Dou ( )) 
			   ( F B F ( B )) 
			   ( F B E ( )) 
			   ( F B I ( )) 
			   ( F B S ( )) 
			   ( F B B ( )) 
			   ( F B R ( )) 
			   ( F B L ( )) 
			   ( F R Tri ( )) 
			   ( F R Dou ( )) 
			   ( F R F ( )) 
			   ( F R E ( )) 
			   ( F R I ( )) 
			   ( F R S ( )) 
			   ( F R B ( )) 
			   ( F R R ( )) 
			   ( F R L ( R )) 
			   ( F L Tri ( )) 
			   ( F L Dou ( )) 
			   ( F L F ( )) 
			   ( F L E ( )) 
			   ( F L I ( )) 
			   ( F L S ( )) 
			   ( F L B ( )) 
			   ( F L R ( L )) 
			   ( F L L ( )) 
			   ( E Tri Tri ( )) 
			   ( E Tri Dou ( )) 
			   ( E Tri F ( )) 
			   ( E Tri E ( )) 
			   ( E Tri I ( )) 
			   ( E Tri S ( )) 
			   ( E Tri B ( )) 
			   ( E Tri R ( )) 
			   ( E Tri L ( )) 
			   ( E Dou Tri ( )) 
			   ( E Dou Dou ( )) 
			   ( E Dou F ( )) 
			   ( E Dou E ( )) 
			   ( E Dou I ( )) 
			   ( E Dou S ( )) 
			   ( E Dou B ( )) 
			   ( E Dou R ( )) 
			   ( E Dou L ( )) 
			   ( E F Tri ( )) 
			   ( E F Dou ( F )) 
			   ( E F F ( )) 
			   ( E F E ( )) 
			   ( E F I ( )) 
			   ( E F S ( )) 
			   ( E F B ( )) 
			   ( E F R ( )) 
			   ( E F L ( )) 
			   ( E E Tri ( E )) 
			   ( E E Dou ( )) 
			   ( E E F ( )) 
			   ( E E E ( )) 
			   ( E E I ( )) 
			   ( E E S ( )) 
			   ( E E B ( )) 
			   ( E E R ( )) 
			   ( E E L ( )) 
			   ( E I Tri ( )) 
			   ( E I Dou ( I )) 
			   ( E I F ( )) 
			   ( E I E ( )) 
			   ( E I I ( )) 
			   ( E I S ( )) 
			   ( E I B ( )) 
			   ( E I R ( )) 
			   ( E I L ( )) 
			   ( E S Tri ( )) 
			   ( E S Dou ( S )) 
			   ( E S F ( )) 
			   ( E S E ( )) 
			   ( E S I ( )) 
			   ( E S S ( )) 
			   ( E S B ( )) 
			   ( E S R ( )) 
			   ( E S L ( )) 
			   ( E B Tri ( )) 
			   ( E B Dou ( B )) 
			   ( E B F ( )) 
			   ( E B E ( )) 
			   ( E B I ( )) 
			   ( E B S ( )) 
			   ( E B B ( )) 
			   ( E B R ( )) 
			   ( E B L ( )) 
			   ( E R Tri ( )) 
			   ( E R Dou ( R )) 
			   ( E R F ( )) 
			   ( E R E ( )) 
			   ( E R I ( )) 
			   ( E R S ( )) 
			   ( E R B ( )) 
			   ( E R R ( )) 
			   ( E R L ( )) 
			   ( E L Tri ( )) 
			   ( E L Dou ( L )) 
			   ( E L F ( )) 
			   ( E L E ( )) 
			   ( E L I ( )) 
			   ( E L S ( )) 
			   ( E L B ( )) 
			   ( E L R ( )) 
			   ( E L L ( )) 
			   ( I Tri Tri ( )) 
			   ( I Tri Dou ( )) 
			   ( I Tri F ( )) 
			   ( I Tri E ( )) 
			   ( I Tri I ( )) 
			   ( I Tri S ( )) 
			   ( I Tri B ( )) 
			   ( I Tri R ( )) 
			   ( I Tri L ( )) 
			   ( I Dou Tri ( )) 
			   ( I Dou Dou ( )) 
			   ( I Dou F ( )) 
			   ( I Dou E ( )) 
			   ( I Dou I ( )) 
			   ( I Dou S ( )) 
			   ( I Dou B ( )) 
			   ( I Dou R ( )) 
			   ( I Dou L ( )) 
			   ( I F Tri ( )) 
			   ( I F Dou ( )) 
			   ( I F F ( F )) 
			   ( I F E ( E )) 
			   ( I F I ( I )) 
			   ( I F S ( )) 
			   ( I F B ( )) 
			   ( I F R ( )) 
			   ( I F L ( )) 
			   ( I E Tri ( )) 
			   ( I E Dou ( )) 
			   ( I E F ( )) 
			   ( I E E ( )) 
			   ( I E I ( )) 
			   ( I E S ( I )) 
			   ( I E B ( )) 
			   ( I E R ( )) 
			   ( I E L ( )) 
			   ( I I Tri ( )) 
			   ( I I Dou ( )) 
			   ( I I F ( )) 
			   ( I I E ( )) 
			   ( I I I ( )) 
			   ( I I S ( )) 
			   ( I I B ( I )) 
			   ( I I R ( )) 
			   ( I I L ( )) 
			   ( I S Tri ( )) 
			   ( I S Dou ( )) 
			   ( I S F ( )) 
			   ( I S E ( )) 
			   ( I S I ( )) 
			   ( I S S ( )) 
			   ( I S B ( S )) 
			   ( I S R ( )) 
			   ( I S L ( )) 
			   ( I B Tri ( )) 
			   ( I B Dou ( )) 
			   ( I B F ( )) 
			   ( I B E ( )) 
			   ( I B I ( )) 
			   ( I B S ( )) 
			   ( I B B ( B )) 
			   ( I B R ( )) 
			   ( I B L ( )) 
			   ( I R Tri ( )) 
			   ( I R Dou ( )) 
			   ( I R F ( )) 
			   ( I R E ( )) 
			   ( I R I ( )) 
			   ( I R S ( )) 
			   ( I R B ( )) 
			   ( I R R ( R )) 
			   ( I R L ( )) 
			   ( I L Tri ( )) 
			   ( I L Dou ( )) 
			   ( I L F ( )) 
			   ( I L E ( )) 
			   ( I L I ( )) 
			   ( I L S ( )) 
			   ( I L B ( )) 
			   ( I L R ( )) 
			   ( I L L ( L )) 
			   ( S Tri Tri ( )) 
			   ( S Tri Dou ( )) 
			   ( S Tri F ( )) 
			   ( S Tri E ( )) 
			   ( S Tri I ( )) 
			   ( S Tri S ( S )) 
			   ( S Tri B ( )) 
			   ( S Tri R ( )) 
			   ( S Tri L ( )) 
			   ( S Dou Tri ( )) 
			   ( S Dou Dou ( )) 
			   ( S Dou F ( F )) 
			   ( S Dou E ( E )) 
			   ( S Dou I ( I )) 
			   ( S Dou S ( )) 
			   ( S Dou B ( B )) 
			   ( S Dou R ( R )) 
			   ( S Dou L ( L )) 
			   ( S F Tri ( )) 
			   ( S F Dou ( )) 
			   ( S F F ( )) 
			   ( S F E ( )) 
			   ( S F I ( )) 
			   ( S F S ( )) 
			   ( S F B ( )) 
			   ( S F R ( )) 
			   ( S F L ( )) 
			   ( S E Tri ( )) 
			   ( S E Dou ( )) 
			   ( S E F ( )) 
			   ( S E E ( )) 
			   ( S E I ( )) 
			   ( S E S ( )) 
			   ( S E B ( )) 
			   ( S E R ( )) 
			   ( S E L ( )) 
			   ( S I Tri ( )) 
			   ( S I Dou ( )) 
			   ( S I F ( )) 
			   ( S I E ( )) 
			   ( S I I ( )) 
			   ( S I S ( )) 
			   ( S I B ( )) 
			   ( S I R ( )) 
			   ( S I L ( )) 
			   ( S S Tri ( )) 
			   ( S S Dou ( )) 
			   ( S S F ( )) 
			   ( S S E ( )) 
			   ( S S I ( )) 
			   ( S S S ( )) 
			   ( S S B ( )) 
			   ( S S R ( )) 
			   ( S S L ( )) 
			   ( S B Tri ( )) 
			   ( S B Dou ( )) 
			   ( S B F ( )) 
			   ( S B E ( )) 
			   ( S B I ( )) 
			   ( S B S ( )) 
			   ( S B B ( )) 
			   ( S B R ( )) 
			   ( S B L ( )) 
			   ( S R Tri ( )) 
			   ( S R Dou ( )) 
			   ( S R F ( )) 
			   ( S R E ( )) 
			   ( S R I ( )) 
			   ( S R S ( )) 
			   ( S R B ( )) 
			   ( S R R ( )) 
			   ( S R L ( )) 
			   ( S L Tri ( )) 
			   ( S L Dou ( )) 
			   ( S L F ( )) 
			   ( S L E ( )) 
			   ( S L I ( )) 
			   ( S L S ( )) 
			   ( S L B ( )) 
			   ( S L R ( )) 
			   ( S L L ( )) 
			   ( B Tri Tri ( )) 
			   ( B Tri Dou ( )) 
			   ( B Tri F ( )) 
			   ( B Tri E ( )) 
			   ( B Tri I ( )) 
			   ( B Tri S ( )) 
			   ( B Tri B ( )) 
			   ( B Tri R ( )) 
			   ( B Tri L ( )) 
			   ( B Dou Tri ( )) 
			   ( B Dou Dou ( )) 
			   ( B Dou F ( )) 
			   ( B Dou E ( )) 
			   ( B Dou I ( )) 
			   ( B Dou S ( )) 
			   ( B Dou B ( )) 
			   ( B Dou R ( )) 
			   ( B Dou L ( )) 
			   ( B F Tri ( )) 
			   ( B F Dou ( )) 
			   ( B F F ( )) 
			   ( B F E ( )) 
			   ( B F I ( )) 
			   ( B F S ( )) 
			   ( B F B ( B )) 
			   ( B F R ( )) 
			   ( B F L ( )) 
			   ( B E Tri ( )) 
			   ( B E Dou ( )) 
			   ( B E F ( )) 
			   ( B E E ( )) 
			   ( B E I ( )) 
			   ( B E S ( B )) 
			   ( B E B ( )) 
			   ( B E R ( )) 
			   ( B E L ( )) 
			   ( B I Tri ( )) 
			   ( B I Dou ( )) 
			   ( B I F ( )) 
			   ( B I E ( )) 
			   ( B I I ( B )) 
			   ( B I S ( )) 
			   ( B I B ( )) 
			   ( B I R ( )) 
			   ( B I L ( )) 
			   ( B S Tri ( )) 
			   ( B S Dou ( )) 
			   ( B S F ( )) 
			   ( B S E ( )) 
			   ( B S I ( S )) 
			   ( B S S ( )) 
			   ( B S B ( )) 
			   ( B S R ( )) 
			   ( B S L ( )) 
			   ( B B Tri ( )) 
			   ( B B Dou ( )) 
			   ( B B F ( F )) 
			   ( B B E ( E )) 
			   ( B B I ( I )) 
			   ( B B S ( )) 
			   ( B B B ( )) 
			   ( B B R ( )) 
			   ( B B L ( )) 
			   ( B R Tri ( )) 
			   ( B R Dou ( )) 
			   ( B R F ( )) 
			   ( B R E ( )) 
			   ( B R I ( )) 
			   ( B R S ( )) 
			   ( B R B ( )) 
			   ( B R R ( )) 
			   ( B R L ( L )) 
			   ( B L Tri ( )) 
			   ( B L Dou ( )) 
			   ( B L F ( )) 
			   ( B L E ( )) 
			   ( B L I ( )) 
			   ( B L S ( )) 
			   ( B L B ( )) 
			   ( B L R ( R )) 
			   ( B L L ( )) 
			   ( R Tri Tri ( )) 
			   ( R Tri Dou ( )) 
			   ( R Tri F ( )) 
			   ( R Tri E ( )) 
			   ( R Tri I ( )) 
			   ( R Tri S ( )) 
			   ( R Tri B ( )) 
			   ( R Tri R ( )) 
			   ( R Tri L ( )) 
			   ( R Dou Tri ( )) 
			   ( R Dou Dou ( )) 
			   ( R Dou F ( )) 
			   ( R Dou E ( )) 
			   ( R Dou I ( )) 
			   ( R Dou S ( )) 
			   ( R Dou B ( )) 
			   ( R Dou R ( )) 
			   ( R Dou L ( )) 
			   ( R F Tri ( )) 
			   ( R F Dou ( )) 
			   ( R F F ( )) 
			   ( R F E ( )) 
			   ( R F I ( )) 
			   ( R F S ( )) 
			   ( R F B ( )) 
			   ( R F R ( R )) 
			   ( R F L ( )) 
			   ( R E Tri ( )) 
			   ( R E Dou ( )) 
			   ( R E F ( )) 
			   ( R E E ( )) 
			   ( R E I ( )) 
			   ( R E S ( R )) 
			   ( R E B ( )) 
			   ( R E R ( )) 
			   ( R E L ( )) 
			   ( R I Tri ( )) 
			   ( R I Dou ( )) 
			   ( R I F ( )) 
			   ( R I E ( )) 
			   ( R I I ( )) 
			   ( R I S ( )) 
			   ( R I B ( )) 
			   ( R I R ( )) 
			   ( R I L ( R )) 
			   ( R S Tri ( )) 
			   ( R S Dou ( )) 
			   ( R S F ( )) 
			   ( R S E ( )) 
			   ( R S I ( )) 
			   ( R S S ( )) 
			   ( R S B ( )) 
			   ( R S R ( )) 
			   ( R S L ( S )) 
			   ( R B Tri ( )) 
			   ( R B Dou ( )) 
			   ( R B F ( )) 
			   ( R B E ( )) 
			   ( R B I ( )) 
			   ( R B S ( )) 
			   ( R B B ( )) 
			   ( R B R ( )) 
			   ( R B L ( L )) 
			   ( R R Tri ( )) 
			   ( R R Dou ( )) 
			   ( R R F ( )) 
			   ( R R E ( )) 
			   ( R R I ( )) 
			   ( R R S ( )) 
			   ( R R B ( R )) 
			   ( R R R ( R )) 
			   ( R R L ( B R L )) 
			   ( R L Tri ( )) 
			   ( R L Dou ( )) 
			   ( R L F ( L )) 
			   ( R L E ( E )) 
			   ( R L I ( R )) 
			   ( R L S ( )) 
			   ( R L B ( )) 
			   ( R L R ( F R L )) 
			   ( R L L ( I R L )) 
			   ( L Tri Tri ( )) 
			   ( L Tri Dou ( )) 
			   ( L Tri F ( )) 
			   ( L Tri E ( )) 
			   ( L Tri I ( )) 
			   ( L Tri S ( )) 
			   ( L Tri B ( )) 
			   ( L Tri R ( )) 
			   ( L Tri L ( )) 
			   ( L Dou Tri ( )) 
			   ( L Dou Dou ( )) 
			   ( L Dou F ( )) 
			   ( L Dou E ( )) 
			   ( L Dou I ( )) 
			   ( L Dou S ( )) 
			   ( L Dou B ( )) 
			   ( L Dou R ( )) 
			   ( L Dou L ( )) 
			   ( L F Tri ( )) 
			   ( L F Dou ( )) 
			   ( L F F ( )) 
			   ( L F E ( )) 
			   ( L F I ( )) 
			   ( L F S ( )) 
			   ( L F B ( )) 
			   ( L F R ( )) 
			   ( L F L ( L )) 
			   ( L E Tri ( )) 
			   ( L E Dou ( )) 
			   ( L E F ( )) 
			   ( L E E ( )) 
			   ( L E I ( )) 
			   ( L E S ( L )) 
			   ( L E B ( )) 
			   ( L E R ( )) 
			   ( L E L ( )) 
			   ( L I Tri ( )) 
			   ( L I Dou ( )) 
			   ( L I F ( )) 
			   ( L I E ( )) 
			   ( L I I ( )) 
			   ( L I S ( )) 
			   ( L I B ( )) 
			   ( L I R ( L )) 
			   ( L I L ( )) 
			   ( L S Tri ( )) 
			   ( L S Dou ( )) 
			   ( L S F ( )) 
			   ( L S E ( )) 
			   ( L S I ( )) 
			   ( L S S ( )) 
			   ( L S B ( )) 
			   ( L S R ( S )) 
			   ( L S L ( )) 
			   ( L B Tri ( )) 
			   ( L B Dou ( )) 
			   ( L B F ( )) 
			   ( L B E ( )) 
			   ( L B I ( )) 
			   ( L B S ( )) 
			   ( L B B ( )) 
			   ( L B R ( R )) 
			   ( L B L ( )) 
			   ( L R Tri ( )) 
			   ( L R Dou ( )) 
			   ( L R F ( R )) 
			   ( L R E ( E )) 
			   ( L R I ( L )) 
			   ( L R S ( )) 
			   ( L R B ( )) 
			   ( L R R ( I R L )) 
			   ( L R L ( F R L )) 
			   ( L L Tri ( )) 
			   ( L L Dou ( )) 
			   ( L L F ( )) 
			   ( L L E ( )) 
			   ( L L I ( )) 
			   ( L L S ( )) 
			   ( L L B ( L )) 
			   ( L L R ( B R L )) 
			   ( L L L ( L )) 
			   )
    )
