0100001110111101100000101100010010001000001111001011100010010011010111000100001101111111001010100101001111011000111011100000101011011011111111011101001110110001010011100010000100100110010110110101011110111011000010010101011011111110000111010111100010110001000011000000011101011001000111001011011101000110001110010111100100101110000111111010111101011100000110011101000110011000000010011011110000100111 1001011100011010100010111001110111011100001001011100000110000101101111011111100100011110011001010001110111001100010111000001010010111100100010001101000111001100000100010111111011110000100101001001100011110101100011101110000010011101100111111010011101111100011001100110100101100100001111100100001110000100010001101110110011110110001000011001011001001100111100000110101110111100110000100101001000000000 1101001100010001111101101000101001110111101111001001100101010010111000100111100111101101001111011001011001101100000000101010111111001011011001111111101010111011111000110010101000110001110000101000011100101100011110000110010110111100001101110110000011100011001010110010011111100010100000000101100101010000010100101101000111010100111110110100100100111001110101111111100110001110101111111100101111100110 0100011000000001010011101100110011001011101000100100010010100000100001011101100101100001000000100100010000011011101110010111110000000011001011010000110000100000100010101101110001000100011010010010110100010001111111101010011101111011101111000000001100001011001010000111110000010001100100111000100010000111011111000101001111111101111111110001101110110110110010100001101010101110000010001010110100111101 0101011110011101100010101010000100000101110010100010011100101101010101001011010000001000010000001000101001001100101010001011010110001000110110111000111110000110000110010100111111000100000001011001001010011010110011111010001010001001100000000011010100001000010001111001101101100010100100111111011001000111101111011001000111110010001110010110100001100010001101111101000111101110011110011110110110010101 0001111100001111110000101010011101001000010110001100001110101100000110100111100110010101100100010010001000000000010101100110101100010010101110001001001010001100011010000110100001000101011000110001100001110111011100000000101111001010000010101010111010111000100110111101011010011110101010100110010000000101100100101100010110110001100011000011110010011110010011001110010110100110001111101000111010101000 0011100101111001001111001010101010001010001010000101001111000101110010110101100000111101100001101001000100000001100110111100010010110111010111001100111101100000011110011010001100110001111000000110011000100000100111101111111101100111010100110101101001100101010011011100111011101001000001001000010110001111011000000010110110111101011101101000001101111011110111100100101000010010110101101100100110110100 1010011011100101101100111110000110010111100100010100001110101100101001000100011010011001101100100110010010101001001100101010111011010010000001011001101010100100101011110101101001111000000101001100100010110001001101100000101000011010010001011011100111011010100111110010010010111011100111100011101000110110101111011101010000101010101011001101111010111100100011011000101001000111101001110100101100101001 1111111010101001000000011110001100110001111000100100110111111101101100110010110011110101101010000111110111011010011010101101110001011111001101001110101010111101100011010001000100110000011010111111111111100111010001111100010001010001000101010110100100111111111001011110100000111110101011111101001001011100111100011100111011101000101011000001010101100110011010010111001010100001011101110100010110100100 0000000010101110011100111000110100110110010111110110010110000110000010111000100100100110010110111110011000100010011000000111011110101011000111110011101000010000101110111100110010100011001110011100110101111110110110111010111010010000111100001011101110111100111100100110111010011111010000110010101111111100110011010100011110110110101110100000010010010100011101111110010100100010110100010101111011001100 1110110100100000101000111011111001010011010100101010000101110100110011110111010010100010101100011010010011000110010011110000000000010101101010101101001010000011101111111111111001110101111010010110000100000011111001010010010101110101011011100010111010001000000100001001111010001101101000011000111111110110000011101001100101001100111101111101111001001010100010111101100110011001110010000101000001011001 0100000111010110001111101000011011101100110110101010000001101110011101010010000001111011001001011000000101010000111111101110010111001100011000001011010100000001110110110000011100101011011110001000100011000111100110111101111010000010110110010000100100110001010000110110000011000111001110011000011100101000010000100100011101100101111110101011110101101101110011000000111101101000111100110010101100111010 1101011011001111000010001101110000010100010001001010000010111011011110001011101010101001000000001011001101011011011110010010001000011010111101100011000010000001001101001001111100101001101001000111110001001100111110001000001001111111001100011000111000011011111001011100101001111100111011011000001101110111000011111010101110100000101111100100010100100101110010111111010001010100011100101100010001110110 0100001101100101101010011110111000001001001101100101101011100101011100011111011110111011101010000011101000010001001010100011001010110000110010011010000011100100110110111000100010111010001001110011111001011110110111010110100011010011101010010001010011011101110011001010110000100001011100000010111110001100111001100110111000000000011111100010100001010100111000111011000101100111111100101111000101101000 1000111101011010011000001011010100000110000000110100000110000000000010111110011010100110101101101111111111101111111010010000010001100001101111011100001110000011101011011100100110111000101110011110000101010011001110001010110111001101111001011001110001101101100000011101101100111100101110001111100100001010101110000101110110001000010011100010111010101110110111111001010001100111110010011101010100101110 1101101110010101110111001011001110100100000010001000100001001000010010010011000001000100110110100011110100000000100001110000000001001100000001001000010010111100110010101001110011010101111110111101111000011100010101000000010100000110101111101110010001111010001101110110000000010011010000000110010110010000100010011100011010001010101100111000100001000001010110000011011110001000111101111100001000010000 1111100100010011011011000001111011100100110010011100010011001001110001011011001010010100101100011000011111010101100110010111010100000111000010111010100101001011001100010001011101010110111000001110010001101101111100100111010010101110010000000110111111001000101000001001111011010100111011100000101100000111001011100010011011010101101011101111010010111011000101100000101111010000111000100111001010001110 1110100000110111110001110110111010001100010101001110011100101100001011010110100111111011110111110001010001100010011001111100101111111001000101101100001011000011001001100010111001001100110101010111011011011001111101000010001110001000111000010110101000110000000100011100100000010001110000100001000110011010100100111001010011001000010010010010111101010001001110011010000101011011111000010000011001001010 1010000011110111011001100000001101110111110100111001110101110001010111100110111111101000011001010101100110100111011110101011010100100010100011110111001100101000100001000000011011101000001000001111001010110000101001011110000101001111100010110001110110000010110101000000100001001011010011011010001011100011000101010000000001001010110100111111111010101011101101001101010010011101001100100110111010010001 1100101101010010010100110010110100010000011110111111011111110010101110000011011000110011100100100010010100001001110110000010100110100101100101110111000010100100101001001010101111011001011001010110001001100010110111000111110111111011110001011111011010000110001001010101101110010000100011101100111001101011101101111110010101101110001000001100101000101111100001010110011100010010101111011011000011001110 1101001001110001010000011010110010011001100010000101100110101100110101111101100100111000011010010101010101101001111001100110000100011101100100110110010001100100110101000001001101001001011110001100010110110111000111111110101010110110010111011101101001000000100111111011101011010000000101001101011000100011010001101000011101000101110100111001111111000000000100110111001011110011010011000010101101010001 1101011110110101100011101000100000111100101011011011000010010010100011111110011111101110000011101101001011010011111010000100100001001001110101110111100110101111111110101011110111100101011100010001110100111100100010001010001001011110000101100001101001100100100100001110010100100110010011101111111001100010110001100101111111011010110000110001111010111100011111011010101001111111101000111100111000110001 0011010001111110000010011001011010101000111101001110010010001100100011100100100100111010011100001100110001010111101000001110101010001011000011010000000010100111011110100111011001001101100011000010001001011010110100011101001111001100000001010100100110001011110100011111101001011111001100001001000011101111000010000010011111110000010000110100001110011001100000110010000100010000101111011000110100000110 1111110110111010000111111110010011001101100000001110100101111111000010110000010100100100100101100111110010111011010110010111110101100111101110011000110101110100011010111000001000000111100000110110100100011001100110100000001011100100010110010100011101100001001011111111111111000111111100011000100001010110011000111111110011110001011101011110010101011000010111110110110111111000100010111100111010011100 1101110111001100101110110000111100101010000101101011010111010001110011101010011011101101010011010111101100000011100111010100010100110111011010110001110010101100101100110101001000101011111100111110001100111011101010111011011001110010000101101101111100000010010100010000000101001111111101000111111010000101101110110110100100111010000100000111100110110001110101011001100000000111010000111010101101111101 0111100000010101000101101111011100100001100011110110011110101011110001110101010110011100110111011100111010001111000011101101101010101010011111110001110101011011010111000001101011011001000010110000000001110101110111000101010110101011010000001000111110100010011110000101101111110000111110001001001111110110011101100001100111101100111100110010000000001100101100101000101001001100110000100100010101100101 0100011100000001011010100010100011111101110000100100100101110101001110101100100011010000010101111111100101010100011011010000010000111011010000011110100101001110100101111101110111110000011011101101110001011110000010111100001001010010100011101100110010000111001010111001111011000001100011100100000011000110010000000000111100010111011111110100001010010000010000100110101101011101101011110111101001100011 0010001001010000011100101101111001110011001000011011001111101110100101101000000111000001110001000011000000111010001010100000111100101110001100000000000101011010100011101101011000100101011001010101011010101000100101101100110000110100000101001110110111001111110010111000011110001001101010101000100110110011111111101101000011111011000001011010111110111100010111001001011001010100000101101100011000101111 1001011011110101110010110000100100101110111010110000001010011000001000101100000010100110011000000101111001110111010100101111001001001010101100101100001010101000101110011101111101111010110001001100011000111100001110101001000101101110001000110000110001011011101001110111101110001110101000001010010111000111100010111000100110100110001011011001000110010000011110001111010100000000110101111110011010110111 1101000010001111111111001011110111000111111101000001110111100011000010011100000101011011000001110111101010010001011011001011110000101110100011110101101110000011000011101001111100010011110110010011111010010111001111010111100001001001111110000000011001000011010010100111010011011100000110101110000100100101011110110010101110001001011001010110001000011110000011010000110111010001101111001111111010111101 0100000101010100111011100011111110101011110001111110011101011000100001000000111000111011011011000001001110100110101001100011101000111110100100001010101001111101110101001100101001110100001001001001100110110010111101111111001110100010101111110100110011011001001010101100001000011010010001000101000110010100110001011110110011011000010101110001101010010100001101001011100000101010101101110111101110001111 0110101111011101101111111111010111101110111111011001111110110000100101111010111010110001011001101010010011101001010101001000110000111001010000100101000001010011101110110110000100011010110001110010101101001101101100111011110001000000110101000001111011100110001000011111011100011000100001011000100111101011011010111100110110011110011011000111010100011110000010101000011110100001000110010001011000000000 0100110011010000011100001010010101001101100100110101001110111010100011011001100001100101111111010110001101100000111110000011101110111100110101101100100110001100110000000100000110001111011011001110000000000000000111111010000000111110010001101111010011001101000000110100001100110111111110000001000011011110111010001011010010001010110111001011100011100101001011010111011001000010110001100011111100101101 0101111000101001101100101111100001010010000001110110011001000100010110100010101111010001110111010101011001010111010111000000001101011001001001100111001111011101100110001011100110110111110110111011100001011101100100000110000011111101110011001010100101111110000001000100111110111111011101111101001100011101110000100111010001000111101111010010110110111011110000100110011010000010110111101000100011001001 0110011100000100110110100101100000101000000000011111111010011001001101011100111111011100010110010010010010111111110001110110001110101111011111111110111010101011000010011100110110000111001110101111110110000100001111110010111111110010111110100100000100000100011011100110111100001011001101100111010111110101000000100101100101001111011010100100111000110100110001000101000001010011010001010010010011010110 0000000001101111011000111111110010011010110000000001000011111110100011110100001101110011110110011101110010100110000110111000010100001011001001000100100110110111111111000100010010010110000111000000100010011110010100110001011110010111110101000110110111110011110001011000100000010111010000001010011100000010010110011001000011110111101011101001010010001010010101100100001011001110010111011101110100110010 0100010101010101011001011100001100100110101001010110000000000011001110010010010000110000011000001001011101000111101010001011000110101100000101110101001000100100010011010010000101111110111010101010100111101010001001010110101011010100110100110010011000110111110011000100001010111110011100001000110011101100110001011110101110011001110111001000010100001100000101110000101001000011101101110110010101100111 1011001010101011111111000111101101010010101000111011100010000110001101001000011010100110100100111111110011010011010001101100011011111001101101111010001100110111110100110110000101101001110011100101011010011000010100010111101001110001011011101100100110011111111001111111110101111001100000111010101111011000110000011010100010001101000010001111101000011101000110010100000101101111110000011101010110011101 1111001010110011101100111000100000101111100110110110100111101000110011011101110000101000001101010100101100101000111010100110010001011000011100001100011001000101000111110100100000110010011000000000001101111111111100110110110010001010000010101000000011001110100111111100000100010100010110110000011101011110011100000001101001101001101010101110001001100001100111110011011101001000000010001100101000001000 1110101001011010001010111000110111111111101001100000100111111001101011100011111011111011010000010001001001000111100111111110001011110001010011000010101110011101011100111100001000011000101001100010100010001100110100011000001011000100111011101010010100000011100011100101101010010001111001000111110001011000101111010110111110010111000000010110110000001000001000010100010100001010101100100101000011000110 1010010001100110111001011110111001011111001110100101110011100100111000101100101101101010000000000111110101100111101100101110000011010001110011000010111010010011010100100100110010011110011011001000001111101001000000000111001001010101011001101110001100000010011111101111100110001000100001000010000011000000101000111001100010101101000110011110101110111010101001011100100001100011011000110000101010001001 0101101110001111100010011001111001110111111010010111100001110000010101000000011111111010110000000001100100010001110010100100010001100011101100001011000110011110011110101011000101100100110011011000111110011110111110110010100010001100000011110110110110101101000010001011111000000111011001101101000001101011111100101101001110001001101110101010100001100010110111110100111000111010000101011111011100110010 1101011001101000101000100000001100100111110101001111000000111010100000010111001101110101011010000010100001011010001010001111000001011110101011011010001000001100010101011001100000000100110101010000110101011001000100011001011111001111011010001001011000010111011001001100111100001000100111101011011111101011001111111101011010010000110000100011011100111010000010000101001111000000001110010001110011011001 0100011001001010110001000111111100010101110110011001011000011001101100011100000110001111000000100100010101100111000011001110001001110101000110110110111000010000110001111100000110111100001011000001111011011110110111000000011100010100000010100101100001011100000000011000101011110010000111111100001000111000101010110001010001010110010011011101010011111101000111010111010100001011101011111011010001101000 0111100011010011001101101000011010100111010010110111001011000001001101000101110101111101101111011111111100100111010101001100110001111001110001001001100011101100100000010110110100110110001110110111101000011110010001111111111101001101100010010000100100111101111111111011100011011011111010001010011111101100001100101011100010011001001011110101001100010110000011100111100100111110000111101000101100101011 1001100011000101000010010000000111001101100000101101101101011100100001100100111000110111101101101001100010000011001011011011001100100110000010000011111000111010000010101011100011100111111000110000011110011001001111111001111111100000100000100010010111011000011001111100011100011111111111001100100010110100111000110101111010110100101010000100001011001001101010011001101111010101110011101011111100101001 1111001001010111101011101111001010000011001101110111111111110011011001000110001010101010111110010110111001101111001000011101110101011001111010100110001001011011001011111111010101010100101000011011110001110101111000000010001111110001010011100000010001110011000111101111111110111011000011000010010001111110000101100010011011110001100011111000010001001010111110000111010101110010011111110100001001001111 1010111011011100010000110011111000000001011101001011101001000001000010000100111000100000000111110010001110010111111011100010001001100101111111111010110000110001001000100110000101001000000110100100110000011000110000111011010101111010111000111010000000010111101001010011000111100011100111111010101000001000010000110011011111010001011101011101101101011011111011000000111011010000101101011111001001000000 1011111110000100110111010101111111011111110101110100001000101010111101000011010011001101100000011111110101001010101010110111000001011100111011000101111011010000110110011001001101110111011001100000001100110011110001111111001110010101001010101110111110010110000101110110000001110111100100001100100001010100011110111101100000001011110100100101001011011110111011100101100100110110101101100100100001101001 0010111000100000001011100111001010100100110000101011000101010110100001010001101010110010101001010001100101000011010001100100010000100110111011011110100111001100101011000101110100100011110011011000011100001110010101010011110001010010100010010111001010100011011111001000101100101000001011001100000111010110100011110101101110001001000100101011111111110100111111110110000001111010000001101101011010100101 1010110110011100100100000110110010110001101001000010100010111011000100011011010001000011011011011001000111111001110001111111100111100011111101001001100110110010100000100100110011010110011010000100000011110101101111100001111001010111100110010101100001101111111110011111110101111110111110010011000011111010110011001000110111011011101000000101101001111100011111111111000101001110010000110011101001110101 1110011010001100001010011101000011001110100100110111001010001110100010011101010000101000100100011011000000110001011100000001000101010111000111010101100101101001101110110011001100111100000000111000001000110110000001001001000011011011100010000000001101100101110110010001001011011101100000011101111010001011010110000010100110000111101100011010111111011010111101000000101110100011111000010001010100001011 0010000000100000000001011100010111010110110100000101001101011100100000101010111000110001010001110110011000011011011011101011001101110100000110011111111010100000110111110001000110001111100010010101100110101000001001101011110010000001100010001111100110011011111100000110110000000011000111011110001111111110011101111010100000101011011001111000011101000010010010110000110111101110101111100101101011100010 1000101100001000000110100001111000110110010011010001110010111111000000010111100111010001100000101110011111101010000001011010001101010110001101001000000111001000010100000110110011101010100111001000101111010110111111001010010110000010001011111110011111001101011101110000001101100111011111001011101000011100101011011100100111100001110101110010100110110110101100111101110010110011100110000000010110001110 1000001010001010001111010011111010101100011011100101101001101010101001111100111011101010101010011000101001010010101010010110101110110100100001101010010101011101011000100101100000100110100100000000011001110110001001001101000100000010000110100110110110011101000000110010001001100011011000100110111110110001101000100111001100011111011010101010000101010000110001101101011011111001110011110000001111010111 0011010101001111010111001110001100010010000001110111100100111100011011111100000001101000111011110011010001111011011010110101001010101110010001111001011010010110001000110001101001111010100101001110001011101110001010001000110100110001010010000011101100011101001000111111110010010110001111010101111000010111000111101011011100111110101000100000111011110000010000100011111010010111100100011101000100111111 1100101110101100101010101100110110111101111000110010101011010101000010010101011110001010010000011001001000011101111010011110110110010010011000100010001001101011001100011000011000010111001100011011001000111101001111001001100011011111011011011100101000101000101001000011000110001110101101101001100100011111111110101100010110110000110101010100000000101011010000111001011110111111101110111001110101111101 1011111001111011010010111001100110111110011111111011000001000100101100011000100000111011111100111001000000100001000101000011110001001010000010111111111001110100111100001111010110101111101100101111001111000111101111100001001101001001000000110111100101111110011010000101101101101001010001001101000001000101110010010011010010110001100111110000010100100101101111110101000001001001100111001011101101011000 0001010100011010000100101000100011110010100001000111110100110101000011011111010000000010001101111100011110111011000111001111000101001001000011010001010000100011001010010010011101100100011100101001111111110110110110101011001111101011011110000100100100100011000010011101101101111110010110110110111110110011100010100001100110111100100100010011000111000111010101100100100101001101111010101111100001000100 1100011000110100111000001000100000100100000111001001001101111011000011001100011001110011111101010100010110010111000101001011001101111010000011000100011100000001101000101000100001111000010010110001111010011010001101110001011111001100111101000000111010010110011011110000011111011010000111001001010000111001101001000000101101010100100100000100111101110100000001001001110010011111010111000111101010000100 1110011011110100110101010110010101001010000101010101100001011100001101010010111110111001100010101011010100111100110001001100110010111111000100100111100111111101000000111010001111101111011010110000101001001010101010100111001101110101000101001001101011111110100010011011011111100110011010001101001001111100011001011011010010001010010110001010110001001100001000111000101111101101111011100001111101110001 0011010110011101110101001111100100001001110111100011000101110011111101110001100010100111100010011001100100000101100101011111100110010111000110101110110011000100101001011010111000010111100010100011000110011110000011010010000110101010100011110011101111110001000001001111111101100010001001100010010000101010101111011001110101110010111101110100110000101001010101011010001111010100111000011011111010101111 1000101100101011101111111010101001110000010010011011011000000100010110111000001111111010101110101110101011001001010000010010111000010010101000001011000100111011010011011100100010011110011111011100110110100011101101111101111110000000011000000000111100110100110100001000101011000101010100111000101110001100001001000000011000101011010111100001001010001110010000100010001010010110011010101110001100001011 0101101011010100101000000110001010011010111100011111101010110001000000000100100001100001001011110001110100001011101001011111000111111001110011101100111011000001011101110110000100000011011100010101110011101010111001100111110001001010000011010011111100100101000010001011000000000111010100010100000011011010011100001000100000000010111011000010010100000001101111111011101110000001101110110010001100110000 0001011110110110100100011011111110110100100000011001100110001111100110111110001110100110110110001111010000110010101011110100001000110111100100111111100011111011111000011001110011100001010110011001011011100000111101111101111001101000110010010101010001000001110010101010100100111010011001000111111001110110110011110110110011011111110010101110011010000011100011101111110000001001000111101100101001101100 1011100011110010001100001011001101010001011101001100101100101000100000110101000011000011001001010110000100000101001101010101010000100101010111110000000001111111101100111111101101110110100001001110100001111011000011001000001111111010000010010100101110100011010011101010000000101101001111010000110011000000001000111110000011100110000101111100000001111010011111111100110101101001000011010100101101001010 0111011101010111100011011101000110010101010110100001001000000010001100111111101011001111100110110010111101111010011000111010010011010100001110000101101001110100101110101111010010100101001101100111011001001110111100001000011110110110111111111101100010000111001111111110101001011111001101010010101110011011010111110001101101101111111000011111010111000011101110100110001010101110011101001010110011000101 1011110101011011001101000001110110011110010010101111110010110000110001101110000010101101100100110100000011000010111100101001011110001111110001110000010001010110110001000001010010110101011010110001110111111111000010011110010100100000000000101110110101111100001100011011111011001111100100001101000000011001100110001010010101001111000011111101110001000000001011011110111011110101101100110010111100100101 0010110100100110000101000000001111011100011001110110011010000100000101100001010010000110010110010011111010110001010010100000000100001000010101110100101100100100010011000101110010110011000010101110110111101011100011110100110110100000000000000010010110110100001101011010011011110101001100010001100010101010011001011011000011111011011111001110101010000001110100110110100001010011010001110101000100000101 1000111010100010001010111010111110010101001000000011100111010001101010001011010010011110011010100100001101100010010101010001001100001001111000100110010011011100111100100000111000110001000000101101010010011010000001101100000100100010101101101001001100000010100010100000011001100010110101110110101100101111100001111101110101100111000100000100001100000101101110011110101101011110000000101101010011101000 1010101001101110110100010100011111101111100110110000000011101100101001011101110001101001000100001010101001111101011001100110000100100101001010001111100001100011111110001010110110000110000001011010010100000010001110001111000010110000101101011000100000011100101000001111011110101000000010000000111011000110100010100101111010000011100100100000111110010110011110101011111010011011111110100000000110000111 1100100111111010100110000010101110101000000001000000001101101001111100011011011001001101100011011100011000000000000011011100001000110011111000011111101000000101010111010000110111001001001001010011110000011001001101001101100100110111010101011101010010101000110111101110110101010101010100010001001100010111110000000011010111001010110000100011100001111111110011011011111010000111011011001001111010010100 1000001000110111101011011001000011001100100000011001111111110101110110000000010101110100111010111110100111010100111111010011010001111101000110010000001011000100111001101011011111011001000000110010100001111101101101000110010000011011101001011101110011110000111101111010010111110110000110110111110000101010011101011011011001100100010101101000111110111100100011110110111110001110100101011001010010110000 1010010110100001010100100110001011011110000111111000001100111011101110100100010000110110010011100101011000001000110101010010000111111101000101111100001101111111100011000001000010011100011101101110100001011110100011001111011111011000111001000100101000110110111011000011110101110100000110111000001111101111101001101010110010111001101000000100111101000101100100110110000110010010011000101111000100101110 0010001111010110011000110000101101110100100001101100110110010111101010110001110101001110010111011111100001010100100010111011111110000010110000001110011101110101001110100111010000000111010101101011101000110001000010110111101001110000110111101100101010011011101111001110111010011000001001011000110010001011110110101100100100111100101111001111011000001000010101100110011001001000111011110011000100111001 1010100100010010011110010001010101000010011000101001000111010011100101101010100111111101011111111100011001101000111101100110100110111111100111101111000101001011100111011000100000100110111101110100000011100101111111010100010111000011110100100010000001011111110111110100100011111001001001000110000100100100001011001100111000000110011011101010010000011111010011110010000110001101011110001000000010101100 1001101010100110101011011011011111100011111001101011011110100100011011111011101010000111010101101101011000000100011001101000110001001001110101110101110000101111111001011001011001000010001101010000010101110000000100100010111001100110000101100011010101011100000000011110011101111001010101001000101111011001010100010000101111001000101001001100100000010010110000100111110111011101001010010000110011110011 0010001111100000001110100100010111110111111010010000101110110011001010010001101100100000011100101010110111110000110000100110110011011010011110001000001001010110010110000011100000100010011010011101110100100011101011001001011000101010111111101100000100010011001001001000010101000110010001100110111110011001100100100111001101000001000001100100100010011101001010011001100011000000000001011011100111101110 1010010100111110101100011001001011111111111101100110011001100101101100010001010111100011010010101100000000110011111001011110010010000100111011101110100000000111010011011001000110010000111100010011111010110101111001101101100101101001011000000111101000101001000101110111101010110000101100011010111111100010011011110110111101111001011110111111000010011010101110101111110100100100010000001111101010100101 0100001111100011100110011011101000111111111110001101011111101001011001001001000001101000111101011001001010110000100000111000101100101111110010101001101110000011110010011101011110000110000000101101110101000001000110100010000100111100011011001110100000100011011010111011100011000010111111011100000110101000001001000111001110001010111010101100001100011101111101001010100110101110011000111100010110011100 0001110000110100111010100101000111001110111010010110000001110011010111101001101001001000001110111110010101111000010000000101001101001111111111000111101101011010101000100110011100111111101000111101101000110010000011111010010010100001111100101011010110001110100011010111101011111111110110011100101011101111110010101001111101010101001110000111100101111000011100110011110000000000000000100000111100110101 0100110101101001000001110100010110110010000110111011010111100000000101000100100001001111001100100101111110010010101001110111111110000101100110110111100001100011011011110000011110110110110011010101101100110000000100111010100110111111111101101001100110010001011001100101110100100010110001100110111111110001000011101101110010001011111010011101110111101011001110011011110100111000100011100110011110010001 0111001100011110010001001011100001101100010101100110010001101101001000000010101011011111001110010000110001001000000111011100001100010010011100010110010011011110110111100011001110100001011100000000101110101001110000010000001111100111000000011101011100100100011001100001010100011000110110101010000111111011010100101101000100101001100001010001100011001111101101111010100010000001101101001111000001111011 1001010110101000110100011010011100101101101011101101000100111101101100111110111010001000001101011111011010000010000011011101000011100111101001011000000000000011001010010101101101101001001000101001001101110000010010010010100110001011010111011011111001000001010101111111100101110111000111010000000101010101001101011000011001111100011101000001110110101001010011111111010011011011110011110000011000101110 1000011111101110011000010000011001001001110000001101010000001111111111000011001010110101001011111011000110000010101011100000010100100010000111101011001010111101001000001111000101010011000101000000100101001000100010000100101000000110010100110110110110000001110101011100011101100010011110111011111110000110100101110100011001100101111110100001101000010001100111010101101111100000000011111111000110100110 0010000110000110101001100001000101111000101100111101001010011010010010100001010001101000101000010001111101001001000111101001110011010110101010111101110011001111000011101011010100010111100111001110110010010111101111010101111111100111111001011100000100111100101010001111100010011111111010001001001010011100110111000000011101001010000000010100000011110011001001101101110010110111010001101101111001000101 0001111111011110001010100010000001100011111010010010010100111000110001010100111110100101110111010001010001101111111010001011111100001011110010001101100100001011011100000000111101111100111001111001001100001101100000100100001111011110011001001110010110011100111010010000100010110100110110110011000101001011001001010101001100010010011011110010000010010101011010111100101110000100111011001000010011100110 0111010101101100111001110110000000100111110110000010001000001011010101011100100101010001100110000000010100100100101011111011111011101000011001100110010101110100000010111101001111100001101111100011101011011110011111001000100001111100001010010011101101101110100101010011111001100010110000000111001011001010010000010011001001100010110000110111011101000000011111001001000101101011110101110001110100111100 0001110100011000111010000011100110011111101111100101001000011000001100011111101001000111001000101010110100111000011011100001001110010010011111101000001000101100101110110100101111111011000110111001011110000001101001111100000000011001001011110001100010110110111010111011101111001111000111011101101100100011111100010000100001110001011011000010100101111100001100111101011001111101100011001000011100000110 0010001111111101110100010000011101011100100010101101111011111001000001100101000110101011011101000111111000110100010011010011110100101010010110001110100000100001001101011010111101101011010001000101111000010110001011101110010100001010110010011101110000000100101111010111111100011010010001000101010010010101111100001010111001001101011110110110001001101100000101011010001101001011111101001000000010001000 1101000010001001000011011111011100101011111011100010111111000110101011010010100001010011001100111100000110001111100101010100110100100101010011111101110010011010100101000010101000111110001111010101110011011110111011010011101010100110001011111011111111110001100001101101111010001101101100110000101101011001110000000001000010000100010001100111101000101101101100110100000110001001110111001100111011011001 1111110011010100011110011110001000101011000110010100111110110011111100000001101100101100100100100100100110001110110000111011100000001001101000110000001101101111100110100001101100110010100001110010101010010110111110010010010001101010011011010010110100010100001001010010100010010111100001101011111010010110010101010100110000100000001101110111001100010011100000101011111010000100001111101010000111010100 1001111011110100010011100011110100100010110001101111101011110011010100011110011001001100111111000101010110001110010010011100010100101100001011110100001010011100001100111110111011010000111100101101000110010100001001011000100111111011001111100111011010111111110111001001000100110011100111101100111110001010111111111100111001001000110010101111010111001011000111101111011110001101000100011110101011101001 1000111100011110000101011100010010100001101010110010000101010111100000001111101010011010010001000010100101110100001111000000000000001011000101010010110110000011010100010011101010111010000111111101111000111001011110001001100011010101010001100110100100101011100111010101010101111100100110011100110011011011100010011100010011100110101011100100101110111101010111010110010100101011011010011001110101010000 0100110101111101001001101110001000101000010010000101000110110000010011010010111100000011011100101101111000100101000001000010111010011001111100000000000010011011100101101111011110110101000001100011000101001011100111111111110101111011110110101111110000011001010010011000111100010011001111000110100010111111011011100101000100110001001101110100000011101110000101001101101111100001010110000100011100111110 0011100111101000011010001101011001000101011011001111011100100111111110011000110011001101100010100111100010001111011100001001011010000010000011110100100011110100110100001010001111111101111000111010110100110001100111100101000101100011100001100100100100000110010011000101110101001010111001111111001001000001110010011110001001010011000111100010100001011010010000001111111100100110011001001100100110110001 1101100000000011101010010100111000110101110111100101010101101110111001011001000010000110101111001100100110001100001111110110000100110100100100000000100010111100111101000011110010100011010101010101010101001101100001100010011000111001010010111101100000000000101011101001011101001000000101011011111101000000001111011000010001011010110111101111000010101100101101011110100010100110100011010000010111101100 0101110010011110111010010111100111000111011100011100010100010110100000011110011100110010001101100110010001010011111110101000001100110010101010011000101110000111110010100000100101010011000011100110110000010110010100111000110000101110110111010110101000001011000011011011111110011001101010001000100111110001000111111100101011110011000110111011100101110000001010101101101111011001110001010011100011010100 0001000111001111100100000100100111100101010111110000101100100110111111111011001011110110101101111110100001000001110011110100110000001101011101110110110101001010101100100110101111100000111111111101101011000100100111111001000010111010100101000010101010101100001101101100011000100010101011011111101011010010100111010011111110101110101101011011101101100010000100100001010110110000000101001011111000001110 1110010000101001101111011110100111100011101001011101111111110000111010101010100000000100000001010110011011110111111110101001011001101000000001001001100001001100001110001100010010110000011011011010011100010100010011100110000100011001101010011011001000010101010101010110010101000111101010000111011110110000100111001101011110101001010110001010001110110101010110000011001011100000111100010010001001100101
cTrader AlgocTrader

cTrader(cBot)からの通知をLINEで受け取る

5/31/2021 4/23/2023

4年以上前の記事です。内容が古くなっている可能性があります。

(2021/10/11 注意点を追記)

LINEで通知を受け取りたい!

メッセージングアプリなに使ってますか?有名どころのWhatsApp、仕事ならSlack、cTrader情報用にTelegramとかいろいろ使い分けてる方も多いかもしれませんが、日本で生活してる方であれば「なんだかんだ結局LINEを一番使ってる」という人も多いことでしょう。

cTrader(cAlgo)でもe-Mailでの通知機能はあるので、cBotやインジケーターからメール通知を出すことはできます。でも、今時メールって・・・最近ではメールなんて仕事以外ではめったに使わないという方も増えてきていると思います。

そんな方のためにも、今回はポジション決済をLINEに通知するインジケーターとLINE通知のサンプルコード紹介したいと思います。

参考までにこんな感じ。

 

 

前準備

自分でプログラムを作るにしても、インジケーターを使ってみるだけにしても、前準備が必要です。

LineNotifyのアクセストークンを取得する

LINE公式のLINE Notifyという機能を利用します。このページからまずLINEのアカウントでログインしてください。

ログインしたら「ログイン」と書かれていた場所が自分の名前に変わるので、そこをクリックして「マイページ」を選択します。

切り替わったページの「アクセストークンの発行」「トークンを発行する」を選択します。

トークン名は好きに名前つけてください。cBotから送られるメッセージの冒頭に表示されます。私はブローカー名にしてます。

「1:1でLINE Notify から通知を受け取る」を選びます

 

表示されたアクセストークンを控えておく

この画面が出たら表示されたアクセストークンをどこかにコピペしておいてください。

記載ありますが、この画面を消してしまうと二度と表示されないため、必ずここで記録しておくようにしてください。

このアクセストークンをそのままインジケーターのパラメータとして使用します

 

 

PositionNotifyAtLine

機能概要

こんな風にポジションのエントリーと決済をLINEで通知します。

どこか一つのチャートで動かしておけば、その口座の全ての通貨ペアでエントリーと決済をLINEに送ってくれます。

逆に言うと2つ以上のチャートでインジケーターが動いてると2通同じ通知が来てしまいますのでご注意ください。

口座通貨は円口座とドル口座のみ対応です。他通貨口座への対応希望あればコメントください。

 

パラメータ

AccessToken

上記で取得したアクセストークンを指定します。これが間違ってると何も起きません

NotifyEntry

ポジションのエントリーを通知するかどうか設定します。指値逆指値注文使う人用。デフォルトはNo。常に成り行き注文しかしないならNoでいいかと。

WithSticker

上記画像のようにスタンプ付きで知らせるかどうか。デフォルトはYesですが、うっとうしければNoにしてください。

OnlyThisSymbol

適用してるチャートの通貨ペアの通知のみを受け取りたいときにYesに。デフォルトはNoでその口座全てのシンボルの通知を送ります

 

ダウンロード

こちらからどうぞ。ダウンロードしたらダブルクリックしてcTraderにインストールしてください。

(2022/11/09 追記)

cTrader4.2以上はこちらをご利用ください。編集したい方もターゲットフレームワークの変更は不要です

(追記ここまで)

なお、LINE Notifyの利用にアクセス権限が必要なため、起動時にこんな感じの警告メッセージが出ます。「許可」してあげてください。

 

 

自分で作ってみたい人へ

ソースコード付きなので自由に改造していただいて構いません。

 

通知の条件を変えたい

ポジションのエントリークローズではなくて、特定の価格に達したらとか、ラインタッチしたらとか、人によって通知を出したい条件は違うと思います。

ソースコード自体は少なく、さほど難しくもないため、上記ソースコードをそのまま改造していただくのが一番簡単だと思います。

LINEにメッセージを送りたい部分で、SendLineAsyncメソッドかSendLineWithStickerAsyncメソッドを呼び出すだけです。

 

送るスタンプを変えたい

ムーンの顔が気に食わないという人もいるでしょう。

LineDevelopersのこのページを確認して、SendLineWithStickerAsyncの引数(StickerPackIdとStickerId)を好きなスタンプのIdを渡してあげてください。

StickerPackIdがパッケージID、StickerIDが個々のスタンプのIDです。

 

(2023/04/23 追記)

下記のターゲットフレームワーク変更はcTrader4.1以前の頃のやり方です。現在のcTraderで新規作成をした場合は最初からターゲットフレームワークが.NET 6というものが選択されているはずです。

もし古いインジケーターを編集したいなどで”.NetFramework 4.x(Legacy)”となってるようであれば、現在はcTraderからターゲットフレームワークを変更できるようになっているので、ここで.NET 6に変更するだけで使用できます。

(追記ここまで これ以下の情報はcTrader4.1以前を使ってる場合の話です)

 

最初から自分で作ってみたい

最初から自分で作るかもしくはすでに作ってあるcBotやインジケーターに組み込みたい場合、上記のメソッドをコピペしただけでは動きません

初期状態ではSystem.Net.Http名前空間が使えないのです。仕組みの説明は抜きにして、とりあえずサンプルコードコピペで動くようにするまでのやり方だけ記しておきます。

 

やり方

VisualStudioを使用してる前提で話を進めます。

プロジェクトメニューの一番下、「~~~のプロパティ」を開いてください。

こんな画面になりますので、対象のフレームワークを.NetFrameWork4.5以上に変更します。自分で使うだけなら一番新しいの選んでおけば大丈夫です。

続いて参照の追加をします。ソリューションエクスプローラ(多分画面右)のプロジェクトツリーの「参照」を右クリックして「参照の追加」。

検索して、System.Net.Httpを探して、チェック入れてOKを押します。(ここにSystem.Net.Httpがない場合、ターゲットフレームワークを再度確認して下さい。)

これで上記ファイルのソースコードコピペでコンパイルできるはずです。

コピペする場合は、メソッドだけではなく冒頭のusing文もお忘れなく

 

 

(2021年10月11日追記 )

cTraderでコンパイルする際の注意点

このインジケーターをcTraderでコンパイルしなおすとエラーになります!

当インジケータのソースコードをcTraderは受け付けてくれません(泣)

VisualStudioではなくcTraderで編集する場合は設定画面からAuto Format Code in Code Editorのチェックを外してください。

 

 

なにが起きてるか

コメントいただいて判明したのですが、ビルドと同時にAutoFormatされることでasyncというキーワードが削除されるようです。(パン太さん情報ありがとうございました!)

そしてこんなエラーメッセージが出るのです。

このメソッドに’async’修飾子を指定し・・・」って、いやいや!アナタが勝手に消したんですよ!cTraderさん!!

cTraderで使われてる.net framework4.0内では本来対応してない修飾子なので消えちゃうのかもしれませんが・・・いや、使えるんだったら消さないでくださいな。

まぁバグなんでしょうね。この他にもcTraderのAuto Format機能は不思議な挙動を示すことが多いため、あまりあてにしない方がいいです。

基本的にはVisualStudioでの編集及びビルドをお勧めします。(cTrader側でビルドボタンさえ押さなきゃ大丈夫です)


まだコメントはありません

新しいコメント

コメントは承認後に公開されます。承認まで次のコメントは投稿できません。

cTrader's Life

© 2025 ajinori