summaryrefslogtreecommitdiff
path: root/src/buildvm_x64.h
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/buildvm_x64.h2027
1 files changed, 1023 insertions, 1004 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index bdf85282..485613e0 100644
--- a/src/buildvm_x64.h
+++ b/src/buildvm_x64.h
@@ -12,7 +12,7 @@
12#define DASM_SECTION_CODE_OP 0 12#define DASM_SECTION_CODE_OP 0
13#define DASM_SECTION_CODE_SUB 1 13#define DASM_SECTION_CODE_SUB 1
14#define DASM_MAXSECTION 2 14#define DASM_MAXSECTION 2
15static const unsigned char build_actionlist[13689] = { 15static const unsigned char build_actionlist[13995] = {
16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141, 16 254,1,248,10,252,247,195,237,15,132,244,11,131,227,252,248,41,218,72,141,
17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4, 17 76,25,252,248,139,90,252,252,199,68,10,4,237,248,12,131,192,1,137,68,36,4,
18 252,247,195,237,15,132,244,13,248,14,252,247,195,237,15,132,244,10,65,199, 18 252,247,195,237,15,132,244,13,248,14,252,247,195,237,15,132,244,10,65,199,
@@ -98,583 +98,598 @@ static const unsigned char build_actionlist[13689] = {
98 252,253,239,15,131,244,55,139,90,252,252,137,68,36,4,137,106,252,252,139, 98 252,253,239,15,131,244,55,139,90,252,252,137,68,36,4,137,106,252,252,139,
99 42,137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105, 99 42,137,106,252,248,131,232,2,15,132,244,248,137,209,248,1,131,193,8,139,105,
100 4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139, 100 4,137,105,252,252,139,41,137,105,252,248,131,232,1,15,133,244,1,248,2,139,
101 68,36,4,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,184, 101 68,36,4,252,233,244,56,248,57,129,252,248,239,15,130,244,55,139,106,4,137,
102 237,252,247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255, 102 252,233,193,252,249,15,131,252,249,252,254,15,132,244,249,255,184,237,252,
103 139,106,252,248,139,132,253,197,233,139,90,252,252,199,66,252,252,237,137, 103 247,213,57,232,255,15,71,197,255,15,134,244,247,137,232,248,1,255,248,2,139,
104 66,252,248,252,233,244,58,248,59,129,252,248,239,15,130,244,55,139,106,4, 104 106,252,248,139,132,253,197,233,139,90,252,252,199,66,252,252,237,137,66,
105 139,90,252,252,129,252,253,239,15,133,244,252,248,1,139,42,139,173,233,248, 105 252,248,252,233,244,58,248,3,184,237,252,233,244,2,248,59,129,252,248,239,
106 2,133,252,237,199,66,252,252,237,15,132,244,58,65,139,134,233,199,66,252, 106 15,130,244,55,139,106,4,139,90,252,252,129,252,253,239,15,133,244,252,248,
107 252,237,137,106,252,248,139,141,233,255,35,136,233,105,201,239,3,141,233, 107 1,139,42,139,173,233,248,2,133,252,237,199,66,252,252,237,255,15,132,244,
108 248,3,129,185,233,239,15,133,244,250,57,129,233,15,132,244,251,248,4,139, 108 58,65,139,134,233,199,66,252,252,237,137,106,252,248,139,141,233,35,136,233,
109 137,233,133,201,15,133,244,3,252,233,244,58,248,5,139,105,4,129,252,253,239, 109 105,201,239,3,141,233,248,3,129,185,233,239,15,133,244,250,57,129,233,15,
110 15,132,244,58,255,139,1,137,106,252,252,137,66,252,248,252,233,244,58,248, 110 132,244,251,248,4,139,137,233,133,201,15,133,244,3,255,252,233,244,58,248,
111 6,129,252,253,239,15,132,244,1,129,252,253,239,15,135,244,253,189,237,248, 111 5,139,105,4,129,252,253,239,15,132,244,58,139,1,137,106,252,252,137,66,252,
112 7,252,247,213,65,139,172,253,174,233,252,233,244,2,248,60,129,252,248,239, 112 248,252,233,244,58,248,6,129,252,253,239,15,132,244,1,129,252,253,239,15,
113 15,130,244,55,129,122,253,4,239,15,133,244,55,255,139,42,131,189,233,0,15, 113 135,244,253,189,237,248,7,252,247,213,65,139,172,253,174,233,252,233,244,
114 133,244,55,129,122,253,12,239,15,133,244,55,139,66,8,137,133,233,139,90,252, 114 2,248,60,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,
115 252,199,66,252,252,237,137,106,252,248,252,246,133,233,235,15,132,244,247, 115 139,42,131,189,233,0,15,133,244,55,129,122,253,12,239,15,133,244,55,139,66,
116 128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,248,1,252,233,244, 116 8,137,133,233,139,90,252,252,199,66,252,252,237,137,106,252,248,252,246,133,
117 58,248,61,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244, 117 233,235,15,132,244,247,128,165,233,235,255,65,139,134,233,65,137,174,233,
118 55,137,213,139,50,141,82,8,139,124,36,16,232,251,1,9,137,252,234,139,40,139, 118 137,133,233,248,1,252,233,244,58,248,61,129,252,248,239,15,130,244,55,129,
119 64,4,139,90,252,252,137,106,252,248,137,66,252,252,252,233,244,58,248,62, 119 122,253,4,239,15,133,244,55,137,213,139,50,141,82,8,139,124,36,16,232,251,
120 129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,255,252,242, 120 1,9,137,252,234,139,40,139,64,4,139,90,252,252,137,106,252,248,137,66,252,
121 15,16,2,252,233,244,63,255,221,2,252,233,244,64,255,248,65,129,252,248,239, 121 252,252,233,244,58,248,62,129,252,248,239,15,133,244,55,129,122,253,4,239,
122 15,130,244,55,139,90,252,252,129,122,253,4,239,15,133,244,249,139,2,248,2, 122 255,15,135,244,55,255,252,242,15,16,2,252,233,244,63,255,221,2,252,233,244,
123 199,66,252,252,237,137,66,252,248,252,233,244,58,248,3,129,122,253,4,239, 123 64,255,248,65,129,252,248,239,15,130,244,55,139,90,252,252,129,122,253,4,
124 15,135,244,55,65,131,190,233,0,15,133,244,55,65,139,174,233,65,59,174,233, 124 239,15,133,244,249,139,2,248,2,199,66,252,252,237,137,66,252,248,252,233,
125 255,15,130,244,247,232,244,66,248,1,139,108,36,16,137,149,233,137,92,36,20, 125 244,58,248,3,129,122,253,4,239,15,135,244,55,65,131,190,233,0,15,133,244,
126 137,214,137,252,239,232,251,1,10,139,149,233,252,233,244,2,248,67,129,252, 126 55,65,139,174,233,65,59,174,233,255,15,130,244,247,232,244,66,248,1,139,108,
127 248,239,15,130,244,55,15,132,244,248,248,1,129,122,253,4,239,15,133,244,55, 127 36,16,137,149,233,137,92,36,20,137,214,137,252,239,232,251,1,10,139,149,233,
128 139,108,36,16,137,149,233,255,139,90,252,252,139,50,141,82,8,137,252,239, 128 252,233,244,2,248,67,129,252,248,239,15,130,244,55,15,132,244,248,248,1,129,
129 137,92,36,20,232,251,1,11,139,149,233,133,192,15,132,244,249,139,106,8,139, 129 122,253,4,239,15,133,244,55,139,108,36,16,137,149,233,255,139,90,252,252,
130 66,12,137,106,252,248,137,66,252,252,139,106,16,139,66,20,137,42,137,66,4, 130 139,50,141,82,8,137,252,239,137,92,36,20,232,251,1,11,139,149,233,133,192,
131 248,68,184,237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199, 131 15,132,244,249,139,106,8,139,66,12,137,106,252,248,137,66,252,252,139,106,
132 66,252,252,237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,139,106, 132 16,139,66,20,137,42,137,66,4,248,68,184,237,252,233,244,69,248,2,199,66,12,
133 252,248,129,122,253,4,239,255,15,133,244,55,139,133,233,139,90,252,252,199, 133 237,252,233,244,1,248,3,199,66,252,252,237,252,233,244,58,248,70,129,252,
134 66,252,252,237,137,66,252,248,199,66,12,237,184,237,252,233,244,69,248,71, 134 248,239,15,130,244,55,139,106,252,248,129,122,253,4,239,255,15,133,244,55,
135 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,129,122,253, 135 139,133,233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,
136 12,239,15,135,244,55,139,90,252,252,255,252,242,15,16,66,8,72,189,237,237, 136 184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,
137 102,72,15,110,205,252,242,15,88,193,252,242,15,45,192,252,242,15,17,66,252, 137 239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,90,252,252,255,252,
138 248,255,139,42,59,133,233,15,131,244,248,193,224,3,3,133,233,248,1,129,120, 138 242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,
139 253,4,239,15,132,244,72,139,40,139,64,4,137,42,137,66,4,252,233,244,68,248, 139 15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193,
140 2,131,189,233,0,15,132,244,72,137,252,239,137,213,137,198,232,251,1,12,137, 140 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,139,40,139,64,4,137,
141 252,234,133,192,15,133,244,1,248,72,184,237,252,233,244,69,248,73,255,129, 141 42,137,66,4,252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,239,
142 252,248,239,15,130,244,55,139,106,252,248,129,122,253,4,239,15,133,244,55, 142 137,213,137,198,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,
143 139,133,233,139,90,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192, 143 237,252,233,244,69,248,73,255,129,252,248,239,15,130,244,55,139,106,252,248,
144 252,242,15,17,66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248, 144 129,122,253,4,239,15,133,244,55,139,133,233,139,90,252,252,199,66,252,252,
145 74,129,252,248,239,15,130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182, 145 237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,
146 174,233,193,252,237,235,131,229,1,1,252,235,252,233,244,27,248,75,129,252, 146 8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74,
147 248,239,15,130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137, 147 8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237,235,131,229,1,1,252,
148 106,12,199,66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2, 148 235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239,
149 187,237,252,233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,90, 149 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,90,8,137,106,
150 252,252,137,92,36,20,137,44,36,129,122,253,4,239,15,133,244,55,72,131,189, 150 8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129,252,248,239,
151 233,0,15,133,244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244, 151 15,130,244,55,139,42,139,90,252,252,137,92,36,20,137,44,36,129,122,253,4,
152 247,255,59,141,233,15,132,244,55,248,1,141,92,193,252,240,59,157,233,15,135, 152 239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,15,135,244,
153 244,55,137,157,233,139,108,36,16,137,149,233,131,194,8,137,149,233,141,108, 153 55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141,92,193,
154 194,232,72,41,221,57,203,15,132,244,249,248,2,139,68,43,4,137,67,252,252, 154 252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,16,137,149,233,131,
155 139,4,43,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139, 155 194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244,249,248,2,139,
156 60,36,232,244,24,65,199,134,233,237,255,139,108,36,16,139,28,36,139,149,233, 156 68,43,4,137,67,252,252,139,4,43,137,67,252,248,131,252,235,8,57,203,15,133,
157 129,252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233, 157 244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,255,139,108,36,
158 68,137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15, 158 16,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139,233,
159 135,244,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131, 159 68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4,26,
160 193,8,68,57,252,249,15,133,244,5,248,6,141,67,2,199,66,252,252,237,248,7, 160 193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248,5,139,1,137,
161 139,92,36,20,137,68,36,4,72,199,193,252,248,252,255,252,255,252,255,252,247, 161 4,41,139,65,4,137,68,41,4,131,193,8,68,57,252,249,15,133,244,5,248,6,141,
162 195,237,255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,139, 162 67,2,199,66,252,252,237,248,7,139,92,36,20,137,68,36,4,72,199,193,252,248,
163 233,131,252,233,8,137,139,233,139,1,137,2,139,65,4,137,66,4,184,237,252,233, 163 252,255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14,
164 244,7,248,9,139,12,36,68,137,185,233,137,222,137,252,239,232,251,1,0,139, 164 248,8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,139,1,137,
165 149,233,252,233,244,4,248,77,139,106,252,248,139,173,233,139,90,252,252,137, 165 2,139,65,4,137,66,4,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,
166 92,36,20,137,44,36,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15, 166 137,222,137,252,239,232,251,1,0,139,149,233,252,233,244,4,248,77,139,106,
167 135,244,55,139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141, 167 252,248,139,173,233,139,90,252,252,137,92,36,20,137,44,36,72,131,189,233,
168 92,193,252,248,59,157,233,15,135,244,55,137,157,233,139,108,36,16,137,149, 168 0,15,133,244,55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244,
169 233,137,149,233,141,108,194,252,240,72,41,221,57,203,15,132,244,249,248,2, 169 247,59,141,233,15,132,244,55,248,1,141,92,193,252,248,59,157,233,15,135,244,
170 255,139,68,43,4,137,67,252,252,139,4,43,137,67,252,248,131,252,235,8,57,203, 170 55,137,157,233,139,108,36,16,137,149,233,137,149,233,141,108,194,252,240,
171 15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,139,108, 171 72,41,221,57,203,15,132,244,249,248,2,255,139,68,43,4,137,67,252,252,139,
172 36,16,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139, 172 4,43,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139,60,
173 233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4, 173 36,232,244,24,65,199,134,233,237,139,108,36,16,139,28,36,139,149,233,129,
174 26,193,252,235,3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5,139, 174 252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,68,
175 1,137,4,41,139,65,4,137,68,41,4,131,193,8,68,57,252,249,15,133,244,5,248, 175 137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,135,
176 6,141,67,1,248,7,139,92,36,20,137,68,36,4,49,201,252,247,195,237,15,132,244, 176 244,255,255,137,213,72,41,205,248,5,139,1,137,4,41,139,65,4,137,68,41,4,131,
177 13,252,233,244,14,248,8,137,222,137,252,239,232,251,1,13,248,9,139,12,36, 177 193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,20,137,68,
178 68,137,185,233,137,222,137,252,239,232,251,1,0,139,149,233,252,233,244,4, 178 36,4,49,201,252,247,195,237,15,132,244,13,252,233,244,14,248,8,137,222,137,
179 248,78,139,108,36,16,72,252,247,133,233,237,15,132,244,55,255,137,149,233, 179 252,239,232,251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252,239,232,
180 141,68,194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233, 180 251,1,0,139,149,233,252,233,244,4,248,78,139,108,36,16,72,252,247,133,233,
181 252,233,244,16,255,248,64,139,90,252,252,221,90,252,248,252,233,244,58,248, 181 237,15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,
182 79,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 182 137,133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90,252,252,
183 15,16,2,72,184,237,237,102,72,15,110,200,15,84,193,248,63,139,90,252,252, 183 221,90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,
184 252,242,15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122, 184 253,4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,
185 253,4,239,15,135,244,55,221,2,217,225,248,63,248,64,139,90,252,252,221,90, 185 15,84,193,248,63,139,90,252,252,252,242,15,17,66,252,248,255,248,79,129,252,
186 252,248,255,248,58,184,237,248,69,137,68,36,4,248,56,252,247,195,237,15,133, 186 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,
187 244,253,248,5,56,67,252,255,15,135,244,252,15,182,75,252,253,72,252,247,209, 187 248,64,139,90,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,
188 141,20,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 188 4,248,56,252,247,195,237,15,133,244,253,248,5,56,67,252,255,15,135,244,252,
189 252,238,248,6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199, 189 15,182,75,252,253,72,252,247,209,141,20,202,139,3,15,182,204,15,182,232,131,
190 193,252,248,252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248, 190 195,4,193,232,16,65,252,255,36,252,238,248,6,199,68,194,252,244,237,131,192,
191 239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233, 191 1,252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,
192 244,63,248,81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 192 244,14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
193 55,252,242,15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15, 193 244,55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,
194 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252, 194 129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,
195 233,244,63,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 195 248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
196 135,244,55,221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130, 196 252,242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,
197 244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248, 197 244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,
198 83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 198 81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,
199 2,232,244,84,252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129, 199 244,82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,
200 122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64, 200 4,239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,
201 248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217, 201 239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,
202 252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,248,239,255,15,130, 202 241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,
203 244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248, 203 15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,
204 89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217, 204 248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,
205 252,254,252,233,244,64,248,90,129,252,248,239,255,15,130,244,55,129,122,253, 205 252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
206 4,239,15,135,244,55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239, 206 135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,
207 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252, 207 130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,
208 233,244,64,248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15, 208 64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
209 135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243, 209 2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,
210 252,233,244,64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 210 255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
211 135,244,55,221,2,217,192,216,200,217,232,222,225,217,252,250,217,201,217, 211 217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,
212 252,243,252,233,244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4, 212 55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
213 239,15,135,244,55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95, 213 217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,
214 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15, 214 130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,
215 16,2,255,137,213,232,251,1,14,137,252,234,252,233,244,63,255,248,96,129,252, 215 252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,
216 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255, 216 15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,
217 137,213,232,251,1,15,137,252,234,252,233,244,63,255,248,97,129,252,248,239, 217 244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
218 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213, 218 244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,
219 232,251,1,16,137,252,234,252,233,244,63,248,98,255,248,99,129,252,248,239, 219 255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
220 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252, 220 252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,
221 248,252,242,15,89,133,233,252,233,244,63,255,248,99,129,252,248,239,15,130, 221 255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
222 244,55,129,122,253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,233, 222 252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,
223 252,233,244,64,255,248,100,129,252,248,239,15,130,244,55,129,122,253,4,239, 223 248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
224 15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243, 224 2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,
225 252,233,244,64,248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 225 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
226 135,244,55,129,122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253, 226 55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,
227 221,217,252,233,244,64,248,102,129,252,248,239,15,130,244,55,139,106,4,129, 227 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,
228 252,253,239,15,135,244,55,139,90,252,252,139,2,137,106,252,252,137,66,252, 228 55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,
229 248,209,229,129,252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249, 229 239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,90,252,252,
230 184,252,254,3,0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21, 230 139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,
231 41,197,255,252,242,15,42,197,255,137,44,36,219,4,36,255,139,106,252,252,129, 231 15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,
232 229,252,255,252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252, 232 0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,
233 242,15,17,2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252, 233 44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,
234 233,244,2,255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,72, 234 0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,
235 189,237,237,102,72,15,110,205,252,242,15,89,193,252,242,15,17,66,252,248, 235 252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,
236 255,221,2,199,4,36,0,0,128,90,216,12,36,221,90,252,248,255,139,106,252,252, 236 244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,
237 184,52,4,0,0,209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244, 237 242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90,216,
238 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248, 238 12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,
239 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139, 239 1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
240 90,252,252,209,229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224, 240 55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,122,253,
241 232,244,104,252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17, 241 4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,229,129,252,253,
242 34,255,217,192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,255,139, 242 0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,15,92,224,
243 66,252,252,139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248, 243 248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,220,
244 3,129,252,245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233, 244 252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,
245 244,1,255,217,252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15, 245 136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,
246 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 246 106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,
247 55,221,66,8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252, 247 201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,
248 233,244,64,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 248 239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,
249 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16, 249 252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,
250 74,8,232,244,107,252,233,244,63,255,248,106,129,252,248,239,15,130,244,55, 250 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
251 129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221, 251 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,
252 66,8,232,244,107,252,233,244,64,255,248,108,129,252,248,239,15,130,244,55, 252 63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
253 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,
254 64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
255 55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,
256 234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,
257 93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,
253 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197, 258 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,
254 15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16, 259 15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,
255 76,252,234,252,248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,109, 260 76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,
256 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15, 261 216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,
257 16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239, 262 4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,
258 15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,95,193,131,197, 263 133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,
259 1,252,233,244,1,255,248,5,221,216,252,233,244,55,255,248,110,129,252,248, 264 253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,1,15,130,244,72,
260 239,15,130,244,55,129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42, 265 15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36,
261 133,233,252,233,244,63,255,219,133,233,252,233,244,64,255,248,111,129,252, 266 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232,
262 248,239,15,133,244,55,129,122,253,4,239,15,133,244,55,139,42,139,90,252,252, 267 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,
263 131,189,233,1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233, 268 255,252,242,15,45,2,61,252,255,0,0,0,15,135,244,55,137,68,36,4,255,221,2,
264 244,63,255,137,44,36,219,4,36,252,233,244,64,255,248,112,65,139,174,233,65, 269 219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,36,24,1,0,
265 59,174,233,15,130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,55, 270 0,0,72,141,68,36,4,248,113,139,108,36,16,137,149,233,139,84,36,24,72,137,
266 129,122,253,4,239,15,135,244,55,255,252,242,15,45,2,61,252,255,0,0,0,15,135, 271 198,137,252,239,137,92,36,20,232,251,1,17,139,149,233,139,90,252,252,199,
267 244,55,137,68,36,4,255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135, 272 66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,59,
268 244,55,255,199,68,36,24,1,0,0,0,72,141,68,36,4,248,113,139,108,36,16,137, 273 174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,255,
269 149,233,139,84,36,24,72,137,198,137,252,239,137,92,36,20,232,251,1,17,139, 274 252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,255,
270 149,233,139,90,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248, 275 252,242,15,45,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,129,
271 114,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,199,68,36, 276 122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,108,
272 4,252,255,252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244, 277 36,24,139,173,233,255,252,242,15,45,74,8,255,139,68,36,4,57,197,15,130,244,
273 247,129,122,253,20,239,255,252,242,15,45,106,16,137,108,36,4,255,221,66,16, 278 251,248,2,133,201,15,142,244,253,248,3,139,108,36,24,41,200,15,140,244,115,
274 219,92,36,4,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239, 279 141,172,253,13,233,131,192,1,248,4,137,68,36,24,137,232,252,233,244,113,248,
275 15,135,244,55,139,42,137,108,36,24,139,173,233,255,252,242,15,45,74,8,255, 280 5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,2,248,
276 139,68,36,4,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139, 281 7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,0,0,252,
277 108,36,24,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68, 282 233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,130,244,
278 36,24,137,232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244, 283 55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,129,122,
279 2,248,6,137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193, 284 253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,252,242,
280 1,15,143,244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244, 285 15,45,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,244,115,
281 4,248,116,129,252,248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130, 286 131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,244,117,
282 244,247,232,244,66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,253, 287 15,182,141,233,65,139,174,233,137,68,36,24,248,1,136,77,0,131,197,1,131,232,
283 12,239,15,135,244,55,139,42,255,252,242,15,45,66,8,255,221,66,8,219,92,36, 288 1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,239,255,
284 4,139,68,36,4,255,133,192,15,142,244,115,131,189,233,1,15,130,244,115,15, 289 15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,
285 133,244,117,65,57,134,233,15,130,244,117,15,182,141,233,65,139,174,233,137, 290 1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,244,115,
286 68,36,24,248,1,136,77,0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252, 291 65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,24,65,139,
287 233,244,113,248,118,129,252,248,239,255,15,130,244,55,65,139,174,233,65,59, 292 158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,244,1,137,
293 216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,244,55,65,
294 139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,
295 15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,129,197,
296 239,137,92,36,4,137,68,36,24,65,139,158,233,252,233,244,249,248,1,15,182,
297 76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,131,252,
298 241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,
299 233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,233,65,59,
288 174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139, 300 174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,
289 42,139,133,233,133,192,15,132,244,115,65,57,134,233,15,130,244,119,129,197, 301 42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,
290 239,137,92,36,4,137,68,36,24,65,139,158,233,248,1,255,15,182,77,0,131,197, 302 36,24,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,97,15,
291 1,131,232,1,136,12,3,15,133,244,1,137,216,139,92,36,4,252,233,244,113,248, 303 130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,2,136,12,
292 120,129,252,248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244, 304 3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,248,122,
293 247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,65, 305 129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,213,139,
294 57,134,233,255,15,130,244,119,129,197,239,137,92,36,4,137,68,36,24,65,139, 306 58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,255,248,
295 158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248, 307 123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,
296 131,252,249,90,15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232, 308 15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,
297 1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,248,121,129,252,248,239, 309 252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,244,55,
298 15,130,244,55,255,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,
299 248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,15,
300 130,244,119,129,197,239,137,92,36,4,137,68,36,24,65,139,158,233,252,233,244,
301 249,248,1,15,182,76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,
302 15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,
303 137,216,139,92,36,4,252,233,244,113,248,122,129,252,248,239,15,130,244,55,
304 129,122,253,4,239,15,133,244,55,137,213,139,58,232,251,1,18,137,252,234,255,
305 252,242,15,42,192,252,233,244,63,255,248,123,129,252,248,239,15,130,244,55,
306 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15, 310 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,
307 110,205,252,242,15,88,193,102,15,126,197,252,242,15,42,197,252,233,244,63, 311 110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194,252,240,
308 255,248,124,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 312 248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,252,242,
309 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15, 313 15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,233,244,
310 126,197,255,137,68,36,4,141,68,194,252,240,248,1,57,208,15,134,244,125,129, 314 1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
311 120,253,4,239,15,135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15, 315 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
312 126,193,33,205,255,131,232,8,252,233,244,1,255,248,127,129,252,248,239,15, 316 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,205,255,
313 130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237, 317 248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
314 102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252, 318 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
315 242,15,88,193,102,15,126,193,9,205,255,248,128,129,252,248,239,15,130,244, 319 197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,248,129,
316 55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,
317 15,110,205,252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,
318 88,193,102,15,126,193,49,205,255,248,129,129,252,248,239,15,130,244,55,129,
319 122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,
320 205,252,242,15,88,193,102,15,126,197,255,15,205,252,233,244,125,255,248,130,
321 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15, 320 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,
322 16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255, 321 16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,
323 252,247,213,255,248,125,252,242,15,42,197,252,233,244,63,255,248,126,139, 322 15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,129,122,
324 68,36,4,252,233,244,55,255,248,131,129,252,248,239,15,130,244,55,129,122, 323 253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
324 252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,242,15,42,
325 197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248,131,129,
326 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,
327 239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,
328 15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,
329 15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252,248,239,
330 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
331 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,
332 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,
333 211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,15,130,244,
334 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
335 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
336 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,252,253,
337 137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244,55,129,122,
325 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2, 338 253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,
326 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252, 339 252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,
327 242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,229,137,193,252, 340 242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137,193,252,
328 233,244,125,255,248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 341 233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
329 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16, 342 135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,
330 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202, 343 74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,
331 137,200,102,15,126,197,102,15,126,201,255,211,252,237,137,193,252,233,244, 344 137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,244,125,
332 125,255,248,133,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 345 248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,16,139,90,
333 55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72, 346 252,252,137,92,36,20,137,149,233,141,68,194,252,248,141,136,233,137,133,233,
334 189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200, 347 139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,144,233,139,
335 102,15,126,197,102,15,126,201,255,211,252,253,137,193,252,233,244,125,255, 348 149,233,133,192,15,133,244,69,248,1,255,139,133,233,41,208,193,232,3,131,
336 248,134,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 349 192,1,139,106,252,248,57,90,252,252,15,133,244,248,139,157,233,139,11,15,
337 122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237, 350 182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,209,252,
338 237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 351 247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,234,
339 126,197,102,15,126,201,255,211,197,137,193,252,233,244,125,255,248,135,129, 352 252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,248,
340 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12, 353 5,190,237,137,252,239,232,251,1,0,139,149,233,252,233,244,1,248,66,93,72,
341 239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72, 354 137,108,36,24,139,108,36,16,137,92,36,20,137,149,233,255,141,68,194,252,248,
342 15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102, 355 137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,193,232,
343 15,126,201,255,211,205,137,193,252,233,244,125,248,117,184,237,252,233,244, 356 3,131,192,1,72,139,108,36,24,85,195,248,136,255,65,15,182,134,233,168,235,
344 55,248,119,184,237,248,55,139,108,36,16,139,90,252,252,137,92,36,20,137,149, 357 15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,255,142,
345 233,141,68,194,252,248,141,136,233,137,133,233,139,66,252,248,59,141,233, 358 233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,244,251,
346 15,135,244,251,137,252,239,252,255,144,233,139,149,233,133,192,15,133,244, 359 252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,168,235,
347 69,248,1,255,139,133,233,41,208,193,232,3,131,192,1,139,106,252,248,57,90, 360 15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,251,248,
348 252,252,15,133,244,248,139,157,233,139,11,15,182,252,233,15,182,205,131,195, 361 1,255,139,108,36,16,137,149,233,137,222,137,252,239,232,251,1,20,248,3,139,
349 4,65,252,255,36,252,238,248,2,137,209,252,247,195,237,15,133,244,249,15,182, 362 149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,67,252,254,
350 107,252,253,72,252,247,213,141,20,252,234,252,233,244,27,248,3,137,221,131, 363 65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,76,36,4,252,
351 229,252,248,41,252,234,252,233,244,27,248,5,190,237,137,252,239,232,251,1, 364 233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,233,141,4,194,
352 0,139,149,233,252,233,244,1,248,66,93,72,137,108,36,24,139,108,36,16,137, 365 139,108,36,16,137,149,233,137,133,233,137,222,65,141,190,233,73,137,174,233,
353 92,36,20,137,149,233,255,141,68,194,252,248,137,252,239,137,133,233,232,251, 366 137,92,36,20,232,251,1,21,252,233,244,3,255,248,141,137,92,36,20,255,248,
354 1,19,139,149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,24, 367 142,255,137,92,36,20,131,203,1,248,1,255,141,68,194,252,248,139,108,36,16,
355 85,195,248,136,255,65,15,182,134,233,168,235,15,133,244,251,168,235,15,133, 368 137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,68,36,20,0,0,
356 244,247,168,235,15,132,244,247,65,252,255,142,233,252,233,244,247,255,248, 369 0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,41,208,72,
357 137,65,15,182,134,233,168,235,15,133,244,251,252,233,244,247,248,138,65,15, 370 137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,255,65,
358 182,134,233,168,235,15,133,244,251,168,235,15,132,244,251,65,252,255,142, 371 85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,81,80,
359 233,15,132,244,247,168,235,15,132,244,251,248,1,255,139,108,36,16,137,149, 372 15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,240,68,
360 233,137,222,137,252,239,232,251,1,20,248,3,139,149,233,248,4,15,182,75,252, 373 139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,142,233,
361 253,248,5,15,182,107,252,252,15,183,67,252,254,65,252,255,164,253,252,238, 374 72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,242,68,
362 233,248,139,131,195,4,139,77,232,137,76,36,4,252,233,244,4,248,140,255,204, 375 15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,252,242,
363 255,248,141,137,92,36,20,255,248,142,255,137,92,36,20,131,203,1,248,1,255, 376 68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,242,68,
364 141,68,194,252,248,139,108,36,16,137,149,233,137,133,233,137,222,137,252, 377 15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,17,109,
365 239,232,251,1,21,199,68,36,20,0,0,0,0,255,131,227,252,254,255,139,149,233, 378 168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,252,242,
366 72,137,193,139,133,233,41,208,72,137,205,15,182,75,252,253,193,232,3,131, 379 15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,137,174,
367 192,1,252,255,229,248,143,255,248,144,255,68,139,122,252,248,69,139,191,233, 380 233,137,149,233,72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72,
368 69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,204, 381 129,225,239,72,137,204,137,108,36,16,133,192,15,133,244,247,139,149,233,139,
369 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,1,137,252,239,137, 382 92,36,20,255,248,144,255,68,139,122,252,248,69,139,191,233,69,139,191,233,
370 198,232,251,1,22,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102, 383 65,199,134,233,0,0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131,
371 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252, 384 195,4,193,232,16,65,252,255,36,252,238,248,1,137,252,239,137,198,232,251,
372 217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208, 385 1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,
373 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15, 386 37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
374 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202, 387 139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,72,184,237,237,
375 72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242, 388 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
376 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184, 389 15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,
377 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217, 390 102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,15,92,200,15,
378 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15, 391 40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,
379 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46, 392 36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,252,252,217,
380 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102, 393 108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,110,208,72,
381 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84, 394 184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,
382 194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68, 395 244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,72,
383 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252, 396 184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,194,252,242,
384 217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208, 397 15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,36,8,102,184,
385 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15, 398 0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,
386 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72, 399 139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,72,184,237,237,
387 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242, 400 102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,
388 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242, 401 15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,184,237,237,102,
389 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 402 72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,15,92,200,102,15,
390 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242, 403 86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,15,94,193,72,184,
391 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208, 404 237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,224,102,
392 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15, 405 15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,15,88,227,252,
393 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15, 406 242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,252,242,15,194,
394 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36, 407 196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,89,204,252,242,
395 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108, 408 15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,92,193,195,255,
396 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84, 409 217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,4,102,37,252,255,
397 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248, 410 252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,222,201,222,
398 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217, 411 252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,36,252,248,129,
399 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216, 412 124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,0,0,128,252,
400 217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208, 413 255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,201,217,252,
401 102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142, 414 240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,217,252,238,
402 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233, 415 195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,102,15,46,
403 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209, 416 202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,244,252,248,
404 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4, 417 1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,244,1,248,
405 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237, 418 2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,232,15,132,
406 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252, 419 244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,252,242,15,
407 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195, 420 89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,237,102,
408 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15, 421 72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,248,1,15,
409 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12, 422 132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,248,8,
410 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15, 423 102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,132,244,
411 17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192, 424 248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,72,61,252,
412 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 425 254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,17,68,36,
413 217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237, 426 252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,217,252,252,
414 102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2, 427 220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,217,221,92,
415 72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110, 428 36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,102,72,15,
416 208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208, 429 110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,72,184,237,
417 48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4, 430 237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,208,102,
418 102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133, 431 15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,48,224,
419 192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15, 432 15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,102,15,
420 132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192, 433 80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,192,15,
421 195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15, 434 132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,132,244,
422 135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255, 435 84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,195,248,
423 252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252, 436 2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,135,244,
424 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241, 437 248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,252,233,
425 252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252, 438 244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,237,217,
426 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244, 439 201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,252,233,
427 253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233, 440 244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,236,217,
428 244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68, 441 201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,253,248,
429 36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82, 442 2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,244,253,
430 15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195, 443 248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,36,252,
431 248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244, 444 248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,15,132,
432 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217, 445 244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195,248,2,
433 201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248, 446 131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244,247,15,
434 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255, 447 135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,201,217,
435 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216, 448 252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248,217,252,
436 195,255,248,9,204,248,154,255,131,252,255,1,15,132,244,247,15,135,244,248, 449 236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255,11,15,
437 252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,15, 450 132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,195,
438 132,244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193, 451 255,248,9,204,248,154,255,131,252,255,1,15,132,244,247,15,135,244,248,252,
439 195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132, 452 242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,15,132,
440 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195, 453 244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,195,
441 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9, 454 248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132,244,
442 15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221, 455 247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,248,
443 68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36, 456 1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9,15,135,
444 252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217, 457 244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221,68,36,
445 252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242, 458 252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36,252,
446 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221, 459 248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217,252,
447 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193, 460 233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242,15,93,
448 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248, 461 193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,68,36,
449 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132, 462 4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,195,248,
450 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195, 463 1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,222,201,
451 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248, 464 195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,244,107,
452 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11, 465 131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,248,1,
453 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219, 466 221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,217,
467 252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,15,
468 132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
454 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244, 469 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
455 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133, 470 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
456 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6, 471 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,
457 137,94,4,137,78,8,137,86,12,91,195,255,249,255,129,124,253,202,4,239,15,135, 472 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41,
458 244,41,129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195, 473 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,
459 4,102,15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216, 474 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255,
460 255,218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248, 475 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,
461 1,15,183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232, 476 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
462 131,195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129, 477 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,
463 252,253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242, 478 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,
464 15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15, 479 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,
465 133,244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254, 480 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,
466 141,156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233, 481 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,
467 248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139, 482 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,
468 12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169, 483 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,
469 233,133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252, 484 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,
470 237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124, 485 255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208,131,195,4,129,124,253,
471 253,202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124, 486 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,
472 253,202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255, 487 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,
473 221,4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108, 488 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,
474 194,4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255, 489 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,
475 137,108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131, 490 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,
476 233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 491 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
477 252,238,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,3,15,182, 492 238,255,139,108,194,4,139,4,194,137,108,202,4,137,4,202,139,3,15,182,204,
478 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237, 493 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129,
479 129,124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232, 494 124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,
480 131,195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135, 495 195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,
481 244,48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193, 496 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,
482 252,242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194, 497 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,
483 4,239,15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1, 498 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,
484 252,242,15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204, 499 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,
485 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194, 500 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,
486 4,239,15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192, 501 15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,
487 137,252,234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182, 502 234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,
488 192,255,129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234, 503 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,
489 252,242,65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252, 504 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,
490 234,4,239,15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234, 505 15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,
491 255,65,221,4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49, 506 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,
492 129,124,253,194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15, 507 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,
493 88,4,194,255,221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242, 508 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,
494 65,15,92,4,199,255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199, 509 255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,
495 252,242,15,92,4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16, 510 4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,
496 4,252,234,252,242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15, 511 242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,
497 16,4,252,234,252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252, 512 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,
498 242,65,15,16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234, 513 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,
499 255,252,242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12, 514 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,
500 194,255,252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234, 515 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,
501 65,220,52,199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221, 516 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,
502 4,199,220,52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255, 517 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,
503 221,4,252,234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12, 518 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,
504 199,255,221,4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15, 519 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,
505 16,12,252,234,255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234, 520 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,
506 252,242,15,16,12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148, 521 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,
507 255,252,233,244,156,255,232,244,107,255,15,182,252,236,15,182,192,139,124, 522 156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,16,137,151,233,
508 36,16,137,151,233,141,52,194,137,194,41,252,234,248,33,137,252,253,137,92, 523 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,20,232,251,1,25,
509 36,20,232,251,1,23,139,149,233,133,192,15,133,244,42,15,182,107,252,255,15, 524 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,139,
510 182,75,252,253,139,68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139, 525 68,252,234,4,139,44,252,234,137,68,202,4,137,44,202,139,3,15,182,204,15,182,
511 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72, 526 232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,65,139,
512 252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,3,15,182,204,15,182, 527 4,135,199,68,202,4,237,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,
513 232,131,195,4,193,232,16,65,252,255,36,252,238,255,15,191,192,252,242,15, 528 232,16,65,252,255,36,252,238,255,15,191,192,252,242,15,42,192,252,242,15,
514 42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15, 529 17,4,202,255,223,67,252,254,221,28,202,255,252,242,65,15,16,4,199,252,242,
515 16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208, 530 15,17,4,202,255,65,221,4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,
516 137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255, 531 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,
517 36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137, 532 76,202,12,141,68,194,4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,
518 41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193, 533 193,15,134,244,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
519 232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,133,233,139, 534 255,36,252,238,255,139,106,252,248,139,172,253,133,233,139,173,233,139,69,
520 173,233,139,69,4,139,109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182, 535 4,139,109,0,137,68,202,4,137,44,202,139,3,15,182,204,15,182,232,131,195,4,
521 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172, 536 193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,253,141,233,
522 253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137, 537 128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,69,4,15,132,
523 69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182, 538 244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
524 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239, 539 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,129,252,
525 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238, 540 248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,137,213,
526 137,213,65,141,190,233,255,232,251,1,24,137,252,234,252,233,244,1,255,72, 541 65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,252,247,
527 252,247,208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233, 542 208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,137,8,199,
528 137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182, 543 64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,204,15,182,
529 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129, 544 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,233,235,
530 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190, 545 15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,233,232,
531 233,232,251,1,24,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242, 546 251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,65,15,
532 65,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255, 547 16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,221,
533 221,25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233, 548 25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,137,
534 137,65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 549 65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
535 238,255,141,156,253,131,233,139,108,36,16,131,189,233,0,15,132,244,247,137, 550 255,141,156,253,131,233,139,108,36,16,131,189,233,0,15,132,244,247,137,149,
536 149,233,141,52,202,137,252,239,232,251,1,25,139,149,233,248,1,139,3,15,182, 551 233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,204,
537 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247, 552 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,208,
538 208,139,108,36,16,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137, 553 139,108,36,16,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,92,
539 92,36,20,232,251,1,26,139,149,233,15,182,75,252,253,137,4,202,199,68,202, 554 36,20,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237,
540 4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 555 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,
541 238,255,139,124,36,16,137,151,233,248,1,137,194,37,252,255,7,0,0,193,252, 556 139,124,36,16,137,151,233,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,
542 234,11,61,252,255,7,0,0,15,132,244,249,248,2,137,198,65,139,134,233,137,252, 557 252,255,7,0,0,15,132,244,249,248,2,137,198,65,139,134,233,137,252,253,65,
543 253,65,59,134,233,137,92,36,20,15,131,244,251,232,251,1,27,139,149,233,15, 558 59,134,233,137,92,36,20,15,131,244,251,232,251,1,29,139,149,233,15,182,75,
544 182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131, 559 252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,
545 195,4,193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248, 560 193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,5,232,
546 5,232,251,1,28,15,183,67,252,254,137,252,239,252,233,244,1,255,72,252,247, 561 251,1,30,15,183,67,252,254,137,252,239,252,233,244,1,255,72,252,247,208,139,
547 208,139,108,36,16,65,139,142,233,137,92,36,20,65,59,142,233,137,149,233,15, 562 108,36,16,65,139,142,233,137,92,36,20,65,59,142,233,137,149,233,15,131,244,
548 131,244,249,248,2,65,139,52,135,137,252,239,232,251,1,29,139,149,233,15,182, 563 249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,75,252,
549 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195, 564 253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,4,193,
550 4,193,232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,28,15,183, 565 232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,67,252,
551 67,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248, 566 254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,139,173,
552 139,173,233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248, 567 233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,139,173,
553 139,173,233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129, 568 233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,124,253,
554 124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239, 569 252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,15,135,244,
555 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200, 570 251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,102,15,46,
556 102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133, 571 193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,233,129,120,
557 233,129,120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137, 572 253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,
558 68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 573 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,
559 238,248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132, 574 131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,36,
560 244,36,15,182,75,252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15, 575 15,182,75,252,253,252,233,244,1,248,5,255,129,124,253,194,4,239,15,133,244,
561 133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,72,252, 576 36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,192,72,252,247,208,
562 247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234, 577 65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,44,252,234,248,157,
563 248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239, 578 139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,185,233,239,15,133,
564 15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251, 579 244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,132,244,251,15,182,
565 15,182,67,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3, 580 67,252,253,139,41,139,73,4,137,44,194,248,2,255,137,76,194,4,139,3,15,182,
566 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15, 581 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,67,
567 182,67,252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244, 582 252,253,185,237,252,233,244,2,248,4,139,137,233,133,201,15,133,244,1,248,
568 1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3, 583 5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,3,252,233,
569 252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, 584 244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,
570 133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129, 585 35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,129,120,253,
571 120,253,4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202, 586 4,239,15,132,244,248,248,1,139,40,139,64,4,137,44,202,137,68,202,4,139,3,
572 4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 587 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,
573 248,2,131,189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244, 588 189,233,0,15,132,244,1,139,141,233,252,246,129,233,235,15,132,244,35,255,
574 35,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39, 589 15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,39,139,44,
575 139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59, 590 252,234,129,124,253,194,4,239,15,135,244,251,255,15,133,244,39,59,133,233,
576 133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249, 591 15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,
577 248,1,252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137, 592 252,246,133,233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,
578 104,4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 593 4,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
579 252,238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233, 594 238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233,235,
580 235,15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4, 595 15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4,239,
581 239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139, 596 15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139,142,
582 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15, 597 233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15,182,
583 182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4, 598 252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,
584 239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239, 599 15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239,198,
585 198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15, 600 133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15,133,
586 133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235, 601 244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235,15,
587 15,133,244,253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4, 602 133,244,253,248,3,15,182,67,252,253,139,108,194,4,139,4,194,137,105,4,137,
588 137,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252, 603 1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,
589 238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233, 604 248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,
590 235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133, 605 15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,
591 244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244, 606 1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,
592 37,248,6,137,4,36,199,68,36,4,237,137,108,36,24,139,124,36,16,137,151,233, 607 248,6,137,4,36,199,68,36,4,237,137,108,36,24,139,124,36,16,137,151,233,72,
593 72,141,20,36,137,252,238,137,252,253,137,92,36,20,232,251,1,30,139,149,233, 608 141,20,36,137,252,238,137,252,253,137,92,36,20,232,251,1,32,139,149,233,139,
594 139,108,36,24,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233, 609 108,36,24,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,
595 65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129, 610 174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,
596 124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244, 611 252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,
597 38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133, 612 3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,
598 233,235,15,133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139, 613 133,244,253,248,2,139,108,202,4,139,12,202,137,104,4,137,8,139,3,15,182,204,
599 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3, 614 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
600 131,189,233,0,15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244, 615 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
601 38,15,182,75,252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65, 616 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
602 137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36, 617 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,255,248,1,141,
603 255,248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248, 618 12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,139,68,36,
604 2,139,68,36,4,255,252,242,68,15,45,252,248,255,131,232,1,15,132,244,250,68, 619 4,255,252,242,68,15,45,252,248,255,131,232,1,15,132,244,250,68,1,252,248,
605 1,252,248,59,133,233,15,131,244,251,68,41,252,248,65,193,231,3,68,3,189,233, 620 59,133,233,15,131,244,251,68,41,252,248,65,193,231,3,68,3,189,233,248,3,139,
606 248,3,139,41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131, 621 41,65,137,47,139,105,4,131,193,8,65,137,111,4,65,131,199,8,131,232,1,15,133,
607 232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195, 622 244,3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
608 4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,16,137,151,233,137,252, 623 65,252,255,36,252,238,248,5,139,124,36,16,137,151,233,137,252,238,137,194,
609 238,137,194,137,252,253,137,92,36,20,232,251,1,31,139,149,233,15,182,75,252, 624 137,252,253,137,92,36,20,232,251,1,33,139,149,233,15,182,75,252,253,252,233,
610 253,252,233,244,1,248,7,128,165,233,235,65,139,134,233,65,137,174,233,255, 625 244,1,248,7,128,165,233,235,65,139,134,233,65,137,174,233,255,137,133,233,
611 137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44, 626 252,233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,
612 202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252, 627 51,141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,
613 233,15,182,205,131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215, 628 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248,
614 139,105,252,248,129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252, 629 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237,
615 252,247,195,237,15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232, 630 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249,
616 1,15,132,244,249,248,2,139,41,65,137,47,139,105,4,65,137,111,4,65,131,199, 631 248,2,139,41,65,137,47,139,105,4,65,137,111,4,65,131,199,8,131,193,8,131,
617 8,131,193,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,128, 632 232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,
618 189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,205, 633 244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,
619 131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237,15,133,244,4,15, 634 255,36,252,238,248,5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,
620 182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248,69,139,191,233, 635 252,247,209,141,12,202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,
621 69,139,191,233,252,233,244,4,248,7,15,139,244,1,131,227,252,248,41,218,65, 636 233,244,4,248,7,15,139,244,1,131,227,252,248,41,218,65,137,215,139,90,252,
622 137,215,139,90,252,252,252,233,244,1,255,141,76,202,8,139,105,232,139,65, 637 252,252,233,244,1,255,141,76,202,8,139,105,232,139,65,252,236,137,41,137,
623 252,236,137,41,137,65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12, 638 65,4,139,105,252,240,139,65,252,244,137,105,8,137,65,12,139,105,224,139,65,
624 139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,252,248,239,184, 639 228,137,105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,
625 237,15,133,244,28,137,202,137,90,252,252,139,157,233,139,11,15,182,252,233, 640 137,202,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,
626 15,182,205,131,195,4,65,252,255,36,252,238,255,15,182,252,236,139,66,252, 641 4,65,252,255,36,252,238,255,15,182,252,236,139,66,252,248,141,12,202,139,
627 248,141,12,202,139,128,233,15,182,128,233,68,137,60,36,68,141,188,253,194, 642 128,233,15,182,128,233,68,137,60,36,68,141,188,253,194,233,68,43,122,252,
628 233,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,233,252,248, 643 252,133,252,237,15,132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,
629 65,57,215,15,131,244,248,248,1,65,139,71,252,248,137,1,65,139,71,252,252, 644 248,248,1,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,
630 65,131,199,8,137,65,4,131,193,8,57,252,233,15,131,244,249,65,57,215,15,130, 645 131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,199,65,4,
631 244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60, 646 237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,182,204,
632 36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238, 647 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,36,4,1,
633 248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,255,137,197, 648 0,0,0,137,208,68,41,252,248,15,134,244,3,255,137,197,193,252,237,3,131,197,
634 193,252,237,3,131,197,1,137,108,36,4,139,108,36,16,1,200,59,133,233,15,135, 649 1,137,108,36,4,139,108,36,16,1,200,59,133,233,15,135,244,253,248,6,65,139,
635 244,253,248,6,65,139,71,252,248,137,1,65,139,71,252,252,65,131,199,8,137, 650 71,252,248,137,1,65,139,71,252,252,65,131,199,8,137,65,4,131,193,8,65,57,
636 65,4,131,193,8,65,57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137, 651 215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,20,
637 141,233,137,92,36,20,65,41,215,139,116,36,4,131,252,238,1,137,252,239,232, 652 65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,
638 251,1,0,139,149,233,139,141,233,65,1,215,252,233,244,6,255,193,225,3,255, 653 139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,
639 248,1,139,90,252,252,137,68,36,4,252,247,195,237,15,133,244,253,255,248,13, 654 137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232,
640 65,137,215,131,232,1,15,132,244,249,248,2,65,139,44,15,65,137,111,252,248, 655 1,15,132,244,249,248,2,65,139,44,15,65,137,111,252,248,65,139,108,15,4,65,
641 65,139,108,15,4,65,137,111,252,252,65,131,199,8,131,232,1,15,133,244,2,248, 656 137,111,252,252,65,131,199,8,131,232,1,15,133,244,2,248,3,139,68,36,4,15,
642 3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,139,108, 657 182,107,252,255,248,5,57,197,15,135,244,252,255,139,108,10,4,137,106,252,
643 10,4,137,106,252,252,139,44,10,137,106,252,248,255,248,5,56,67,252,255,15, 658 252,139,44,10,137,106,252,248,255,248,5,56,67,252,255,15,135,244,252,255,
644 135,244,252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252, 659 15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,139,191,
645 248,69,139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193, 660 233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,
646 232,16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8, 661 255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,199,68,194,
647 255,199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14, 662 252,244,237,255,131,192,1,252,233,244,5,248,7,15,139,244,14,131,227,252,248,
648 131,227,252,248,41,218,255,1,217,255,137,221,209,252,237,129,229,239,102, 663 41,218,255,1,217,255,137,221,209,252,237,129,229,239,102,65,131,172,253,46,
649 65,131,172,253,46,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239, 664 233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,244,53,129,
650 15,135,244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,252, 665 121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,15,135,244,
651 253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242, 666 53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,16,252,242,
652 15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249, 667 15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,15,46,200,248,
653 255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65, 668 1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,17,221,81,24,133,
654 16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247, 669 252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,217,201,248,1,255,
655 255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253,131, 670 15,183,67,252,254,255,15,131,244,248,141,156,253,131,233,255,141,156,253,
656 233,255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244,248, 671 131,233,15,183,67,252,254,15,131,245,255,15,130,244,248,141,156,253,131,233,
657 141,156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202, 672 255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,105,4,129,252,253,
658 139,105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,105, 673 239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,248,252,233,245,
659 252,248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137,65, 674 255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,248,255,65,139,142,
660 252,248,255,65,139,142,233,139,4,129,72,139,128,233,139,108,36,16,65,137, 675 233,139,4,193,72,139,128,233,139,108,36,16,65,137,150,233,65,137,174,233,
661 150,233,65,137,174,233,252,255,224,255,141,156,253,131,233,139,3,15,182,204, 676 252,255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,
662 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,68,139,187,233, 677 193,232,16,65,252,255,36,252,238,255,68,139,187,233,139,108,36,16,141,12,
663 139,108,36,16,141,12,202,59,141,233,15,135,244,23,15,182,139,233,57,200,15, 678 202,59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,
664 134,244,249,248,2,255,15,183,67,252,254,252,233,245,255,248,3,199,68,194, 679 15,183,67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,
665 252,252,237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237, 680 57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122,
666 141,4,194,68,139,122,252,248,137,104,252,252,68,137,120,252,248,139,108,36, 681 252,248,137,104,252,252,68,137,120,252,248,139,108,36,16,141,12,200,59,141,
667 16,141,12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,171,233,133, 682 233,15,135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248,
668 252,237,15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,68,139,121,252, 683 248,1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,
669 248,68,137,56,68,139,121,252,252,68,137,120,4,131,192,8,199,65,252,252,237, 684 121,252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,
670 131,252,237,1,15,133,244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182, 685 244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,
671 232,131,195,4,193,232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131, 686 232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,
672 192,8,131,252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139, 687 1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36,
673 189,233,139,108,36,16,141,68,194,252,248,137,149,233,141,136,233,59,141,233, 688 16,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,
674 137,133,233,255,137,252,239,255,76,137,252,254,137,252,239,255,15,135,244, 689 137,252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233,
675 21,65,199,134,233,237,255,65,252,255,215,255,65,252,255,150,233,255,65,199, 690 237,255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139,
676 134,233,237,139,149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252, 691 149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255,
677 233,244,12,255,254,0 692 254,0
678}; 693};
679 694
680enum { 695enum {
@@ -1003,7 +1018,9 @@ static const char *const extnames[] = {
1003 "lj_tab_len@4", 1018 "lj_tab_len@4",
1004 "lj_gc_step@4", 1019 "lj_gc_step@4",
1005 "lj_dispatch_ins@8", 1020 "lj_dispatch_ins@8",
1021 "lj_trace_hot@8",
1006 "lj_dispatch_call@8", 1022 "lj_dispatch_call@8",
1023 "lj_trace_exit@8",
1007 "lj_err_throw@8", 1024 "lj_err_throw@8",
1008 "lj_meta_cat", 1025 "lj_meta_cat",
1009 "lj_gc_barrieruv@8", 1026 "lj_gc_barrieruv@8",
@@ -1061,353 +1078,355 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1061 dasm_put(Dst, 1291, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base)); 1078 dasm_put(Dst, 1291, -BCBIAS_J*4, LJ_TISTRUECOND, LJ_TISTRUECOND, Dt1(->base));
1062 dasm_put(Dst, 1390, Dt1(->base), Dt1(->base), FRAME_CONT); 1079 dasm_put(Dst, 1390, Dt1(->base), Dt1(->base), FRAME_CONT);
1063 dasm_put(Dst, 1513, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1080 dasm_put(Dst, 1513, 2+1, Dt1(->base), Dt1(->base), Dt1(->base), Dt1(->base), Dt7(->pc), Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1064 dasm_put(Dst, 1691, 1+1, LJ_TISTRUECOND, 1+1, ~LJ_TNUMX); 1081 dasm_put(Dst, 1691, 1+1, LJ_TISTRUECOND, 1+1);
1082 dasm_put(Dst, 1802, ~LJ_TNUMX);
1065 if (cmov) { 1083 if (cmov) {
1066 dasm_put(Dst, 1793); 1084 dasm_put(Dst, 1810);
1067 } else { 1085 } else {
1068 dasm_put(Dst, 1797); 1086 dasm_put(Dst, 1814);
1069 } 1087 }
1070 dasm_put(Dst, 1806, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask)); 1088 dasm_put(Dst, 1823, ((char *)(&((GCfuncC *)0)->upvalue)), LJ_TSTR, ~LJ_TLIGHTUD, 1+1, LJ_TTAB, Dt6(->metatable), LJ_TNIL);
1071 dasm_put(Dst, 1895, Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next), LJ_TNIL); 1089 dasm_put(Dst, 1902, DISPATCH_GL(mmname)+4*MM_metatable, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), DtB(->next));
1072 dasm_put(Dst, 1950, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]), 2+1, LJ_TTAB); 1090 dasm_put(Dst, 1960, LJ_TNIL, LJ_TUDATA, LJ_TISNUM, LJ_TNUMX, DISPATCH_GL(gcroot[GCROOT_BASEMT]));
1073 dasm_put(Dst, 2019, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1091 dasm_put(Dst, 2029, 2+1, LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->metatable), LJ_TTAB, Dt6(->marked), LJ_GC_BLACK, Dt6(->marked), cast_byte(~LJ_GC_BLACK));
1074 dasm_put(Dst, 2090, 2+1, LJ_TTAB, 1+1, LJ_TISNUM); 1092 dasm_put(Dst, 2098, DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist), 2+1, LJ_TTAB, 1+1, LJ_TISNUM);
1093 dasm_put(Dst, 2189);
1075 if (sse) { 1094 if (sse) {
1076 dasm_put(Dst, 2166); 1095 dasm_put(Dst, 2194);
1077 } else { 1096 } else {
1078 dasm_put(Dst, 2176); 1097 dasm_put(Dst, 2204);
1079 } 1098 }
1080 dasm_put(Dst, 2183, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1099 dasm_put(Dst, 2211, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1081 dasm_put(Dst, 2252, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1100 dasm_put(Dst, 2280, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1082 dasm_put(Dst, 2321, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB); 1101 dasm_put(Dst, 2349, Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1, LJ_TTAB);
1083 dasm_put(Dst, 2424, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1102 dasm_put(Dst, 2452, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1084 if (sse) { 1103 if (sse) {
1085 dasm_put(Dst, 2487, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1104 dasm_put(Dst, 2515, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1086 } else { 1105 } else {
1087 } 1106 }
1088 dasm_put(Dst, 2520, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1107 dasm_put(Dst, 2548, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1089 dasm_put(Dst, 2601, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC); 1108 dasm_put(Dst, 2629, 1+1, LJ_TTAB, Dt8(->upvalue[0]), LJ_TFUNC);
1090 if (sse) { 1109 if (sse) {
1091 dasm_put(Dst, 2639); 1110 dasm_put(Dst, 2667);
1092 } else { 1111 } else {
1093 dasm_put(Dst, 2649); 1112 dasm_put(Dst, 2677);
1094 } 1113 }
1095 dasm_put(Dst, 2656, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1114 dasm_put(Dst, 2684, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1096 dasm_put(Dst, 2721, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1115 dasm_put(Dst, 2749, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1097 dasm_put(Dst, 2810, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1116 dasm_put(Dst, 2838, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1098 dasm_put(Dst, 2903, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1117 dasm_put(Dst, 2931, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1099 dasm_put(Dst, 3023, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1118 dasm_put(Dst, 3051, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1100 dasm_put(Dst, 3119, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1119 dasm_put(Dst, 3147, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1101 dasm_put(Dst, 3185, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1120 dasm_put(Dst, 3213, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1102 dasm_put(Dst, 3280, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1121 dasm_put(Dst, 3308, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1103 dasm_put(Dst, 3392, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1122 dasm_put(Dst, 3420, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1104 if (sse) { 1123 if (sse) {
1105 dasm_put(Dst, 3419, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1124 dasm_put(Dst, 3447, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1106 } else { 1125 } else {
1107 dasm_put(Dst, 3483, 1+1, LJ_TISNUM); 1126 dasm_put(Dst, 3511, 1+1, LJ_TISNUM);
1108 } 1127 }
1109 dasm_put(Dst, 3519, 1+1, FRAME_TYPE, LJ_TNIL); 1128 dasm_put(Dst, 3547, 1+1, FRAME_TYPE, LJ_TNIL);
1110 if (sse) { 1129 if (sse) {
1111 dasm_put(Dst, 3614, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1130 dasm_put(Dst, 3642, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1112 dasm_put(Dst, 3676, 1+1, LJ_TISNUM); 1131 dasm_put(Dst, 3704, 1+1, LJ_TISNUM);
1113 } else { 1132 } else {
1114 dasm_put(Dst, 3706, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1133 dasm_put(Dst, 3734, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1115 dasm_put(Dst, 3765, 1+1, LJ_TISNUM); 1134 dasm_put(Dst, 3793, 1+1, LJ_TISNUM);
1116 } 1135 }
1117 dasm_put(Dst, 3792, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1136 dasm_put(Dst, 3820, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1118 dasm_put(Dst, 3861, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1137 dasm_put(Dst, 3889, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1119 dasm_put(Dst, 3918, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1138 dasm_put(Dst, 3946, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1120 dasm_put(Dst, 3981, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1139 dasm_put(Dst, 4009, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1121 dasm_put(Dst, 4071); 1140 dasm_put(Dst, 4099);
1122 if (sse) { 1141 if (sse) {
1123 dasm_put(Dst, 4083, 1+1, LJ_TISNUM); 1142 dasm_put(Dst, 4111, 1+1, LJ_TISNUM);
1124 } else { 1143 } else {
1125 } 1144 }
1126 dasm_put(Dst, 4108); 1145 dasm_put(Dst, 4136);
1127 if (sse) { 1146 if (sse) {
1128 dasm_put(Dst, 4122, 1+1, LJ_TISNUM); 1147 dasm_put(Dst, 4150, 1+1, LJ_TISNUM);
1129 } else { 1148 } else {
1130 } 1149 }
1131 dasm_put(Dst, 4147); 1150 dasm_put(Dst, 4175);
1132 if (sse) { 1151 if (sse) {
1133 dasm_put(Dst, 4161, 1+1, LJ_TISNUM); 1152 dasm_put(Dst, 4189, 1+1, LJ_TISNUM);
1134 } else { 1153 } else {
1135 } 1154 }
1136 dasm_put(Dst, 4186); 1155 dasm_put(Dst, 4214);
1137 if (sse) { 1156 if (sse) {
1138 dasm_put(Dst, 4202, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1157 dasm_put(Dst, 4230, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1139 } else { 1158 } else {
1140 dasm_put(Dst, 4241, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1159 dasm_put(Dst, 4269, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1141 } 1160 }
1142 dasm_put(Dst, 4274, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1161 dasm_put(Dst, 4302, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1143 dasm_put(Dst, 4339, 1+1, LJ_TISNUM); 1162 dasm_put(Dst, 4367, 1+1, LJ_TISNUM);
1144 if (sse) { 1163 if (sse) {
1145 dasm_put(Dst, 4438); 1164 dasm_put(Dst, 4466);
1146 } else { 1165 } else {
1147 dasm_put(Dst, 4444); 1166 dasm_put(Dst, 4472);
1148 } 1167 }
1149 dasm_put(Dst, 4451); 1168 dasm_put(Dst, 4479);
1150 if (sse) { 1169 if (sse) {
1151 dasm_put(Dst, 4476); 1170 dasm_put(Dst, 4504);
1152 } else { 1171 } else {
1153 dasm_put(Dst, 4482); 1172 dasm_put(Dst, 4510);
1154 } 1173 }
1155 dasm_put(Dst, 4485, 1+2); 1174 dasm_put(Dst, 4513, 1+2);
1156 if (sse) { 1175 if (sse) {
1157 dasm_put(Dst, 4494); 1176 dasm_put(Dst, 4522);
1158 } else { 1177 } else {
1159 dasm_put(Dst, 4502); 1178 dasm_put(Dst, 4530);
1160 } 1179 }
1161 dasm_put(Dst, 4510); 1180 dasm_put(Dst, 4538);
1162 if (sse) { 1181 if (sse) {
1163 dasm_put(Dst, 4513, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1182 dasm_put(Dst, 4541, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1164 } else { 1183 } else {
1165 dasm_put(Dst, 4540); 1184 dasm_put(Dst, 4568);
1166 } 1185 }
1167 dasm_put(Dst, 4557); 1186 dasm_put(Dst, 4585);
1168 if (sse) { 1187 if (sse) {
1169 dasm_put(Dst, 4573, 1+1, LJ_TISNUM); 1188 dasm_put(Dst, 4601, 1+1, LJ_TISNUM);
1170 } else { 1189 } else {
1171 dasm_put(Dst, 4598, 1+1, LJ_TISNUM); 1190 dasm_put(Dst, 4626, 1+1, LJ_TISNUM);
1172 } 1191 }
1173 dasm_put(Dst, 4620); 1192 dasm_put(Dst, 4648);
1174 if (sse) { 1193 if (sse) {
1175 dasm_put(Dst, 4642); 1194 dasm_put(Dst, 4670);
1176 } else { 1195 } else {
1177 dasm_put(Dst, 4668); 1196 dasm_put(Dst, 4696);
1178 } 1197 }
1179 dasm_put(Dst, 4685, 1+2); 1198 dasm_put(Dst, 4713, 1+2);
1180 if (sse) { 1199 if (sse) {
1181 dasm_put(Dst, 4725); 1200 dasm_put(Dst, 4753);
1182 } else { 1201 } else {
1183 dasm_put(Dst, 4733); 1202 dasm_put(Dst, 4761);
1184 } 1203 }
1185 dasm_put(Dst, 4743, 2+1, LJ_TISNUM, LJ_TISNUM); 1204 dasm_put(Dst, 4771, 2+1, LJ_TISNUM, LJ_TISNUM);
1186 if (sse) { 1205 if (sse) {
1187 dasm_put(Dst, 4795, 1+1, LJ_TISNUM, LJ_TISNUM); 1206 dasm_put(Dst, 4823, 1+1, LJ_TISNUM, LJ_TISNUM);
1188 } else { 1207 } else {
1189 dasm_put(Dst, 4842, 2+1, LJ_TISNUM, LJ_TISNUM); 1208 dasm_put(Dst, 4870, 2+1, LJ_TISNUM, LJ_TISNUM);
1190 } 1209 }
1191 if (sse) { 1210 if (sse) {
1192 dasm_put(Dst, 4883, 1+1, LJ_TISNUM, LJ_TISNUM); 1211 dasm_put(Dst, 4911, 1+1, LJ_TISNUM, LJ_TISNUM);
1193 } else { 1212 } else {
1194 } 1213 }
1195 if (sse) { 1214 if (sse) {
1196 dasm_put(Dst, 4954, 1+1, LJ_TISNUM, LJ_TISNUM); 1215 dasm_put(Dst, 4982, 1+1, LJ_TISNUM, LJ_TISNUM);
1197 } else { 1216 } else {
1198 } 1217 }
1199 if (!sse) { 1218 if (!sse) {
1200 dasm_put(Dst, 5025); 1219 dasm_put(Dst, 5053);
1201 } 1220 }
1202 dasm_put(Dst, 5034, 1+1, LJ_TSTR); 1221 dasm_put(Dst, 5062, 1+1, LJ_TSTR);
1203 if (sse) { 1222 if (sse) {
1204 dasm_put(Dst, 5056, Dt5(->len)); 1223 dasm_put(Dst, 5084, Dt5(->len));
1205 } else { 1224 } else {
1206 dasm_put(Dst, 5067, Dt5(->len)); 1225 dasm_put(Dst, 5095, Dt5(->len));
1207 } 1226 }
1208 dasm_put(Dst, 5075, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1227 dasm_put(Dst, 5103, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1209 if (sse) { 1228 if (sse) {
1210 dasm_put(Dst, 5113); 1229 dasm_put(Dst, 5141);
1211 } else { 1230 } else {
1212 dasm_put(Dst, 5123); 1231 dasm_put(Dst, 5151);
1213 } 1232 }
1214 dasm_put(Dst, 5134, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1233 dasm_put(Dst, 5162, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1215 if (sse) { 1234 if (sse) {
1216 dasm_put(Dst, 5171); 1235 dasm_put(Dst, 5199);
1217 } else { 1236 } else {
1218 dasm_put(Dst, 5191); 1237 dasm_put(Dst, 5219);
1219 } 1238 }
1220 dasm_put(Dst, 5211, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1239 dasm_put(Dst, 5239, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1221 dasm_put(Dst, 2161); 1240 dasm_put(Dst, 2189);
1222 if (sse) { 1241 if (sse) {
1223 dasm_put(Dst, 5320); 1242 dasm_put(Dst, 5348);
1224 } else { 1243 } else {
1225 dasm_put(Dst, 5331); 1244 dasm_put(Dst, 5359);
1226 } 1245 }
1227 dasm_put(Dst, 5339, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1246 dasm_put(Dst, 5367, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1228 if (sse) { 1247 if (sse) {
1229 dasm_put(Dst, 5369); 1248 dasm_put(Dst, 5397);
1230 } else { 1249 } else {
1231 } 1250 }
1232 dasm_put(Dst, 5376, sizeof(GCstr)-1); 1251 dasm_put(Dst, 5404, sizeof(GCstr)-1);
1233 dasm_put(Dst, 5451, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1252 dasm_put(Dst, 5479, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1234 dasm_put(Dst, 5512, LJ_TSTR, LJ_TISNUM); 1253 dasm_put(Dst, 5540, LJ_TSTR, LJ_TISNUM);
1235 if (sse) { 1254 if (sse) {
1236 dasm_put(Dst, 5533); 1255 dasm_put(Dst, 5561);
1237 } else { 1256 } else {
1238 dasm_put(Dst, 5540); 1257 dasm_put(Dst, 5568);
1239 } 1258 }
1240 dasm_put(Dst, 5552, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1259 dasm_put(Dst, 5580, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1241 dasm_put(Dst, 5620, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1260 dasm_put(Dst, 5648, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1242 dasm_put(Dst, 5687, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1261 dasm_put(Dst, 5715, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1243 dasm_put(Dst, 5760, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1262 dasm_put(Dst, 5788, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1244 dasm_put(Dst, 5845, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1263 dasm_put(Dst, 5873, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1245 dasm_put(Dst, 5919, 1+1, LJ_TTAB); 1264 dasm_put(Dst, 5947, 1+1, LJ_TTAB);
1246 if (sse) { 1265 if (sse) {
1247 dasm_put(Dst, 5986); 1266 dasm_put(Dst, 6014);
1248 } else { 1267 } else {
1249 } 1268 }
1250 if (sse) { 1269 if (sse) {
1251 dasm_put(Dst, 5996, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1270 dasm_put(Dst, 6024, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1252 } else { 1271 } else {
1253 } 1272 }
1254 if (sse) { 1273 if (sse) {
1255 dasm_put(Dst, 6048, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1274 dasm_put(Dst, 6076, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1256 } else { 1275 } else {
1257 } 1276 }
1258 dasm_put(Dst, 6091, LJ_TISNUM); 1277 dasm_put(Dst, 6119, LJ_TISNUM);
1259 if (sse) { 1278 if (sse) {
1260 dasm_put(Dst, 6118); 1279 dasm_put(Dst, 6146);
1261 } else { 1280 } else {
1262 } 1281 }
1263 dasm_put(Dst, 6135); 1282 dasm_put(Dst, 6163);
1264 if (sse) { 1283 if (sse) {
1265 dasm_put(Dst, 6143, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1284 dasm_put(Dst, 6171, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1266 } else { 1285 } else {
1267 } 1286 }
1268 dasm_put(Dst, 6091, LJ_TISNUM); 1287 dasm_put(Dst, 6119, LJ_TISNUM);
1269 if (sse) { 1288 if (sse) {
1270 dasm_put(Dst, 6186); 1289 dasm_put(Dst, 6214);
1271 } else { 1290 } else {
1272 } 1291 }
1273 dasm_put(Dst, 6135); 1292 dasm_put(Dst, 6163);
1274 if (sse) { 1293 if (sse) {
1275 dasm_put(Dst, 6203, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1294 dasm_put(Dst, 6231, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1276 } else { 1295 } else {
1277 } 1296 }
1278 dasm_put(Dst, 6091, LJ_TISNUM); 1297 dasm_put(Dst, 6119, LJ_TISNUM);
1279 if (sse) { 1298 if (sse) {
1280 dasm_put(Dst, 6246); 1299 dasm_put(Dst, 6274);
1281 } else { 1300 } else {
1282 } 1301 }
1283 dasm_put(Dst, 6135); 1302 dasm_put(Dst, 6163);
1284 if (sse) { 1303 if (sse) {
1285 dasm_put(Dst, 6263, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1304 dasm_put(Dst, 6291, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1286 } else { 1305 } else {
1287 } 1306 }
1288 dasm_put(Dst, 6306); 1307 dasm_put(Dst, 6334);
1289 if (sse) { 1308 if (sse) {
1290 dasm_put(Dst, 6313, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1309 dasm_put(Dst, 6341, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1291 } else { 1310 } else {
1292 } 1311 }
1293 dasm_put(Dst, 6356); 1312 dasm_put(Dst, 6384);
1294 if (sse) { 1313 if (sse) {
1295 dasm_put(Dst, 6360); 1314 dasm_put(Dst, 6388);
1296 } else { 1315 } else {
1297 } 1316 }
1298 dasm_put(Dst, 6372); 1317 dasm_put(Dst, 6400);
1299 if (sse) { 1318 if (sse) {
1300 dasm_put(Dst, 6383, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1319 dasm_put(Dst, 6411, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1301 } else { 1320 } else {
1302 } 1321 }
1303 dasm_put(Dst, 6452); 1322 dasm_put(Dst, 6480);
1304 if (sse) { 1323 if (sse) {
1305 dasm_put(Dst, 6461, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1324 dasm_put(Dst, 6489, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1306 } else { 1325 } else {
1307 } 1326 }
1308 dasm_put(Dst, 6530); 1327 dasm_put(Dst, 6558);
1309 if (sse) { 1328 if (sse) {
1310 dasm_put(Dst, 6540, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1329 dasm_put(Dst, 6568, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1311 } else { 1330 } else {
1312 } 1331 }
1313 dasm_put(Dst, 6609); 1332 dasm_put(Dst, 6637);
1314 if (sse) { 1333 if (sse) {
1315 dasm_put(Dst, 6619, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1334 dasm_put(Dst, 6647, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1316 } else { 1335 } else {
1317 } 1336 }
1318 dasm_put(Dst, 6688); 1337 dasm_put(Dst, 6716);
1319 if (sse) { 1338 if (sse) {
1320 dasm_put(Dst, 6697, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1339 dasm_put(Dst, 6725, 1+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1321 } else { 1340 } else {
1322 } 1341 }
1323 dasm_put(Dst, 6766, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1342 dasm_put(Dst, 6794, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1324 dasm_put(Dst, 6844, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1343 dasm_put(Dst, 6872, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1325 dasm_put(Dst, 6970, Dt1(->top), Dt1(->base), Dt1(->top)); 1344 dasm_put(Dst, 6998, Dt1(->top), Dt1(->base), Dt1(->top));
1326#if LJ_HASJIT 1345#if LJ_HASJIT
1327 dasm_put(Dst, 7009, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1346 dasm_put(Dst, 7037, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1328#endif 1347#endif
1329 dasm_put(Dst, 7042, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1348 dasm_put(Dst, 7070, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1330 dasm_put(Dst, 7096, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1349 dasm_put(Dst, 7124, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1331#if LJ_HASJIT 1350#if LJ_HASJIT
1332 dasm_put(Dst, 7163); 1351 dasm_put(Dst, 7191, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1333#endif 1352#endif
1334 dasm_put(Dst, 7165); 1353 dasm_put(Dst, 7238);
1335#if LJ_HASJIT 1354#if LJ_HASJIT
1336 dasm_put(Dst, 7037); 1355 dasm_put(Dst, 7065);
1337#endif 1356#endif
1338 dasm_put(Dst, 7172); 1357 dasm_put(Dst, 7245);
1339#if LJ_HASJIT 1358#if LJ_HASJIT
1340 dasm_put(Dst, 7175); 1359 dasm_put(Dst, 7248);
1341#endif 1360#endif
1342 dasm_put(Dst, 7185, Dt1(->base), Dt1(->top)); 1361 dasm_put(Dst, 7258, Dt1(->base), Dt1(->top));
1343#if LJ_HASJIT 1362#if LJ_HASJIT
1344 dasm_put(Dst, 7218); 1363 dasm_put(Dst, 7291);
1345#endif 1364#endif
1346 dasm_put(Dst, 7223, Dt1(->base), Dt1(->top)); 1365 dasm_put(Dst, 7296, Dt1(->base), Dt1(->top));
1347#if LJ_HASJIT 1366#if LJ_HASJIT
1348 dasm_put(Dst, 7163); 1367 dasm_put(Dst, 7327, DISPATCH_GL(vmstate), DISPATCH_GL(vmstate), ~LJ_VMST_EXIT, DISPATCH_J(exitno), DISPATCH_J(parent), 16*8, DISPATCH_GL(jit_L), DISPATCH_GL(jit_base), DISPATCH_J(L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, Dt1(->base));
1349#endif 1368#endif
1350 dasm_put(Dst, 7254); 1369 dasm_put(Dst, 7562);
1351#if LJ_HASJIT 1370#if LJ_HASJIT
1352 dasm_put(Dst, 7257, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1371 dasm_put(Dst, 7565, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1353#endif 1372#endif
1354 dasm_put(Dst, 7315); 1373 dasm_put(Dst, 7623);
1355 if (!sse) { 1374 if (!sse) {
1356 dasm_put(Dst, 7318); 1375 dasm_put(Dst, 7626);
1357 } 1376 }
1358 dasm_put(Dst, 7363, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1377 dasm_put(Dst, 7671, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1359 if (!sse) { 1378 if (!sse) {
1360 dasm_put(Dst, 7449); 1379 dasm_put(Dst, 7757);
1361 } 1380 }
1362 dasm_put(Dst, 7494, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32)); 1381 dasm_put(Dst, 7802, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(bff00000,00000000)), (unsigned int)((U64x(bff00000,00000000))>>32));
1363 if (!sse) { 1382 if (!sse) {
1364 dasm_put(Dst, 7580); 1383 dasm_put(Dst, 7888);
1365 } 1384 }
1366 dasm_put(Dst, 7619, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1385 dasm_put(Dst, 7927, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1367 if (sse) { 1386 if (sse) {
1368 dasm_put(Dst, 7708, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1387 dasm_put(Dst, 8016, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(43300000,00000000)), (unsigned int)((U64x(43300000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1369 } else { 1388 } else {
1370 dasm_put(Dst, 7822); 1389 dasm_put(Dst, 8130);
1371 } 1390 }
1372 dasm_put(Dst, 7869); 1391 dasm_put(Dst, 8177);
1373 if (!sse) { 1392 if (!sse) {
1374 } else { 1393 } else {
1375 dasm_put(Dst, 7946); 1394 dasm_put(Dst, 8254);
1376 } 1395 }
1377 dasm_put(Dst, 7949); 1396 dasm_put(Dst, 8257);
1378 dasm_put(Dst, 8034, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1397 dasm_put(Dst, 8342, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1379 dasm_put(Dst, 8135, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32)); 1398 dasm_put(Dst, 8443, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(7ff00000,00000000)), (unsigned int)((U64x(7ff00000,00000000))>>32));
1380 dasm_put(Dst, 8309); 1399 dasm_put(Dst, 8617);
1381 if (sse) { 1400 if (sse) {
1382 dasm_put(Dst, 8350); 1401 dasm_put(Dst, 8658);
1383 dasm_put(Dst, 8420); 1402 dasm_put(Dst, 8728);
1384 dasm_put(Dst, 8492); 1403 dasm_put(Dst, 8800);
1385 } else { 1404 } else {
1386 dasm_put(Dst, 8544); 1405 dasm_put(Dst, 8852);
1387 dasm_put(Dst, 8636); 1406 dasm_put(Dst, 8944);
1388 } 1407 }
1389 dasm_put(Dst, 8682); 1408 dasm_put(Dst, 8990);
1390 if (sse) { 1409 if (sse) {
1391 dasm_put(Dst, 8688, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1410 dasm_put(Dst, 8996, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1392 dasm_put(Dst, 8773, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1411 dasm_put(Dst, 9081, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1393 } else { 1412 } else {
1394 dasm_put(Dst, 8901); 1413 dasm_put(Dst, 9209);
1395 dasm_put(Dst, 8984); 1414 dasm_put(Dst, 9292);
1396 if (cmov) { 1415 if (cmov) {
1397 dasm_put(Dst, 9039); 1416 dasm_put(Dst, 9347);
1398 } else { 1417 } else {
1399 dasm_put(Dst, 9058); 1418 dasm_put(Dst, 9366);
1400 } 1419 }
1401 dasm_put(Dst, 8897); 1420 dasm_put(Dst, 9205);
1402 } 1421 }
1403 dasm_put(Dst, 9099); 1422 dasm_put(Dst, 9407);
1404} 1423}
1405 1424
1406/* Generate the code for a single instruction. */ 1425/* Generate the code for a single instruction. */
1407static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse) 1426static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1408{ 1427{
1409 int vk = 0; 1428 int vk = 0;
1410 dasm_put(Dst, 9121, defop); 1429 dasm_put(Dst, 1800, defop);
1411 1430
1412 switch (op) { 1431 switch (op) {
1413 1432
@@ -1416,602 +1435,602 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1416 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1435 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1417 1436
1418 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1437 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1419 dasm_put(Dst, 9123, LJ_TISNUM, LJ_TISNUM); 1438 dasm_put(Dst, 9429, LJ_TISNUM, LJ_TISNUM);
1420 if (sse) { 1439 if (sse) {
1421 dasm_put(Dst, 9144); 1440 dasm_put(Dst, 9450);
1422 } else { 1441 } else {
1423 dasm_put(Dst, 9159); 1442 dasm_put(Dst, 9465);
1424 if (cmov) { 1443 if (cmov) {
1425 dasm_put(Dst, 9169); 1444 dasm_put(Dst, 9475);
1426 } else { 1445 } else {
1427 dasm_put(Dst, 9175); 1446 dasm_put(Dst, 9481);
1428 } 1447 }
1429 } 1448 }
1430 switch (op) { 1449 switch (op) {
1431 case BC_ISLT: 1450 case BC_ISLT:
1432 dasm_put(Dst, 9182); 1451 dasm_put(Dst, 9488);
1433 break; 1452 break;
1434 case BC_ISGE: 1453 case BC_ISGE:
1435 dasm_put(Dst, 8979); 1454 dasm_put(Dst, 9287);
1436 break; 1455 break;
1437 case BC_ISLE: 1456 case BC_ISLE:
1438 dasm_put(Dst, 5914); 1457 dasm_put(Dst, 5942);
1439 break; 1458 break;
1440 case BC_ISGT: 1459 case BC_ISGT:
1441 dasm_put(Dst, 9187); 1460 dasm_put(Dst, 9493);
1442 break; 1461 break;
1443 default: break; /* Shut up GCC. */ 1462 default: break; /* Shut up GCC. */
1444 } 1463 }
1445 dasm_put(Dst, 9192, -BCBIAS_J*4); 1464 dasm_put(Dst, 9498, -BCBIAS_J*4);
1446 break; 1465 break;
1447 1466
1448 case BC_ISEQV: case BC_ISNEV: 1467 case BC_ISEQV: case BC_ISNEV:
1449 vk = op == BC_ISEQV; 1468 vk = op == BC_ISEQV;
1450 dasm_put(Dst, 9227, LJ_TISNUM, LJ_TISNUM); 1469 dasm_put(Dst, 9533, LJ_TISNUM, LJ_TISNUM);
1451 if (sse) { 1470 if (sse) {
1452 dasm_put(Dst, 9253); 1471 dasm_put(Dst, 9559);
1453 } else { 1472 } else {
1454 dasm_put(Dst, 9265); 1473 dasm_put(Dst, 9571);
1455 if (cmov) { 1474 if (cmov) {
1456 dasm_put(Dst, 9169); 1475 dasm_put(Dst, 9475);
1457 } else { 1476 } else {
1458 dasm_put(Dst, 9175); 1477 dasm_put(Dst, 9481);
1459 } 1478 }
1460 } 1479 }
1461 iseqne_fp: 1480 iseqne_fp:
1462 if (vk) { 1481 if (vk) {
1463 dasm_put(Dst, 9272); 1482 dasm_put(Dst, 9578);
1464 } else { 1483 } else {
1465 dasm_put(Dst, 9281); 1484 dasm_put(Dst, 9587);
1466 } 1485 }
1467 iseqne_end: 1486 iseqne_end:
1468 if (vk) { 1487 if (vk) {
1469 dasm_put(Dst, 9290, -BCBIAS_J*4); 1488 dasm_put(Dst, 9596, -BCBIAS_J*4);
1470 } else { 1489 } else {
1471 dasm_put(Dst, 9305, -BCBIAS_J*4); 1490 dasm_put(Dst, 9611, -BCBIAS_J*4);
1472 } 1491 }
1473 dasm_put(Dst, 9206); 1492 dasm_put(Dst, 9512);
1474 if (op == BC_ISEQV || op == BC_ISNEV) { 1493 if (op == BC_ISEQV || op == BC_ISNEV) {
1475 dasm_put(Dst, 9320, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1494 dasm_put(Dst, 9626, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1476 if (vk) { 1495 if (vk) {
1477 dasm_put(Dst, 9378); 1496 dasm_put(Dst, 9684);
1478 } else { 1497 } else {
1479 dasm_put(Dst, 9382); 1498 dasm_put(Dst, 9688);
1480 } 1499 }
1481 dasm_put(Dst, 9388); 1500 dasm_put(Dst, 9694);
1482 } 1501 }
1483 break; 1502 break;
1484 case BC_ISEQS: case BC_ISNES: 1503 case BC_ISEQS: case BC_ISNES:
1485 vk = op == BC_ISEQS; 1504 vk = op == BC_ISEQS;
1486 dasm_put(Dst, 9393, LJ_TSTR); 1505 dasm_put(Dst, 9699, LJ_TSTR);
1487 iseqne_test: 1506 iseqne_test:
1488 if (vk) { 1507 if (vk) {
1489 dasm_put(Dst, 9276); 1508 dasm_put(Dst, 9582);
1490 } else { 1509 } else {
1491 dasm_put(Dst, 2805); 1510 dasm_put(Dst, 2833);
1492 } 1511 }
1493 goto iseqne_end; 1512 goto iseqne_end;
1494 case BC_ISEQN: case BC_ISNEN: 1513 case BC_ISEQN: case BC_ISNEN:
1495 vk = op == BC_ISEQN; 1514 vk = op == BC_ISEQN;
1496 dasm_put(Dst, 9418, LJ_TISNUM); 1515 dasm_put(Dst, 9724, LJ_TISNUM);
1497 if (sse) { 1516 if (sse) {
1498 dasm_put(Dst, 9432); 1517 dasm_put(Dst, 9738);
1499 } else { 1518 } else {
1500 dasm_put(Dst, 9445); 1519 dasm_put(Dst, 9751);
1501 if (cmov) { 1520 if (cmov) {
1502 dasm_put(Dst, 9169); 1521 dasm_put(Dst, 9475);
1503 } else { 1522 } else {
1504 dasm_put(Dst, 9175); 1523 dasm_put(Dst, 9481);
1505 } 1524 }
1506 } 1525 }
1507 goto iseqne_fp; 1526 goto iseqne_fp;
1508 case BC_ISEQP: case BC_ISNEP: 1527 case BC_ISEQP: case BC_ISNEP:
1509 vk = op == BC_ISEQP; 1528 vk = op == BC_ISEQP;
1510 dasm_put(Dst, 9453); 1529 dasm_put(Dst, 9759);
1511 goto iseqne_test; 1530 goto iseqne_test;
1512 1531
1513 /* -- Unary test and copy ops ------------------------------------------- */ 1532 /* -- Unary test and copy ops ------------------------------------------- */
1514 1533
1515 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1534 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1516 dasm_put(Dst, 9465, LJ_TISTRUECOND); 1535 dasm_put(Dst, 9771, LJ_TISTRUECOND);
1517 if (op == BC_IST || op == BC_ISTC) { 1536 if (op == BC_IST || op == BC_ISTC) {
1518 dasm_put(Dst, 9477); 1537 dasm_put(Dst, 9783);
1519 } else { 1538 } else {
1520 dasm_put(Dst, 9482); 1539 dasm_put(Dst, 9788);
1521 } 1540 }
1522 if (op == BC_ISTC || op == BC_ISFC) { 1541 if (op == BC_ISTC || op == BC_ISFC) {
1523 dasm_put(Dst, 9487); 1542 dasm_put(Dst, 9793);
1524 } 1543 }
1525 dasm_put(Dst, 9498, -BCBIAS_J*4); 1544 dasm_put(Dst, 9804, -BCBIAS_J*4);
1526 break; 1545 break;
1527 1546
1528 /* -- Unary ops --------------------------------------------------------- */ 1547 /* -- Unary ops --------------------------------------------------------- */
1529 1548
1530 case BC_MOV: 1549 case BC_MOV:
1531 dasm_put(Dst, 9531); 1550 dasm_put(Dst, 9837);
1532 break; 1551 break;
1533 case BC_NOT: 1552 case BC_NOT:
1534 dasm_put(Dst, 9566, LJ_TISTRUECOND, LJ_TTRUE); 1553 dasm_put(Dst, 9872, LJ_TISTRUECOND, LJ_TTRUE);
1535 break; 1554 break;
1536 case BC_UNM: 1555 case BC_UNM:
1537 dasm_put(Dst, 9603, LJ_TISNUM); 1556 dasm_put(Dst, 9909, LJ_TISNUM);
1538 if (sse) { 1557 if (sse) {
1539 dasm_put(Dst, 9614, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1558 dasm_put(Dst, 9920, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1540 } else { 1559 } else {
1541 dasm_put(Dst, 9639); 1560 dasm_put(Dst, 9945);
1542 } 1561 }
1543 dasm_put(Dst, 9206); 1562 dasm_put(Dst, 9512);
1544 break; 1563 break;
1545 case BC_LEN: 1564 case BC_LEN:
1546 dasm_put(Dst, 9648, LJ_TSTR); 1565 dasm_put(Dst, 9954, LJ_TSTR);
1547 if (sse) { 1566 if (sse) {
1548 dasm_put(Dst, 9662, Dt5(->len)); 1567 dasm_put(Dst, 9968, Dt5(->len));
1549 } else { 1568 } else {
1550 dasm_put(Dst, 9680, Dt5(->len)); 1569 dasm_put(Dst, 9986, Dt5(->len));
1551 } 1570 }
1552 dasm_put(Dst, 9689, LJ_TTAB); 1571 dasm_put(Dst, 9995, LJ_TTAB);
1553 if (sse) { 1572 if (sse) {
1554 dasm_put(Dst, 9731); 1573 dasm_put(Dst, 10037);
1555 } else { 1574 } else {
1556 } 1575 }
1557 dasm_put(Dst, 9740); 1576 dasm_put(Dst, 10046);
1558 break; 1577 break;
1559 1578
1560 /* -- Binary ops -------------------------------------------------------- */ 1579 /* -- Binary ops -------------------------------------------------------- */
1561 1580
1562 1581
1563 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1582 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1564 dasm_put(Dst, 9750); 1583 dasm_put(Dst, 10056);
1565 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1584 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1566 switch (vk) { 1585 switch (vk) {
1567 case 0: 1586 case 0:
1568 dasm_put(Dst, 9758, LJ_TISNUM); 1587 dasm_put(Dst, 10064, LJ_TISNUM);
1569 if (sse) { 1588 if (sse) {
1570 dasm_put(Dst, 9770); 1589 dasm_put(Dst, 10076);
1571 } else { 1590 } else {
1572 dasm_put(Dst, 9785); 1591 dasm_put(Dst, 10091);
1573 } 1592 }
1574 break; 1593 break;
1575 case 1: 1594 case 1:
1576 dasm_put(Dst, 9794, LJ_TISNUM); 1595 dasm_put(Dst, 10100, LJ_TISNUM);
1577 if (sse) { 1596 if (sse) {
1578 dasm_put(Dst, 9806); 1597 dasm_put(Dst, 10112);
1579 } else { 1598 } else {
1580 dasm_put(Dst, 9821); 1599 dasm_put(Dst, 10127);
1581 } 1600 }
1582 break; 1601 break;
1583 default: 1602 default:
1584 dasm_put(Dst, 9830, LJ_TISNUM, LJ_TISNUM); 1603 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1585 if (sse) { 1604 if (sse) {
1586 dasm_put(Dst, 9852); 1605 dasm_put(Dst, 10158);
1587 } else { 1606 } else {
1588 dasm_put(Dst, 9866); 1607 dasm_put(Dst, 10172);
1589 } 1608 }
1590 break; 1609 break;
1591 } 1610 }
1592 if (sse) { 1611 if (sse) {
1593 dasm_put(Dst, 9632); 1612 dasm_put(Dst, 9938);
1594 } else { 1613 } else {
1595 dasm_put(Dst, 9644); 1614 dasm_put(Dst, 9950);
1596 } 1615 }
1597 dasm_put(Dst, 9206); 1616 dasm_put(Dst, 9512);
1598 break; 1617 break;
1599 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1618 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1600 dasm_put(Dst, 9750); 1619 dasm_put(Dst, 10056);
1601 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1620 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1602 switch (vk) { 1621 switch (vk) {
1603 case 0: 1622 case 0:
1604 dasm_put(Dst, 9758, LJ_TISNUM); 1623 dasm_put(Dst, 10064, LJ_TISNUM);
1605 if (sse) { 1624 if (sse) {
1606 dasm_put(Dst, 9874); 1625 dasm_put(Dst, 10180);
1607 } else { 1626 } else {
1608 dasm_put(Dst, 9889); 1627 dasm_put(Dst, 10195);
1609 } 1628 }
1610 break; 1629 break;
1611 case 1: 1630 case 1:
1612 dasm_put(Dst, 9794, LJ_TISNUM); 1631 dasm_put(Dst, 10100, LJ_TISNUM);
1613 if (sse) { 1632 if (sse) {
1614 dasm_put(Dst, 9898); 1633 dasm_put(Dst, 10204);
1615 } else { 1634 } else {
1616 dasm_put(Dst, 9913); 1635 dasm_put(Dst, 10219);
1617 } 1636 }
1618 break; 1637 break;
1619 default: 1638 default:
1620 dasm_put(Dst, 9830, LJ_TISNUM, LJ_TISNUM); 1639 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1621 if (sse) { 1640 if (sse) {
1622 dasm_put(Dst, 9922); 1641 dasm_put(Dst, 10228);
1623 } else { 1642 } else {
1624 dasm_put(Dst, 9936); 1643 dasm_put(Dst, 10242);
1625 } 1644 }
1626 break; 1645 break;
1627 } 1646 }
1628 if (sse) { 1647 if (sse) {
1629 dasm_put(Dst, 9632); 1648 dasm_put(Dst, 9938);
1630 } else { 1649 } else {
1631 dasm_put(Dst, 9644); 1650 dasm_put(Dst, 9950);
1632 } 1651 }
1633 dasm_put(Dst, 9206); 1652 dasm_put(Dst, 9512);
1634 break; 1653 break;
1635 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1654 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1636 dasm_put(Dst, 9750); 1655 dasm_put(Dst, 10056);
1637 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1656 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1638 switch (vk) { 1657 switch (vk) {
1639 case 0: 1658 case 0:
1640 dasm_put(Dst, 9758, LJ_TISNUM); 1659 dasm_put(Dst, 10064, LJ_TISNUM);
1641 if (sse) { 1660 if (sse) {
1642 dasm_put(Dst, 9944); 1661 dasm_put(Dst, 10250);
1643 } else { 1662 } else {
1644 dasm_put(Dst, 9959); 1663 dasm_put(Dst, 10265);
1645 } 1664 }
1646 break; 1665 break;
1647 case 1: 1666 case 1:
1648 dasm_put(Dst, 9794, LJ_TISNUM); 1667 dasm_put(Dst, 10100, LJ_TISNUM);
1649 if (sse) { 1668 if (sse) {
1650 dasm_put(Dst, 9968); 1669 dasm_put(Dst, 10274);
1651 } else { 1670 } else {
1652 dasm_put(Dst, 9983); 1671 dasm_put(Dst, 10289);
1653 } 1672 }
1654 break; 1673 break;
1655 default: 1674 default:
1656 dasm_put(Dst, 9830, LJ_TISNUM, LJ_TISNUM); 1675 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1657 if (sse) { 1676 if (sse) {
1658 dasm_put(Dst, 9992); 1677 dasm_put(Dst, 10298);
1659 } else { 1678 } else {
1660 dasm_put(Dst, 10006); 1679 dasm_put(Dst, 10312);
1661 } 1680 }
1662 break; 1681 break;
1663 } 1682 }
1664 if (sse) { 1683 if (sse) {
1665 dasm_put(Dst, 9632); 1684 dasm_put(Dst, 9938);
1666 } else { 1685 } else {
1667 dasm_put(Dst, 9644); 1686 dasm_put(Dst, 9950);
1668 } 1687 }
1669 dasm_put(Dst, 9206); 1688 dasm_put(Dst, 9512);
1670 break; 1689 break;
1671 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1690 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1672 dasm_put(Dst, 9750); 1691 dasm_put(Dst, 10056);
1673 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1692 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1674 switch (vk) { 1693 switch (vk) {
1675 case 0: 1694 case 0:
1676 dasm_put(Dst, 9758, LJ_TISNUM); 1695 dasm_put(Dst, 10064, LJ_TISNUM);
1677 if (sse) { 1696 if (sse) {
1678 dasm_put(Dst, 10014); 1697 dasm_put(Dst, 10320);
1679 } else { 1698 } else {
1680 dasm_put(Dst, 10029); 1699 dasm_put(Dst, 10335);
1681 } 1700 }
1682 break; 1701 break;
1683 case 1: 1702 case 1:
1684 dasm_put(Dst, 9794, LJ_TISNUM); 1703 dasm_put(Dst, 10100, LJ_TISNUM);
1685 if (sse) { 1704 if (sse) {
1686 dasm_put(Dst, 10038); 1705 dasm_put(Dst, 10344);
1687 } else { 1706 } else {
1688 dasm_put(Dst, 10053); 1707 dasm_put(Dst, 10359);
1689 } 1708 }
1690 break; 1709 break;
1691 default: 1710 default:
1692 dasm_put(Dst, 9830, LJ_TISNUM, LJ_TISNUM); 1711 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1693 if (sse) { 1712 if (sse) {
1694 dasm_put(Dst, 10062); 1713 dasm_put(Dst, 10368);
1695 } else { 1714 } else {
1696 dasm_put(Dst, 10076); 1715 dasm_put(Dst, 10382);
1697 } 1716 }
1698 break; 1717 break;
1699 } 1718 }
1700 if (sse) { 1719 if (sse) {
1701 dasm_put(Dst, 9632); 1720 dasm_put(Dst, 9938);
1702 } else { 1721 } else {
1703 dasm_put(Dst, 9644); 1722 dasm_put(Dst, 9950);
1704 } 1723 }
1705 dasm_put(Dst, 9206); 1724 dasm_put(Dst, 9512);
1706 break; 1725 break;
1707 case BC_MODVN: 1726 case BC_MODVN:
1708 dasm_put(Dst, 9750); 1727 dasm_put(Dst, 10056);
1709 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1728 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1710 switch (vk) { 1729 switch (vk) {
1711 case 0: 1730 case 0:
1712 dasm_put(Dst, 9758, LJ_TISNUM); 1731 dasm_put(Dst, 10064, LJ_TISNUM);
1713 if (sse) { 1732 if (sse) {
1714 dasm_put(Dst, 10084); 1733 dasm_put(Dst, 10390);
1715 } else { 1734 } else {
1716 dasm_put(Dst, 10099); 1735 dasm_put(Dst, 10405);
1717 } 1736 }
1718 break; 1737 break;
1719 case 1: 1738 case 1:
1720 dasm_put(Dst, 9794, LJ_TISNUM); 1739 dasm_put(Dst, 10100, LJ_TISNUM);
1721 if (sse) { 1740 if (sse) {
1722 dasm_put(Dst, 10108); 1741 dasm_put(Dst, 10414);
1723 } else { 1742 } else {
1724 dasm_put(Dst, 10123); 1743 dasm_put(Dst, 10429);
1725 } 1744 }
1726 break; 1745 break;
1727 default: 1746 default:
1728 dasm_put(Dst, 9830, LJ_TISNUM, LJ_TISNUM); 1747 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1729 if (sse) { 1748 if (sse) {
1730 dasm_put(Dst, 10132); 1749 dasm_put(Dst, 10438);
1731 } else { 1750 } else {
1732 dasm_put(Dst, 10146); 1751 dasm_put(Dst, 10452);
1733 } 1752 }
1734 break; 1753 break;
1735 } 1754 }
1736 dasm_put(Dst, 10154); 1755 dasm_put(Dst, 10460);
1737 if (sse) { 1756 if (sse) {
1738 dasm_put(Dst, 9632); 1757 dasm_put(Dst, 9938);
1739 } else { 1758 } else {
1740 dasm_put(Dst, 9644); 1759 dasm_put(Dst, 9950);
1741 } 1760 }
1742 dasm_put(Dst, 9206); 1761 dasm_put(Dst, 9512);
1743 break; 1762 break;
1744 case BC_MODNV: case BC_MODVV: 1763 case BC_MODNV: case BC_MODVV:
1745 dasm_put(Dst, 9750); 1764 dasm_put(Dst, 10056);
1746 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1765 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1747 switch (vk) { 1766 switch (vk) {
1748 case 0: 1767 case 0:
1749 dasm_put(Dst, 9758, LJ_TISNUM); 1768 dasm_put(Dst, 10064, LJ_TISNUM);
1750 if (sse) { 1769 if (sse) {
1751 dasm_put(Dst, 10084); 1770 dasm_put(Dst, 10390);
1752 } else { 1771 } else {
1753 dasm_put(Dst, 10099); 1772 dasm_put(Dst, 10405);
1754 } 1773 }
1755 break; 1774 break;
1756 case 1: 1775 case 1:
1757 dasm_put(Dst, 9794, LJ_TISNUM); 1776 dasm_put(Dst, 10100, LJ_TISNUM);
1758 if (sse) { 1777 if (sse) {
1759 dasm_put(Dst, 10108); 1778 dasm_put(Dst, 10414);
1760 } else { 1779 } else {
1761 dasm_put(Dst, 10123); 1780 dasm_put(Dst, 10429);
1762 } 1781 }
1763 break; 1782 break;
1764 default: 1783 default:
1765 dasm_put(Dst, 9830, LJ_TISNUM, LJ_TISNUM); 1784 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1766 if (sse) { 1785 if (sse) {
1767 dasm_put(Dst, 10132); 1786 dasm_put(Dst, 10438);
1768 } else { 1787 } else {
1769 dasm_put(Dst, 10146); 1788 dasm_put(Dst, 10452);
1770 } 1789 }
1771 break; 1790 break;
1772 } 1791 }
1773 dasm_put(Dst, 10160); 1792 dasm_put(Dst, 10466);
1774 break; 1793 break;
1775 case BC_POW: 1794 case BC_POW:
1776 dasm_put(Dst, 9750); 1795 dasm_put(Dst, 10056);
1777 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1796 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1778 switch (vk) { 1797 switch (vk) {
1779 case 0: 1798 case 0:
1780 dasm_put(Dst, 9758, LJ_TISNUM); 1799 dasm_put(Dst, 10064, LJ_TISNUM);
1781 if (sse) { 1800 if (sse) {
1782 dasm_put(Dst, 10084); 1801 dasm_put(Dst, 10390);
1783 } else { 1802 } else {
1784 dasm_put(Dst, 10099); 1803 dasm_put(Dst, 10405);
1785 } 1804 }
1786 break; 1805 break;
1787 case 1: 1806 case 1:
1788 dasm_put(Dst, 9794, LJ_TISNUM); 1807 dasm_put(Dst, 10100, LJ_TISNUM);
1789 if (sse) { 1808 if (sse) {
1790 dasm_put(Dst, 10108); 1809 dasm_put(Dst, 10414);
1791 } else { 1810 } else {
1792 dasm_put(Dst, 10123); 1811 dasm_put(Dst, 10429);
1793 } 1812 }
1794 break; 1813 break;
1795 default: 1814 default:
1796 dasm_put(Dst, 9830, LJ_TISNUM, LJ_TISNUM); 1815 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM);
1797 if (sse) { 1816 if (sse) {
1798 dasm_put(Dst, 10132); 1817 dasm_put(Dst, 10438);
1799 } else { 1818 } else {
1800 dasm_put(Dst, 10146); 1819 dasm_put(Dst, 10452);
1801 } 1820 }
1802 break; 1821 break;
1803 } 1822 }
1804 dasm_put(Dst, 10165); 1823 dasm_put(Dst, 10471);
1805 if (sse) { 1824 if (sse) {
1806 dasm_put(Dst, 9632); 1825 dasm_put(Dst, 9938);
1807 } else { 1826 } else {
1808 dasm_put(Dst, 9644); 1827 dasm_put(Dst, 9950);
1809 } 1828 }
1810 dasm_put(Dst, 9206); 1829 dasm_put(Dst, 9512);
1811 break; 1830 break;
1812 1831
1813 case BC_CAT: 1832 case BC_CAT:
1814 dasm_put(Dst, 10169, Dt1(->base), Dt1(->base)); 1833 dasm_put(Dst, 10475, Dt1(->base), Dt1(->base));
1815 break; 1834 break;
1816 1835
1817 /* -- Constant ops ------------------------------------------------------ */ 1836 /* -- Constant ops ------------------------------------------------------ */
1818 1837
1819 case BC_KSTR: 1838 case BC_KSTR:
1820 dasm_put(Dst, 10260, LJ_TSTR); 1839 dasm_put(Dst, 10566, LJ_TSTR);
1821 break; 1840 break;
1822 case BC_KSHORT: 1841 case BC_KSHORT:
1823 if (sse) { 1842 if (sse) {
1824 dasm_put(Dst, 10297); 1843 dasm_put(Dst, 10603);
1825 } else { 1844 } else {
1826 dasm_put(Dst, 10312); 1845 dasm_put(Dst, 10618);
1827 } 1846 }
1828 dasm_put(Dst, 9206); 1847 dasm_put(Dst, 9512);
1829 break; 1848 break;
1830 case BC_KNUM: 1849 case BC_KNUM:
1831 if (sse) { 1850 if (sse) {
1832 dasm_put(Dst, 10320); 1851 dasm_put(Dst, 10626);
1833 } else { 1852 } else {
1834 dasm_put(Dst, 10334); 1853 dasm_put(Dst, 10640);
1835 } 1854 }
1836 dasm_put(Dst, 9206); 1855 dasm_put(Dst, 9512);
1837 break; 1856 break;
1838 case BC_KPRI: 1857 case BC_KPRI:
1839 dasm_put(Dst, 10342); 1858 dasm_put(Dst, 10648);
1840 break; 1859 break;
1841 case BC_KNIL: 1860 case BC_KNIL:
1842 dasm_put(Dst, 10371, LJ_TNIL); 1861 dasm_put(Dst, 10677, LJ_TNIL);
1843 break; 1862 break;
1844 1863
1845 /* -- Upvalue and function ops ------------------------------------------ */ 1864 /* -- Upvalue and function ops ------------------------------------------ */
1846 1865
1847 case BC_UGET: 1866 case BC_UGET:
1848 dasm_put(Dst, 10419, offsetof(GCfuncL, uvptr), DtA(->v)); 1867 dasm_put(Dst, 10725, offsetof(GCfuncL, uvptr), DtA(->v));
1849 break; 1868 break;
1850 case BC_USETV: 1869 case BC_USETV:
1851#define TV2MARKOFS \ 1870#define TV2MARKOFS \
1852 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1871 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1853 dasm_put(Dst, 10465, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G); 1872 dasm_put(Dst, 10771, offsetof(GCfuncL, uvptr), DtA(->closed), DtA(->v), TV2MARKOFS, LJ_GC_BLACK, LJ_TISGCV, LJ_TISNUM - LJ_TISGCV, Dt4(->gch.marked), LJ_GC_WHITES, GG_DISP2G);
1854 dasm_put(Dst, 10561); 1873 dasm_put(Dst, 10867);
1855 break; 1874 break;
1856#undef TV2MARKOFS 1875#undef TV2MARKOFS
1857 case BC_USETS: 1876 case BC_USETS:
1858 dasm_put(Dst, 10573, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1877 dasm_put(Dst, 10879, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1859 break; 1878 break;
1860 case BC_USETN: 1879 case BC_USETN:
1861 dasm_put(Dst, 10669); 1880 dasm_put(Dst, 10975);
1862 if (sse) { 1881 if (sse) {
1863 dasm_put(Dst, 10674); 1882 dasm_put(Dst, 10980);
1864 } else { 1883 } else {
1865 dasm_put(Dst, 9448); 1884 dasm_put(Dst, 9754);
1866 } 1885 }
1867 dasm_put(Dst, 10682, offsetof(GCfuncL, uvptr), DtA(->v)); 1886 dasm_put(Dst, 10988, offsetof(GCfuncL, uvptr), DtA(->v));
1868 if (sse) { 1887 if (sse) {
1869 dasm_put(Dst, 10691); 1888 dasm_put(Dst, 10997);
1870 } else { 1889 } else {
1871 dasm_put(Dst, 10697); 1890 dasm_put(Dst, 11003);
1872 } 1891 }
1873 dasm_put(Dst, 9206); 1892 dasm_put(Dst, 9512);
1874 break; 1893 break;
1875 case BC_USETP: 1894 case BC_USETP:
1876 dasm_put(Dst, 10700, offsetof(GCfuncL, uvptr), DtA(->v)); 1895 dasm_put(Dst, 11006, offsetof(GCfuncL, uvptr), DtA(->v));
1877 break; 1896 break;
1878 case BC_UCLO: 1897 case BC_UCLO:
1879 dasm_put(Dst, 10740, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1898 dasm_put(Dst, 11046, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1880 break; 1899 break;
1881 1900
1882 case BC_FNEW: 1901 case BC_FNEW:
1883 dasm_put(Dst, 10796, Dt1(->base), Dt1(->base), LJ_TFUNC); 1902 dasm_put(Dst, 11102, Dt1(->base), Dt1(->base), LJ_TFUNC);
1884 break; 1903 break;
1885 1904
1886 /* -- Table ops --------------------------------------------------------- */ 1905 /* -- Table ops --------------------------------------------------------- */
1887 1906
1888 case BC_TNEW: 1907 case BC_TNEW:
1889 dasm_put(Dst, 10863, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1908 dasm_put(Dst, 11169, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1890 break; 1909 break;
1891 case BC_TDUP: 1910 case BC_TDUP:
1892 dasm_put(Dst, 10987, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1911 dasm_put(Dst, 11293, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1893 break; 1912 break;
1894 1913
1895 case BC_GGET: 1914 case BC_GGET:
1896 dasm_put(Dst, 11086, Dt7(->env)); 1915 dasm_put(Dst, 11392, Dt7(->env));
1897 break; 1916 break;
1898 case BC_GSET: 1917 case BC_GSET:
1899 dasm_put(Dst, 11106, Dt7(->env)); 1918 dasm_put(Dst, 11412, Dt7(->env));
1900 break; 1919 break;
1901 1920
1902 case BC_TGETV: 1921 case BC_TGETV:
1903 dasm_put(Dst, 11126, LJ_TTAB, LJ_TISNUM); 1922 dasm_put(Dst, 11432, LJ_TTAB, LJ_TISNUM);
1904 if (sse) { 1923 if (sse) {
1905 dasm_put(Dst, 11159); 1924 dasm_put(Dst, 11465);
1906 } else { 1925 } else {
1907 } 1926 }
1908 dasm_put(Dst, 11180, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1927 dasm_put(Dst, 11486, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1909 dasm_put(Dst, 11274, LJ_TSTR); 1928 dasm_put(Dst, 11580, LJ_TSTR);
1910 break; 1929 break;
1911 case BC_TGETS: 1930 case BC_TGETS:
1912 dasm_put(Dst, 11292, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1931 dasm_put(Dst, 11598, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1913 dasm_put(Dst, 11378, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1932 dasm_put(Dst, 11684, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1914 break; 1933 break;
1915 case BC_TGETB: 1934 case BC_TGETB:
1916 dasm_put(Dst, 11451, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1935 dasm_put(Dst, 11757, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1917 dasm_put(Dst, 9740); 1936 dasm_put(Dst, 10046);
1918 break; 1937 break;
1919 1938
1920 case BC_TSETV: 1939 case BC_TSETV:
1921 dasm_put(Dst, 11552, LJ_TTAB, LJ_TISNUM); 1940 dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM);
1922 if (sse) { 1941 if (sse) {
1923 dasm_put(Dst, 11159); 1942 dasm_put(Dst, 11465);
1924 } else { 1943 } else {
1925 } 1944 }
1926 dasm_put(Dst, 11585, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1945 dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1927 dasm_put(Dst, 11670, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1946 dasm_put(Dst, 11976, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1928 break; 1947 break;
1929 case BC_TSETS: 1948 case BC_TSETS:
1930 dasm_put(Dst, 11734, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1949 dasm_put(Dst, 12040, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1931 dasm_put(Dst, 11811, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1950 dasm_put(Dst, 12117, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1932 dasm_put(Dst, 11903, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1951 dasm_put(Dst, 12209, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1933 break; 1952 break;
1934 case BC_TSETB: 1953 case BC_TSETB:
1935 dasm_put(Dst, 11995, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1954 dasm_put(Dst, 12301, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1936 dasm_put(Dst, 12095, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1955 dasm_put(Dst, 12401, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1937 break; 1956 break;
1938 1957
1939 case BC_TSETM: 1958 case BC_TSETM:
1940 dasm_put(Dst, 12143); 1959 dasm_put(Dst, 12449);
1941 if (sse) { 1960 if (sse) {
1942 dasm_put(Dst, 10674); 1961 dasm_put(Dst, 10980);
1943 } else { 1962 } else {
1944 } 1963 }
1945 dasm_put(Dst, 12148, Dt6(->marked), LJ_GC_BLACK); 1964 dasm_put(Dst, 12454, Dt6(->marked), LJ_GC_BLACK);
1946 if (sse) { 1965 if (sse) {
1947 dasm_put(Dst, 12173); 1966 dasm_put(Dst, 12479);
1948 } else { 1967 } else {
1949 } 1968 }
1950 dasm_put(Dst, 12181, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain)); 1969 dasm_put(Dst, 12487, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base), Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain));
1951 dasm_put(Dst, 12317, Dt6(->gclist)); 1970 dasm_put(Dst, 12623, Dt6(->gclist));
1952 break; 1971 break;
1953 1972
1954 /* -- Calls and vararg handling ----------------------------------------- */ 1973 /* -- Calls and vararg handling ----------------------------------------- */
1955 1974
1956 case BC_CALL: case BC_CALLM: 1975 case BC_CALL: case BC_CALLM:
1957 dasm_put(Dst, 9754); 1976 dasm_put(Dst, 10060);
1958 if (op == BC_CALLM) { 1977 if (op == BC_CALLM) {
1959 dasm_put(Dst, 12325); 1978 dasm_put(Dst, 12631);
1960 } 1979 }
1961 dasm_put(Dst, 12330, LJ_TFUNC, Dt7(->pc)); 1980 dasm_put(Dst, 12636, LJ_TFUNC, Dt7(->pc));
1962 break; 1981 break;
1963 1982
1964 case BC_CALLMT: 1983 case BC_CALLMT:
1965 dasm_put(Dst, 12325); 1984 dasm_put(Dst, 12631);
1966 break; 1985 break;
1967 case BC_CALLT: 1986 case BC_CALLT:
1968 dasm_put(Dst, 12373, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 1987 dasm_put(Dst, 12679, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1969 dasm_put(Dst, 12497, FRAME_TYPE, Dt7(->pc), PC2PROTO(k)); 1988 dasm_put(Dst, 12803, FRAME_TYPE, Dt7(->pc), PC2PROTO(k));
1970 break; 1989 break;
1971 1990
1972 case BC_ITERC: 1991 case BC_ITERC:
1973 dasm_put(Dst, 12558, LJ_TFUNC, 2+1, Dt7(->pc)); 1992 dasm_put(Dst, 12864, LJ_TFUNC, 2+1, Dt7(->pc));
1974 break; 1993 break;
1975 1994
1976 case BC_VARG: 1995 case BC_VARG:
1977 dasm_put(Dst, 12640, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL); 1996 dasm_put(Dst, 12946, Dt7(->pc), PC2PROTO(numparams), (8+FRAME_VARG), LJ_TNIL);
1978 dasm_put(Dst, 12794, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 1997 dasm_put(Dst, 13100, Dt1(->maxstack), Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
1979 break; 1998 break;
1980 1999
1981 /* -- Returns ----------------------------------------------------------- */ 2000 /* -- Returns ----------------------------------------------------------- */
1982 2001
1983 case BC_RETM: 2002 case BC_RETM:
1984 dasm_put(Dst, 12325); 2003 dasm_put(Dst, 12631);
1985 break; 2004 break;
1986 2005
1987 case BC_RET: case BC_RET0: case BC_RET1: 2006 case BC_RET: case BC_RET0: case BC_RET1:
1988 if (op != BC_RET0) { 2007 if (op != BC_RET0) {
1989 dasm_put(Dst, 12899); 2008 dasm_put(Dst, 13205);
1990 } 2009 }
1991 dasm_put(Dst, 12903, FRAME_TYPE); 2010 dasm_put(Dst, 13209, FRAME_TYPE);
1992 switch (op) { 2011 switch (op) {
1993 case BC_RET: 2012 case BC_RET:
1994 dasm_put(Dst, 12922); 2013 dasm_put(Dst, 13228);
1995 break; 2014 break;
1996 case BC_RET1: 2015 case BC_RET1:
1997 dasm_put(Dst, 12986); 2016 dasm_put(Dst, 13292);
1998 /* fallthrough */ 2017 /* fallthrough */
1999 case BC_RET0: 2018 case BC_RET0:
2000 dasm_put(Dst, 13002); 2019 dasm_put(Dst, 13308);
2001 default: 2020 default:
2002 break; 2021 break;
2003 } 2022 }
2004 dasm_put(Dst, 13013, Dt7(->pc), PC2PROTO(k)); 2023 dasm_put(Dst, 13319, Dt7(->pc), PC2PROTO(k));
2005 if (op == BC_RET) { 2024 if (op == BC_RET) {
2006 dasm_put(Dst, 13061, LJ_TNIL); 2025 dasm_put(Dst, 13367, LJ_TNIL);
2007 } else { 2026 } else {
2008 dasm_put(Dst, 13072, LJ_TNIL); 2027 dasm_put(Dst, 13378, LJ_TNIL);
2009 } 2028 }
2010 dasm_put(Dst, 13079); 2029 dasm_put(Dst, 13385);
2011 if (op != BC_RET0) { 2030 if (op != BC_RET0) {
2012 dasm_put(Dst, 13099); 2031 dasm_put(Dst, 13405);
2013 } 2032 }
2014 dasm_put(Dst, 4568); 2033 dasm_put(Dst, 4596);
2015 break; 2034 break;
2016 2035
2017 /* -- Loops and branches ------------------------------------------------ */ 2036 /* -- Loops and branches ------------------------------------------------ */
@@ -2019,7 +2038,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2019 2038
2020 case BC_FORL: 2039 case BC_FORL:
2021#if LJ_HASJIT 2040#if LJ_HASJIT
2022 dasm_put(Dst, 13102, HOTCOUNT_PCMASK, GG_DISP2HOT); 2041 dasm_put(Dst, 13408, HOTCOUNT_PCMASK, GG_DISP2HOT);
2023#endif 2042#endif
2024 break; 2043 break;
2025 2044
@@ -2031,57 +2050,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2031 case BC_FORI: 2050 case BC_FORI:
2032 case BC_IFORL: 2051 case BC_IFORL:
2033 vk = (op == BC_IFORL || op == BC_JFORL); 2052 vk = (op == BC_IFORL || op == BC_JFORL);
2034 dasm_put(Dst, 13123); 2053 dasm_put(Dst, 13429);
2035 if (!vk) { 2054 if (!vk) {
2036 dasm_put(Dst, 13127, LJ_TISNUM, LJ_TISNUM); 2055 dasm_put(Dst, 13433, LJ_TISNUM, LJ_TISNUM);
2037 } 2056 }
2038 dasm_put(Dst, 13146); 2057 dasm_put(Dst, 13452);
2039 if (!vk) { 2058 if (!vk) {
2040 dasm_put(Dst, 13150, LJ_TISNUM); 2059 dasm_put(Dst, 13456, LJ_TISNUM);
2041 } 2060 }
2042 if (sse) { 2061 if (sse) {
2043 dasm_put(Dst, 13159); 2062 dasm_put(Dst, 13465);
2044 if (vk) { 2063 if (vk) {
2045 dasm_put(Dst, 13171); 2064 dasm_put(Dst, 13477);
2046 } else { 2065 } else {
2047 dasm_put(Dst, 13190); 2066 dasm_put(Dst, 13496);
2048 } 2067 }
2049 dasm_put(Dst, 13195); 2068 dasm_put(Dst, 13501);
2050 } else { 2069 } else {
2051 dasm_put(Dst, 13208); 2070 dasm_put(Dst, 13514);
2052 if (vk) { 2071 if (vk) {
2053 dasm_put(Dst, 13214); 2072 dasm_put(Dst, 13520);
2054 } else { 2073 } else {
2055 dasm_put(Dst, 13230); 2074 dasm_put(Dst, 13536);
2056 } 2075 }
2057 dasm_put(Dst, 13238); 2076 dasm_put(Dst, 13544);
2058 if (cmov) { 2077 if (cmov) {
2059 dasm_put(Dst, 9169); 2078 dasm_put(Dst, 9475);
2060 } else { 2079 } else {
2061 dasm_put(Dst, 9175); 2080 dasm_put(Dst, 9481);
2062 } 2081 }
2063 if (!cmov) { 2082 if (!cmov) {
2064 dasm_put(Dst, 13243); 2083 dasm_put(Dst, 13549);
2065 } 2084 }
2066 } 2085 }
2067 if (op == BC_FORI) { 2086 if (op == BC_FORI) {
2068 dasm_put(Dst, 13249, -BCBIAS_J*4); 2087 dasm_put(Dst, 13555, -BCBIAS_J*4);
2069 } else if (op == BC_JFORI) { 2088 } else if (op == BC_JFORI) {
2070 dasm_put(Dst, 13259, -BCBIAS_J*4, BC_JLOOP); 2089 dasm_put(Dst, 13565, -BCBIAS_J*4, BC_JLOOP);
2071 } else if (op == BC_IFORL) { 2090 } else if (op == BC_IFORL) {
2072 dasm_put(Dst, 13273, -BCBIAS_J*4); 2091 dasm_put(Dst, 13579, -BCBIAS_J*4);
2073 } else { 2092 } else {
2074 dasm_put(Dst, 13269, BC_JLOOP); 2093 dasm_put(Dst, 13575, BC_JLOOP);
2075 } 2094 }
2076 dasm_put(Dst, 9204); 2095 dasm_put(Dst, 9510);
2077 if (sse) { 2096 if (sse) {
2078 dasm_put(Dst, 13283); 2097 dasm_put(Dst, 13589);
2079 } 2098 }
2080 break; 2099 break;
2081 2100
2082 case BC_ITERL: 2101 case BC_ITERL:
2083#if LJ_HASJIT 2102#if LJ_HASJIT
2084 dasm_put(Dst, 13102, HOTCOUNT_PCMASK, GG_DISP2HOT); 2103 dasm_put(Dst, 13408, HOTCOUNT_PCMASK, GG_DISP2HOT);
2085#endif 2104#endif
2086 break; 2105 break;
2087 2106
@@ -2090,33 +2109,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2090 break; 2109 break;
2091#endif 2110#endif
2092 case BC_IITERL: 2111 case BC_IITERL:
2093 dasm_put(Dst, 13294, LJ_TNIL); 2112 dasm_put(Dst, 13600, LJ_TNIL);
2094 if (op == BC_JITERL) { 2113 if (op == BC_JITERL) {
2095 dasm_put(Dst, 13309, BC_JLOOP); 2114 dasm_put(Dst, 13615, BC_JLOOP);
2096 } else { 2115 } else {
2097 dasm_put(Dst, 13323, -BCBIAS_J*4); 2116 dasm_put(Dst, 13629, -BCBIAS_J*4);
2098 } 2117 }
2099 dasm_put(Dst, 9508); 2118 dasm_put(Dst, 9814);
2100 break; 2119 break;
2101 2120
2102 case BC_LOOP: 2121 case BC_LOOP:
2103#if LJ_HASJIT 2122#if LJ_HASJIT
2104 dasm_put(Dst, 13102, HOTCOUNT_PCMASK, GG_DISP2HOT); 2123 dasm_put(Dst, 13408, HOTCOUNT_PCMASK, GG_DISP2HOT);
2105#endif 2124#endif
2106 break; 2125 break;
2107 2126
2108 case BC_ILOOP: 2127 case BC_ILOOP:
2109 dasm_put(Dst, 9206); 2128 dasm_put(Dst, 9512);
2110 break; 2129 break;
2111 2130
2112 case BC_JLOOP: 2131 case BC_JLOOP:
2113#if LJ_HASJIT 2132#if LJ_HASJIT
2114 dasm_put(Dst, 13339, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2133 dasm_put(Dst, 13645, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2115#endif 2134#endif
2116 break; 2135 break;
2117 2136
2118 case BC_JMP: 2137 case BC_JMP:
2119 dasm_put(Dst, 13366, -BCBIAS_J*4); 2138 dasm_put(Dst, 13672, -BCBIAS_J*4);
2120 break; 2139 break;
2121 2140
2122 /* -- Function headers -------------------------------------------------- */ 2141 /* -- Function headers -------------------------------------------------- */
@@ -2139,47 +2158,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2139 break; 2158 break;
2140#endif 2159#endif
2141 case BC_IFUNCF: 2160 case BC_IFUNCF:
2142 dasm_put(Dst, 13392, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2161 dasm_put(Dst, 13698, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2143 if (op == BC_JFUNCF) { 2162 if (op == BC_JFUNCF) {
2144 dasm_put(Dst, 13423, BC_JLOOP); 2163 dasm_put(Dst, 13729, BC_JLOOP);
2145 } else { 2164 } else {
2146 dasm_put(Dst, 9206); 2165 dasm_put(Dst, 9512);
2147 } 2166 }
2148 dasm_put(Dst, 13432, LJ_TNIL); 2167 dasm_put(Dst, 13738, LJ_TNIL);
2149 break; 2168 break;
2150 2169
2151 case BC_JFUNCV: 2170 case BC_JFUNCV:
2152#if !LJ_HASJIT 2171#if !LJ_HASJIT
2153 break; 2172 break;
2154#endif 2173#endif
2155 dasm_put(Dst, 7163); 2174 dasm_put(Dst, 9207);
2156 break; /* NYI: compiled vararg functions. */ 2175 break; /* NYI: compiled vararg functions. */
2157 2176
2158 case BC_IFUNCV: 2177 case BC_IFUNCV:
2159 dasm_put(Dst, 13454, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2178 dasm_put(Dst, 13760, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2160 if (op == BC_JFUNCV) { 2179 if (op == BC_JFUNCV) {
2161 dasm_put(Dst, 13423, BC_JLOOP); 2180 dasm_put(Dst, 13729, BC_JLOOP);
2162 } else { 2181 } else {
2163 dasm_put(Dst, 13551, -4+PC2PROTO(k)); 2182 dasm_put(Dst, 13857, -4+PC2PROTO(k));
2164 } 2183 }
2165 dasm_put(Dst, 13576, LJ_TNIL); 2184 dasm_put(Dst, 13882, LJ_TNIL);
2166 break; 2185 break;
2167 2186
2168 case BC_FUNCC: 2187 case BC_FUNCC:
2169 case BC_FUNCCW: 2188 case BC_FUNCCW:
2170 dasm_put(Dst, 13598, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2189 dasm_put(Dst, 13904, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2171 if (op == BC_FUNCC) { 2190 if (op == BC_FUNCC) {
2172 dasm_put(Dst, 13628); 2191 dasm_put(Dst, 13934);
2173 } else { 2192 } else {
2174 dasm_put(Dst, 13632); 2193 dasm_put(Dst, 13938);
2175 } 2194 }
2176 dasm_put(Dst, 13640, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2195 dasm_put(Dst, 13946, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2177 if (op == BC_FUNCC) { 2196 if (op == BC_FUNCC) {
2178 dasm_put(Dst, 13650); 2197 dasm_put(Dst, 13956);
2179 } else { 2198 } else {
2180 dasm_put(Dst, 13655, DISPATCH_GL(wrapf)); 2199 dasm_put(Dst, 13961, DISPATCH_GL(wrapf));
2181 } 2200 }
2182 dasm_put(Dst, 13661, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2201 dasm_put(Dst, 13967, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2183 break; 2202 break;
2184 2203
2185 /* ---------------------------------------------------------------------- */ 2204 /* ---------------------------------------------------------------------- */
@@ -2207,7 +2226,7 @@ static int build_backend(BuildCtx *ctx)
2207 2226
2208 build_subroutines(ctx, cmov, sse); 2227 build_subroutines(ctx, cmov, sse);
2209 2228
2210 dasm_put(Dst, 13687); 2229 dasm_put(Dst, 13993);
2211 for (op = 0; op < BC__MAX; op++) 2230 for (op = 0; op < BC__MAX; op++)
2212 build_ins(ctx, (BCOp)op, op, cmov, sse); 2231 build_ins(ctx, (BCOp)op, op, cmov, sse);
2213 2232