################################################################ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## # #### #### #### #### #### #### #### #### # # # ## # # ## # # ## # # ## # # ## # # ## # # ## # # # ## #### #### #### #### #### #### #### ## # # ## # # ## # # ## # # ## # # ## # # ## # # ## # # ## ######## ######## ######## ######## # # # # # # # ## # # # # # # ## # # # # # # ## # # # # # # # ## ## ## #### ## ## #### ## ## #### ## ## ## # ## # ## ## # ## # ## ## # ## # ## ## # ## # ## ## #### ######## ######## ######## #### # # # # # ## # # # # # # ## # # # # # # ## # # # # # # ## # ## ## #### ## ## #### ## ## #### ## ## #### # # ## ## # ## # ## ## # ## # ## ## # ## # ## ## # # ################ ################ # # # # # # # # # # # # # # # ## # # # # # # # # # # # # # # # ## ## ## ## ## ## ## #### ## ## ## ## ## ## ## # ## ## ## # ## ## ## ## # ## ## ## # ## ## ## ## #### #### #### ######## #### #### #### # # # ## # # # # ## # # ## # # # # ## # # # # ## # # ## # ## #### ## #### #### ## #### ## #### #### # # ## # # ## ## # # ## # ## # ## # # ## ## # # ## # # ######## ################ ######## # # # # # # # # # # # ## # # # # # # # # # # # # # # ## # # # ## ## ## ## ## #### ## ## ## ## ## ## #### ## # ## # ## ## ## ## # ## ## ## # ## ## ## ## # ## # #### #### ######## #### #### ######## # # # # # ## # # ## # # # # ## # # # # ## # # ## # # # # # ## ## #### #### ## #### ## #### #### ## ## # # ## ## # # ## # ## # ## # # ## ## # # ## # ## # ## ################################ # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## # ## ## ## ## ## ## ## # ## ## ## ## ## ## ## ## #### #### #### #### #### #### #### #### # # # ## # # ## # # ## # # # # ## # # ## # # ## # # ## # ## #### #### #### ## #### #### #### #### # # ## # # ## # # ## # # ## ## # # ## # # ## # # ## # # ######## ######## ######## ######## # # # # # # # ## # # # # # # # # # # ## # # # # # # ## # # # ## ## ## #### ## ## ## ## #### ## ## #### ## # ## # ## ## # ## # ## ## ## ## # ## # ## ## # ## # #### ######## #### ######## ######## # # # # # ## # # # # # # ## # # ## # # # # # # ## # # # # # ## ## #### ## ## #### #### ## ## #### ## ## # # ## ## # ## # ## ## # # ## # ## # ## ## # ## # ## ################ ################ # # # # # # # # # # # # # # # # # # # # # # # ## # # # # # # # ## ## ## ## ## ## ## ## ## ## ## #### ## ## ## # ## ## ## # ## ## ## ## ## ## ## ## # ## ## ## # #### #### #### #### #### ######## #### # # # ## # # # # ## # # ## # # ## # # ## # # # # ## # # # ## #### ## #### #### #### #### ## #### ## # # ## # # ## ## # # ## # # ## # # ## # ## # ## # # ## ######## ######## ################ # # # # # # # # # # # ## # # # # # # ## # # # # # # # # # # # ## ## ## ## ## #### ## ## #### ## ## ## ## ## # ## # ## ## ## ## # ## # ## ## # ## ## ## # ## ## #### #### ######## ######## #### #### # # # # # ## # # ## # # # # # # ## # # # # ## # # # # ## # ## ## #### #### ## ## #### ## #### ## #### # # ## ## # # ## # ## # ## ## # ## # ## # # ## ## # # ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 1 1 1 1 -1 -1 -1 -1 -1 -1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 1 1 1 1 -1 -1 -1 -1 1 -1 1 -1 -1 1 -1 1 -1 1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 1 -1 1 -1 -1 1 -1 1 1 1 -1 -1 -1 -1 1 1 -1 -1 1 1 1 1 -1 -1 -1 -1 1 1 1 1 -1 -1 1 1 -1 -1 -1 -1 1 1 1 -1 -1 1 -1 1 1 -1 -1 1 1 -1 1 -1 -1 1 -1 1 1 -1 1 -1 -1 1 1 -1 -1 1 -1 1 1 -1 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 0 0 1 0 1 1 0 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 0 1 0 1 0 1 0 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 0 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 0 1 1 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 0 1 0 0 1 0 1 0 1 0 1 1 0 1 0 0 1 0 1 1 0 1 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 0 1 0 0 1 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 11111111111111111111111111111111 10101010101010101010101010101010 11001100110011001100110011001100 10011001100110011001100110011001 11110000111100001111000011110000 10100101101001011010010110100101 11000011110000111100001111000011 10010110100101101001011010010110 11111111000000001111111100000000 10101010010101011010101001010101 11001100001100111100110000110011 10011001011001101001100101100110 11110000000011111111000000001111 10100101010110101010010101011010 11000011001111001100001100111100 10010110011010011001011001101001 11111111111111110000000000000000 10101010101010100101010101010101 11001100110011000011001100110011 10011001100110010110011001100110 11110000111100000000111100001111 10100101101001010101101001011010 11000011110000110011110000111100 10010110100101100110100101101001 11111111000000000000000011111111 10101010010101010101010110101010 11001100001100110011001111001100 10011001011001100110011010011001 11110000000011110000111111110000 10100101010110100101101010100101 11000011001111000011110011000011 10010110011010010110100110010110 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 11111111111111111111111111111111 - ffffffff 10101010101010101010101010101010 - aaaaaaaa 11001100110011001100110011001100 - cccccccc 10011001100110011001100110011001 - 99999999 11110000111100001111000011110000 - f0f0f0f0 10100101101001011010010110100101 - a5a5a5a5 11000011110000111100001111000011 - c3c3c3c3 10010110100101101001011010010110 - 96969696 11111111000000001111111100000000 - ff00ff00 10101010010101011010101001010101 - aa55aa55 11001100001100111100110000110011 - cc33cc33 10011001011001101001100101100110 - 99669966 11110000000011111111000000001111 - f00ff00f 10100101010110101010010101011010 - a55aa55a 11000011001111001100001100111100 - c33cc33c 10010110011010011001011001101001 - 96699669 11111111111111110000000000000000 - ffff0000 10101010101010100101010101010101 - aaaa5555 11001100110011000011001100110011 - cccc3333 10011001100110010110011001100110 - 99996666 11110000111100000000111100001111 - f0f00f0f 10100101101001010101101001011010 - a5a55a5a 11000011110000110011110000111100 - c3c33c3c 10010110100101100110100101101001 - 96966969 11111111000000000000000011111111 - ff0000ff 10101010010101010101010110101010 - a5555aa5 11001100001100110011001111001100 - cc3333cc 10011001011001100110011010011001 - 99666699 11110000000011110000111111110000 - f00f0ff0 10100101010110100101101010100101 - a55a5aa5 11000011001111000011110011000011 - c33c3cc3 10010110011010010110100110010110 - 96696996 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 11111111111111111111111111111111 11111111111111111111111111111111 10101010101010101010101010101010 10101010101010101010101010101010 11001100110011001100110011001100 11001100110011001100110011001100 10011001100110011001100110011001 10011001100110011001100110011001 11110000111100001111000011110000 11110000111100001111000011110000 10100101101001011010010110100101 10100101101001011010010110100101 11000011110000111100001111000011 11000011110000111100001111000011 10010110100101101001011010010110 10010110100101101001011010010110 11111111000000001111111100000000 11111111000000001111111100000000 10101010010101011010101001010101 10101010010101011010101001010101 11001100001100111100110000110011 11001100001100111100110000110011 10011001011001101001100101100110 10011001011001101001100101100110 11110000000011111111000000001111 11110000000011111111000000001111 10100101010110101010010101011010 10100101010110101010010101011010 11000011001111001100001100111100 11000011001111001100001100111100 10010110011010011001011001101001 10010110011010011001011001101001 11111111111111110000000000000000 11111111111111110000000000000000 10101010101010100101010101010101 10101010101010100101010101010101 11001100110011000011001100110011 11001100110011000011001100110011 10011001100110010110011001100110 10011001100110010110011001100110 11110000111100000000111100001111 11110000111100000000111100001111 10100101101001010101101001011010 10100101101001010101101001011010 11000011110000110011110000111100 11000011110000110011110000111100 10010110100101100110100101101001 10010110100101100110100101101001 11111111000000000000000011111111 11111111000000000000000011111111 10101010010101010101010110101010 10101010010101010101010110101010 11001100001100110011001111001100 11001100001100110011001111001100 10011001011001100110011010011001 10011001011001100110011010011001 11110000000011110000111111110000 11110000000011110000111111110000 10100101010110100101101010100101 10100101010110100101101010100101 11000011001111000011110011000011 11000011001111000011110011000011 10010110011010010110100110010110 10010110011010010110100110010110 11111111111111111111111111111111 00000000000000000000000000000000 10101010101010101010101010101010 01010101010101010101010101010101 11001100110011001100110011001100 00110011001100110011001100110011 10011001100110011001100110011001 01100110011001100110011001100110 11110000111100001111000011110000 00001111000011110000111100001111 10100101101001011010010110100101 01011010010110100101101001011010 11000011110000111100001111000011 00111100001111000011110000111100 10010110100101101001011010010110 01101001011010010110100101101001 11111111000000001111111100000000 00000000111111110000000011111111 10101010010101011010101001010101 01010101101010100101010110101010 11001100001100111100110000110011 00110011110011000011001111001100 10011001011001101001100101100110 01100110100110010110011010011001 11110000000011111111000000001111 00001111111100000000111111110000 10100101010110101010010101011010 01011010101001010101101010100101 11000011001111001100001100111100 00111100110000110011110011000011 10010110011010011001011001101001 01101001100101100110100110010110 11111111111111110000000000000000 00000000000000001111111111111111 10101010101010100101010101010101 01010101010101011010101010101010 11001100110011000011001100110011 00110011001100111100110011001100 10011001100110010110011001100110 01100110011001101001100110011001 11110000111100000000111100001111 00001111000011111111000011110000 10100101101001010101101001011010 01011010010110101010010110100101 11000011110000110011110000111100 00111100001111001100001111000011 10010110100101100110100101101001 01101001011010011001011010010110 11111111000000000000000011111111 00000000111111111111111100000000 10101010010101010101010110101010 01010101101010101010101001010101 11001100001100110011001111001100 00110011110011001100110000110011 10011001011001100110011010011001 01100110100110011001100101100110 11110000000011110000111111110000 00001111111100001111000000001111 10100101010110100101101010100101 01011010101001011010010101011010 11000011001111000011110011000011 00111100110000111100001100111100 10010110011010010110100110010110 01101001100101101001011001101001 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 11111111111111111111111111111111 11111111111111111111111111111111 - ffffffff ffffffff 10101010101010101010101010101010 10101010101010101010101010101010 - aaaaaaaa aaaaaaaa 11001100110011001100110011001100 11001100110011001100110011001100 - cccccccc cccccccc 10011001100110011001100110011001 10011001100110011001100110011001 - 99999999 99999999 11110000111100001111000011110000 11110000111100001111000011110000 - f0f0f0f0 f0f0f0f0 10100101101001011010010110100101 10100101101001011010010110100101 - a5a5a5a5 a5a5a5a5 11000011110000111100001111000011 11000011110000111100001111000011 - c3c3c3c3 c3c3c3c3 10010110100101101001011010010110 10010110100101101001011010010110 - 96969696 96969696 11111111000000001111111100000000 11111111000000001111111100000000 - ff00ff00 ff00ff00 10101010010101011010101001010101 10101010010101011010101001010101 - aa55aa55 aa55aa55 11001100001100111100110000110011 11001100001100111100110000110011 - cc33cc33 cc33cc33 10011001011001101001100101100110 10011001011001101001100101100110 - 99669966 99669966 11110000000011111111000000001111 11110000000011111111000000001111 - f00ff00f f00ff00f 10100101010110101010010101011010 10100101010110101010010101011010 - a55aa55a a55aa55a 11000011001111001100001100111100 11000011001111001100001100111100 - c33cc33c c33cc33c 10010110011010011001011001101001 10010110011010011001011001101001 - 96699669 96699669 11111111111111110000000000000000 11111111111111110000000000000000 - ffff0000 ffff0000 10101010101010100101010101010101 10101010101010100101010101010101 - aaaa5555 aaaa5555 11001100110011000011001100110011 11001100110011000011001100110011 - cccc3333 cccc3333 10011001100110010110011001100110 10011001100110010110011001100110 - 99996666 99996666 11110000111100000000111100001111 11110000111100000000111100001111 - f0f00f0f f0f00f0f 10100101101001010101101001011010 10100101101001010101101001011010 - a5a55a5a a5a55a5a 11000011110000110011110000111100 11000011110000110011110000111100 - c3c33c3c c3c33c3c 10010110100101100110100101101001 10010110100101100110100101101001 - 96966969 96966969 11111111000000000000000011111111 11111111000000000000000011111111 - ff0000ff ff0000ff 10101010010101010101010110101010 10101010010101010101010110101010 - aa5555aa aa5555aa 11001100001100110011001111001100 11001100001100110011001111001100 - cc3333cc cc3333cc 10011001011001100110011010011001 10011001011001100110011010011001 - 99666699 99666699 11110000000011110000111111110000 11110000000011110000111111110000 - f00f0ff0 f00f0ff0 10100101010110100101101010100101 10100101010110100101101010100101 - a55a5aa5 a55a5aa5 11000011001111000011110011000011 11000011001111000011110011000011 - c33c3cc3 c33c3cc3 10010110011010010110100110010110 10010110011010010110100110010110 - 96696996 96696996 11111111111111111111111111111111 00000000000000000000000000000000 - ffffffff 00000000 10101010101010101010101010101010 01010101010101010101010101010101 - aaaaaaaa 55555555 11001100110011001100110011001100 00110011001100110011001100110011 - cccccccc 33333333 10011001100110011001100110011001 01100110011001100110011001100110 - 99999999 66666666 11110000111100001111000011110000 00001111000011110000111100001111 - f0f0f0f0 0f0f0f0f 10100101101001011010010110100101 01011010010110100101101001011010 - a5a5a5a5 5a5a5a5a 11000011110000111100001111000011 00111100001111000011110000111100 - c3c3c3c3 3c3c3c3c 10010110100101101001011010010110 01101001011010010110100101101001 - 96969696 69696969 11111111000000001111111100000000 00000000111111110000000011111111 - ff00ff00 00ff00ff 10101010010101011010101001010101 01010101101010100101010110101010 - aa55aa55 55aa55aa 11001100001100111100110000110011 00110011110011000011001111001100 - cc33cc33 33cc33cc 10011001011001101001100101100110 01100110100110010110011010011001 - 99669966 66996699 11110000000011111111000000001111 00001111111100000000111111110000 - f00ff00f 0ff00ff0 10100101010110101010010101011010 01011010101001010101101010100101 - a55aa55a 5aa55aa5 11000011001111001100001100111100 00111100110000110011110011000011 - c33cc33c 3cc33cc3 10010110011010011001011001101001 01101001100101100110100110010110 - 96699669 69966996 11111111111111110000000000000000 00000000000000001111111111111111 - ffff0000 0000ffff 10101010101010100101010101010101 01010101010101011010101010101010 - aaaa5555 5555aaaa 11001100110011000011001100110011 00110011001100111100110011001100 - cccc3333 33339999 10011001100110010110011001100110 01100110011001101001100110011001 - 99996666 66669999 11110000111100000000111100001111 00001111000011111111000011110000 - f0f00f0f 0f0ff0f0 10100101101001010101101001011010 01011010010110101010010110100101 - a5a55a5a 5a5aa5a5 11000011110000110011110000111100 00111100001111001100001111000011 - c3c33c3c 3c3cc3c3 10010110100101100110100101101001 01101001011010011001011010010110 - 96966969 69699696 11111111000000000000000011111111 00000000111111111111111100000000 - ff0000ff 00ffff00 10101010010101010101010110101010 01010101101010101010101001010101 - aa5555aa 55aaaa55 11001100001100110011001111001100 00110011110011001100110000110011 - cc3333cc 33cccc33 10011001011001100110011010011001 01100110100110011001100101100110 - 99666699 66999955 11110000000011110000111111110000 00001111111100001111000000001111 - f00f0ff0 0ff0f00f 10100101010110100101101010100101 01011010101001011010010101011010 - a55a5aa5 5aa5a55a 11000011001111000011110011000011 00111100110000111100001100111100 - c33c3cc3 3cc3c33c 10010110011010010110100110010110 01101001100101101001011001101001 - 96696996 69969669 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const GHadam_natural: array[ 0 .. 63] of UINT64 = ( $ffffffffffffffff, $aaaaaaaaaaaaaaaa, $cccccccccccccccc, $9999999999999999, $f0f0f0f0f0f0f0f0, $a5a5a5a5a5a5a5a5, $c3c3c3c3c3c3c3c3, $9696969696969696, $ff00ff00ff00ff00, $aa55aa55aa55aa55, $cc33cc33cc33cc33, $9966996699669966, $f00ff00ff00ff00f, $a55aa55aa55aa55a, $c33cc33cc33cc33c, $9669966996699669, $ffff0000ffff0000, $aaaa5555aaaa5555, $cccc3333cccc3333, $9999666699996666, $f0f00f0ff0f00f0f, $a5a55a5aa5a55a5a, $c3c33c3cc3c33c3c, $9696696996966969, $ff0000ffff0000ff, $aa5555aaaa5555aa, $cc3333cccc3333cc, $9966669999666699, $f00f0ff0f00f0ff0, $a55a5aa5a55a5aa5, $c33c3cc3c33c3cc3, $9669699696696996, $ffffffff00000000, $aaaaaaaa55555555, $cccccccc33333333, $9999999966666666, $f0f0f0f00f0f0f0f, $a5a5a5a55a5a5a5a, $c3c3c3c33c3c3c3c, $9696969669696969, $ff00ff0000ff00ff, $aa55aa5555aa55aa, $cc33cc3333cc33cc, $9966996666996699, $f00ff00f0ff00ff0, $a55aa55a5aa55aa5, $c33cc33c3cc33cc3, $9669966969966996, $ffff00000000ffff, $aaaa55555555aaaa, $cccc333333339999, $9999666666669999, $f0f00f0f0f0ff0f0, $a5a55a5a5a5aa5a5, $c3c33c3c3c3cc3c3, $9696696969699696, $ff0000ff00ffff00, $aa5555aa55aaaa55, $cc3333cc33cccc33, $9966669966999955, $f00f0ff00ff0f00f, $a55a5aa55aa5a55a, $c33c3cc33cc3c33c, $9669699669969669 ); ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 11111111111111111111111111111111 11111111111111111111111111111111 - ffffffff ffffffff 11111111111111111111111111111111 00000000000000000000000000000000 - ffffffff 00000000 11111111111111110000000000000000 11111111111111110000000000000000 - ffff0000 ffff0000 11111111111111110000000000000000 00000000000000001111111111111111 - ffff0000 0000ffff 11111111000000001111111100000000 11111111000000001111111100000000 - ff00ff00 ff00ff00 11111111000000001111111100000000 00000000111111110000000011111111 - ff00ff00 00ff00ff 11111111000000000000000011111111 11111111000000000000000011111111 - ff0000ff ff0000ff 11111111000000000000000011111111 00000000111111111111111100000000 - ff0000ff 00ffff00 11110000111100001111000011110000 11110000111100001111000011110000 - f0f0f0f0 f0f0f0f0 11110000111100001111000011110000 00001111000011110000111100001111 - f0f0f0f0 0f0f0f0f 11110000111100000000111100001111 11110000111100000000111100001111 - f0f00f0f f0f00f0f 11110000111100000000111100001111 00001111000011111111000011110000 - f0f00f0f 0f0ff0f0 11110000000011111111000000001111 11110000000011111111000000001111 - f00ff00f f00ff00f 11110000000011111111000000001111 00001111111100000000111111110000 - f00ff00f 0ff00ff0 11110000000011110000111111110000 11110000000011110000111111110000 - f00f0ff0 f00f0ff0 11110000000011110000111111110000 00001111111100001111000000001111 - f00f0ff0 0ff0f00f 11001100110011001100110011001100 11001100110011001100110011001100 - cccccccc cccccccc 11001100110011001100110011001100 00110011001100110011001100110011 - cccccccc 33333333 11001100110011000011001100110011 11001100110011000011001100110011 - cccc3333 cccc3333 11001100110011000011001100110011 00110011001100111100110011001100 - cccc3333 33339999 11001100001100111100110000110011 11001100001100111100110000110011 - cc33cc33 cc33cc33 11001100001100111100110000110011 00110011110011000011001111001100 - cc33cc33 33cc33cc 11001100001100110011001111001100 11001100001100110011001111001100 - cc3333cc cc3333cc 11001100001100110011001111001100 00110011110011001100110000110011 - cc3333cc 33cccc33 11000011110000111100001111000011 11000011110000111100001111000011 - c3c3c3c3 c3c3c3c3 11000011110000111100001111000011 00111100001111000011110000111100 - c3c3c3c3 3c3c3c3c 11000011110000110011110000111100 11000011110000110011110000111100 - c3c33c3c c3c33c3c 11000011110000110011110000111100 00111100001111001100001111000011 - c3c33c3c 3c3cc3c3 11000011001111001100001100111100 11000011001111001100001100111100 - c33cc33c c33cc33c 11000011001111001100001100111100 00111100110000110011110011000011 - c33cc33c 3cc33cc3 11000011001111000011110011000011 11000011001111000011110011000011 - c33c3cc3 c33c3cc3 11000011001111000011110011000011 00111100110000111100001100111100 - c33c3cc3 3cc3c33c 10101010101010101010101010101010 10101010101010101010101010101010 - aaaaaaaa aaaaaaaa 10101010101010101010101010101010 01010101010101010101010101010101 - aaaaaaaa 55555555 10101010101010100101010101010101 10101010101010100101010101010101 - aaaa5555 aaaa5555 10101010101010100101010101010101 01010101010101011010101010101010 - aaaa5555 5555aaaa 10101010010101011010101001010101 10101010010101011010101001010101 - aa55aa55 aa55aa55 10101010010101011010101001010101 01010101101010100101010110101010 - aa55aa55 55aa55aa 10101010010101010101010110101010 10101010010101010101010110101010 - aa5555aa aa5555aa 10101010010101010101010110101010 01010101101010101010101001010101 - aa5555aa 55aaaa55 10100101101001011010010110100101 10100101101001011010010110100101 - a5a5a5a5 a5a5a5a5 10100101101001011010010110100101 01011010010110100101101001011010 - a5a5a5a5 5a5a5a5a 10100101101001010101101001011010 10100101101001010101101001011010 - a5a55a5a a5a55a5a 10100101101001010101101001011010 01011010010110101010010110100101 - a5a55a5a 5a5aa5a5 10100101010110101010010101011010 10100101010110101010010101011010 - a55aa55a a55aa55a 10100101010110101010010101011010 01011010101001010101101010100101 - a55aa55a 5aa55aa5 10100101010110100101101010100101 10100101010110100101101010100101 - a55a5aa5 a55a5aa5 10100101010110100101101010100101 01011010101001011010010101011010 - a55a5aa5 5aa5a55a 10011001100110011001100110011001 10011001100110011001100110011001 - 99999999 99999999 10011001100110011001100110011001 01100110011001100110011001100110 - 99999999 66666666 10011001100110010110011001100110 10011001100110010110011001100110 - 99996666 99996666 10011001100110010110011001100110 01100110011001101001100110011001 - 99996666 66669999 10011001011001101001100101100110 10011001011001101001100101100110 - 99669966 99669966 10011001011001101001100101100110 01100110100110010110011010011001 - 99669966 66996699 10011001011001100110011010011001 10011001011001100110011010011001 - 99666699 99666699 10011001011001100110011010011001 01100110100110011001100101100110 - 99666699 66999955 10010110100101101001011010010110 10010110100101101001011010010110 - 96969696 96969696 10010110100101101001011010010110 01101001011010010110100101101001 - 96969696 69696969 10010110100101100110100101101001 10010110100101100110100101101001 - 96966969 96966969 10010110100101100110100101101001 01101001011010011001011010010110 - 96966969 69699696 10010110011010011001011001101001 10010110011010011001011001101001 - 96699669 96699669 10010110011010011001011001101001 01101001100101100110100110010110 - 96699669 69966996 10010110011010010110100110010110 10010110011010010110100110010110 - 96696996 96696996 10010110011010010110100110010110 01101001100101101001011001101001 - 96696996 69969669 ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// const GHadam_sorted: array[ 0 .. 63] of UINT64 = ( $ffffffffffffffff, $ffffffff00000000, $ffff0000ffff0000, $ffff00000000ffff, $ff00ff00ff00ff00, $ff00ff0000ff00ff, $ff0000ffff0000ff, $ff0000ff00ffff00, $f0f0f0f0f0f0f0f0, $f0f0f0f00f0f0f0f, $f0f00f0ff0f00f0f, $f0f00f0f0f0ff0f0, $f00ff00ff00ff00f, $f00ff00f0ff00ff0, $f00f0ff0f00f0ff0, $f00f0ff00ff0f00f, $cccccccccccccccc, $cccccccc33333333, $cccc3333cccc3333, $cccc333333339999, $cc33cc33cc33cc33, $cc33cc3333cc33cc, $cc3333cccc3333cc, $cc3333cc33cccc33, $c3c3c3c3c3c3c3c3, $c3c3c3c33c3c3c3c, $c3c33c3cc3c33c3c, $c3c33c3c3c3cc3c3, $c33cc33cc33cc33c, $c33cc33c3cc33cc3, $c33c3cc3c33c3cc3, $c33c3cc33cc3c33c, $aaaaaaaaaaaaaaaa, $aaaaaaaa55555555, $aaaa5555aaaa5555, $aaaa55555555aaaa, $aa55aa55aa55aa55, $aa55aa5555aa55aa, $aa5555aaaa5555aa, $aa5555aa55aaaa55, $a5a5a5a5a5a5a5a5, $a5a5a5a55a5a5a5a, $a5a55a5aa5a55a5a, $a5a55a5a5a5aa5a5, $a55aa55aa55aa55a, $a55aa55a5aa55aa5, $a55a5aa5a55a5aa5, $a55a5aa55aa5a55a, $9999999999999999, $9999999966666666, $9999666699996666, $9999666666669999, $9966996699669966, $9966996666996699, $9966669999666699, $9966669966999955, $9696969696969696, $9696969669696969, $9696696996966969, $9696696969699696, $9669966996699669, $9669966969966996, $9669699696696996, $9669699669969669 );