1INIT 2WANTSTATE p 3 4!DECRQM on with mouse off 5PUSH "\e[?1000\$p" 6 output "\e[?1000;2\$y" 7PUSH "\e[?1002\$p" 8 output "\e[?1002;2\$y" 9PUSH "\e[?1003\$p" 10 output "\e[?1003;2\$y" 11 12!Mouse in simple button report mode 13RESET 14 settermprop 1 true 15 settermprop 2 true 16 settermprop 7 1 17PUSH "\e[?1000h" 18 settermprop 8 1 19 20!Press 1 21MOUSEMOVE 0,0 0 22MOUSEBTN d 1 0 23 output "\e[M\x20\x21\x21" 24 25!Release 1 26MOUSEBTN u 1 0 27 output "\e[M\x23\x21\x21" 28 29!Ctrl-Press 1 30MOUSEBTN d 1 C 31 output "\e[M\x30\x21\x21" 32MOUSEBTN u 1 C 33 output "\e[M\x33\x21\x21" 34 35!Button 2 36MOUSEBTN d 2 0 37 output "\e[M\x21\x21\x21" 38MOUSEBTN u 2 0 39 output "\e[M\x23\x21\x21" 40 41!Position 42MOUSEMOVE 10,20 0 43MOUSEBTN d 1 0 44 output "\e[M\x20\x35\x2b" 45 46MOUSEBTN u 1 0 47 output "\e[M\x23\x35\x2b" 48MOUSEMOVE 10,21 0 49 # no output 50 51!Wheel events 52MOUSEBTN d 4 0 53 output "\e[M\x60\x36\x2b" 54MOUSEBTN d 4 0 55 output "\e[M\x60\x36\x2b" 56MOUSEBTN d 5 0 57 output "\e[M\x61\x36\x2b" 58 59!DECRQM on mouse button mode 60PUSH "\e[?1000\$p" 61 output "\e[?1000;1\$y" 62PUSH "\e[?1002\$p" 63 output "\e[?1002;2\$y" 64PUSH "\e[?1003\$p" 65 output "\e[?1003;2\$y" 66 67!Drag events 68RESET 69 settermprop 1 true 70 settermprop 2 true 71 settermprop 7 1 72PUSH "\e[?1002h" 73 settermprop 8 2 74 75MOUSEMOVE 5,5 0 76MOUSEBTN d 1 0 77 output "\e[M\x20\x26\x26" 78MOUSEMOVE 5,6 0 79 output "\e[M\x40\x27\x26" 80MOUSEMOVE 6,6 0 81 output "\e[M\x40\x27\x27" 82MOUSEMOVE 6,6 0 83 # no output 84MOUSEBTN u 1 0 85 output "\e[M\x23\x27\x27" 86MOUSEMOVE 6,7 87 # no output 88 89!DECRQM on mouse drag mode 90PUSH "\e[?1000\$p" 91 output "\e[?1000;2\$y" 92PUSH "\e[?1002\$p" 93 output "\e[?1002;1\$y" 94PUSH "\e[?1003\$p" 95 output "\e[?1003;2\$y" 96 97!Non-drag motion events 98PUSH "\e[?1003h" 99 settermprop 8 3 100 101MOUSEMOVE 6,8 0 102 output "\e[M\x43\x29\x27" 103 104!DECRQM on mouse motion mode 105PUSH "\e[?1000\$p" 106 output "\e[?1000;2\$y" 107PUSH "\e[?1002\$p" 108 output "\e[?1002;2\$y" 109PUSH "\e[?1003\$p" 110 output "\e[?1003;1\$y" 111 112!Bounds checking 113MOUSEMOVE 300,300 0 114 output "\e[M\x43\xff\xff" 115MOUSEBTN d 1 0 116 output "\e[M\x20\xff\xff" 117MOUSEBTN u 1 0 118 output "\e[M\x23\xff\xff" 119 120!DECRQM on standard encoding mode 121PUSH "\e[?1005\$p" 122 output "\e[?1005;2\$y" 123PUSH "\e[?1006\$p" 124 output "\e[?1006;2\$y" 125PUSH "\e[?1015\$p" 126 output "\e[?1015;2\$y" 127 128!UTF-8 extended encoding mode 129# 300 + 32 + 1 = 333 = U+014d = \xc5\x8d 130PUSH "\e[?1005h" 131MOUSEBTN d 1 0 132 output "\e[M\x20\xc5\x8d\xc5\x8d" 133MOUSEBTN u 1 0 134 output "\e[M\x23\xc5\x8d\xc5\x8d" 135 136!DECRQM on UTF-8 extended encoding mode 137PUSH "\e[?1005\$p" 138 output "\e[?1005;1\$y" 139PUSH "\e[?1006\$p" 140 output "\e[?1006;2\$y" 141PUSH "\e[?1015\$p" 142 output "\e[?1015;2\$y" 143 144!SGR extended encoding mode 145PUSH "\e[?1006h" 146MOUSEBTN d 1 0 147 output "\e[<0;301;301M" 148MOUSEBTN u 1 0 149 output "\e[<0;301;301m" 150 151!DECRQM on SGR extended encoding mode 152PUSH "\e[?1005\$p" 153 output "\e[?1005;2\$y" 154PUSH "\e[?1006\$p" 155 output "\e[?1006;1\$y" 156PUSH "\e[?1015\$p" 157 output "\e[?1015;2\$y" 158 159!rxvt extended encoding mode 160PUSH "\e[?1015h" 161MOUSEBTN d 1 0 162 output "\e[0;301;301M" 163MOUSEBTN u 1 0 164 output "\e[3;301;301M" 165 166!DECRQM on rxvt extended encoding mode 167PUSH "\e[?1005\$p" 168 output "\e[?1005;2\$y" 169PUSH "\e[?1006\$p" 170 output "\e[?1006;2\$y" 171PUSH "\e[?1015\$p" 172 output "\e[?1015;1\$y" 173