summaryrefslogtreecommitdiff
path: root/src/buildvm_x64.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/buildvm_x64.h')
-rw-r--r--src/buildvm_x64.h1999
1 files changed, 1003 insertions, 996 deletions
diff --git a/src/buildvm_x64.h b/src/buildvm_x64.h
index af5c0b73..c40abbd8 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[14284] = { 15static const unsigned char build_actionlist[14278] = {
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,129,252,243,239,252,247,195,237,15,133, 18 252,247,195,237,15,132,244,13,248,14,129,252,243,239,252,247,195,237,15,133,
@@ -130,580 +130,580 @@ static const unsigned char build_actionlist[14284] = {
130 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184, 130 244,249,72,139,106,8,72,139,66,16,72,137,106,252,248,72,137,2,248,68,184,
131 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252, 131 237,252,233,244,69,248,2,199,66,12,237,252,233,244,1,248,3,199,66,252,252,
132 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122, 132 237,252,233,244,58,248,70,129,252,248,239,15,130,244,55,255,139,42,129,122,
133 253,4,239,15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133, 133 253,4,239,15,133,244,55,255,131,189,233,0,15,133,244,55,255,139,106,252,248,
134 233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,184,237, 134 139,133,233,139,90,252,252,199,66,252,252,237,137,66,252,248,199,66,12,237,
135 252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,239,15, 135 184,237,252,233,244,69,248,71,129,252,248,239,15,130,244,55,129,122,253,4,
136 133,244,55,129,122,253,12,239,255,15,135,244,55,139,90,252,252,255,252,242, 136 239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,90,252,252,255,252,
137 15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,15, 137 242,15,16,66,8,72,189,237,237,102,72,15,110,205,252,242,15,88,193,252,242,
138 45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193, 138 15,45,192,252,242,15,17,66,252,248,255,139,42,59,133,233,15,131,244,248,193,
139 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,40,72,137,42, 139 224,3,3,133,233,248,1,129,120,253,4,239,15,132,244,72,72,139,40,72,137,42,
140 252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,239,137,213,137, 140 252,233,244,68,248,2,131,189,233,0,15,132,244,72,137,252,239,137,213,137,
141 198,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,233, 141 198,232,251,1,12,137,252,234,133,192,15,133,244,1,248,72,184,237,252,233,
142 244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,239, 142 244,69,248,73,255,129,252,248,239,15,130,244,55,139,42,129,122,253,4,239,
143 15,133,244,55,131,189,233,0,15,133,244,55,139,106,252,248,139,133,233,139, 143 15,133,244,55,255,139,106,252,248,139,133,233,139,90,252,252,199,66,252,252,
144 90,252,252,199,66,252,252,237,137,66,252,248,255,15,87,192,252,242,15,17, 144 237,137,66,252,248,255,15,87,192,252,242,15,17,66,8,255,217,252,238,221,90,
145 66,8,255,217,252,238,221,90,8,255,184,237,252,233,244,69,248,74,129,252,248, 145 8,255,184,237,252,233,244,69,248,74,129,252,248,239,15,130,244,55,141,74,
146 239,15,130,244,55,141,74,8,131,232,1,187,237,248,1,65,15,182,174,233,193, 146 8,131,232,1,187,237,248,1,65,15,182,174,233,193,252,237,235,131,229,1,1,252,
147 252,237,235,131,229,1,1,252,235,252,233,244,27,248,75,129,252,248,239,15, 147 235,252,233,244,27,248,75,129,252,248,239,15,130,244,55,129,122,253,12,239,
148 130,244,55,129,122,253,12,239,15,133,244,55,255,139,106,4,137,106,12,199, 148 15,133,244,55,255,139,106,4,137,106,12,199,66,4,237,139,42,139,90,8,137,106,
149 66,4,237,139,42,139,90,8,137,106,8,137,26,141,74,16,131,232,2,187,237,252, 149 8,137,26,141,74,16,131,232,2,187,237,252,233,244,1,248,76,129,252,248,239,
150 233,244,1,248,76,129,252,248,239,15,130,244,55,139,42,139,90,252,252,137, 150 15,130,244,55,139,42,139,90,252,252,137,92,36,28,137,44,36,129,122,253,4,
151 92,36,28,137,44,36,129,122,253,4,239,15,133,244,55,72,131,189,233,0,15,133, 151 239,15,133,244,55,72,131,189,233,0,15,133,244,55,128,189,233,235,15,135,244,
152 244,55,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,255,59,141, 152 55,139,141,233,15,132,244,247,255,59,141,233,15,132,244,55,248,1,141,92,193,
153 233,15,132,244,55,248,1,141,92,193,252,240,59,157,233,15,135,244,55,137,157, 153 252,240,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,131,
154 233,139,108,36,24,137,149,233,131,194,8,137,149,233,141,108,194,232,72,41, 154 194,8,137,149,233,141,108,194,232,72,41,221,57,203,15,132,244,249,248,2,72,
155 221,57,203,15,132,244,249,248,2,72,139,4,43,72,137,67,252,248,131,252,235, 155 139,4,43,72,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,
156 8,57,203,15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237, 156 139,60,36,232,244,24,65,199,134,233,237,255,139,108,36,24,139,28,36,139,149,
157 255,139,108,36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248, 157 233,129,252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,
158 4,139,139,233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244, 158 233,68,137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,
159 252,141,4,26,193,252,235,3,59,133,233,15,135,244,255,137,213,72,41,205,248, 159 15,135,244,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,68,
160 5,72,139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67, 160 57,252,249,15,133,244,5,248,6,141,67,2,199,66,252,252,237,248,7,139,92,36,
161 2,199,66,252,252,237,248,7,139,92,36,28,137,68,36,4,72,199,193,252,248,252, 161 28,137,68,36,4,72,199,193,252,248,252,255,252,255,252,255,252,247,195,237,
162 255,252,255,252,255,252,247,195,237,255,15,132,244,13,252,233,244,14,248, 162 255,15,132,244,13,252,233,244,14,248,8,199,66,252,252,237,139,139,233,131,
163 8,199,66,252,252,237,139,139,233,131,252,233,8,137,139,233,72,139,1,72,137, 163 252,233,8,137,139,233,72,139,1,72,137,2,184,237,252,233,244,7,248,9,139,12,
164 2,184,237,252,233,244,7,248,9,139,12,36,68,137,185,233,137,222,137,252,239, 164 36,68,137,185,233,137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,
165 232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,77,139,106,252,248,139, 165 233,244,4,248,77,139,106,252,248,139,173,233,139,90,252,252,137,92,36,28,
166 173,233,139,90,252,252,137,92,36,28,137,44,36,72,131,189,233,0,15,133,244, 166 137,44,36,72,131,189,233,0,15,133,244,55,255,128,189,233,235,15,135,244,55,
167 55,255,128,189,233,235,15,135,244,55,139,141,233,15,132,244,247,59,141,233, 167 139,141,233,15,132,244,247,59,141,233,15,132,244,55,248,1,141,92,193,252,
168 15,132,244,55,248,1,141,92,193,252,248,59,157,233,15,135,244,55,137,157,233, 168 248,59,157,233,15,135,244,55,137,157,233,139,108,36,24,137,149,233,137,149,
169 139,108,36,24,137,149,233,137,149,233,141,108,194,252,240,72,41,221,57,203, 169 233,141,108,194,252,240,72,41,221,57,203,15,132,244,249,248,2,255,72,139,
170 15,132,244,249,248,2,255,72,139,4,43,72,137,67,252,248,131,252,235,8,57,203, 170 4,43,72,137,67,252,248,131,252,235,8,57,203,15,133,244,2,248,3,137,206,139,
171 15,133,244,2,248,3,137,206,139,60,36,232,244,24,65,199,134,233,237,139,108, 171 60,36,232,244,24,65,199,134,233,237,139,108,36,24,139,28,36,139,149,233,129,
172 36,24,139,28,36,139,149,233,129,252,248,239,15,135,244,254,248,4,139,139, 172 252,248,239,15,135,244,254,248,4,139,139,233,68,139,187,233,137,139,233,68,
173 233,68,139,187,233,137,139,233,68,137,252,251,41,203,15,132,244,252,141,4, 173 137,252,251,41,203,15,132,244,252,141,4,26,193,252,235,3,59,133,233,15,135,
174 26,193,252,235,3,59,133,233,15,135,244,255,255,137,213,72,41,205,248,5,72, 174 244,255,255,137,213,72,41,205,248,5,72,139,1,72,137,4,41,131,193,8,68,57,
175 139,1,72,137,4,41,131,193,8,68,57,252,249,15,133,244,5,248,6,141,67,1,248, 175 252,249,15,133,244,5,248,6,141,67,1,248,7,139,92,36,28,137,68,36,4,49,201,
176 7,139,92,36,28,137,68,36,4,49,201,252,247,195,237,15,132,244,13,252,233,244, 176 252,247,195,237,15,132,244,13,252,233,244,14,248,8,137,222,137,252,239,232,
177 14,248,8,137,222,137,252,239,232,251,1,13,248,9,139,12,36,68,137,185,233, 177 251,1,13,248,9,139,12,36,68,137,185,233,137,222,137,252,239,232,251,1,0,139,
178 137,222,137,252,239,232,251,1,0,139,28,36,139,149,233,252,233,244,4,248,78, 178 28,36,139,149,233,252,233,244,4,248,78,139,108,36,24,72,252,247,133,233,237,
179 139,108,36,24,72,252,247,133,233,237,15,132,244,55,255,137,149,233,141,68, 179 15,132,244,55,255,137,149,233,141,68,194,252,248,137,133,233,49,192,72,137,
180 194,252,248,137,133,233,49,192,72,137,133,233,176,235,136,133,233,252,233, 180 133,233,176,235,136,133,233,252,233,244,16,255,248,64,139,90,252,252,221,
181 244,16,255,248,64,139,90,252,252,221,90,252,248,252,233,244,58,248,79,129, 181 90,252,248,252,233,244,58,248,79,129,252,248,239,15,130,244,55,129,122,253,
182 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2, 182 4,239,15,135,244,55,252,242,15,16,2,72,184,237,237,102,72,15,110,200,15,84,
183 72,184,237,237,102,72,15,110,200,15,84,193,248,63,139,90,252,252,252,242, 183 193,248,63,139,90,252,252,252,242,15,17,66,252,248,255,248,79,129,252,248,
184 15,17,66,252,248,255,248,79,129,252,248,239,15,130,244,55,129,122,253,4,239, 184 239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,225,248,63,248,
185 15,135,244,55,221,2,217,225,248,63,248,64,139,90,252,252,221,90,252,248,255, 185 64,139,90,252,252,221,90,252,248,255,248,58,184,237,248,69,137,68,36,4,248,
186 248,58,184,237,248,69,137,68,36,4,248,56,252,247,195,237,15,133,244,253,248, 186 56,252,247,195,237,15,133,244,253,248,5,56,67,252,255,15,135,244,252,15,182,
187 5,56,67,252,255,15,135,244,252,15,182,75,252,253,72,252,247,209,141,20,202, 187 75,252,253,72,252,247,209,141,20,202,139,3,15,182,204,15,182,232,131,195,
188 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 188 4,193,232,16,65,252,255,36,252,238,248,6,199,68,194,252,244,237,131,192,1,
189 6,199,68,194,252,244,237,131,192,1,252,233,244,5,248,7,72,199,193,252,248, 189 252,233,244,5,248,7,72,199,193,252,248,252,255,252,255,252,255,252,233,244,
190 252,255,252,255,252,255,252,233,244,14,255,248,80,129,252,248,239,15,130, 190 14,255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
191 244,55,129,122,253,4,239,15,135,244,55,252,242,15,81,2,252,233,244,63,248, 191 55,252,242,15,81,2,252,233,244,63,248,81,129,252,248,239,15,130,244,55,129,
192 81,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242, 192 122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,82,252,233,244,63,248,
193 15,16,2,232,244,82,252,233,244,63,248,83,255,129,252,248,239,15,130,244,55, 193 83,255,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
194 129,122,253,4,239,15,135,244,55,252,242,15,16,2,232,244,84,252,233,244,63, 194 242,15,16,2,232,244,84,252,233,244,63,255,248,80,129,252,248,239,15,130,244,
195 255,248,80,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 195 55,129,122,253,4,239,15,135,244,55,221,2,217,252,250,252,233,244,64,248,81,
196 221,2,217,252,250,252,233,244,64,248,81,129,252,248,239,15,130,244,55,129, 196 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,
197 122,253,4,239,15,135,244,55,221,2,232,244,82,252,233,244,64,248,83,255,129, 197 82,252,233,244,64,248,83,255,129,252,248,239,15,130,244,55,129,122,253,4,
198 252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,84, 198 239,15,135,244,55,221,2,232,244,84,252,233,244,64,255,248,85,129,252,248,
199 252,233,244,64,255,248,85,129,252,248,239,15,130,244,55,129,122,253,4,239, 199 239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,237,221,2,217,252,
200 15,135,244,55,217,252,237,221,2,217,252,241,252,233,244,64,248,86,129,252, 200 241,252,233,244,64,248,86,129,252,248,239,15,130,244,55,129,122,253,4,239,
201 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,217,252,236,221,2,217, 201 15,135,244,55,217,252,236,221,2,217,252,241,252,233,244,64,248,87,129,252,
202 252,241,252,233,244,64,248,87,129,252,248,239,255,15,130,244,55,129,122,253, 202 248,239,255,15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,232,244,88,
203 4,239,15,135,244,55,221,2,232,244,88,252,233,244,64,248,89,129,252,248,239, 203 252,233,244,64,248,89,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
204 15,130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,254,252,233,244, 204 135,244,55,221,2,217,252,254,252,233,244,64,248,90,129,252,248,239,255,15,
205 64,248,90,129,252,248,239,255,15,130,244,55,129,122,253,4,239,15,135,244, 205 130,244,55,129,122,253,4,239,15,135,244,55,221,2,217,252,255,252,233,244,
206 55,221,2,217,252,255,252,233,244,64,248,91,129,252,248,239,15,130,244,55, 206 64,248,91,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
207 129,122,253,4,239,15,135,244,55,221,2,217,252,242,221,216,252,233,244,64, 207 2,217,252,242,221,216,252,233,244,64,248,92,129,252,248,239,15,130,244,55,
208 248,92,129,252,248,239,15,130,244,55,255,129,122,253,4,239,15,135,244,55, 208 255,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
209 221,2,217,192,216,200,217,232,222,225,217,252,250,217,252,243,252,233,244, 209 217,252,250,217,252,243,252,233,244,64,248,93,129,252,248,239,15,130,244,
210 64,248,93,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221, 210 55,129,122,253,4,239,15,135,244,55,221,2,217,192,216,200,217,232,222,225,
211 2,217,192,216,200,217,232,222,225,217,252,250,217,201,217,252,243,252,233, 211 217,252,250,217,201,217,252,243,252,233,244,64,248,94,129,252,248,239,15,
212 244,64,248,94,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244, 212 130,244,55,129,122,253,4,239,15,135,244,55,255,221,2,217,232,217,252,243,
213 55,255,221,2,217,232,217,252,243,252,233,244,64,255,248,95,129,252,248,239, 213 252,233,244,64,255,248,95,129,252,248,239,15,130,244,55,129,122,253,4,239,
214 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213, 214 15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,14,137,252,234,252,233,
215 232,251,1,14,137,252,234,252,233,244,63,255,248,96,129,252,248,239,15,130, 215 244,63,255,248,96,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,
216 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251, 216 244,55,252,242,15,16,2,255,137,213,232,251,1,15,137,252,234,252,233,244,63,
217 1,15,137,252,234,252,233,244,63,255,248,97,129,252,248,239,15,130,244,55, 217 255,248,97,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
218 129,122,253,4,239,15,135,244,55,252,242,15,16,2,255,137,213,232,251,1,16, 218 252,242,15,16,2,255,137,213,232,251,1,16,137,252,234,252,233,244,63,248,98,
219 137,252,234,252,233,244,63,248,98,255,248,99,129,252,248,239,15,130,244,55, 219 255,248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
220 129,122,253,4,239,15,135,244,55,252,242,15,16,2,139,106,252,248,252,242,15, 220 252,242,15,16,2,139,106,252,248,252,242,15,89,133,233,252,233,244,63,255,
221 89,133,233,252,233,244,63,255,248,99,129,252,248,239,15,130,244,55,129,122, 221 248,99,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,221,
222 253,4,239,15,135,244,55,221,2,139,106,252,248,220,141,233,252,233,244,64, 222 2,139,106,252,248,220,141,233,252,233,244,64,255,248,100,129,252,248,239,
223 255,248,100,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 223 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
224 129,122,253,12,239,15,135,244,55,221,2,221,66,8,217,252,243,252,233,244,64, 224 55,221,2,221,66,8,217,252,243,252,233,244,64,248,101,129,252,248,239,15,130,
225 248,101,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 225 244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,255,15,135,244,
226 122,253,12,239,255,15,135,244,55,221,66,8,221,2,217,252,253,221,217,252,233, 226 55,221,66,8,221,2,217,252,253,221,217,252,233,244,64,248,102,129,252,248,
227 244,64,248,102,129,252,248,239,15,130,244,55,139,106,4,129,252,253,239,15, 227 239,15,130,244,55,139,106,4,129,252,253,239,15,135,244,55,139,90,252,252,
228 135,244,55,139,90,252,252,139,2,137,106,252,252,137,66,252,248,209,229,129, 228 139,2,137,106,252,252,137,66,252,248,209,229,129,252,253,0,0,224,252,255,
229 252,253,0,0,224,252,255,15,131,244,249,9,232,15,132,244,249,184,252,254,3, 229 15,131,244,249,9,232,15,132,244,249,184,252,254,3,0,0,129,252,253,0,0,32,
230 0,0,129,252,253,0,0,32,0,15,130,244,250,248,1,193,252,237,21,41,197,255,252, 230 0,15,130,244,250,248,1,193,252,237,21,41,197,255,252,242,15,42,197,255,137,
231 242,15,42,197,255,137,44,36,219,4,36,255,139,106,252,252,129,229,252,255, 231 44,36,219,4,36,255,139,106,252,252,129,229,252,255,252,255,15,128,129,205,
232 252,255,15,128,129,205,0,0,224,63,137,106,252,252,248,2,255,252,242,15,17, 232 0,0,224,63,137,106,252,252,248,2,255,252,242,15,17,2,255,221,26,255,184,237,
233 2,255,221,26,255,184,237,252,233,244,69,248,3,255,15,87,192,252,233,244,2, 233 252,233,244,69,248,3,255,15,87,192,252,233,244,2,255,217,252,238,252,233,
234 255,217,252,238,252,233,244,2,255,248,4,255,252,242,15,16,2,72,189,237,237, 234 244,2,255,248,4,255,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,
235 102,72,15,110,205,252,242,15,89,193,252,242,15,17,66,252,248,255,221,2,199, 235 242,15,89,193,252,242,15,17,66,252,248,255,221,2,199,4,36,0,0,128,90,216,
236 4,36,0,0,128,90,216,12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0, 236 12,36,221,90,252,248,255,139,106,252,252,184,52,4,0,0,209,229,252,233,244,
237 209,229,252,233,244,1,255,248,103,129,252,248,239,15,130,244,55,129,122,253, 237 1,255,248,103,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
238 4,239,15,135,244,55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244, 238 55,252,242,15,16,2,255,248,103,129,252,248,239,15,130,244,55,129,122,253,
239 55,129,122,253,4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209, 239 4,239,15,135,244,55,221,2,255,139,106,4,139,90,252,252,209,229,129,252,253,
240 229,129,252,253,0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104, 240 0,0,224,252,255,15,132,244,250,255,15,40,224,232,244,104,252,242,15,92,224,
241 252,242,15,92,224,248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217, 241 248,1,252,242,15,17,66,252,248,252,242,15,17,34,255,217,192,232,244,104,220,
242 192,232,244,104,220,252,233,248,1,221,90,252,248,221,26,255,139,66,252,252, 242 252,233,248,1,221,90,252,248,221,26,255,139,66,252,252,139,106,4,49,232,15,
243 139,106,4,49,232,15,136,244,249,248,2,184,237,252,233,244,69,248,3,129,252, 243 136,244,249,248,2,184,237,252,233,244,69,248,3,129,252,245,0,0,0,128,137,
244 245,0,0,0,128,137,106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255, 244 106,4,252,233,244,2,248,4,255,15,87,228,252,233,244,1,255,217,252,238,217,
245 217,252,238,217,201,252,233,244,1,255,248,105,129,252,248,239,15,130,244, 245 201,252,233,244,1,255,248,105,129,252,248,239,15,130,244,55,129,122,253,4,
246 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66, 246 239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,66,8,221,2,248,1,217,
247 8,221,2,248,1,217,252,248,223,224,158,15,138,244,1,221,217,252,233,244,64, 247 252,248,223,224,158,15,138,244,1,221,217,252,233,244,64,255,248,106,129,252,
248 255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55, 248 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
249 129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244, 249 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,232,244,107,252,233,244,
250 107,252,233,244,63,255,248,106,129,252,248,239,15,130,244,55,129,122,253, 250 63,255,248,106,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
251 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244, 251 55,129,122,253,12,239,15,135,244,55,221,2,221,66,8,232,244,107,252,233,244,
252 107,252,233,244,64,255,248,108,129,252,248,239,15,130,244,55,129,122,253, 252 64,255,248,108,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
253 4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63, 253 55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,15,131,244,63,129,124,253,252,
254 129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252, 254 234,252,252,239,15,135,244,55,252,242,15,16,76,252,234,252,248,252,242,15,
255 248,252,242,15,93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239, 255 93,193,131,197,1,252,233,244,1,255,248,109,129,252,248,239,15,130,244,55,
256 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0, 256 129,122,253,4,239,15,135,244,55,252,242,15,16,2,189,2,0,0,0,248,1,57,197,
257 248,1,57,197,15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55, 257 15,131,244,63,129,124,253,252,234,252,252,239,15,135,244,55,252,242,15,16,
258 252,242,15,16,76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244, 258 76,252,234,252,248,252,242,15,95,193,131,197,1,252,233,244,1,255,248,5,221,
259 1,255,248,5,221,216,252,233,244,55,255,248,110,129,252,248,239,15,130,244, 259 216,252,233,244,55,255,248,110,129,252,248,239,15,130,244,55,129,122,253,
260 55,129,122,253,4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233, 260 4,239,15,133,244,55,139,42,255,252,242,15,42,133,233,252,233,244,63,255,219,
261 244,63,255,219,133,233,252,233,244,64,255,248,111,129,252,248,239,15,133, 261 133,233,252,233,244,64,255,248,111,129,252,248,239,15,133,244,55,129,122,
262 244,55,129,122,253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233, 262 253,4,239,15,133,244,55,139,42,139,90,252,252,131,189,233,1,15,130,244,72,
263 1,15,130,244,72,15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137, 263 15,182,173,233,255,252,242,15,42,197,252,233,244,63,255,137,44,36,219,4,36,
264 44,36,219,4,36,252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15, 264 252,233,244,64,255,248,112,65,139,174,233,65,59,174,233,15,130,244,247,232,
265 130,244,247,232,244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4, 265 244,66,248,1,129,252,248,239,15,133,244,55,129,122,253,4,239,15,135,244,55,
266 239,15,135,244,55,255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244, 266 255,252,242,15,44,42,129,252,253,252,255,0,0,0,15,135,244,55,137,108,36,4,
267 55,137,108,36,4,255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244, 267 255,221,2,219,92,36,4,129,124,36,4,252,255,0,0,0,15,135,244,55,255,199,68,
268 55,255,199,68,36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233, 268 36,8,1,0,0,0,72,141,68,36,4,248,113,139,108,36,24,137,149,233,139,84,36,8,
269 139,84,36,8,72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233, 269 72,137,198,137,252,239,137,92,36,28,232,251,1,17,139,149,233,139,90,252,252,
270 139,90,252,252,199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65, 270 199,66,252,252,237,137,66,252,248,252,233,244,58,248,114,65,139,174,233,65,
271 139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252, 271 59,174,233,15,130,244,247,232,244,66,248,1,199,68,36,4,252,255,252,255,252,
272 255,252,255,252,255,252,255,129,252,248,239,15,130,244,55,15,134,244,247, 272 255,252,255,129,252,248,239,15,130,244,55,15,134,244,247,129,122,253,20,239,
273 129,122,253,20,239,255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219, 273 255,252,242,15,44,106,16,137,108,36,4,255,221,66,16,219,92,36,4,255,248,1,
274 92,36,4,255,248,1,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135, 274 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,137,
275 244,55,139,42,137,108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68, 275 108,36,8,139,173,233,255,252,242,15,44,74,8,255,139,68,36,4,57,197,15,130,
276 36,4,57,197,15,130,244,251,248,2,133,201,15,142,244,253,248,3,139,108,36, 276 244,251,248,2,133,201,15,142,244,253,248,3,139,108,36,8,41,200,15,140,244,
277 8,41,200,15,140,244,115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137, 277 115,141,172,253,13,233,131,192,1,248,4,137,68,36,8,137,232,252,233,244,113,
278 232,252,233,244,113,248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6, 278 248,5,15,140,244,252,141,68,40,1,252,233,244,2,248,6,137,232,252,233,244,
279 137,232,252,233,244,2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143, 279 2,248,7,255,15,132,244,254,1,252,233,131,193,1,15,143,244,3,248,8,185,1,0,
280 244,3,248,8,185,1,0,0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116, 280 0,0,252,233,244,3,248,115,49,192,252,233,244,4,248,116,129,252,248,239,15,
281 129,252,248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247, 281 130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,255,
282 232,244,66,248,1,255,129,122,253,4,239,15,133,244,55,129,122,253,12,239,15, 282 129,122,253,4,239,15,133,244,55,129,122,253,12,239,15,135,244,55,139,42,255,
283 135,244,55,139,42,255,252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68, 283 252,242,15,44,66,8,255,221,66,8,219,92,36,4,139,68,36,4,255,133,192,15,142,
284 36,4,255,133,192,15,142,244,115,131,189,233,1,15,130,244,115,15,133,244,117, 284 244,115,131,189,233,1,15,130,244,115,15,133,244,117,65,57,134,233,15,130,
285 65,57,134,233,15,130,244,117,15,182,141,233,65,139,174,233,137,68,36,8,248, 285 244,117,15,182,141,233,65,139,174,233,137,68,36,8,248,1,136,77,0,131,197,
286 1,136,77,0,131,197,1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113, 286 1,131,232,1,15,133,244,1,65,139,134,233,252,233,244,113,248,118,129,252,248,
287 248,118,129,252,248,239,255,15,130,244,55,65,139,174,233,65,59,174,233,15, 287 239,255,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,
288 130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133, 288 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,133,192,15,132,
289 233,133,192,15,132,244,115,65,57,134,233,15,130,244,119,129,197,239,137,92, 289 244,115,65,57,134,233,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,
290 36,4,137,68,36,8,65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1, 290 65,139,158,233,248,1,255,15,182,77,0,131,197,1,131,232,1,136,12,3,15,133,
291 136,12,3,15,133,244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252, 291 244,1,137,216,139,92,36,4,252,233,244,113,248,120,129,252,248,239,15,130,
292 248,239,15,130,244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244, 292 244,55,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,
293 66,248,1,129,122,253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233, 293 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,255,15,130,244,119,
294 255,15,130,244,119,129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252, 294 129,197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,
295 233,244,249,248,1,15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249, 295 15,182,76,5,0,131,252,249,65,15,130,244,248,131,252,249,90,15,135,244,248,
296 90,15,135,244,248,131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244, 296 131,252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,
297 1,137,216,139,92,36,4,252,233,244,113,248,121,129,252,248,239,15,130,244, 297 36,4,252,233,244,113,248,121,129,252,248,239,15,130,244,55,255,65,139,174,
298 55,255,65,139,174,233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122, 298 233,65,59,174,233,15,130,244,247,232,244,66,248,1,129,122,253,4,239,15,133,
299 253,4,239,15,133,244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129, 299 244,55,139,42,139,133,233,65,57,134,233,15,130,244,119,129,197,239,137,92,
300 197,239,137,92,36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182, 300 36,4,137,68,36,8,65,139,158,233,252,233,244,249,248,1,15,182,76,5,0,131,252,
301 76,5,0,131,252,249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131, 301 249,97,15,130,244,248,255,131,252,249,122,15,135,244,248,131,252,241,32,248,
302 252,241,32,248,2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36, 302 2,136,12,3,248,3,131,232,1,15,137,244,1,137,216,139,92,36,4,252,233,244,113,
303 4,252,233,244,113,248,122,129,252,248,239,15,130,244,55,129,122,253,4,239, 303 248,122,129,252,248,239,15,130,244,55,129,122,253,4,239,15,133,244,55,137,
304 15,133,244,55,137,213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192, 304 213,139,58,232,251,1,18,137,252,234,255,252,242,15,42,192,252,233,244,63,
305 252,233,244,63,255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239, 305 255,248,123,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,
306 15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15, 306 252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,
307 88,193,102,15,126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252, 307 126,197,252,242,15,42,197,252,233,244,63,255,248,124,129,252,248,239,15,130,
308 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72, 308 244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,
309 189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68, 309 72,15,110,205,252,242,15,88,193,102,15,126,197,255,137,68,36,4,141,68,194,
310 36,4,141,68,194,252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15, 310 252,240,248,1,57,208,15,134,244,125,129,120,253,4,239,15,135,244,126,255,
311 135,244,126,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255, 311 252,242,15,16,0,252,242,15,88,193,102,15,126,193,33,205,255,131,232,8,252,
312 131,232,8,252,233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122, 312 233,244,1,255,248,127,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
313 253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,
314 252,242,15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,
315 15,126,193,9,205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,
316 239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,
317 15,88,193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,
318 193,49,205,255,248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,
319 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88, 313 135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,
320 193,102,15,126,197,255,15,205,252,233,244,125,255,248,130,129,252,248,239, 314 193,102,15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,9,
321 15,130,244,55,129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237, 315 205,255,248,128,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,
322 237,102,72,15,110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255, 316 55,252,242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,
323 248,125,252,242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233, 317 15,126,197,255,252,242,15,16,0,252,242,15,88,193,102,15,126,193,49,205,255,
324 244,55,255,248,131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135, 318 248,129,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,252,
325 244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74, 319 242,15,16,2,72,189,237,237,102,72,15,110,205,252,242,15,88,193,102,15,126,
326 8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137, 320 197,255,15,205,252,233,244,125,255,248,130,129,252,248,239,15,130,244,55,
327 200,102,15,126,197,102,15,126,201,255,211,229,137,193,252,233,244,125,255, 321 129,122,253,4,239,15,135,244,55,252,242,15,16,2,72,189,237,237,102,72,15,
328 248,132,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129, 322 110,205,252,242,15,88,193,102,15,126,197,255,252,247,213,255,248,125,252,
329 122,253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237, 323 242,15,42,197,252,233,244,63,255,248,126,139,68,36,4,252,233,244,55,255,248,
330 237,102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15, 324 131,129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,
331 126,197,102,15,126,201,255,211,252,237,137,193,252,233,244,125,255,248,133, 325 253,12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,
332 129,252,248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253, 326 102,72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,
333 12,239,15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102, 327 197,102,15,126,201,255,211,229,137,193,252,233,244,125,255,248,132,129,252,
334 72,15,110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,
335 102,15,126,201,255,211,252,253,137,193,252,233,244,125,255,248,134,129,252,
336 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239, 328 248,239,15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,
337 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15, 329 15,135,244,55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,
338 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15, 330 110,213,252,242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,
339 126,201,255,211,197,137,193,252,233,244,125,255,248,135,129,252,248,239,15, 331 126,201,255,211,252,237,137,193,252,233,244,125,255,248,133,129,252,248,239,
340 130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244, 332 15,130,244,55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,
341 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252, 333 55,252,242,15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,
342 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255, 334 242,15,88,194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,
343 211,205,137,193,252,233,244,125,248,117,184,237,252,233,244,55,248,119,184, 335 211,252,253,137,193,252,233,244,125,255,248,134,129,252,248,239,15,130,244,
344 237,248,55,139,108,36,24,139,90,252,252,137,92,36,28,137,149,233,141,68,194, 336 55,129,122,253,4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,
345 252,248,141,136,233,137,133,233,139,66,252,248,59,141,233,15,135,244,251, 337 15,16,2,252,242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,
346 137,252,239,252,255,144,233,139,149,233,133,192,15,143,244,69,248,1,255,139, 338 194,252,242,15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,197,137,
347 141,233,41,209,193,252,233,3,133,192,141,65,1,139,106,252,248,15,133,244, 339 193,252,233,244,125,255,248,135,129,252,248,239,15,130,244,55,129,122,253,
348 248,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36, 340 4,239,15,135,244,55,129,122,253,12,239,15,135,244,55,252,242,15,16,2,252,
349 252,238,248,2,137,209,252,247,195,237,15,133,244,249,15,182,107,252,253,72, 341 242,15,16,74,8,72,189,237,237,102,72,15,110,213,252,242,15,88,194,252,242,
350 252,247,213,141,20,252,234,252,233,244,27,248,3,137,221,131,229,252,248,41, 342 15,88,202,137,200,102,15,126,197,102,15,126,201,255,211,205,137,193,252,233,
351 252,234,252,233,244,27,248,5,190,237,137,252,239,232,251,1,0,139,149,233, 343 244,125,248,117,184,237,252,233,244,55,248,119,184,237,248,55,139,108,36,
352 49,192,252,233,244,1,248,66,93,72,137,108,36,8,139,108,36,24,137,92,36,28, 344 24,139,90,252,252,137,92,36,28,137,149,233,141,68,194,252,248,141,136,233,
353 137,149,233,255,141,68,194,252,248,137,252,239,137,133,233,232,251,1,19,139, 345 137,133,233,139,66,252,248,59,141,233,15,135,244,251,137,252,239,252,255,
354 149,233,139,133,233,41,208,193,232,3,131,192,1,72,139,108,36,8,85,195,248, 346 144,233,139,149,233,133,192,15,143,244,69,248,1,255,139,141,233,41,209,193,
355 136,255,65,15,182,134,233,168,235,15,133,244,251,168,235,15,133,244,247,168, 347 252,233,3,133,192,141,65,1,139,106,252,248,15,133,244,248,139,157,233,139,
356 235,15,132,244,247,65,252,255,142,233,252,233,244,247,255,248,137,65,15,182, 348 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248,2,137,209,
357 134,233,168,235,15,133,244,251,252,233,244,247,248,138,65,15,182,134,233, 349 252,247,195,237,15,133,244,249,15,182,107,252,253,72,252,247,213,141,20,252,
358 168,235,15,133,244,251,168,235,15,132,244,251,65,252,255,142,233,15,132,244, 350 234,252,233,244,27,248,3,137,221,131,229,252,248,41,252,234,252,233,244,27,
359 247,168,235,15,132,244,251,248,1,255,139,108,36,24,137,149,233,137,222,137, 351 248,5,190,237,137,252,239,232,251,1,0,139,149,233,49,192,252,233,244,1,248,
360 252,239,232,251,1,20,248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182, 352 66,93,72,137,108,36,8,139,108,36,24,137,92,36,28,137,149,233,255,141,68,194,
361 107,252,252,15,183,67,252,254,65,252,255,164,253,252,238,233,248,139,131, 353 252,248,137,252,239,137,133,233,232,251,1,19,139,149,233,139,133,233,41,208,
362 195,4,139,77,232,137,76,36,4,252,233,244,4,248,140,255,139,106,252,248,139, 354 193,232,3,131,192,1,72,139,108,36,8,85,195,248,136,255,65,15,182,134,233,
363 173,233,15,182,133,233,141,4,194,139,108,36,24,137,149,233,137,133,233,137, 355 168,235,15,133,244,251,168,235,15,133,244,247,168,235,15,132,244,247,65,252,
364 222,65,141,190,233,73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3, 356 255,142,233,252,233,244,247,255,248,137,65,15,182,134,233,168,235,15,133,
365 255,248,141,137,92,36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255, 357 244,251,252,233,244,247,248,138,65,15,182,134,233,168,235,15,133,244,251,
366 141,68,194,252,248,139,108,36,24,137,149,233,137,133,233,137,222,137,252, 358 168,235,15,132,244,251,65,252,255,142,233,15,132,244,247,168,235,15,132,244,
367 239,232,251,1,22,199,68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233, 359 251,248,1,255,139,108,36,24,137,149,233,137,222,137,252,239,232,251,1,20,
368 72,137,193,139,133,233,41,208,72,137,205,15,182,75,252,253,193,232,3,131, 360 248,3,139,149,233,248,4,15,182,75,252,253,248,5,15,182,107,252,252,15,183,
369 192,1,252,255,229,248,143,255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85, 361 67,252,254,65,252,255,164,253,252,238,233,248,139,131,195,4,139,77,232,137,
370 72,141,108,36,88,85,83,82,81,80,15,182,69,252,248,138,101,252,240,76,137, 362 76,36,4,252,233,244,4,248,140,255,139,106,252,248,139,173,233,15,182,133,
371 125,252,248,76,137,117,252,240,68,139,117,0,65,139,142,233,65,199,134,233, 363 233,141,4,194,139,108,36,24,137,149,233,137,133,233,137,222,65,141,190,233,
372 237,65,137,134,233,65,137,142,233,72,129,252,236,239,72,131,197,128,252,242, 364 73,137,174,233,137,92,36,28,232,251,1,21,252,233,244,3,255,248,141,137,92,
373 68,15,17,125,252,248,252,242,68,15,17,117,252,240,252,242,68,15,17,109,232, 365 36,28,255,248,142,255,137,92,36,28,131,203,1,248,1,255,141,68,194,252,248,
374 252,242,68,15,17,101,224,252,242,68,15,17,93,216,252,242,68,15,17,85,208, 366 139,108,36,24,137,149,233,137,133,233,137,222,137,252,239,232,251,1,22,199,
375 252,242,68,15,17,77,200,252,242,68,15,17,69,192,252,242,15,17,125,184,252, 367 68,36,28,0,0,0,0,255,131,227,252,254,255,139,149,233,72,137,193,139,133,233,
376 242,15,17,117,176,252,242,15,17,109,168,252,242,15,17,101,160,252,242,15, 368 41,208,72,137,205,15,182,75,252,253,193,232,3,131,192,1,252,255,229,248,143,
377 17,93,152,252,242,15,17,85,144,252,242,15,17,77,136,252,242,15,17,69,128, 369 255,65,85,65,84,65,83,65,82,65,81,65,80,87,86,85,72,141,108,36,88,85,83,82,
378 65,139,174,233,65,139,150,233,73,137,174,233,65,199,134,233,0,0,0,0,137,149, 370 81,80,15,182,69,252,248,138,101,252,240,76,137,125,252,248,76,137,117,252,
379 233,72,137,230,65,141,190,233,232,251,1,23,72,139,141,233,72,129,225,239, 371 240,68,139,117,0,65,139,142,233,65,199,134,233,237,65,137,134,233,65,137,
380 72,137,204,137,169,233,139,149,233,139,153,233,252,233,244,247,255,248,144, 372 142,233,72,129,252,236,239,72,131,197,128,252,242,68,15,17,125,252,248,252,
381 255,72,131,196,16,248,1,76,139,108,36,8,76,139,36,36,133,192,15,136,244,249, 373 242,68,15,17,117,252,240,252,242,68,15,17,109,232,252,242,68,15,17,101,224,
382 137,68,36,4,68,139,122,252,248,69,139,191,233,69,139,191,233,65,199,134,233, 374 252,242,68,15,17,93,216,252,242,68,15,17,85,208,252,242,68,15,17,77,200,252,
383 0,0,0,0,65,199,134,233,237,139,3,15,182,204,15,182,232,131,195,4,193,232, 375 242,68,15,17,69,192,252,242,15,17,125,184,252,242,15,17,117,176,252,242,15,
384 16,129,252,253,239,15,130,244,248,139,68,36,4,248,2,65,252,255,36,252,238, 376 17,109,168,252,242,15,17,101,160,252,242,15,17,93,152,252,242,15,17,85,144,
385 248,3,252,247,216,137,252,239,137,198,232,251,1,24,255,248,82,255,217,124, 377 252,242,15,17,77,136,252,242,15,17,69,128,65,139,174,233,65,139,150,233,73,
386 36,4,137,68,36,8,102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137, 378 137,174,233,65,199,134,233,0,0,0,0,137,149,233,72,137,230,65,141,190,233,
387 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,145, 379 232,251,1,23,72,139,141,233,72,129,225,239,72,137,204,137,169,233,139,149,
388 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 380 233,139,153,233,252,233,244,247,255,248,144,255,72,131,196,16,248,1,76,139,
389 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242,15,88,203, 381 108,36,8,76,139,36,36,133,192,15,136,244,249,137,68,36,4,68,139,122,252,248,
390 252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208,252,242, 382 69,139,191,233,69,139,191,233,65,199,134,233,0,0,0,0,65,199,134,233,237,139,
391 15,194,193,1,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195,248,84,255, 383 3,15,182,204,15,182,232,131,195,4,193,232,16,129,252,253,239,15,130,244,248,
392 217,124,36,4,137,68,36,8,102,184,0,8,102,11,68,36,4,102,37,252,255,252,251, 384 139,68,36,4,248,2,65,252,255,36,252,238,248,3,252,247,216,137,252,239,137,
393 102,137,68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255, 385 198,232,251,1,24,255,248,82,255,217,124,36,4,137,68,36,8,102,184,0,4,102,
394 248,146,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216, 386 11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,
395 15,40,200,102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,252,242, 387 217,108,36,4,139,68,36,8,195,255,248,145,72,184,237,237,102,72,15,110,208,
396 15,88,203,252,242,15,92,203,102,15,86,202,72,184,237,237,102,72,15,110,208, 388 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
397 252,242,15,194,193,6,102,15,84,194,252,242,15,92,200,15,40,193,248,1,195, 389 134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,15,86,202,
398 248,104,255,217,124,36,4,137,68,36,8,102,184,0,12,102,11,68,36,4,102,137, 390 72,184,237,237,102,72,15,110,208,252,242,15,194,193,1,102,15,84,194,252,242,
399 68,36,6,217,108,36,6,217,252,252,217,108,36,4,139,68,36,8,195,255,248,147, 391 15,92,200,15,40,193,248,1,195,248,84,255,217,124,36,4,137,68,36,8,102,184,
400 72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,15,40,200, 392 0,8,102,11,68,36,4,102,37,252,255,252,251,102,137,68,36,6,217,108,36,6,217,
401 102,15,84,202,102,15,46,217,15,134,244,247,102,15,85,208,15,40,193,252,242, 393 252,252,217,108,36,4,139,68,36,8,195,255,248,146,72,184,237,237,102,72,15,
402 15,88,203,252,242,15,92,203,72,184,237,237,102,72,15,110,216,252,242,15,194, 394 110,208,72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,
403 193,1,102,15,84,195,252,242,15,92,200,102,15,86,202,15,40,193,248,1,195,248, 395 217,15,134,244,247,102,15,85,208,252,242,15,88,203,252,242,15,92,203,102,
404 148,255,15,40,232,252,242,15,94,193,72,184,237,237,102,72,15,110,208,72,184, 396 15,86,202,72,184,237,237,102,72,15,110,208,252,242,15,194,193,6,102,15,84,
405 237,237,102,72,15,110,216,15,40,224,102,15,84,226,102,15,46,220,15,134,244, 397 194,252,242,15,92,200,15,40,193,248,1,195,248,104,255,217,124,36,4,137,68,
406 247,102,15,85,208,252,242,15,88,227,252,242,15,92,227,102,15,86,226,72,184, 398 36,8,102,184,0,12,102,11,68,36,4,102,137,68,36,6,217,108,36,6,217,252,252,
407 237,237,102,72,15,110,208,252,242,15,194,196,1,102,15,84,194,252,242,15,92, 399 217,108,36,4,139,68,36,8,195,255,248,147,72,184,237,237,102,72,15,110,208,
408 224,15,40,197,252,242,15,89,204,252,242,15,92,193,195,248,1,252,242,15,89, 400 72,184,237,237,102,72,15,110,216,15,40,200,102,15,84,202,102,15,46,217,15,
409 200,15,40,197,252,242,15,92,193,195,255,217,193,216,252,241,217,124,36,4, 401 134,244,247,102,15,85,208,15,40,193,252,242,15,88,203,252,242,15,92,203,72,
410 102,184,0,4,102,11,68,36,4,102,37,252,255,252,247,102,137,68,36,6,217,108, 402 184,237,237,102,72,15,110,216,252,242,15,194,193,1,102,15,84,195,252,242,
411 36,6,217,252,252,217,108,36,4,222,201,222,252,233,195,255,248,88,217,252, 403 15,92,200,102,15,86,202,15,40,193,248,1,195,248,148,255,15,40,232,252,242,
412 234,222,201,248,149,217,84,36,252,248,129,124,36,252,248,0,0,128,127,15,132, 404 15,94,193,72,184,237,237,102,72,15,110,208,72,184,237,237,102,72,15,110,216,
413 244,247,129,124,36,252,248,0,0,128,252,255,15,132,244,248,248,150,217,192, 405 15,40,224,102,15,84,226,102,15,46,220,15,134,244,247,102,15,85,208,252,242,
406 15,88,227,252,242,15,92,227,102,15,86,226,72,184,237,237,102,72,15,110,208,
407 252,242,15,194,196,1,102,15,84,194,252,242,15,92,224,15,40,197,252,242,15,
408 89,204,252,242,15,92,193,195,248,1,252,242,15,89,200,15,40,197,252,242,15,
409 92,193,195,255,217,193,216,252,241,217,124,36,4,102,184,0,4,102,11,68,36,
410 4,102,37,252,255,252,247,102,137,68,36,6,217,108,36,6,217,252,252,217,108,
411 36,4,222,201,222,252,233,195,255,248,88,217,252,234,222,201,248,149,217,84,
412 36,252,248,129,124,36,252,248,0,0,128,127,15,132,244,247,129,124,36,252,248,
413 0,0,128,252,255,15,132,244,248,248,150,217,192,217,252,252,220,252,233,217,
414 201,217,252,240,217,232,222,193,217,252,253,221,217,248,1,195,248,2,221,216,
415 217,252,238,195,255,248,107,255,248,151,252,242,15,45,193,252,242,15,42,208,
416 102,15,46,202,15,133,244,254,15,138,244,255,248,152,131,252,248,1,15,142,
417 244,252,248,1,169,1,0,0,0,15,133,244,248,252,242,15,89,192,209,232,252,233,
418 244,1,248,2,209,232,15,132,244,251,15,40,200,248,3,252,242,15,89,192,209,
419 232,15,132,244,250,15,131,244,3,255,252,242,15,89,200,252,233,244,3,248,4,
420 252,242,15,89,193,248,5,195,248,6,15,132,244,5,15,130,244,253,80,72,184,237,
421 237,102,72,15,110,200,252,242,15,94,200,88,15,40,193,252,247,216,131,252,
422 248,1,15,132,244,5,252,233,244,1,248,7,72,184,237,237,102,72,15,110,192,195,
423 248,8,102,72,15,126,200,72,209,224,72,193,192,12,72,61,252,254,15,0,0,15,
424 132,244,248,255,102,72,15,126,192,72,209,224,15,132,244,250,72,193,192,12,
425 72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76,36,252,240,252,242,15,
426 17,68,36,252,248,221,68,36,252,240,221,68,36,252,248,217,252,241,217,192,
414 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221, 427 217,252,252,220,252,233,217,201,217,252,240,217,232,222,193,217,252,253,221,
415 217,248,1,195,248,2,221,216,217,252,238,195,255,248,107,255,248,151,252,242, 428 217,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,9,72,184,237,237,
416 15,45,193,252,242,15,42,208,102,15,46,202,15,133,244,254,15,138,244,255,248, 429 102,72,15,110,208,102,15,46,194,15,132,244,247,15,40,193,248,1,195,248,2,
417 152,131,252,248,1,15,142,244,252,248,1,169,1,0,0,0,15,133,244,248,252,242, 430 72,184,237,237,102,72,15,110,208,102,15,84,194,72,184,237,237,102,72,15,110,
418 15,89,192,209,232,252,233,244,1,248,2,209,232,15,132,244,251,15,40,200,248, 431 208,102,15,46,194,15,132,244,1,102,15,80,193,15,87,192,136,196,15,146,208,
419 3,252,242,15,89,192,209,232,15,132,244,250,15,131,244,3,255,252,242,15,89, 432 48,224,15,133,244,1,248,3,72,184,237,237,255,102,72,15,110,192,195,248,4,
420 200,252,233,244,3,248,4,252,242,15,89,193,248,5,195,248,6,15,132,244,5,15, 433 102,15,80,193,133,192,15,133,244,3,15,87,192,195,248,5,102,15,80,193,133,
421 130,244,253,80,72,184,237,237,102,72,15,110,200,252,242,15,94,200,88,15,40, 434 192,15,132,244,3,15,87,192,195,248,153,255,131,252,255,1,15,130,244,82,15,
422 193,252,247,216,131,252,248,1,15,132,244,5,252,233,244,1,248,7,72,184,237, 435 132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,252,242,15,81,192,
423 237,102,72,15,110,192,195,248,8,102,72,15,126,200,72,209,224,72,193,192,12, 436 195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248,131,252,255,5,15,
424 72,61,252,254,15,0,0,15,132,244,248,255,102,72,15,126,192,72,209,224,15,132, 437 135,244,248,15,132,244,247,232,244,88,252,233,244,253,248,1,232,244,149,255,
425 244,250,72,193,192,12,72,61,252,254,15,0,0,15,132,244,251,252,242,15,17,76, 438 252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135,244,248,217,252,
426 36,252,240,252,242,15,17,68,36,252,248,221,68,36,252,240,221,68,36,252,248, 439 237,217,201,217,252,241,252,233,244,253,248,1,217,232,217,201,217,252,241,
427 217,252,241,217,192,217,252,252,220,252,233,217,201,217,252,240,217,232,222, 440 252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135,244,248,217,252,
428 193,217,252,253,221,217,221,92,36,252,248,252,242,15,16,68,36,252,248,195, 441 236,217,201,217,252,241,252,233,244,253,248,1,255,217,252,254,252,233,244,
429 248,9,72,184,237,237,102,72,15,110,208,102,15,46,194,15,132,244,247,15,40, 442 253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,252,233,
430 193,248,1,195,248,2,72,184,237,237,102,72,15,110,208,102,15,84,194,72,184, 443 244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248,252,242,15,16,68,
431 237,237,102,72,15,110,208,102,15,46,194,15,132,244,1,102,15,80,193,15,87, 444 36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255,1,15,130,244,82,
432 192,136,196,15,146,208,48,224,15,133,244,1,248,3,72,184,237,237,255,102,72, 445 15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248,217,252,250,195,
433 15,110,192,195,248,4,102,15,80,193,133,192,15,133,244,3,15,87,192,195,248, 446 248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252,255,7,15,132,244,
434 5,102,15,80,193,133,192,15,132,244,3,15,87,192,195,248,153,255,131,252,255, 447 247,15,135,244,248,217,252,237,217,201,217,252,241,195,248,1,217,232,217,
435 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, 448 201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255,15,135,244,248,
436 252,242,15,81,192,195,248,2,252,242,15,17,68,36,252,248,221,68,36,252,248, 449 217,252,236,217,201,217,252,241,195,248,1,217,252,254,195,248,2,131,252,255,
437 131,252,255,5,15,135,244,248,15,132,244,247,232,244,88,252,233,244,253,248, 450 11,15,132,244,247,15,135,244,255,217,252,255,195,248,1,217,252,242,221,216,
438 1,232,244,149,255,252,233,244,253,248,2,131,252,255,7,15,132,244,247,15,135, 451 195,255,248,9,204,255,248,154,255,131,252,255,1,15,132,244,247,15,135,244,
439 244,248,217,252,237,217,201,217,252,241,252,233,244,253,248,1,217,232,217, 452 248,252,242,15,88,193,195,248,1,252,242,15,92,193,195,248,2,131,252,255,3,
440 201,217,252,241,252,233,244,253,248,2,131,252,255,9,15,132,244,247,15,135, 453 15,132,244,247,15,135,244,248,252,242,15,89,193,195,248,1,252,242,15,94,193,
441 244,248,217,252,236,217,201,217,252,241,252,233,244,253,248,1,255,217,252, 454 195,248,2,131,252,255,5,15,130,244,148,15,132,244,107,131,252,255,7,15,132,
442 254,252,233,244,253,248,2,131,252,255,11,15,132,244,247,15,135,244,255,217, 455 244,247,15,135,244,248,72,184,237,237,255,102,72,15,110,200,15,87,193,195,
443 252,255,252,233,244,253,248,1,217,252,242,221,216,248,7,221,92,36,252,248, 456 248,1,72,184,237,237,102,72,15,110,200,15,84,193,195,248,2,131,252,255,9,
444 252,242,15,16,68,36,252,248,195,255,139,124,36,12,221,68,36,4,131,252,255, 457 15,135,244,248,252,242,15,17,68,36,252,248,252,242,15,17,76,36,252,240,221,
445 1,15,130,244,82,15,132,244,84,131,252,255,3,15,130,244,104,15,135,244,248, 458 68,36,252,248,221,68,36,252,240,15,132,244,247,217,252,243,248,7,221,92,36,
446 217,252,250,195,248,2,131,252,255,5,15,130,244,88,15,132,244,149,131,252, 459 252,248,252,242,15,16,68,36,252,248,195,248,1,217,201,217,252,253,221,217,
447 255,7,15,132,244,247,15,135,244,248,217,252,237,217,201,217,252,241,195,248, 460 252,233,244,7,248,2,131,252,255,11,15,132,244,247,15,135,244,255,252,242,
448 1,217,232,217,201,217,252,241,195,248,2,131,252,255,9,15,132,244,247,255, 461 15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255,139,68,36,20,221,
449 15,135,244,248,217,252,236,217,201,217,252,241,195,248,1,217,252,254,195, 462 68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135,244,248,222,193,
450 248,2,131,252,255,11,15,132,244,247,15,135,244,255,217,252,255,195,248,1, 463 195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244,247,15,135,244,248,
451 217,252,242,221,216,195,255,248,9,204,255,248,154,255,131,252,255,1,15,132, 464 222,201,195,248,1,222,252,249,195,248,2,131,252,248,5,15,130,244,148,15,132,
452 244,247,15,135,244,248,252,242,15,88,193,195,248,1,252,242,15,92,193,195, 465 244,107,131,252,248,7,15,132,244,247,15,135,244,248,255,221,216,217,224,195,
453 248,2,131,252,255,3,15,132,244,247,15,135,244,248,252,242,15,89,193,195,248, 466 248,1,221,216,217,225,195,248,2,131,252,248,9,15,132,244,247,15,135,244,248,
454 1,252,242,15,94,193,195,248,2,131,252,255,5,15,130,244,148,15,132,244,107, 467 217,252,243,195,248,1,217,201,217,252,253,221,217,195,248,2,131,252,248,11,
455 131,252,255,7,15,132,244,247,15,135,244,248,72,184,237,237,255,102,72,15, 468 15,132,244,247,15,135,244,255,255,219,252,233,219,209,221,217,195,248,1,219,
456 110,200,15,87,193,195,248,1,72,184,237,237,102,72,15,110,200,15,84,193,195, 469 252,233,218,209,221,217,195,255,221,225,223,224,252,246,196,1,15,132,244,
457 248,2,131,252,255,9,15,135,244,248,252,242,15,17,68,36,252,248,252,242,15, 470 248,217,201,248,2,221,216,195,248,1,221,225,223,224,252,246,196,1,15,133,
458 17,76,36,252,240,221,68,36,252,248,221,68,36,252,240,15,132,244,247,217,252, 471 244,248,217,201,248,2,221,216,195,255,248,155,137,252,248,83,15,162,137,6,
459 243,248,7,221,92,36,252,248,252,242,15,16,68,36,252,248,195,248,1,217,201, 472 137,94,4,137,78,8,137,86,12,91,195,255,129,124,253,202,4,239,15,135,244,41,
460 217,252,253,221,217,252,233,244,7,248,2,131,252,255,11,15,132,244,247,15, 473 129,124,253,194,4,239,15,135,244,41,255,252,242,15,16,4,194,131,195,4,102,
461 135,244,255,252,242,15,93,193,195,248,1,252,242,15,95,193,195,248,9,204,255, 474 15,46,4,202,255,221,4,202,221,4,194,131,195,4,255,223,252,233,221,216,255,
462 139,68,36,20,221,68,36,4,221,68,36,12,131,252,248,1,15,132,244,247,15,135, 475 218,252,233,223,224,158,255,15,134,244,248,255,15,131,244,248,255,248,1,15,
463 244,248,222,193,195,248,1,222,252,233,195,248,2,131,252,248,3,15,132,244, 476 183,67,252,254,141,156,253,131,233,248,2,139,3,15,182,204,15,182,232,131,
464 247,15,135,244,248,222,201,195,248,1,222,252,249,195,248,2,131,252,248,5, 477 195,4,193,232,16,65,252,255,36,252,238,255,139,108,194,4,131,195,4,129,252,
465 15,130,244,148,15,132,244,107,131,252,248,7,15,132,244,247,15,135,244,248, 478 253,239,15,135,244,251,129,124,253,202,4,239,15,135,244,251,255,252,242,15,
466 255,221,216,217,224,195,248,1,221,216,217,225,195,248,2,131,252,248,9,15, 479 16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255,15,138,244,248,15,133,
467 132,244,247,15,135,244,248,217,252,243,195,248,1,217,201,217,252,253,221, 480 244,248,255,15,138,244,248,15,132,244,247,255,248,1,15,183,67,252,254,141,
468 217,195,248,2,131,252,248,11,15,132,244,247,15,135,244,255,255,219,252,233, 481 156,253,131,233,248,2,255,248,2,15,183,67,252,254,141,156,253,131,233,248,
469 219,209,221,217,195,248,1,219,252,233,218,209,221,217,195,255,221,225,223, 482 1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239,15,131,244,1,139,12,
470 224,252,246,196,1,15,132,244,248,217,201,248,2,221,216,195,248,1,221,225, 483 202,139,4,194,57,193,15,132,244,1,129,252,253,239,15,135,244,2,139,169,233,
471 223,224,252,246,196,1,15,133,244,248,217,201,248,2,221,216,195,255,248,155, 484 133,252,237,15,132,244,2,252,246,133,233,235,15,133,244,2,255,49,252,237,
472 137,252,248,83,15,162,137,6,137,94,4,137,78,8,137,86,12,91,195,255,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,
473 253,202,4,239,15,135,244,41,129,124,253,194,4,239,15,135,244,41,255,252,242, 486 202,4,239,15,133,244,248,139,12,202,65,59,12,135,255,131,195,4,129,124,253,
474 15,16,4,194,131,195,4,102,15,46,4,202,255,221,4,202,221,4,194,131,195,4,255, 487 202,4,239,15,135,244,248,255,252,242,65,15,16,4,199,102,15,46,4,202,255,221,
475 223,252,233,221,216,255,218,252,233,223,224,158,255,15,134,244,248,255,15, 488 4,202,65,221,4,199,255,72,252,247,208,131,195,4,57,68,202,4,255,139,108,194,
476 131,244,248,255,248,1,15,183,67,252,254,141,156,253,131,233,248,2,139,3,15, 489 4,131,195,4,129,252,253,239,255,15,131,244,247,255,15,130,244,247,255,137,
477 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,108, 490 108,202,4,139,44,194,137,44,202,255,15,183,67,252,254,141,156,253,131,233,
478 194,4,131,195,4,129,252,253,239,15,135,244,251,129,124,253,202,4,239,15,135, 491 248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
479 244,251,255,252,242,15,16,4,194,102,15,46,4,202,255,221,4,202,221,4,194,255, 492 238,255,72,139,44,194,72,137,44,202,139,3,15,182,204,15,182,232,131,195,4,
480 15,138,244,248,15,133,244,248,255,15,138,244,248,15,132,244,247,255,248,1, 493 193,232,16,65,252,255,36,252,238,255,49,252,237,129,124,253,194,4,239,129,
481 15,183,67,252,254,141,156,253,131,233,248,2,255,248,2,15,183,67,252,254,141, 494 213,239,137,108,202,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
482 156,253,131,233,248,1,255,248,5,57,108,202,4,15,133,244,2,129,252,253,239, 495 252,255,36,252,238,255,129,124,253,194,4,239,15,135,244,48,255,252,242,15,
483 15,131,244,1,139,12,202,139,4,194,57,193,15,132,244,1,129,252,253,239,15, 496 16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252,242,15,17,4,202,255,
484 135,244,2,139,169,233,133,252,237,15,132,244,2,252,246,133,233,235,15,133, 497 221,4,194,217,224,221,28,202,255,129,124,253,194,4,239,15,133,244,248,139,
485 244,2,255,49,252,237,255,189,1,0,0,0,255,252,233,244,45,255,72,252,247,208, 498 4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242,15,17,4,202,255,219,
486 131,195,4,129,124,253,202,4,239,15,133,244,248,139,12,202,65,59,12,135,255, 499 128,233,248,1,221,28,202,255,139,3,15,182,204,15,182,232,131,195,4,193,232,
487 131,195,4,129,124,253,202,4,239,15,135,244,248,255,252,242,65,15,16,4,199, 500 16,65,252,255,36,252,238,248,2,129,124,253,194,4,239,15,133,244,50,139,60,
488 102,15,46,4,202,255,221,4,202,65,221,4,199,255,72,252,247,208,131,195,4,57, 501 194,137,213,232,251,1,18,255,252,242,15,42,192,137,252,234,255,15,182,75,
489 68,202,4,255,139,108,194,4,131,195,4,129,252,253,239,255,15,131,244,247,255, 502 252,253,252,233,244,1,255,15,182,252,236,15,182,192,255,129,124,253,252,234,
490 15,130,244,247,255,137,108,202,4,139,44,194,137,44,202,255,15,183,67,252, 503 4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242,65,15,88,4,199,255,
491 254,141,156,253,131,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232, 504 221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239,15,135,244,47,255,
492 16,65,252,255,36,252,238,255,72,139,44,194,72,137,44,202,139,3,15,182,204, 505 252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221,4,199,220,4,252,
493 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,49,252,237,129, 506 234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253,194,4,239,15,
494 124,253,194,4,239,129,213,239,137,108,202,4,139,3,15,182,204,15,182,232,131, 507 135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255,221,4,252,
495 195,4,193,232,16,65,252,255,36,252,238,255,129,124,253,194,4,239,15,135,244, 508 234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199,255,221,
496 48,255,252,242,15,16,4,194,72,184,237,237,102,72,15,110,200,15,87,193,252, 509 4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92,4,252,234,
497 242,15,17,4,202,255,221,4,194,217,224,221,28,202,255,129,124,253,194,4,239, 510 255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252,242,15,92,
498 15,133,244,248,139,4,194,255,15,87,192,252,242,15,42,128,233,248,1,252,242, 511 4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234,252,242,65,
499 15,17,4,202,255,219,128,233,248,1,221,28,202,255,139,3,15,182,204,15,182, 512 15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15,16,4,199,252,
500 232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,124,253,194,4,239, 513 242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252,242,15,16,4,252,
501 15,133,244,50,139,60,194,137,213,232,251,1,18,255,252,242,15,42,192,137,252, 514 234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255,252,242,15,16,4,
502 234,255,15,182,75,252,253,252,233,244,1,255,15,182,252,236,15,182,192,255, 515 252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52,199,255,252,242,
503 129,124,253,252,234,4,239,15,135,244,46,255,252,242,15,16,4,252,234,252,242, 516 65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220,52,252,234,255,
504 65,15,88,4,199,255,221,4,252,234,65,220,4,199,255,129,124,253,252,234,4,239, 517 252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252,234,220,52,194,
505 15,135,244,47,255,252,242,65,15,16,4,199,252,242,15,88,4,252,234,255,65,221, 518 255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221,4,252,234,65,
506 4,199,220,4,252,234,255,129,124,253,252,234,4,239,15,135,244,49,129,124,253, 519 221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234,255,65,221,
507 194,4,239,15,135,244,49,255,252,242,15,16,4,252,234,252,242,15,88,4,194,255, 520 4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16,12,194,255,
508 221,4,252,234,220,4,194,255,252,242,15,16,4,252,234,252,242,65,15,92,4,199, 521 221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244,156,255,232,
509 255,221,4,252,234,65,220,36,199,255,252,242,65,15,16,4,199,252,242,15,92, 522 244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233,141,52,194,
510 4,252,234,255,65,221,4,199,220,36,252,234,255,252,242,15,16,4,252,234,252, 523 137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25,139,149,233,
511 242,15,92,4,194,255,221,4,252,234,220,36,194,255,252,242,15,16,4,252,234, 524 133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72,139,4,252,234,
512 252,242,65,15,89,4,199,255,221,4,252,234,65,220,12,199,255,252,242,65,15, 525 72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
513 16,4,199,252,242,15,89,4,252,234,255,65,221,4,199,220,12,252,234,255,252, 526 36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237,137,4,202,139,
514 242,15,16,4,252,234,252,242,15,89,4,194,255,221,4,252,234,220,12,194,255, 527 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,15,
515 252,242,15,16,4,252,234,252,242,65,15,94,4,199,255,221,4,252,234,65,220,52, 528 191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252,254,221,28,202,
516 199,255,252,242,65,15,16,4,199,252,242,15,94,4,252,234,255,65,221,4,199,220, 529 255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221,4,199,221,28,202,
517 52,252,234,255,252,242,15,16,4,252,234,252,242,15,94,4,194,255,221,4,252, 530 255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182,232,131,195,4,193,
518 234,220,52,194,255,252,242,15,16,4,252,234,252,242,65,15,16,12,199,255,221, 531 232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194,4,189,237,137,105,
519 4,252,234,65,221,4,199,255,252,242,65,15,16,4,199,252,242,15,16,12,252,234, 532 252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139,3,15,182,204,15,182,
520 255,65,221,4,199,221,4,252,234,255,252,242,15,16,4,252,234,252,242,15,16, 533 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,
521 12,194,255,221,4,252,234,221,4,194,255,248,156,232,244,148,255,252,233,244, 534 253,133,233,139,173,233,72,139,69,0,72,137,4,202,139,3,15,182,204,15,182,
522 156,255,232,244,107,255,15,182,252,236,15,182,192,139,124,36,24,137,151,233, 535 232,131,195,4,193,232,16,65,252,255,36,252,238,255,139,106,252,248,139,172,
523 141,52,194,137,194,41,252,234,248,33,137,252,253,137,92,36,28,232,251,1,25, 536 253,141,233,128,189,233,0,139,173,233,139,12,194,139,68,194,4,137,77,0,137,
524 139,149,233,133,192,15,133,244,42,15,182,107,252,255,15,182,75,252,253,72, 537 69,4,15,132,244,247,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,
525 139,4,252,234,72,137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232, 538 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,129,232,239,
526 16,65,252,255,36,252,238,255,72,252,247,208,65,139,4,135,199,68,202,4,237, 539 129,252,248,239,15,134,244,1,252,246,129,233,235,15,132,244,1,137,252,238,
527 137,4,202,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 540 137,213,65,141,190,233,255,232,251,1,26,137,252,234,252,233,244,1,255,72,
528 252,238,255,15,191,192,252,242,15,42,192,252,242,15,17,4,202,255,223,67,252, 541 252,247,208,139,106,252,248,139,172,253,141,233,65,139,12,135,139,133,233,
529 254,221,28,202,255,252,242,65,15,16,4,199,252,242,15,17,4,202,255,65,221, 542 137,8,199,64,4,237,252,246,133,233,235,15,133,244,248,248,1,139,3,15,182,
530 4,199,221,28,202,255,72,252,247,208,137,68,202,4,139,3,15,182,204,15,182, 543 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,252,246,129,
531 232,131,195,4,193,232,16,65,252,255,36,252,238,255,141,76,202,12,141,68,194, 544 233,235,15,132,244,1,128,189,233,0,15,132,244,1,137,213,137,198,65,141,190,
532 4,189,237,137,105,252,248,248,1,137,41,131,193,8,57,193,15,134,244,1,139, 545 233,232,251,1,26,137,252,234,252,233,244,1,255,139,106,252,248,255,252,242,
533 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139, 546 65,15,16,4,199,255,139,172,253,141,233,139,141,233,255,252,242,15,17,1,255,
534 106,252,248,139,172,253,133,233,139,173,233,72,139,69,0,72,137,4,202,139, 547 221,25,255,72,252,247,208,139,106,252,248,139,172,253,141,233,139,141,233,
535 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,139, 548 137,65,4,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
536 106,252,248,139,172,253,141,233,128,189,233,0,139,173,233,139,12,194,139, 549 238,255,141,156,253,131,233,139,108,36,24,131,189,233,0,15,132,244,247,137,
537 68,194,4,137,77,0,137,69,4,15,132,244,247,252,246,133,233,235,15,133,244, 550 149,233,141,52,202,137,252,239,232,251,1,27,139,149,233,248,1,139,3,15,182,
538 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 551 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,255,72,252,247,
539 252,238,248,2,129,232,239,129,252,248,239,15,134,244,1,252,246,129,233,235, 552 208,139,108,36,24,137,149,233,139,82,252,248,65,139,52,135,137,252,239,137,
540 15,132,244,1,137,252,238,137,213,65,141,190,233,255,232,251,1,26,137,252, 553 92,36,28,232,251,1,28,139,149,233,15,182,75,252,253,137,4,202,199,68,202,
541 234,252,233,244,1,255,72,252,247,208,139,106,252,248,139,172,253,141,233, 554 4,237,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
542 65,139,12,135,139,133,233,137,8,199,64,4,237,252,246,133,233,235,15,133,244, 555 238,255,139,108,36,24,137,149,233,65,139,142,233,65,59,142,233,137,92,36,
543 248,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 556 28,15,131,244,251,248,1,137,194,37,252,255,7,0,0,193,252,234,11,61,252,255,
544 252,238,248,2,252,246,129,233,235,15,132,244,1,128,189,233,0,15,132,244,1, 557 7,0,0,15,132,244,249,248,2,137,252,239,137,198,232,251,1,29,139,149,233,15,
545 137,213,137,198,65,141,190,233,232,251,1,26,137,252,234,252,233,244,1,255, 558 182,75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,
546 139,106,252,248,255,252,242,65,15,16,4,199,255,139,172,253,141,233,139,141, 559 195,4,193,232,16,65,252,255,36,252,238,248,3,184,1,8,0,0,252,233,244,2,248,
547 233,255,252,242,15,17,1,255,221,25,255,72,252,247,208,139,106,252,248,139, 560 5,137,252,239,232,251,1,30,15,183,67,252,254,252,233,244,1,255,72,252,247,
548 172,253,141,233,139,141,233,137,65,4,139,3,15,182,204,15,182,232,131,195, 561 208,139,108,36,24,65,139,142,233,137,92,36,28,65,59,142,233,137,149,233,15,
549 4,193,232,16,65,252,255,36,252,238,255,141,156,253,131,233,139,108,36,24, 562 131,244,249,248,2,65,139,52,135,137,252,239,232,251,1,31,139,149,233,15,182,
550 131,189,233,0,15,132,244,247,137,149,233,141,52,202,137,252,239,232,251,1,
551 27,139,149,233,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,
552 252,255,36,252,238,255,72,252,247,208,139,108,36,24,137,149,233,139,82,252,
553 248,65,139,52,135,137,252,239,137,92,36,28,232,251,1,28,139,149,233,15,182,
554 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195, 563 75,252,253,137,4,202,199,68,202,4,237,139,3,15,182,204,15,182,232,131,195,
555 4,193,232,16,65,252,255,36,252,238,255,139,108,36,24,137,149,233,65,139,142, 564 4,193,232,16,65,252,255,36,252,238,248,3,137,252,239,232,251,1,30,15,183,
556 233,65,59,142,233,137,92,36,28,15,131,244,251,248,1,137,194,37,252,255,7, 565 67,252,254,72,252,247,208,252,233,244,2,255,72,252,247,208,139,106,252,248,
557 0,0,193,252,234,11,61,252,255,7,0,0,15,132,244,249,248,2,137,252,239,137, 566 139,173,233,65,139,4,135,252,233,244,157,255,72,252,247,208,139,106,252,248,
558 198,232,251,1,29,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 567 139,173,233,65,139,4,135,252,233,244,158,255,15,182,252,236,15,182,192,129,
559 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 568 124,253,252,234,4,239,15,133,244,36,139,44,252,234,129,124,253,194,4,239,
560 3,184,1,8,0,0,252,233,244,2,248,5,137,252,239,232,251,1,30,15,183,67,252, 569 15,135,244,251,255,252,242,15,16,4,194,252,242,15,45,192,252,242,15,42,200,
561 254,252,233,244,1,255,72,252,247,208,139,108,36,24,65,139,142,233,137,92, 570 102,15,46,193,255,15,133,244,36,59,133,233,15,131,244,36,193,224,3,3,133,
562 36,28,65,59,142,233,137,149,233,15,131,244,249,248,2,65,139,52,135,137,252, 571 233,129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,
563 239,232,251,1,31,139,149,233,15,182,75,252,253,137,4,202,199,68,202,4,237, 572 15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,
564 139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248, 573 189,233,0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,36,15,
565 3,137,252,239,232,251,1,30,15,183,67,252,254,72,252,247,208,252,233,244,2, 574 182,75,252,253,248,3,255,199,68,202,4,237,252,233,244,1,248,5,129,124,253,
566 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,157, 575 194,4,239,15,133,244,36,139,4,194,252,233,244,157,255,15,182,252,236,15,182,
567 255,72,252,247,208,139,106,252,248,139,173,233,65,139,4,135,252,233,244,158, 576 192,72,252,247,208,65,139,4,135,129,124,253,252,234,4,239,15,133,244,34,139,
568 255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15,133,244,36,139, 577 44,252,234,248,157,139,141,233,35,136,233,105,201,239,3,141,233,248,1,129,
569 44,252,234,129,124,253,194,4,239,15,135,244,251,255,252,242,15,16,4,194,252, 578 185,233,239,15,133,244,250,57,129,233,15,133,244,250,129,121,253,4,239,15,
570 242,15,45,192,252,242,15,42,200,102,15,46,193,255,15,133,244,36,59,133,233, 579 132,244,251,15,182,67,252,253,72,139,41,72,137,44,194,248,2,255,139,3,15,
571 15,131,244,36,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72,139, 580 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,15,182,
572 40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 581 67,252,253,199,68,194,4,237,252,233,244,2,248,4,139,137,233,133,201,15,133,
573 252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252,246, 582 244,1,248,5,139,141,233,133,201,15,132,244,3,252,246,129,233,235,15,133,244,
574 129,233,235,15,132,244,36,15,182,75,252,253,248,3,255,199,68,202,4,237,252, 583 3,252,233,244,34,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,
575 233,244,1,248,5,129,124,253,194,4,239,15,133,244,36,139,4,194,252,233,244, 584 15,133,244,35,139,44,252,234,59,133,233,15,131,244,35,193,224,3,3,133,233,
576 157,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253, 585 129,120,253,4,239,15,132,244,248,72,139,40,72,137,44,202,248,1,139,3,15,182,
577 252,234,4,239,15,133,244,34,139,44,252,234,248,157,139,141,233,35,136,233, 586 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,2,131,189,233,
578 105,201,239,3,141,233,248,1,129,185,233,239,15,133,244,250,57,129,233,15, 587 0,15,132,244,249,139,141,233,252,246,129,233,235,15,132,244,35,255,15,182,
579 133,244,250,129,121,253,4,239,15,132,244,251,15,182,67,252,253,72,139,41, 588 75,252,253,248,3,199,68,202,4,237,252,233,244,1,255,15,182,252,236,15,182,
580 72,137,44,194,248,2,255,139,3,15,182,204,15,182,232,131,195,4,193,232,16, 589 192,129,124,253,252,234,4,239,15,133,244,39,139,44,252,234,129,124,253,194,
581 65,252,255,36,252,238,248,3,15,182,67,252,253,199,68,194,4,237,252,233,244, 590 4,239,15,135,244,251,255,15,133,244,39,59,133,233,15,131,244,39,193,224,3,
582 2,248,4,139,137,233,133,201,15,133,244,1,248,5,139,141,233,133,201,15,132, 591 3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,
583 244,3,252,246,129,233,235,15,133,244,3,252,233,244,34,255,15,182,252,236, 592 244,253,248,2,72,139,44,202,72,137,40,139,3,15,182,204,15,182,232,131,195,
584 15,182,192,129,124,253,252,234,4,239,15,133,244,35,139,44,252,234,59,133, 593 4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,139,141,
585 233,15,131,244,35,193,224,3,3,133,233,129,120,253,4,239,15,132,244,248,72, 594 233,255,252,246,129,233,235,15,132,244,39,15,182,75,252,253,252,233,244,1,
586 139,40,72,137,44,202,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232, 595 248,5,129,124,253,194,4,239,15,133,244,39,139,4,194,252,233,244,158,248,7,
587 16,65,252,255,36,252,238,248,2,131,189,233,0,15,132,244,249,139,141,233,252, 596 128,165,233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253,
588 246,129,233,235,15,132,244,35,255,15,182,75,252,253,248,3,199,68,202,4,237, 597 252,233,244,2,255,15,182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,
589 252,233,244,1,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, 598 124,253,252,234,4,239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,
590 133,244,39,139,44,252,234,129,124,253,194,4,239,15,135,244,251,255,15,133, 599 136,233,105,201,239,198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,
591 244,39,59,133,233,15,131,244,39,193,224,3,3,133,233,129,120,253,4,239,15, 600 244,251,57,129,233,15,133,244,251,129,121,253,4,239,15,132,244,250,248,2,
592 132,244,249,248,1,252,246,133,233,235,15,133,244,253,248,2,72,139,44,202, 601 255,252,246,133,233,235,15,133,244,253,248,3,15,182,67,252,253,72,139,44,
593 72,137,40,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36, 602 194,72,137,41,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,
594 252,238,248,3,131,189,233,0,15,132,244,1,139,141,233,255,252,246,129,233, 603 36,252,238,248,4,131,189,233,0,15,132,244,2,137,12,36,139,141,233,252,246,
595 235,15,132,244,39,15,182,75,252,253,252,233,244,1,248,5,129,124,253,194,4, 604 129,233,235,15,132,244,37,139,12,36,252,233,244,2,248,5,139,137,233,133,201,
596 239,15,133,244,39,139,4,194,252,233,244,158,248,7,128,165,233,235,65,139, 605 15,133,244,1,255,139,141,233,133,201,15,132,244,252,252,246,129,233,235,15,
597 142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233,244,2,255,15, 606 132,244,37,248,6,137,4,36,199,68,36,4,237,137,108,36,8,139,124,36,24,137,
598 182,252,236,15,182,192,72,252,247,208,65,139,4,135,129,124,253,252,234,4, 607 151,233,72,141,20,36,137,252,238,137,252,253,137,92,36,28,232,251,1,32,139,
599 239,15,133,244,37,139,44,252,234,248,158,139,141,233,35,136,233,105,201,239, 608 149,233,139,108,36,8,137,193,252,233,244,2,248,7,128,165,233,235,65,139,134,
600 198,133,233,0,3,141,233,248,1,129,185,233,239,15,133,244,251,57,129,233,15, 609 233,65,137,174,233,137,133,233,252,233,244,3,255,15,182,252,236,15,182,192,
601 133,244,251,129,121,253,4,239,15,132,244,250,248,2,255,252,246,133,233,235, 610 129,124,253,252,234,4,239,15,133,244,38,139,44,252,234,59,133,233,15,131,
602 15,133,244,253,248,3,15,182,67,252,253,72,139,44,194,72,137,41,139,3,15,182, 611 244,38,193,224,3,3,133,233,129,120,253,4,239,15,132,244,249,248,1,252,246,
603 204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,131,189,233, 612 133,233,235,15,133,244,253,248,2,72,139,12,202,72,137,8,139,3,15,182,204,
604 0,15,132,244,2,137,12,36,139,141,233,252,246,129,233,235,15,132,244,37,139, 613 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,3,131,189,233,0,
605 12,36,252,233,244,2,248,5,139,137,233,133,201,15,133,244,1,255,139,141,233, 614 15,132,244,1,255,139,141,233,252,246,129,233,235,15,132,244,38,15,182,75,
606 133,201,15,132,244,252,252,246,129,233,235,15,132,244,37,248,6,137,4,36,199, 615 252,253,252,233,244,1,248,7,128,165,233,235,65,139,142,233,65,137,174,233,
607 68,36,4,237,137,108,36,8,139,124,36,24,137,151,233,72,141,20,36,137,252,238, 616 137,141,233,15,182,75,252,253,252,233,244,2,255,68,137,60,36,69,139,60,199,
608 137,252,253,137,92,36,28,232,251,1,32,139,149,233,139,108,36,8,137,193,252, 617 248,1,141,12,202,139,105,252,248,252,246,133,233,235,15,133,244,253,248,2,
609 233,244,2,248,7,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233, 618 139,68,36,4,131,232,1,15,132,244,250,68,1,252,248,59,133,233,15,135,244,251,
610 252,233,244,3,255,15,182,252,236,15,182,192,129,124,253,252,234,4,239,15, 619 68,41,252,248,65,193,231,3,68,3,189,233,248,3,72,139,41,131,193,8,73,137,
611 133,244,38,139,44,252,234,59,133,233,15,131,244,38,193,224,3,3,133,233,129, 620 47,65,131,199,8,131,232,1,15,133,244,3,248,4,68,139,60,36,139,3,15,182,204,
612 120,253,4,239,15,132,244,249,248,1,252,246,133,233,235,15,133,244,253,248, 621 15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,139,124,36,24,
613 2,72,139,12,202,72,137,8,139,3,15,182,204,15,182,232,131,195,4,193,232,16, 622 137,151,233,137,252,238,137,194,137,252,253,137,92,36,28,232,251,1,33,139,
614 65,252,255,36,252,238,248,3,131,189,233,0,15,132,244,1,255,139,141,233,252, 623 149,233,15,182,75,252,253,252,233,244,1,248,7,255,128,165,233,235,65,139,
615 246,129,233,235,15,132,244,38,15,182,75,252,253,252,233,244,1,248,7,128,165, 624 134,233,65,137,174,233,137,133,233,252,233,244,2,255,3,68,36,4,255,129,124,
616 233,235,65,139,142,233,65,137,174,233,137,141,233,15,182,75,252,253,252,233, 625 253,202,4,239,139,44,202,15,133,244,51,141,84,202,8,137,90,252,252,139,157,
617 244,2,255,68,137,60,36,69,139,60,199,248,1,141,12,202,139,105,252,248,252, 626 233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,
618 246,133,233,235,15,133,244,253,248,2,139,68,36,4,131,232,1,15,132,244,250, 627 141,76,202,8,65,137,215,139,105,252,248,129,121,253,252,252,239,15,133,244,
619 68,1,252,248,59,133,233,15,135,244,251,68,41,252,248,65,193,231,3,68,3,189, 628 28,248,52,139,90,252,252,252,247,195,237,15,133,244,253,248,1,137,106,252,
620 233,248,3,72,139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244, 629 248,137,68,36,4,131,232,1,15,132,244,249,248,2,72,139,41,131,193,8,73,137,
621 3,248,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 630 47,65,131,199,8,131,232,1,15,133,244,2,139,106,252,248,248,3,139,68,36,4,
622 252,255,36,252,238,248,5,139,124,36,24,137,151,233,137,252,238,137,194,137, 631 128,189,233,1,15,135,244,251,248,4,139,157,233,139,11,15,182,252,233,15,182,
623 252,253,137,92,36,28,232,251,1,33,139,149,233,15,182,75,252,253,252,233,244, 632 205,131,195,4,65,252,255,36,252,238,248,5,255,252,247,195,237,15,133,244,
624 1,248,7,255,128,165,233,235,65,139,134,233,65,137,174,233,137,133,233,252, 633 4,15,182,75,252,253,72,252,247,209,141,12,202,68,139,121,252,248,69,139,191,
625 233,244,2,255,3,68,36,4,255,129,124,253,202,4,239,139,44,202,15,133,244,51, 634 233,69,139,191,233,252,233,244,4,248,7,129,252,235,239,252,247,195,237,15,
626 141,84,202,8,137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205, 635 133,244,254,41,218,65,137,215,139,90,252,252,252,233,244,1,248,8,129,195,
627 131,195,4,65,252,255,36,252,238,255,141,76,202,8,65,137,215,139,105,252,248, 636 239,252,233,244,1,255,141,76,202,8,72,139,105,232,72,139,65,252,240,72,137,
628 129,121,253,252,252,239,15,133,244,28,248,52,139,90,252,252,252,247,195,237, 637 41,72,137,65,8,139,105,224,139,65,228,137,105,252,248,137,65,252,252,129,
629 15,133,244,253,248,1,137,106,252,248,137,68,36,4,131,232,1,15,132,244,249, 638 252,248,239,184,237,15,133,244,28,137,202,137,90,252,252,139,157,233,139,
630 248,2,72,139,41,131,193,8,73,137,47,65,131,199,8,131,232,1,15,133,244,2,139, 639 11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,255,68,137,60,
631 106,252,248,248,3,139,68,36,4,128,189,233,1,15,135,244,251,248,4,139,157, 640 36,68,137,116,36,4,139,108,202,252,240,139,68,202,252,248,68,139,181,233,
632 233,139,11,15,182,252,233,15,182,205,131,195,4,65,252,255,36,252,238,248, 641 131,195,4,68,139,189,233,248,1,68,57,252,240,15,131,244,251,65,129,124,253,
633 5,255,252,247,195,237,15,133,244,4,15,182,75,252,253,72,252,247,209,141,12, 642 199,4,239,15,132,244,250,255,252,242,15,42,192,255,219,68,202,252,248,255,
634 202,68,139,121,252,248,69,139,191,233,69,139,191,233,252,233,244,4,248,7, 643 73,139,44,199,72,137,108,202,8,131,192,1,255,137,68,202,252,248,248,2,15,
635 129,252,235,239,252,247,195,237,15,133,244,254,41,218,65,137,215,139,90,252, 644 183,67,252,254,141,156,253,131,233,248,3,68,139,116,36,4,68,139,60,36,139,
636 252,252,233,244,1,248,8,129,195,239,252,233,244,1,255,141,76,202,8,72,139, 645 3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,4,
637 105,232,72,139,65,252,240,72,137,41,72,137,65,8,139,105,224,139,65,228,137, 646 131,192,1,255,137,68,202,252,248,255,252,233,244,1,248,5,68,41,252,240,248,
638 105,252,248,137,65,252,252,129,252,248,239,184,237,15,133,244,28,137,202, 647 6,59,133,233,15,135,244,3,68,105,252,248,239,68,3,189,233,65,129,191,233,
639 137,90,252,252,139,157,233,139,11,15,182,252,233,15,182,205,131,195,4,65, 648 239,15,132,244,253,70,141,116,48,1,73,139,175,233,73,139,135,233,72,137,44,
640 252,255,36,252,238,255,68,137,60,36,68,137,116,36,4,139,108,202,252,240,139, 649 202,72,137,68,202,8,68,137,116,202,252,248,252,233,244,2,248,7,131,192,1,
641 68,202,252,248,68,139,181,233,131,195,4,68,139,189,233,248,1,68,57,252,240, 650 252,233,244,6,255,129,124,253,202,252,236,239,15,133,244,251,139,108,202,
642 15,131,244,251,65,129,124,253,199,4,239,15,132,244,250,255,252,242,15,42, 651 232,129,124,253,202,252,244,239,15,133,244,251,129,124,253,202,252,252,239,
643 192,255,219,68,202,252,248,255,73,139,44,199,72,137,108,202,8,131,192,1,255, 652 15,133,244,251,128,189,233,235,15,133,244,251,141,156,253,131,233,199,68,
644 137,68,202,252,248,248,2,15,183,67,252,254,141,156,253,131,233,248,3,68,139, 653 202,252,248,0,0,0,0,248,1,139,3,15,182,204,15,182,232,131,195,4,193,232,16,
645 116,36,4,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65, 654 65,252,255,36,252,238,248,5,198,67,252,252,235,141,156,253,131,233,198,3,
646 252,255,36,252,238,248,4,131,192,1,255,137,68,202,252,248,255,252,233,244, 655 235,252,233,244,1,255,15,182,252,236,15,182,192,68,137,60,36,68,141,188,253,
647 1,248,5,68,41,252,240,248,6,59,133,233,15,135,244,3,68,105,252,248,239,68, 656 194,233,141,12,202,68,43,122,252,252,133,252,237,15,132,244,251,141,108,252,
648 3,189,233,65,129,191,233,239,15,132,244,253,70,141,116,48,1,73,139,175,233, 657 233,252,248,65,57,215,15,131,244,248,248,1,73,139,71,252,248,65,131,199,8,
649 73,139,135,233,72,137,44,202,72,137,68,202,8,68,137,116,202,252,248,252,233, 658 72,137,1,131,193,8,57,252,233,15,131,244,249,65,57,215,15,130,244,1,248,2,
650 244,2,248,7,131,192,1,252,233,244,6,255,129,124,253,202,252,236,239,15,133, 659 199,65,4,237,131,193,8,57,252,233,15,130,244,2,248,3,68,139,60,36,139,3,15,
651 244,251,139,108,202,232,129,124,253,202,252,244,239,15,133,244,251,129,124, 660 182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,238,248,5,199,68,
652 253,202,252,252,239,15,133,244,251,128,189,233,235,15,133,244,251,141,156, 661 36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137,197,193,252,237,3,131,
653 253,131,233,199,68,202,252,248,0,0,0,0,248,1,139,3,15,182,204,15,182,232, 662 197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15,135,244,253,248,6,255,
654 131,195,4,193,232,16,65,252,255,36,252,238,248,5,198,67,252,252,235,141,156, 663 73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,65,57,215,15,130,244,6,
655 253,131,233,198,3,235,252,233,244,1,255,15,182,252,236,15,182,192,68,137, 664 252,233,244,3,248,7,137,149,233,137,141,233,137,92,36,28,65,41,215,139,116,
656 60,36,68,141,188,253,194,233,141,12,202,68,43,122,252,252,133,252,237,15, 665 36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233,139,141,233,65,1,215,
657 132,244,251,141,108,252,233,252,248,65,57,215,15,131,244,248,248,1,73,139, 666 252,233,244,6,255,193,225,3,255,248,1,139,90,252,252,137,68,36,4,252,247,
658 71,252,248,65,131,199,8,72,137,1,131,193,8,57,252,233,15,131,244,249,65,57, 667 195,237,15,133,244,253,255,248,13,65,137,215,131,232,1,15,132,244,249,248,
659 215,15,130,244,1,248,2,199,65,4,237,131,193,8,57,252,233,15,130,244,2,248, 668 2,73,139,44,15,73,137,111,252,248,65,131,199,8,131,232,1,15,133,244,2,248,
660 3,68,139,60,36,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255, 669 3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244,252,255,72,139,44,
661 36,252,238,248,5,199,68,36,4,1,0,0,0,137,208,68,41,252,248,15,134,244,3,137, 670 10,72,137,106,252,248,255,248,5,56,67,252,255,15,135,244,252,255,15,182,75,
662 197,193,252,237,3,131,197,1,137,108,36,4,139,108,36,24,1,200,59,133,233,15, 671 252,253,72,252,247,209,141,20,202,68,139,122,252,248,69,139,191,233,69,139,
663 135,244,253,248,6,255,73,139,71,252,248,65,131,199,8,72,137,1,131,193,8,65, 672 191,233,139,3,15,182,204,15,182,232,131,195,4,193,232,16,65,252,255,36,252,
664 57,215,15,130,244,6,252,233,244,3,248,7,137,149,233,137,141,233,137,92,36, 673 238,248,6,255,65,199,71,252,252,237,65,131,199,8,255,199,68,194,252,244,237,
665 28,65,41,215,139,116,36,4,131,252,238,1,137,252,239,232,251,1,0,139,149,233, 674 255,131,192,1,252,233,244,5,248,7,141,171,233,252,247,197,237,15,133,244,
666 139,141,233,65,1,215,252,233,244,6,255,193,225,3,255,248,1,139,90,252,252, 675 14,41,252,234,255,1,252,233,255,137,221,209,252,237,129,229,239,102,65,131,
667 137,68,36,4,252,247,195,237,15,133,244,253,255,248,13,65,137,215,131,232, 676 172,253,46,233,1,15,132,244,140,255,141,12,202,255,129,121,253,4,239,15,135,
668 1,15,132,244,249,248,2,73,139,44,15,73,137,111,252,248,65,131,199,8,131,232, 677 244,53,129,121,253,12,239,15,135,244,53,255,139,105,20,255,129,252,253,239,
669 1,15,133,244,2,248,3,139,68,36,4,15,182,107,252,255,248,5,57,197,15,135,244, 678 15,135,244,53,255,252,242,15,16,1,252,242,15,16,73,8,255,252,242,15,88,65,
670 252,255,72,139,44,10,72,137,106,252,248,255,248,5,56,67,252,255,15,135,244, 679 16,252,242,15,17,1,133,252,237,15,136,244,249,255,15,140,244,249,255,102,
671 252,255,15,182,75,252,253,72,252,247,209,141,20,202,68,139,122,252,248,69, 680 15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221,1,255,220,65,16,221,
672 139,191,233,69,139,191,233,139,3,15,182,204,15,182,232,131,195,4,193,232, 681 17,221,81,24,133,252,237,15,136,244,247,255,221,81,24,15,140,244,247,255,
673 16,65,252,255,36,252,238,248,6,255,65,199,71,252,252,237,65,131,199,8,255, 682 217,201,248,1,255,15,183,67,252,254,255,15,131,244,248,141,156,253,131,233,
674 199,68,194,252,244,237,255,131,192,1,252,233,244,5,248,7,141,171,233,252, 683 255,141,156,253,131,233,15,183,67,252,254,15,131,245,255,15,130,244,248,141,
675 247,197,237,15,133,244,14,41,252,234,255,1,252,233,255,137,221,209,252,237, 684 156,253,131,233,255,248,3,102,15,46,193,252,233,244,1,255,141,12,202,139,
676 129,229,239,102,65,131,172,253,46,233,1,15,132,244,140,255,141,12,202,255, 685 105,4,129,252,253,239,15,132,244,247,255,137,105,252,252,139,41,137,105,252,
677 129,121,253,4,239,15,135,244,53,129,121,253,12,239,15,135,244,53,255,139, 686 248,252,233,245,255,141,156,253,131,233,139,1,137,105,252,252,137,65,252,
678 105,20,255,129,252,253,239,15,135,244,53,255,252,242,15,16,1,252,242,15,16, 687 248,255,65,139,142,233,139,4,129,72,139,128,233,139,108,36,24,65,137,150,
679 73,8,255,252,242,15,88,65,16,252,242,15,17,1,133,252,237,15,136,244,249,255, 688 233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131,252,236,16,252,255,
680 15,140,244,249,255,102,15,46,200,248,1,252,242,15,17,65,24,255,221,65,8,221, 689 224,255,141,156,253,131,233,139,3,15,182,204,15,182,232,131,195,4,193,232,
681 1,255,220,65,16,221,17,221,81,24,133,252,237,15,136,244,247,255,221,81,24, 690 16,65,252,255,36,252,238,255,137,221,209,252,237,129,229,239,102,65,131,172,
682 15,140,244,247,255,217,201,248,1,255,15,183,67,252,254,255,15,131,244,248, 691 253,46,233,1,15,132,244,142,255,68,139,187,233,139,108,36,24,141,12,202,59,
683 141,156,253,131,233,255,141,156,253,131,233,15,183,67,252,254,15,131,245, 692 141,233,15,135,244,23,15,182,139,233,57,200,15,134,244,249,248,2,255,15,183,
684 255,15,130,244,248,141,156,253,131,233,255,248,3,102,15,46,193,252,233,244, 693 67,252,254,252,233,245,255,248,3,199,68,194,252,252,237,131,192,1,57,200,
685 1,255,141,12,202,139,105,4,129,252,253,239,15,132,244,247,255,137,105,252, 694 15,134,244,3,252,233,244,2,255,141,44,197,237,141,4,194,68,139,122,252,248,
686 252,139,41,137,105,252,248,252,233,245,255,141,156,253,131,233,139,1,137, 695 137,104,252,252,68,137,120,252,248,139,108,36,24,141,12,200,59,141,233,15,
687 105,252,252,137,65,252,248,255,65,139,142,233,139,4,129,72,139,128,233,139, 696 135,244,22,137,209,137,194,15,182,171,233,133,252,237,15,132,244,248,248,
688 108,36,24,65,137,150,233,65,137,174,233,76,137,36,36,76,137,108,36,8,72,131, 697 1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68,137,56,68,139,121,
689 252,236,16,252,255,224,255,141,156,253,131,233,139,3,15,182,204,15,182,232, 698 252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,237,1,15,133,244,
690 131,195,4,193,232,16,65,252,255,36,252,238,255,137,221,209,252,237,129,229, 699 1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,195,4,193,232,
691 239,102,65,131,172,253,46,233,1,15,132,244,142,255,68,139,187,233,139,108, 700 16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,252,237,1,15,
692 36,24,141,12,202,59,141,233,15,135,244,23,15,182,139,233,57,200,15,134,244, 701 133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,108,36,24,
693 249,248,2,255,15,183,67,252,254,252,233,245,255,248,3,199,68,194,252,252, 702 141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,255,137,
694 237,131,192,1,57,200,15,134,244,3,252,233,244,2,255,141,44,197,237,141,4, 703 252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,233,237,
695 194,68,139,122,252,248,137,104,252,252,68,137,120,252,248,139,108,36,24,141, 704 255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,139,149,
696 12,200,59,141,233,15,135,244,22,137,209,137,194,15,182,171,233,133,252,237, 705 233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,255,254,
697 15,132,244,248,248,1,131,193,8,57,209,15,131,244,249,68,139,121,252,248,68, 706 0
698 137,56,68,139,121,252,252,68,137,120,4,131,192,8,199,65,252,252,237,131,252,
699 237,1,15,133,244,1,248,2,255,68,139,187,233,139,3,15,182,204,15,182,232,131,
700 195,4,193,232,16,65,252,255,36,252,238,255,248,3,199,64,4,237,131,192,8,131,
701 252,237,1,15,133,244,3,252,233,244,2,255,139,106,252,248,76,139,189,233,139,
702 108,36,24,141,68,194,252,248,137,149,233,141,136,233,59,141,233,137,133,233,
703 255,137,252,239,255,76,137,252,254,137,252,239,255,15,135,244,21,65,199,134,
704 233,237,255,65,252,255,215,255,65,252,255,150,233,255,65,199,134,233,237,
705 139,149,233,141,12,194,252,247,217,3,141,233,139,90,252,252,252,233,244,12,
706 255,254,0
707}; 707};
708 708
709enum { 709enum {
@@ -1112,331 +1112,338 @@ static void build_subroutines(BuildCtx *ctx, int cmov, int sse)
1112 dasm_put(Dst, 2176, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1112 dasm_put(Dst, 2176, 1+1, LJ_TSTR, LJ_TSTR, LJ_TISNUM, DISPATCH_GL(gcroot[GCROOT_BASEMT_NUM]), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1113 dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base)); 1113 dasm_put(Dst, 2245, Dt1(->base), Dt1(->base), 1+1, LJ_TTAB, Dt1(->base));
1114 dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1); 1114 dasm_put(Dst, 2314, Dt1(->top), Dt1(->base), 1+2, LJ_TNIL, LJ_TNIL, 1+1);
1115 dasm_put(Dst, 2402, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM); 1115 dasm_put(Dst, 2402, LJ_TTAB);
1116 dasm_put(Dst, 2476); 1116#ifdef LUAJIT_ENABLE_LUA52COMPAT
1117 dasm_put(Dst, 2414, Dt6(->metatable));
1118#endif
1119 dasm_put(Dst, 2423, Dt8(->upvalue[0]), LJ_TFUNC, LJ_TNIL, 1+3, 1+1, LJ_TTAB, LJ_TISNUM);
1117 if (sse) { 1120 if (sse) {
1118 dasm_put(Dst, 2485, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1121 dasm_put(Dst, 2486, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1119 } else { 1122 } else {
1120 } 1123 }
1121 dasm_put(Dst, 2518, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0); 1124 dasm_put(Dst, 2519, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->hmask), 1+0);
1122 dasm_put(Dst, 2595, 1+1, LJ_TTAB, Dt6(->metatable), Dt8(->upvalue[0]), LJ_TFUNC); 1125 dasm_put(Dst, 2596, 1+1, LJ_TTAB);
1126#ifdef LUAJIT_ENABLE_LUA52COMPAT
1127 dasm_put(Dst, 2414, Dt6(->metatable));
1128#endif
1129 dasm_put(Dst, 2616, Dt8(->upvalue[0]), LJ_TFUNC);
1123 if (sse) { 1130 if (sse) {
1124 dasm_put(Dst, 2643); 1131 dasm_put(Dst, 2637);
1125 } else { 1132 } else {
1126 dasm_put(Dst, 2653); 1133 dasm_put(Dst, 2647);
1127 } 1134 }
1128 dasm_put(Dst, 2660, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC); 1135 dasm_put(Dst, 2654, 1+3, 1+1, 8+FRAME_PCALL, DISPATCH_GL(hookmask), HOOK_ACTIVE_SHIFT, 2+1, LJ_TFUNC);
1129 dasm_put(Dst, 2725, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top)); 1136 dasm_put(Dst, 2719, LJ_TFUNC, 16+FRAME_PCALL, 1+1, LJ_TTHREAD, Dt1(->cframe), Dt1(->status), LUA_YIELD, Dt1(->top));
1130 dasm_put(Dst, 2814, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP); 1137 dasm_put(Dst, 2808, Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP);
1131 dasm_put(Dst, 2901, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE); 1138 dasm_put(Dst, 2895, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack), LJ_TTRUE, FRAME_TYPE);
1132 dasm_put(Dst, 3016, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe)); 1139 dasm_put(Dst, 3010, LJ_TFALSE, Dt1(->top), Dt1(->top), 1+2, Dt1(->top), Dt1(->base), Dt8(->upvalue[0].gcr), Dt1(->cframe));
1133 dasm_put(Dst, 3111, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top)); 1140 dasm_put(Dst, 3105, Dt1(->status), LUA_YIELD, Dt1(->top), Dt1(->base), Dt1(->maxstack), Dt1(->top), Dt1(->base), Dt1(->top));
1134 dasm_put(Dst, 3177, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack)); 1141 dasm_put(Dst, 3171, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), LUA_YIELD, Dt1(->base), Dt1(->top), Dt1(->top), Dt1(->maxstack));
1135 dasm_put(Dst, 3266, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME); 1142 dasm_put(Dst, 3260, FRAME_TYPE, Dt1(->top), Dt1(->base), Dt1(->cframe), CFRAME_RESUME);
1136 dasm_put(Dst, 3376, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status)); 1143 dasm_put(Dst, 3370, Dt1(->base), Dt1(->top), Dt1(->cframe), LUA_YIELD, Dt1(->status));
1137 if (sse) { 1144 if (sse) {
1138 dasm_put(Dst, 3403, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1145 dasm_put(Dst, 3397, 1+1, LJ_TISNUM, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1139 } else { 1146 } else {
1140 dasm_put(Dst, 3467, 1+1, LJ_TISNUM); 1147 dasm_put(Dst, 3461, 1+1, LJ_TISNUM);
1141 } 1148 }
1142 dasm_put(Dst, 3503, 1+1, FRAME_TYPE, LJ_TNIL); 1149 dasm_put(Dst, 3497, 1+1, FRAME_TYPE, LJ_TNIL);
1143 if (sse) { 1150 if (sse) {
1144 dasm_put(Dst, 3598, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1151 dasm_put(Dst, 3592, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1145 dasm_put(Dst, 3660, 1+1, LJ_TISNUM); 1152 dasm_put(Dst, 3654, 1+1, LJ_TISNUM);
1146 } else { 1153 } else {
1147 dasm_put(Dst, 3690, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1154 dasm_put(Dst, 3684, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1148 dasm_put(Dst, 3749, 1+1, LJ_TISNUM); 1155 dasm_put(Dst, 3743, 1+1, LJ_TISNUM);
1149 } 1156 }
1150 dasm_put(Dst, 3776, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1157 dasm_put(Dst, 3770, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1151 dasm_put(Dst, 3845, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1158 dasm_put(Dst, 3839, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1152 dasm_put(Dst, 3902, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1); 1159 dasm_put(Dst, 3896, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1);
1153 dasm_put(Dst, 3965, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM); 1160 dasm_put(Dst, 3959, LJ_TISNUM, 1+1, LJ_TISNUM, 1+1, LJ_TISNUM);
1154 dasm_put(Dst, 4055); 1161 dasm_put(Dst, 4049);
1155 if (sse) { 1162 if (sse) {
1156 dasm_put(Dst, 4067, 1+1, LJ_TISNUM); 1163 dasm_put(Dst, 4061, 1+1, LJ_TISNUM);
1157 } else { 1164 } else {
1158 } 1165 }
1159 dasm_put(Dst, 4092); 1166 dasm_put(Dst, 4086);
1160 if (sse) { 1167 if (sse) {
1161 dasm_put(Dst, 4106, 1+1, LJ_TISNUM); 1168 dasm_put(Dst, 4100, 1+1, LJ_TISNUM);
1162 } else { 1169 } else {
1163 } 1170 }
1164 dasm_put(Dst, 4131); 1171 dasm_put(Dst, 4125);
1165 if (sse) { 1172 if (sse) {
1166 dasm_put(Dst, 4145, 1+1, LJ_TISNUM); 1173 dasm_put(Dst, 4139, 1+1, LJ_TISNUM);
1167 } else { 1174 } else {
1168 } 1175 }
1169 dasm_put(Dst, 4170); 1176 dasm_put(Dst, 4164);
1170 if (sse) { 1177 if (sse) {
1171 dasm_put(Dst, 4186, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1178 dasm_put(Dst, 4180, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1172 } else { 1179 } else {
1173 dasm_put(Dst, 4225, 1+1, LJ_TISNUM, Dt8(->upvalue[0])); 1180 dasm_put(Dst, 4219, 1+1, LJ_TISNUM, Dt8(->upvalue[0]));
1174 } 1181 }
1175 dasm_put(Dst, 4258, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM); 1182 dasm_put(Dst, 4252, 2+1, LJ_TISNUM, LJ_TISNUM, 2+1, LJ_TISNUM, LJ_TISNUM);
1176 dasm_put(Dst, 4323, 1+1, LJ_TISNUM); 1183 dasm_put(Dst, 4317, 1+1, LJ_TISNUM);
1177 if (sse) { 1184 if (sse) {
1178 dasm_put(Dst, 4422); 1185 dasm_put(Dst, 4416);
1179 } else { 1186 } else {
1180 dasm_put(Dst, 4428); 1187 dasm_put(Dst, 4422);
1181 } 1188 }
1182 dasm_put(Dst, 4435); 1189 dasm_put(Dst, 4429);
1183 if (sse) { 1190 if (sse) {
1184 dasm_put(Dst, 4460); 1191 dasm_put(Dst, 4454);
1185 } else { 1192 } else {
1186 dasm_put(Dst, 4466); 1193 dasm_put(Dst, 4460);
1187 } 1194 }
1188 dasm_put(Dst, 4469, 1+2); 1195 dasm_put(Dst, 4463, 1+2);
1189 if (sse) { 1196 if (sse) {
1190 dasm_put(Dst, 4478); 1197 dasm_put(Dst, 4472);
1191 } else { 1198 } else {
1192 dasm_put(Dst, 4486); 1199 dasm_put(Dst, 4480);
1193 } 1200 }
1194 dasm_put(Dst, 4494); 1201 dasm_put(Dst, 4488);
1195 if (sse) { 1202 if (sse) {
1196 dasm_put(Dst, 4497, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32)); 1203 dasm_put(Dst, 4491, (unsigned int)(U64x(43500000,00000000)), (unsigned int)((U64x(43500000,00000000))>>32));
1197 } else { 1204 } else {
1198 dasm_put(Dst, 4524); 1205 dasm_put(Dst, 4518);
1199 } 1206 }
1200 dasm_put(Dst, 4541); 1207 dasm_put(Dst, 4535);
1201 if (sse) { 1208 if (sse) {
1202 dasm_put(Dst, 4557, 1+1, LJ_TISNUM); 1209 dasm_put(Dst, 4551, 1+1, LJ_TISNUM);
1203 } else { 1210 } else {
1204 dasm_put(Dst, 4582, 1+1, LJ_TISNUM); 1211 dasm_put(Dst, 4576, 1+1, LJ_TISNUM);
1205 } 1212 }
1206 dasm_put(Dst, 4604); 1213 dasm_put(Dst, 4598);
1207 if (sse) { 1214 if (sse) {
1208 dasm_put(Dst, 4626); 1215 dasm_put(Dst, 4620);
1209 } else { 1216 } else {
1210 dasm_put(Dst, 4652); 1217 dasm_put(Dst, 4646);
1211 } 1218 }
1212 dasm_put(Dst, 4669, 1+2); 1219 dasm_put(Dst, 4663, 1+2);
1213 if (sse) { 1220 if (sse) {
1214 dasm_put(Dst, 4709); 1221 dasm_put(Dst, 4703);
1215 } else { 1222 } else {
1216 dasm_put(Dst, 4717); 1223 dasm_put(Dst, 4711);
1217 } 1224 }
1218 dasm_put(Dst, 4727, 2+1, LJ_TISNUM, LJ_TISNUM); 1225 dasm_put(Dst, 4721, 2+1, LJ_TISNUM, LJ_TISNUM);
1219 if (sse) { 1226 if (sse) {
1220 dasm_put(Dst, 4779, 2+1, LJ_TISNUM, LJ_TISNUM); 1227 dasm_put(Dst, 4773, 2+1, LJ_TISNUM, LJ_TISNUM);
1221 } else { 1228 } else {
1222 dasm_put(Dst, 4826, 2+1, LJ_TISNUM, LJ_TISNUM); 1229 dasm_put(Dst, 4820, 2+1, LJ_TISNUM, LJ_TISNUM);
1223 } 1230 }
1224 if (sse) { 1231 if (sse) {
1225 dasm_put(Dst, 4867, 1+1, LJ_TISNUM, LJ_TISNUM); 1232 dasm_put(Dst, 4861, 1+1, LJ_TISNUM, LJ_TISNUM);
1226 } else { 1233 } else {
1227 } 1234 }
1228 if (sse) { 1235 if (sse) {
1229 dasm_put(Dst, 4938, 1+1, LJ_TISNUM, LJ_TISNUM); 1236 dasm_put(Dst, 4932, 1+1, LJ_TISNUM, LJ_TISNUM);
1230 } else { 1237 } else {
1231 } 1238 }
1232 if (!sse) { 1239 if (!sse) {
1233 dasm_put(Dst, 5009); 1240 dasm_put(Dst, 5003);
1234 } 1241 }
1235 dasm_put(Dst, 5018, 1+1, LJ_TSTR); 1242 dasm_put(Dst, 5012, 1+1, LJ_TSTR);
1236 if (sse) { 1243 if (sse) {
1237 dasm_put(Dst, 5040, Dt5(->len)); 1244 dasm_put(Dst, 5034, Dt5(->len));
1238 } else { 1245 } else {
1239 dasm_put(Dst, 5051, Dt5(->len)); 1246 dasm_put(Dst, 5045, Dt5(->len));
1240 } 1247 }
1241 dasm_put(Dst, 5059, 1+1, LJ_TSTR, Dt5(->len), Dt5([1])); 1248 dasm_put(Dst, 5053, 1+1, LJ_TSTR, Dt5(->len), Dt5([1]));
1242 if (sse) { 1249 if (sse) {
1243 dasm_put(Dst, 5097); 1250 dasm_put(Dst, 5091);
1244 } else { 1251 } else {
1245 dasm_put(Dst, 5107); 1252 dasm_put(Dst, 5101);
1246 } 1253 }
1247 dasm_put(Dst, 5118, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM); 1254 dasm_put(Dst, 5112, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+1, LJ_TISNUM);
1248 if (sse) { 1255 if (sse) {
1249 dasm_put(Dst, 5155); 1256 dasm_put(Dst, 5149);
1250 } else { 1257 } else {
1251 dasm_put(Dst, 5177); 1258 dasm_put(Dst, 5171);
1252 } 1259 }
1253 dasm_put(Dst, 5197, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM); 1260 dasm_put(Dst, 5191, Dt1(->base), Dt1(->base), LJ_TSTR, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), 1+2, LJ_TISNUM);
1254 dasm_put(Dst, 2154); 1261 dasm_put(Dst, 2154);
1255 if (sse) { 1262 if (sse) {
1256 dasm_put(Dst, 5306); 1263 dasm_put(Dst, 5300);
1257 } else { 1264 } else {
1258 dasm_put(Dst, 5317); 1265 dasm_put(Dst, 5311);
1259 } 1266 }
1260 dasm_put(Dst, 5325, LJ_TSTR, LJ_TISNUM, Dt5(->len)); 1267 dasm_put(Dst, 5319, LJ_TSTR, LJ_TISNUM, Dt5(->len));
1261 if (sse) { 1268 if (sse) {
1262 dasm_put(Dst, 5355); 1269 dasm_put(Dst, 5349);
1263 } else { 1270 } else {
1264 } 1271 }
1265 dasm_put(Dst, 5362, sizeof(GCstr)-1); 1272 dasm_put(Dst, 5356, sizeof(GCstr)-1);
1266 dasm_put(Dst, 5437, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold)); 1273 dasm_put(Dst, 5431, 2+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold));
1267 dasm_put(Dst, 5498, LJ_TSTR, LJ_TISNUM); 1274 dasm_put(Dst, 5492, LJ_TSTR, LJ_TISNUM);
1268 if (sse) { 1275 if (sse) {
1269 dasm_put(Dst, 5519); 1276 dasm_put(Dst, 5513);
1270 } else { 1277 } else {
1271 dasm_put(Dst, 5526); 1278 dasm_put(Dst, 5520);
1272 } 1279 }
1273 dasm_put(Dst, 5538, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1); 1280 dasm_put(Dst, 5532, Dt5(->len), DISPATCH_GL(tmpbuf.sz), Dt5([1]), DISPATCH_GL(tmpbuf.buf), DISPATCH_GL(tmpbuf.buf), 1+1);
1274 dasm_put(Dst, 5606, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1281 dasm_put(Dst, 5600, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1275 dasm_put(Dst, 5673, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz)); 1282 dasm_put(Dst, 5667, 1+1, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz));
1276 dasm_put(Dst, 5746, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1); 1283 dasm_put(Dst, 5740, sizeof(GCstr), DISPATCH_GL(tmpbuf.buf), 1+1);
1277 dasm_put(Dst, 5831, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf)); 1284 dasm_put(Dst, 5825, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), LJ_TSTR, Dt5(->len), DISPATCH_GL(tmpbuf.sz), sizeof(GCstr), DISPATCH_GL(tmpbuf.buf));
1278 dasm_put(Dst, 5905, 1+1, LJ_TTAB); 1285 dasm_put(Dst, 5899, 1+1, LJ_TTAB);
1279 if (sse) { 1286 if (sse) {
1280 dasm_put(Dst, 5972); 1287 dasm_put(Dst, 5966);
1281 } else { 1288 } else {
1282 } 1289 }
1283 if (sse) { 1290 if (sse) {
1284 dasm_put(Dst, 5982, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1291 dasm_put(Dst, 5976, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1285 } else { 1292 } else {
1286 } 1293 }
1287 if (sse) { 1294 if (sse) {
1288 dasm_put(Dst, 6034, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1295 dasm_put(Dst, 6028, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1289 } else { 1296 } else {
1290 } 1297 }
1291 dasm_put(Dst, 6077, LJ_TISNUM); 1298 dasm_put(Dst, 6071, LJ_TISNUM);
1292 if (sse) { 1299 if (sse) {
1293 dasm_put(Dst, 6104); 1300 dasm_put(Dst, 6098);
1294 } else { 1301 } else {
1295 } 1302 }
1296 dasm_put(Dst, 6121); 1303 dasm_put(Dst, 6115);
1297 if (sse) { 1304 if (sse) {
1298 dasm_put(Dst, 6129, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1305 dasm_put(Dst, 6123, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1299 } else { 1306 } else {
1300 } 1307 }
1301 dasm_put(Dst, 6077, LJ_TISNUM); 1308 dasm_put(Dst, 6071, LJ_TISNUM);
1302 if (sse) { 1309 if (sse) {
1303 dasm_put(Dst, 6172); 1310 dasm_put(Dst, 6166);
1304 } else { 1311 } else {
1305 } 1312 }
1306 dasm_put(Dst, 6121); 1313 dasm_put(Dst, 6115);
1307 if (sse) { 1314 if (sse) {
1308 dasm_put(Dst, 6189, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1315 dasm_put(Dst, 6183, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1309 } else { 1316 } else {
1310 } 1317 }
1311 dasm_put(Dst, 6077, LJ_TISNUM); 1318 dasm_put(Dst, 6071, LJ_TISNUM);
1312 if (sse) { 1319 if (sse) {
1313 dasm_put(Dst, 6232); 1320 dasm_put(Dst, 6226);
1314 } else { 1321 } else {
1315 } 1322 }
1316 dasm_put(Dst, 6121); 1323 dasm_put(Dst, 6115);
1317 if (sse) { 1324 if (sse) {
1318 dasm_put(Dst, 6249, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1325 dasm_put(Dst, 6243, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1319 } else { 1326 } else {
1320 } 1327 }
1321 dasm_put(Dst, 6292); 1328 dasm_put(Dst, 6286);
1322 if (sse) { 1329 if (sse) {
1323 dasm_put(Dst, 6299, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1330 dasm_put(Dst, 6293, 1+1, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1324 } else { 1331 } else {
1325 } 1332 }
1326 dasm_put(Dst, 6342); 1333 dasm_put(Dst, 6336);
1327 if (sse) { 1334 if (sse) {
1328 dasm_put(Dst, 6346); 1335 dasm_put(Dst, 6340);
1329 } else { 1336 } else {
1330 } 1337 }
1331 dasm_put(Dst, 6358); 1338 dasm_put(Dst, 6352);
1332 if (sse) { 1339 if (sse) {
1333 dasm_put(Dst, 6369, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1340 dasm_put(Dst, 6363, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1334 } else { 1341 } else {
1335 } 1342 }
1336 dasm_put(Dst, 6438); 1343 dasm_put(Dst, 6432);
1337 if (sse) { 1344 if (sse) {
1338 dasm_put(Dst, 6447, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1345 dasm_put(Dst, 6441, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1339 } else { 1346 } else {
1340 } 1347 }
1341 dasm_put(Dst, 6516); 1348 dasm_put(Dst, 6510);
1342 if (sse) { 1349 if (sse) {
1343 dasm_put(Dst, 6526, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1350 dasm_put(Dst, 6520, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1344 } else { 1351 } else {
1345 } 1352 }
1346 dasm_put(Dst, 6595); 1353 dasm_put(Dst, 6589);
1347 if (sse) { 1354 if (sse) {
1348 dasm_put(Dst, 6605, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1355 dasm_put(Dst, 6599, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1349 } else { 1356 } else {
1350 } 1357 }
1351 dasm_put(Dst, 6674); 1358 dasm_put(Dst, 6668);
1352 if (sse) { 1359 if (sse) {
1353 dasm_put(Dst, 6683, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32)); 1360 dasm_put(Dst, 6677, 2+1, LJ_TISNUM, LJ_TISNUM, (unsigned int)(U64x(43380000,00000000)), (unsigned int)((U64x(43380000,00000000))>>32));
1354 } else { 1361 } else {
1355 } 1362 }
1356 dasm_put(Dst, 6752, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base)); 1363 dasm_put(Dst, 6746, 1+2, 1+1, Dt1(->base), 8*LUA_MINSTACK, Dt1(->top), Dt1(->maxstack), Dt8(->f), Dt1(->base));
1357 dasm_put(Dst, 6830, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base)); 1364 dasm_put(Dst, 6824, Dt1(->top), Dt7(->pc), FRAME_TYPE, LUA_MINSTACK, Dt1(->base), Dt1(->base));
1358 dasm_put(Dst, 6957, Dt1(->top), Dt1(->base), Dt1(->top)); 1365 dasm_put(Dst, 6951, Dt1(->top), Dt1(->base), Dt1(->top));
1359#if LJ_HASJIT 1366#if LJ_HASJIT
1360 dasm_put(Dst, 6996, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount)); 1367 dasm_put(Dst, 6990, DISPATCH_GL(hookmask), HOOK_VMEVENT, HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount));
1361#endif 1368#endif
1362 dasm_put(Dst, 7029, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE); 1369 dasm_put(Dst, 7023, DISPATCH_GL(hookmask), HOOK_ACTIVE, DISPATCH_GL(hookmask), HOOK_ACTIVE, LUA_MASKLINE|LUA_MASKCOUNT, DISPATCH_GL(hookcount), LUA_MASKLINE);
1363 dasm_put(Dst, 7083, Dt1(->base), Dt1(->base), GG_DISP2STATIC); 1370 dasm_put(Dst, 7077, Dt1(->base), Dt1(->base), GG_DISP2STATIC);
1364#if LJ_HASJIT 1371#if LJ_HASJIT
1365 dasm_put(Dst, 7150, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L)); 1372 dasm_put(Dst, 7144, Dt7(->pc), PC2PROTO(framesize), Dt1(->base), Dt1(->top), GG_DISP2J, DISPATCH_J(L));
1366#endif 1373#endif
1367 dasm_put(Dst, 7197); 1374 dasm_put(Dst, 7191);
1368#if LJ_HASJIT 1375#if LJ_HASJIT
1369 dasm_put(Dst, 7024); 1376 dasm_put(Dst, 7018);
1370#endif 1377#endif
1371 dasm_put(Dst, 7204); 1378 dasm_put(Dst, 7198);
1372#if LJ_HASJIT 1379#if LJ_HASJIT
1373 dasm_put(Dst, 7207); 1380 dasm_put(Dst, 7201);
1374#endif 1381#endif
1375 dasm_put(Dst, 7217, Dt1(->base), Dt1(->top)); 1382 dasm_put(Dst, 7211, Dt1(->base), Dt1(->top));
1376#if LJ_HASJIT 1383#if LJ_HASJIT
1377 dasm_put(Dst, 7250); 1384 dasm_put(Dst, 7244);
1378#endif 1385#endif
1379 dasm_put(Dst, 7255, Dt1(->base), Dt1(->top)); 1386 dasm_put(Dst, 7249, Dt1(->base), Dt1(->top));
1380#if LJ_HASJIT 1387#if LJ_HASJIT
1381 dasm_put(Dst, 7286, 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), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC); 1388 dasm_put(Dst, 7280, 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), DISPATCH_GL(jit_L), Dt1(->base), GG_DISP2J, Dt1(->cframe), CFRAME_RAWMASK, CFRAME_OFS_L, Dt1(->base), CFRAME_OFS_PC);
1382#endif 1389#endif
1383 dasm_put(Dst, 7525); 1390 dasm_put(Dst, 7519);
1384#if LJ_HASJIT 1391#if LJ_HASJIT
1385 dasm_put(Dst, 7528, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF); 1392 dasm_put(Dst, 7522, Dt7(->pc), PC2PROTO(k), DISPATCH_GL(jit_L), DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, BC_FUNCF);
1386#endif 1393#endif
1387 dasm_put(Dst, 7628); 1394 dasm_put(Dst, 7622);
1388 if (!sse) { 1395 if (!sse) {
1389 dasm_put(Dst, 7631); 1396 dasm_put(Dst, 7625);
1390 } 1397 }
1391 dasm_put(Dst, 7676, (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)); 1398 dasm_put(Dst, 7670, (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));
1392 if (!sse) { 1399 if (!sse) {
1393 dasm_put(Dst, 7762); 1400 dasm_put(Dst, 7756);
1394 } 1401 }
1395 dasm_put(Dst, 7807, (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)); 1402 dasm_put(Dst, 7801, (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));
1396 if (!sse) { 1403 if (!sse) {
1397 dasm_put(Dst, 7893); 1404 dasm_put(Dst, 7887);
1398 } 1405 }
1399 dasm_put(Dst, 7932, (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)); 1406 dasm_put(Dst, 7926, (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));
1400 if (sse) { 1407 if (sse) {
1401 dasm_put(Dst, 8021, (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)); 1408 dasm_put(Dst, 8015, (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));
1402 } else { 1409 } else {
1403 dasm_put(Dst, 8135); 1410 dasm_put(Dst, 8129);
1404 } 1411 }
1405 dasm_put(Dst, 8182); 1412 dasm_put(Dst, 8176);
1406 if (!sse) { 1413 if (!sse) {
1407 } else { 1414 } else {
1408 dasm_put(Dst, 8259); 1415 dasm_put(Dst, 8253);
1409 } 1416 }
1410 dasm_put(Dst, 8262); 1417 dasm_put(Dst, 8256);
1411 dasm_put(Dst, 8347, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32)); 1418 dasm_put(Dst, 8341, (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32), (unsigned int)(U64x(3ff00000,00000000)), (unsigned int)((U64x(3ff00000,00000000))>>32));
1412 dasm_put(Dst, 8448, (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)); 1419 dasm_put(Dst, 8442, (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));
1413 dasm_put(Dst, 8622); 1420 dasm_put(Dst, 8616);
1414#if LJ_HASJIT 1421#if LJ_HASJIT
1415 if (sse) { 1422 if (sse) {
1416 dasm_put(Dst, 8663); 1423 dasm_put(Dst, 8657);
1417 dasm_put(Dst, 8733); 1424 dasm_put(Dst, 8727);
1418 dasm_put(Dst, 8805); 1425 dasm_put(Dst, 8799);
1419 } else { 1426 } else {
1420 dasm_put(Dst, 8857); 1427 dasm_put(Dst, 8851);
1421 dasm_put(Dst, 8949); 1428 dasm_put(Dst, 8943);
1422 } 1429 }
1423 dasm_put(Dst, 8995); 1430 dasm_put(Dst, 8989);
1424#endif 1431#endif
1425 dasm_put(Dst, 8999); 1432 dasm_put(Dst, 8993);
1426 if (sse) { 1433 if (sse) {
1427 dasm_put(Dst, 9002, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1434 dasm_put(Dst, 8996, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1428 dasm_put(Dst, 9087, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32)); 1435 dasm_put(Dst, 9081, (unsigned int)(U64x(7fffffff,ffffffff)), (unsigned int)((U64x(7fffffff,ffffffff))>>32));
1429 } else { 1436 } else {
1430 dasm_put(Dst, 9215); 1437 dasm_put(Dst, 9209);
1431 dasm_put(Dst, 9298); 1438 dasm_put(Dst, 9292);
1432 if (cmov) { 1439 if (cmov) {
1433 dasm_put(Dst, 9353); 1440 dasm_put(Dst, 9347);
1434 } else { 1441 } else {
1435 dasm_put(Dst, 9372); 1442 dasm_put(Dst, 9366);
1436 } 1443 }
1437 dasm_put(Dst, 8995); 1444 dasm_put(Dst, 8989);
1438 } 1445 }
1439 dasm_put(Dst, 9413); 1446 dasm_put(Dst, 9407);
1440} 1447}
1441 1448
1442/* Generate the code for a single instruction. */ 1449/* Generate the code for a single instruction. */
@@ -1452,618 +1459,618 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
1452 /* Remember: all ops branch for a true comparison, fall through otherwise. */ 1459 /* Remember: all ops branch for a true comparison, fall through otherwise. */
1453 1460
1454 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT: 1461 case BC_ISLT: case BC_ISGE: case BC_ISLE: case BC_ISGT:
1455 dasm_put(Dst, 9435, LJ_TISNUM, LJ_TISNUM); 1462 dasm_put(Dst, 9429, LJ_TISNUM, LJ_TISNUM);
1456 if (sse) { 1463 if (sse) {
1457 dasm_put(Dst, 9456); 1464 dasm_put(Dst, 9450);
1458 } else { 1465 } else {
1459 dasm_put(Dst, 9471); 1466 dasm_put(Dst, 9465);
1460 if (cmov) { 1467 if (cmov) {
1461 dasm_put(Dst, 9481); 1468 dasm_put(Dst, 9475);
1462 } else { 1469 } else {
1463 dasm_put(Dst, 9487); 1470 dasm_put(Dst, 9481);
1464 } 1471 }
1465 } 1472 }
1466 switch (op) { 1473 switch (op) {
1467 case BC_ISLT: 1474 case BC_ISLT:
1468 dasm_put(Dst, 9494); 1475 dasm_put(Dst, 9488);
1469 break; 1476 break;
1470 case BC_ISGE: 1477 case BC_ISGE:
1471 dasm_put(Dst, 9293); 1478 dasm_put(Dst, 9287);
1472 break; 1479 break;
1473 case BC_ISLE: 1480 case BC_ISLE:
1474 dasm_put(Dst, 5900); 1481 dasm_put(Dst, 5894);
1475 break; 1482 break;
1476 case BC_ISGT: 1483 case BC_ISGT:
1477 dasm_put(Dst, 9499); 1484 dasm_put(Dst, 9493);
1478 break; 1485 break;
1479 default: break; /* Shut up GCC. */ 1486 default: break; /* Shut up GCC. */
1480 } 1487 }
1481 dasm_put(Dst, 9504, -BCBIAS_J*4); 1488 dasm_put(Dst, 9498, -BCBIAS_J*4);
1482 break; 1489 break;
1483 1490
1484 case BC_ISEQV: case BC_ISNEV: 1491 case BC_ISEQV: case BC_ISNEV:
1485 vk = op == BC_ISEQV; 1492 vk = op == BC_ISEQV;
1486 dasm_put(Dst, 9539, LJ_TISNUM, LJ_TISNUM); 1493 dasm_put(Dst, 9533, LJ_TISNUM, LJ_TISNUM);
1487 if (sse) { 1494 if (sse) {
1488 dasm_put(Dst, 9565); 1495 dasm_put(Dst, 9559);
1489 } else { 1496 } else {
1490 dasm_put(Dst, 9577); 1497 dasm_put(Dst, 9571);
1491 if (cmov) { 1498 if (cmov) {
1492 dasm_put(Dst, 9481); 1499 dasm_put(Dst, 9475);
1493 } else { 1500 } else {
1494 dasm_put(Dst, 9487); 1501 dasm_put(Dst, 9481);
1495 } 1502 }
1496 } 1503 }
1497 iseqne_fp: 1504 iseqne_fp:
1498 if (vk) { 1505 if (vk) {
1499 dasm_put(Dst, 9584); 1506 dasm_put(Dst, 9578);
1500 } else { 1507 } else {
1501 dasm_put(Dst, 9593); 1508 dasm_put(Dst, 9587);
1502 } 1509 }
1503 iseqne_end: 1510 iseqne_end:
1504 if (vk) { 1511 if (vk) {
1505 dasm_put(Dst, 9602, -BCBIAS_J*4); 1512 dasm_put(Dst, 9596, -BCBIAS_J*4);
1506 } else { 1513 } else {
1507 dasm_put(Dst, 9617, -BCBIAS_J*4); 1514 dasm_put(Dst, 9611, -BCBIAS_J*4);
1508 } 1515 }
1509 dasm_put(Dst, 9518); 1516 dasm_put(Dst, 9512);
1510 if (op == BC_ISEQV || op == BC_ISNEV) { 1517 if (op == BC_ISEQV || op == BC_ISNEV) {
1511 dasm_put(Dst, 9632, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq); 1518 dasm_put(Dst, 9626, LJ_TISPRI, LJ_TISTABUD, Dt6(->metatable), Dt6(->nomm), 1<<MM_eq);
1512 if (vk) { 1519 if (vk) {
1513 dasm_put(Dst, 9690); 1520 dasm_put(Dst, 9684);
1514 } else { 1521 } else {
1515 dasm_put(Dst, 9694); 1522 dasm_put(Dst, 9688);
1516 } 1523 }
1517 dasm_put(Dst, 9700); 1524 dasm_put(Dst, 9694);
1518 } 1525 }
1519 break; 1526 break;
1520 case BC_ISEQS: case BC_ISNES: 1527 case BC_ISEQS: case BC_ISNES:
1521 vk = op == BC_ISEQS; 1528 vk = op == BC_ISEQS;
1522 dasm_put(Dst, 9705, LJ_TSTR); 1529 dasm_put(Dst, 9699, LJ_TSTR);
1523 iseqne_test: 1530 iseqne_test:
1524 if (vk) { 1531 if (vk) {
1525 dasm_put(Dst, 9588); 1532 dasm_put(Dst, 9582);
1526 } else { 1533 } else {
1527 dasm_put(Dst, 2809); 1534 dasm_put(Dst, 2803);
1528 } 1535 }
1529 goto iseqne_end; 1536 goto iseqne_end;
1530 case BC_ISEQN: case BC_ISNEN: 1537 case BC_ISEQN: case BC_ISNEN:
1531 vk = op == BC_ISEQN; 1538 vk = op == BC_ISEQN;
1532 dasm_put(Dst, 9730, LJ_TISNUM); 1539 dasm_put(Dst, 9724, LJ_TISNUM);
1533 if (sse) { 1540 if (sse) {
1534 dasm_put(Dst, 9744); 1541 dasm_put(Dst, 9738);
1535 } else { 1542 } else {
1536 dasm_put(Dst, 9757); 1543 dasm_put(Dst, 9751);
1537 if (cmov) { 1544 if (cmov) {
1538 dasm_put(Dst, 9481); 1545 dasm_put(Dst, 9475);
1539 } else { 1546 } else {
1540 dasm_put(Dst, 9487); 1547 dasm_put(Dst, 9481);
1541 } 1548 }
1542 } 1549 }
1543 goto iseqne_fp; 1550 goto iseqne_fp;
1544 case BC_ISEQP: case BC_ISNEP: 1551 case BC_ISEQP: case BC_ISNEP:
1545 vk = op == BC_ISEQP; 1552 vk = op == BC_ISEQP;
1546 dasm_put(Dst, 9765); 1553 dasm_put(Dst, 9759);
1547 goto iseqne_test; 1554 goto iseqne_test;
1548 1555
1549 /* -- Unary test and copy ops ------------------------------------------- */ 1556 /* -- Unary test and copy ops ------------------------------------------- */
1550 1557
1551 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF: 1558 case BC_ISTC: case BC_ISFC: case BC_IST: case BC_ISF:
1552 dasm_put(Dst, 9777, LJ_TISTRUECOND); 1559 dasm_put(Dst, 9771, LJ_TISTRUECOND);
1553 if (op == BC_IST || op == BC_ISTC) { 1560 if (op == BC_IST || op == BC_ISTC) {
1554 dasm_put(Dst, 9789); 1561 dasm_put(Dst, 9783);
1555 } else { 1562 } else {
1556 dasm_put(Dst, 9794); 1563 dasm_put(Dst, 9788);
1557 } 1564 }
1558 if (op == BC_ISTC || op == BC_ISFC) { 1565 if (op == BC_ISTC || op == BC_ISFC) {
1559 dasm_put(Dst, 9799); 1566 dasm_put(Dst, 9793);
1560 } 1567 }
1561 dasm_put(Dst, 9810, -BCBIAS_J*4); 1568 dasm_put(Dst, 9804, -BCBIAS_J*4);
1562 break; 1569 break;
1563 1570
1564 /* -- Unary ops --------------------------------------------------------- */ 1571 /* -- Unary ops --------------------------------------------------------- */
1565 1572
1566 case BC_MOV: 1573 case BC_MOV:
1567 dasm_put(Dst, 9843); 1574 dasm_put(Dst, 9837);
1568 break; 1575 break;
1569 case BC_NOT: 1576 case BC_NOT:
1570 dasm_put(Dst, 9872, LJ_TISTRUECOND, LJ_TTRUE); 1577 dasm_put(Dst, 9866, LJ_TISTRUECOND, LJ_TTRUE);
1571 break; 1578 break;
1572 case BC_UNM: 1579 case BC_UNM:
1573 dasm_put(Dst, 9909, LJ_TISNUM); 1580 dasm_put(Dst, 9903, LJ_TISNUM);
1574 if (sse) { 1581 if (sse) {
1575 dasm_put(Dst, 9920, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32)); 1582 dasm_put(Dst, 9914, (unsigned int)(U64x(80000000,00000000)), (unsigned int)((U64x(80000000,00000000))>>32));
1576 } else { 1583 } else {
1577 dasm_put(Dst, 9945); 1584 dasm_put(Dst, 9939);
1578 } 1585 }
1579 dasm_put(Dst, 9518); 1586 dasm_put(Dst, 9512);
1580 break; 1587 break;
1581 case BC_LEN: 1588 case BC_LEN:
1582 dasm_put(Dst, 9954, LJ_TSTR); 1589 dasm_put(Dst, 9948, LJ_TSTR);
1583 if (sse) { 1590 if (sse) {
1584 dasm_put(Dst, 9968, Dt5(->len)); 1591 dasm_put(Dst, 9962, Dt5(->len));
1585 } else { 1592 } else {
1586 dasm_put(Dst, 9986, Dt5(->len)); 1593 dasm_put(Dst, 9980, Dt5(->len));
1587 } 1594 }
1588 dasm_put(Dst, 9995, LJ_TTAB); 1595 dasm_put(Dst, 9989, LJ_TTAB);
1589 if (sse) { 1596 if (sse) {
1590 dasm_put(Dst, 10037); 1597 dasm_put(Dst, 10031);
1591 } else { 1598 } else {
1592 } 1599 }
1593 dasm_put(Dst, 10046); 1600 dasm_put(Dst, 10040);
1594 break; 1601 break;
1595 1602
1596 /* -- Binary ops -------------------------------------------------------- */ 1603 /* -- Binary ops -------------------------------------------------------- */
1597 1604
1598 1605
1599 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV: 1606 case BC_ADDVN: case BC_ADDNV: case BC_ADDVV:
1600 dasm_put(Dst, 10056); 1607 dasm_put(Dst, 10050);
1601 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1608 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1602 switch (vk) { 1609 switch (vk) {
1603 case 0: 1610 case 0:
1604 dasm_put(Dst, 10064, LJ_TISNUM); 1611 dasm_put(Dst, 10058, LJ_TISNUM);
1605 if (sse) { 1612 if (sse) {
1606 dasm_put(Dst, 10076); 1613 dasm_put(Dst, 10070);
1607 } else { 1614 } else {
1608 dasm_put(Dst, 10091); 1615 dasm_put(Dst, 10085);
1609 } 1616 }
1610 break; 1617 break;
1611 case 1: 1618 case 1:
1612 dasm_put(Dst, 10100, LJ_TISNUM); 1619 dasm_put(Dst, 10094, LJ_TISNUM);
1613 if (sse) { 1620 if (sse) {
1614 dasm_put(Dst, 10112); 1621 dasm_put(Dst, 10106);
1615 } else { 1622 } else {
1616 dasm_put(Dst, 10127); 1623 dasm_put(Dst, 10121);
1617 } 1624 }
1618 break; 1625 break;
1619 default: 1626 default:
1620 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1627 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1621 if (sse) { 1628 if (sse) {
1622 dasm_put(Dst, 10158); 1629 dasm_put(Dst, 10152);
1623 } else { 1630 } else {
1624 dasm_put(Dst, 10172); 1631 dasm_put(Dst, 10166);
1625 } 1632 }
1626 break; 1633 break;
1627 } 1634 }
1628 if (sse) { 1635 if (sse) {
1629 dasm_put(Dst, 9938); 1636 dasm_put(Dst, 9932);
1630 } else { 1637 } else {
1631 dasm_put(Dst, 9950); 1638 dasm_put(Dst, 9944);
1632 } 1639 }
1633 dasm_put(Dst, 9518); 1640 dasm_put(Dst, 9512);
1634 break; 1641 break;
1635 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV: 1642 case BC_SUBVN: case BC_SUBNV: case BC_SUBVV:
1636 dasm_put(Dst, 10056); 1643 dasm_put(Dst, 10050);
1637 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1644 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1638 switch (vk) { 1645 switch (vk) {
1639 case 0: 1646 case 0:
1640 dasm_put(Dst, 10064, LJ_TISNUM); 1647 dasm_put(Dst, 10058, LJ_TISNUM);
1641 if (sse) { 1648 if (sse) {
1642 dasm_put(Dst, 10180); 1649 dasm_put(Dst, 10174);
1643 } else { 1650 } else {
1644 dasm_put(Dst, 10195); 1651 dasm_put(Dst, 10189);
1645 } 1652 }
1646 break; 1653 break;
1647 case 1: 1654 case 1:
1648 dasm_put(Dst, 10100, LJ_TISNUM); 1655 dasm_put(Dst, 10094, LJ_TISNUM);
1649 if (sse) { 1656 if (sse) {
1650 dasm_put(Dst, 10204); 1657 dasm_put(Dst, 10198);
1651 } else { 1658 } else {
1652 dasm_put(Dst, 10219); 1659 dasm_put(Dst, 10213);
1653 } 1660 }
1654 break; 1661 break;
1655 default: 1662 default:
1656 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1663 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1657 if (sse) { 1664 if (sse) {
1658 dasm_put(Dst, 10228); 1665 dasm_put(Dst, 10222);
1659 } else { 1666 } else {
1660 dasm_put(Dst, 10242); 1667 dasm_put(Dst, 10236);
1661 } 1668 }
1662 break; 1669 break;
1663 } 1670 }
1664 if (sse) { 1671 if (sse) {
1665 dasm_put(Dst, 9938); 1672 dasm_put(Dst, 9932);
1666 } else { 1673 } else {
1667 dasm_put(Dst, 9950); 1674 dasm_put(Dst, 9944);
1668 } 1675 }
1669 dasm_put(Dst, 9518); 1676 dasm_put(Dst, 9512);
1670 break; 1677 break;
1671 case BC_MULVN: case BC_MULNV: case BC_MULVV: 1678 case BC_MULVN: case BC_MULNV: case BC_MULVV:
1672 dasm_put(Dst, 10056); 1679 dasm_put(Dst, 10050);
1673 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1680 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1674 switch (vk) { 1681 switch (vk) {
1675 case 0: 1682 case 0:
1676 dasm_put(Dst, 10064, LJ_TISNUM); 1683 dasm_put(Dst, 10058, LJ_TISNUM);
1677 if (sse) { 1684 if (sse) {
1678 dasm_put(Dst, 10250); 1685 dasm_put(Dst, 10244);
1679 } else { 1686 } else {
1680 dasm_put(Dst, 10265); 1687 dasm_put(Dst, 10259);
1681 } 1688 }
1682 break; 1689 break;
1683 case 1: 1690 case 1:
1684 dasm_put(Dst, 10100, LJ_TISNUM); 1691 dasm_put(Dst, 10094, LJ_TISNUM);
1685 if (sse) { 1692 if (sse) {
1686 dasm_put(Dst, 10274); 1693 dasm_put(Dst, 10268);
1687 } else { 1694 } else {
1688 dasm_put(Dst, 10289); 1695 dasm_put(Dst, 10283);
1689 } 1696 }
1690 break; 1697 break;
1691 default: 1698 default:
1692 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1699 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1693 if (sse) { 1700 if (sse) {
1694 dasm_put(Dst, 10298); 1701 dasm_put(Dst, 10292);
1695 } else { 1702 } else {
1696 dasm_put(Dst, 10312); 1703 dasm_put(Dst, 10306);
1697 } 1704 }
1698 break; 1705 break;
1699 } 1706 }
1700 if (sse) { 1707 if (sse) {
1701 dasm_put(Dst, 9938); 1708 dasm_put(Dst, 9932);
1702 } else { 1709 } else {
1703 dasm_put(Dst, 9950); 1710 dasm_put(Dst, 9944);
1704 } 1711 }
1705 dasm_put(Dst, 9518); 1712 dasm_put(Dst, 9512);
1706 break; 1713 break;
1707 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV: 1714 case BC_DIVVN: case BC_DIVNV: case BC_DIVVV:
1708 dasm_put(Dst, 10056); 1715 dasm_put(Dst, 10050);
1709 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1716 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1710 switch (vk) { 1717 switch (vk) {
1711 case 0: 1718 case 0:
1712 dasm_put(Dst, 10064, LJ_TISNUM); 1719 dasm_put(Dst, 10058, LJ_TISNUM);
1713 if (sse) { 1720 if (sse) {
1714 dasm_put(Dst, 10320); 1721 dasm_put(Dst, 10314);
1715 } else { 1722 } else {
1716 dasm_put(Dst, 10335); 1723 dasm_put(Dst, 10329);
1717 } 1724 }
1718 break; 1725 break;
1719 case 1: 1726 case 1:
1720 dasm_put(Dst, 10100, LJ_TISNUM); 1727 dasm_put(Dst, 10094, LJ_TISNUM);
1721 if (sse) { 1728 if (sse) {
1722 dasm_put(Dst, 10344); 1729 dasm_put(Dst, 10338);
1723 } else { 1730 } else {
1724 dasm_put(Dst, 10359); 1731 dasm_put(Dst, 10353);
1725 } 1732 }
1726 break; 1733 break;
1727 default: 1734 default:
1728 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1735 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1729 if (sse) { 1736 if (sse) {
1730 dasm_put(Dst, 10368); 1737 dasm_put(Dst, 10362);
1731 } else { 1738 } else {
1732 dasm_put(Dst, 10382); 1739 dasm_put(Dst, 10376);
1733 } 1740 }
1734 break; 1741 break;
1735 } 1742 }
1736 if (sse) { 1743 if (sse) {
1737 dasm_put(Dst, 9938); 1744 dasm_put(Dst, 9932);
1738 } else { 1745 } else {
1739 dasm_put(Dst, 9950); 1746 dasm_put(Dst, 9944);
1740 } 1747 }
1741 dasm_put(Dst, 9518); 1748 dasm_put(Dst, 9512);
1742 break; 1749 break;
1743 case BC_MODVN: 1750 case BC_MODVN:
1744 dasm_put(Dst, 10056); 1751 dasm_put(Dst, 10050);
1745 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1752 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1746 switch (vk) { 1753 switch (vk) {
1747 case 0: 1754 case 0:
1748 dasm_put(Dst, 10064, LJ_TISNUM); 1755 dasm_put(Dst, 10058, LJ_TISNUM);
1749 if (sse) { 1756 if (sse) {
1750 dasm_put(Dst, 10390); 1757 dasm_put(Dst, 10384);
1751 } else { 1758 } else {
1752 dasm_put(Dst, 10405); 1759 dasm_put(Dst, 10399);
1753 } 1760 }
1754 break; 1761 break;
1755 case 1: 1762 case 1:
1756 dasm_put(Dst, 10100, LJ_TISNUM); 1763 dasm_put(Dst, 10094, LJ_TISNUM);
1757 if (sse) { 1764 if (sse) {
1758 dasm_put(Dst, 10414); 1765 dasm_put(Dst, 10408);
1759 } else { 1766 } else {
1760 dasm_put(Dst, 10429); 1767 dasm_put(Dst, 10423);
1761 } 1768 }
1762 break; 1769 break;
1763 default: 1770 default:
1764 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1771 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1765 if (sse) { 1772 if (sse) {
1766 dasm_put(Dst, 10438); 1773 dasm_put(Dst, 10432);
1767 } else { 1774 } else {
1768 dasm_put(Dst, 10452); 1775 dasm_put(Dst, 10446);
1769 } 1776 }
1770 break; 1777 break;
1771 } 1778 }
1772 dasm_put(Dst, 10460); 1779 dasm_put(Dst, 10454);
1773 if (sse) { 1780 if (sse) {
1774 dasm_put(Dst, 9938); 1781 dasm_put(Dst, 9932);
1775 } else { 1782 } else {
1776 dasm_put(Dst, 9950); 1783 dasm_put(Dst, 9944);
1777 } 1784 }
1778 dasm_put(Dst, 9518); 1785 dasm_put(Dst, 9512);
1779 break; 1786 break;
1780 case BC_MODNV: case BC_MODVV: 1787 case BC_MODNV: case BC_MODVV:
1781 dasm_put(Dst, 10056); 1788 dasm_put(Dst, 10050);
1782 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1789 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1783 switch (vk) { 1790 switch (vk) {
1784 case 0: 1791 case 0:
1785 dasm_put(Dst, 10064, LJ_TISNUM); 1792 dasm_put(Dst, 10058, LJ_TISNUM);
1786 if (sse) { 1793 if (sse) {
1787 dasm_put(Dst, 10390); 1794 dasm_put(Dst, 10384);
1788 } else { 1795 } else {
1789 dasm_put(Dst, 10405); 1796 dasm_put(Dst, 10399);
1790 } 1797 }
1791 break; 1798 break;
1792 case 1: 1799 case 1:
1793 dasm_put(Dst, 10100, LJ_TISNUM); 1800 dasm_put(Dst, 10094, LJ_TISNUM);
1794 if (sse) { 1801 if (sse) {
1795 dasm_put(Dst, 10414); 1802 dasm_put(Dst, 10408);
1796 } else { 1803 } else {
1797 dasm_put(Dst, 10429); 1804 dasm_put(Dst, 10423);
1798 } 1805 }
1799 break; 1806 break;
1800 default: 1807 default:
1801 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1808 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1802 if (sse) { 1809 if (sse) {
1803 dasm_put(Dst, 10438); 1810 dasm_put(Dst, 10432);
1804 } else { 1811 } else {
1805 dasm_put(Dst, 10452); 1812 dasm_put(Dst, 10446);
1806 } 1813 }
1807 break; 1814 break;
1808 } 1815 }
1809 dasm_put(Dst, 10466); 1816 dasm_put(Dst, 10460);
1810 break; 1817 break;
1811 case BC_POW: 1818 case BC_POW:
1812 dasm_put(Dst, 10056); 1819 dasm_put(Dst, 10050);
1813 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN); 1820 vk = ((int)op - BC_ADDVN) / (BC_ADDNV-BC_ADDVN);
1814 switch (vk) { 1821 switch (vk) {
1815 case 0: 1822 case 0:
1816 dasm_put(Dst, 10064, LJ_TISNUM); 1823 dasm_put(Dst, 10058, LJ_TISNUM);
1817 if (sse) { 1824 if (sse) {
1818 dasm_put(Dst, 10390); 1825 dasm_put(Dst, 10384);
1819 } else { 1826 } else {
1820 dasm_put(Dst, 10405); 1827 dasm_put(Dst, 10399);
1821 } 1828 }
1822 break; 1829 break;
1823 case 1: 1830 case 1:
1824 dasm_put(Dst, 10100, LJ_TISNUM); 1831 dasm_put(Dst, 10094, LJ_TISNUM);
1825 if (sse) { 1832 if (sse) {
1826 dasm_put(Dst, 10414); 1833 dasm_put(Dst, 10408);
1827 } else { 1834 } else {
1828 dasm_put(Dst, 10429); 1835 dasm_put(Dst, 10423);
1829 } 1836 }
1830 break; 1837 break;
1831 default: 1838 default:
1832 dasm_put(Dst, 10136, LJ_TISNUM, LJ_TISNUM); 1839 dasm_put(Dst, 10130, LJ_TISNUM, LJ_TISNUM);
1833 if (sse) { 1840 if (sse) {
1834 dasm_put(Dst, 10438); 1841 dasm_put(Dst, 10432);
1835 } else { 1842 } else {
1836 dasm_put(Dst, 10452); 1843 dasm_put(Dst, 10446);
1837 } 1844 }
1838 break; 1845 break;
1839 } 1846 }
1840 dasm_put(Dst, 10471); 1847 dasm_put(Dst, 10465);
1841 if (sse) { 1848 if (sse) {
1842 dasm_put(Dst, 9938); 1849 dasm_put(Dst, 9932);
1843 } else { 1850 } else {
1844 dasm_put(Dst, 9950); 1851 dasm_put(Dst, 9944);
1845 } 1852 }
1846 dasm_put(Dst, 9518); 1853 dasm_put(Dst, 9512);
1847 break; 1854 break;
1848 1855
1849 case BC_CAT: 1856 case BC_CAT:
1850 dasm_put(Dst, 10475, Dt1(->base), Dt1(->base)); 1857 dasm_put(Dst, 10469, Dt1(->base), Dt1(->base));
1851 break; 1858 break;
1852 1859
1853 /* -- Constant ops ------------------------------------------------------ */ 1860 /* -- Constant ops ------------------------------------------------------ */
1854 1861
1855 case BC_KSTR: 1862 case BC_KSTR:
1856 dasm_put(Dst, 10559, LJ_TSTR); 1863 dasm_put(Dst, 10553, LJ_TSTR);
1857 break; 1864 break;
1858 case BC_KSHORT: 1865 case BC_KSHORT:
1859 if (sse) { 1866 if (sse) {
1860 dasm_put(Dst, 10596); 1867 dasm_put(Dst, 10590);
1861 } else { 1868 } else {
1862 dasm_put(Dst, 10611); 1869 dasm_put(Dst, 10605);
1863 } 1870 }
1864 dasm_put(Dst, 9518); 1871 dasm_put(Dst, 9512);
1865 break; 1872 break;
1866 case BC_KNUM: 1873 case BC_KNUM:
1867 if (sse) { 1874 if (sse) {
1868 dasm_put(Dst, 10619); 1875 dasm_put(Dst, 10613);
1869 } else { 1876 } else {
1870 dasm_put(Dst, 10633); 1877 dasm_put(Dst, 10627);
1871 } 1878 }
1872 dasm_put(Dst, 9518); 1879 dasm_put(Dst, 9512);
1873 break; 1880 break;
1874 case BC_KPRI: 1881 case BC_KPRI:
1875 dasm_put(Dst, 10641); 1882 dasm_put(Dst, 10635);
1876 break; 1883 break;
1877 case BC_KNIL: 1884 case BC_KNIL:
1878 dasm_put(Dst, 10670, LJ_TNIL); 1885 dasm_put(Dst, 10664, LJ_TNIL);
1879 break; 1886 break;
1880 1887
1881 /* -- Upvalue and function ops ------------------------------------------ */ 1888 /* -- Upvalue and function ops ------------------------------------------ */
1882 1889
1883 case BC_UGET: 1890 case BC_UGET:
1884 dasm_put(Dst, 10718, offsetof(GCfuncL, uvptr), DtA(->v)); 1891 dasm_put(Dst, 10712, offsetof(GCfuncL, uvptr), DtA(->v));
1885 break; 1892 break;
1886 case BC_USETV: 1893 case BC_USETV:
1887#define TV2MARKOFS \ 1894#define TV2MARKOFS \
1888 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv)) 1895 ((int32_t)offsetof(GCupval, marked)-(int32_t)offsetof(GCupval, tv))
1889 dasm_put(Dst, 10759, 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); 1896 dasm_put(Dst, 10753, 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);
1890 dasm_put(Dst, 10855); 1897 dasm_put(Dst, 10849);
1891 break; 1898 break;
1892#undef TV2MARKOFS 1899#undef TV2MARKOFS
1893 case BC_USETS: 1900 case BC_USETS:
1894 dasm_put(Dst, 10867, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G); 1901 dasm_put(Dst, 10861, offsetof(GCfuncL, uvptr), DtA(->v), LJ_TSTR, DtA(->marked), LJ_GC_BLACK, Dt4(->gch.marked), LJ_GC_WHITES, DtA(->closed), GG_DISP2G);
1895 break; 1902 break;
1896 case BC_USETN: 1903 case BC_USETN:
1897 dasm_put(Dst, 10963); 1904 dasm_put(Dst, 10957);
1898 if (sse) { 1905 if (sse) {
1899 dasm_put(Dst, 10968); 1906 dasm_put(Dst, 10962);
1900 } else { 1907 } else {
1901 dasm_put(Dst, 9760); 1908 dasm_put(Dst, 9754);
1902 } 1909 }
1903 dasm_put(Dst, 10976, offsetof(GCfuncL, uvptr), DtA(->v)); 1910 dasm_put(Dst, 10970, offsetof(GCfuncL, uvptr), DtA(->v));
1904 if (sse) { 1911 if (sse) {
1905 dasm_put(Dst, 10985); 1912 dasm_put(Dst, 10979);
1906 } else { 1913 } else {
1907 dasm_put(Dst, 10991); 1914 dasm_put(Dst, 10985);
1908 } 1915 }
1909 dasm_put(Dst, 9518); 1916 dasm_put(Dst, 9512);
1910 break; 1917 break;
1911 case BC_USETP: 1918 case BC_USETP:
1912 dasm_put(Dst, 10994, offsetof(GCfuncL, uvptr), DtA(->v)); 1919 dasm_put(Dst, 10988, offsetof(GCfuncL, uvptr), DtA(->v));
1913 break; 1920 break;
1914 case BC_UCLO: 1921 case BC_UCLO:
1915 dasm_put(Dst, 11034, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base)); 1922 dasm_put(Dst, 11028, -BCBIAS_J*4, Dt1(->openupval), Dt1(->base), Dt1(->base));
1916 break; 1923 break;
1917 1924
1918 case BC_FNEW: 1925 case BC_FNEW:
1919 dasm_put(Dst, 11090, Dt1(->base), Dt1(->base), LJ_TFUNC); 1926 dasm_put(Dst, 11084, Dt1(->base), Dt1(->base), LJ_TFUNC);
1920 break; 1927 break;
1921 1928
1922 /* -- Table ops --------------------------------------------------------- */ 1929 /* -- Table ops --------------------------------------------------------- */
1923 1930
1924 case BC_TNEW: 1931 case BC_TNEW:
1925 dasm_put(Dst, 11157, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB); 1932 dasm_put(Dst, 11151, Dt1(->base), DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), LJ_TTAB);
1926 break; 1933 break;
1927 case BC_TDUP: 1934 case BC_TDUP:
1928 dasm_put(Dst, 11281, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB); 1935 dasm_put(Dst, 11275, DISPATCH_GL(gc.total), DISPATCH_GL(gc.threshold), Dt1(->base), Dt1(->base), LJ_TTAB);
1929 break; 1936 break;
1930 1937
1931 case BC_GGET: 1938 case BC_GGET:
1932 dasm_put(Dst, 11380, Dt7(->env)); 1939 dasm_put(Dst, 11374, Dt7(->env));
1933 break; 1940 break;
1934 case BC_GSET: 1941 case BC_GSET:
1935 dasm_put(Dst, 11400, Dt7(->env)); 1942 dasm_put(Dst, 11394, Dt7(->env));
1936 break; 1943 break;
1937 1944
1938 case BC_TGETV: 1945 case BC_TGETV:
1939 dasm_put(Dst, 11420, LJ_TTAB, LJ_TISNUM); 1946 dasm_put(Dst, 11414, LJ_TTAB, LJ_TISNUM);
1940 if (sse) { 1947 if (sse) {
1941 dasm_put(Dst, 11453); 1948 dasm_put(Dst, 11447);
1942 } else { 1949 } else {
1943 } 1950 }
1944 dasm_put(Dst, 11474, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1951 dasm_put(Dst, 11468, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1945 dasm_put(Dst, 11559, LJ_TNIL, LJ_TSTR); 1952 dasm_put(Dst, 11553, LJ_TNIL, LJ_TSTR);
1946 break; 1953 break;
1947 case BC_TGETS: 1954 case BC_TGETS:
1948 dasm_put(Dst, 11588, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1955 dasm_put(Dst, 11582, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1949 dasm_put(Dst, 11673, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1956 dasm_put(Dst, 11667, LJ_TNIL, DtB(->next), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1950 break; 1957 break;
1951 case BC_TGETB: 1958 case BC_TGETB:
1952 dasm_put(Dst, 11745, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index); 1959 dasm_put(Dst, 11739, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_index);
1953 dasm_put(Dst, 11841, LJ_TNIL); 1960 dasm_put(Dst, 11835, LJ_TNIL);
1954 break; 1961 break;
1955 1962
1956 case BC_TSETV: 1963 case BC_TSETV:
1957 dasm_put(Dst, 11858, LJ_TTAB, LJ_TISNUM); 1964 dasm_put(Dst, 11852, LJ_TTAB, LJ_TISNUM);
1958 if (sse) { 1965 if (sse) {
1959 dasm_put(Dst, 11453); 1966 dasm_put(Dst, 11447);
1960 } else { 1967 } else {
1961 } 1968 }
1962 dasm_put(Dst, 11891, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable)); 1969 dasm_put(Dst, 11885, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable));
1963 dasm_put(Dst, 11971, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1970 dasm_put(Dst, 11965, Dt6(->nomm), 1<<MM_newindex, LJ_TSTR, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1964 break; 1971 break;
1965 case BC_TSETS: 1972 case BC_TSETS:
1966 dasm_put(Dst, 12035, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL); 1973 dasm_put(Dst, 12029, LJ_TTAB, Dt6(->hmask), Dt5(->hash), sizeof(Node), Dt6(->nomm), Dt6(->node), DtB(->key.it), LJ_TSTR, DtB(->key.gcr), LJ_TNIL);
1967 dasm_put(Dst, 12112, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next)); 1974 dasm_put(Dst, 12106, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable), Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, DtB(->next));
1968 dasm_put(Dst, 12199, 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)); 1975 dasm_put(Dst, 12193, 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));
1969 break; 1976 break;
1970 case BC_TSETB: 1977 case BC_TSETB:
1971 dasm_put(Dst, 12291, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable)); 1978 dasm_put(Dst, 12285, LJ_TTAB, Dt6(->asize), Dt6(->array), LJ_TNIL, Dt6(->marked), LJ_GC_BLACK, Dt6(->metatable));
1972 dasm_put(Dst, 12386, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1979 dasm_put(Dst, 12380, Dt6(->metatable), Dt6(->nomm), 1<<MM_newindex, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1973 break; 1980 break;
1974 1981
1975 case BC_TSETM: 1982 case BC_TSETM:
1976 dasm_put(Dst, 12434, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base)); 1983 dasm_put(Dst, 12428, Dt6(->marked), LJ_GC_BLACK, Dt6(->asize), Dt6(->array), Dt1(->base), Dt1(->base));
1977 dasm_put(Dst, 12584, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist)); 1984 dasm_put(Dst, 12578, Dt6(->marked), cast_byte(~LJ_GC_BLACK), DISPATCH_GL(gc.grayagain), DISPATCH_GL(gc.grayagain), Dt6(->gclist));
1978 break; 1985 break;
1979 1986
1980 /* -- Calls and vararg handling ----------------------------------------- */ 1987 /* -- Calls and vararg handling ----------------------------------------- */
1981 1988
1982 case BC_CALL: case BC_CALLM: 1989 case BC_CALL: case BC_CALLM:
1983 dasm_put(Dst, 10060); 1990 dasm_put(Dst, 10054);
1984 if (op == BC_CALLM) { 1991 if (op == BC_CALLM) {
1985 dasm_put(Dst, 12604); 1992 dasm_put(Dst, 12598);
1986 } 1993 }
1987 dasm_put(Dst, 12609, LJ_TFUNC, Dt7(->pc)); 1994 dasm_put(Dst, 12603, LJ_TFUNC, Dt7(->pc));
1988 break; 1995 break;
1989 1996
1990 case BC_CALLMT: 1997 case BC_CALLMT:
1991 dasm_put(Dst, 12604); 1998 dasm_put(Dst, 12598);
1992 break; 1999 break;
1993 case BC_CALLT: 2000 case BC_CALLT:
1994 dasm_put(Dst, 12652, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc)); 2001 dasm_put(Dst, 12646, LJ_TFUNC, FRAME_TYPE, Dt7(->ffid), Dt7(->pc));
1995 dasm_put(Dst, 12770, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG); 2002 dasm_put(Dst, 12764, FRAME_TYPE, Dt7(->pc), PC2PROTO(k), FRAME_VARG, FRAME_TYPEP, FRAME_VARG);
1996 break; 2003 break;
1997 2004
1998 case BC_ITERC: 2005 case BC_ITERC:
1999 dasm_put(Dst, 12844, LJ_TFUNC, 2+1, Dt7(->pc)); 2006 dasm_put(Dst, 12838, LJ_TFUNC, 2+1, Dt7(->pc));
2000 break; 2007 break;
2001 2008
2002 case BC_ITERN: 2009 case BC_ITERN:
2003#if LJ_HASJIT 2010#if LJ_HASJIT
2004#endif 2011#endif
2005 dasm_put(Dst, 12916, Dt6(->asize), Dt6(->array), LJ_TNIL); 2012 dasm_put(Dst, 12910, Dt6(->asize), Dt6(->array), LJ_TNIL);
2006 if (sse) { 2013 if (sse) {
2007 dasm_put(Dst, 12968); 2014 dasm_put(Dst, 12962);
2008 } else { 2015 } else {
2009 dasm_put(Dst, 12974); 2016 dasm_put(Dst, 12968);
2010 } 2017 }
2011 dasm_put(Dst, 12980); 2018 dasm_put(Dst, 12974);
2012 if (sse) { 2019 if (sse) {
2013 dasm_put(Dst, 9938); 2020 dasm_put(Dst, 9932);
2014 } else { 2021 } else {
2015 dasm_put(Dst, 9950); 2022 dasm_put(Dst, 9944);
2016 } 2023 }
2017 dasm_put(Dst, 12993, -BCBIAS_J*4); 2024 dasm_put(Dst, 12987, -BCBIAS_J*4);
2018 if (!sse) { 2025 if (!sse) {
2019 dasm_put(Dst, 13047); 2026 dasm_put(Dst, 13041);
2020 } 2027 }
2021 dasm_put(Dst, 13053, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val)); 2028 dasm_put(Dst, 13047, Dt6(->hmask), sizeof(Node), Dt6(->node), DtB(->val.it), LJ_TNIL, DtB(->key), DtB(->val));
2022 break; 2029 break;
2023 2030
2024 case BC_ISNEXT: 2031 case BC_ISNEXT:
2025 dasm_put(Dst, 13132, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC); 2032 dasm_put(Dst, 13126, LJ_TFUNC, LJ_TTAB, LJ_TNIL, Dt8(->ffid), FF_next_N, -BCBIAS_J*4, BC_JMP, -BCBIAS_J*4, BC_ITERC);
2026 break; 2033 break;
2027 2034
2028 case BC_VARG: 2035 case BC_VARG:
2029 dasm_put(Dst, 13233, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack)); 2036 dasm_put(Dst, 13227, (8+FRAME_VARG), LJ_TNIL, Dt1(->maxstack));
2030 dasm_put(Dst, 13400, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top)); 2037 dasm_put(Dst, 13394, Dt1(->base), Dt1(->top), Dt1(->base), Dt1(->top));
2031 break; 2038 break;
2032 2039
2033 /* -- Returns ----------------------------------------------------------- */ 2040 /* -- Returns ----------------------------------------------------------- */
2034 2041
2035 case BC_RETM: 2042 case BC_RETM:
2036 dasm_put(Dst, 12604); 2043 dasm_put(Dst, 12598);
2037 break; 2044 break;
2038 2045
2039 case BC_RET: case BC_RET0: case BC_RET1: 2046 case BC_RET: case BC_RET0: case BC_RET1:
2040 if (op != BC_RET0) { 2047 if (op != BC_RET0) {
2041 dasm_put(Dst, 13470); 2048 dasm_put(Dst, 13464);
2042 } 2049 }
2043 dasm_put(Dst, 13474, FRAME_TYPE); 2050 dasm_put(Dst, 13468, FRAME_TYPE);
2044 switch (op) { 2051 switch (op) {
2045 case BC_RET: 2052 case BC_RET:
2046 dasm_put(Dst, 13493); 2053 dasm_put(Dst, 13487);
2047 break; 2054 break;
2048 case BC_RET1: 2055 case BC_RET1:
2049 dasm_put(Dst, 13547); 2056 dasm_put(Dst, 13541);
2050 /* fallthrough */ 2057 /* fallthrough */
2051 case BC_RET0: 2058 case BC_RET0:
2052 dasm_put(Dst, 13557); 2059 dasm_put(Dst, 13551);
2053 default: 2060 default:
2054 break; 2061 break;
2055 } 2062 }
2056 dasm_put(Dst, 13568, Dt7(->pc), PC2PROTO(k)); 2063 dasm_put(Dst, 13562, Dt7(->pc), PC2PROTO(k));
2057 if (op == BC_RET) { 2064 if (op == BC_RET) {
2058 dasm_put(Dst, 13616, LJ_TNIL); 2065 dasm_put(Dst, 13610, LJ_TNIL);
2059 } else { 2066 } else {
2060 dasm_put(Dst, 13627, LJ_TNIL); 2067 dasm_put(Dst, 13621, LJ_TNIL);
2061 } 2068 }
2062 dasm_put(Dst, 13634, -FRAME_VARG, FRAME_TYPEP); 2069 dasm_put(Dst, 13628, -FRAME_VARG, FRAME_TYPEP);
2063 if (op != BC_RET0) { 2070 if (op != BC_RET0) {
2064 dasm_put(Dst, 13658); 2071 dasm_put(Dst, 13652);
2065 } 2072 }
2066 dasm_put(Dst, 4552); 2073 dasm_put(Dst, 4546);
2067 break; 2074 break;
2068 2075
2069 /* -- Loops and branches ------------------------------------------------ */ 2076 /* -- Loops and branches ------------------------------------------------ */
@@ -2071,7 +2078,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2071 2078
2072 case BC_FORL: 2079 case BC_FORL:
2073#if LJ_HASJIT 2080#if LJ_HASJIT
2074 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT); 2081 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
2075#endif 2082#endif
2076 break; 2083 break;
2077 2084
@@ -2083,57 +2090,57 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2083 case BC_FORI: 2090 case BC_FORI:
2084 case BC_IFORL: 2091 case BC_IFORL:
2085 vk = (op == BC_IFORL || op == BC_JFORL); 2092 vk = (op == BC_IFORL || op == BC_JFORL);
2086 dasm_put(Dst, 13683); 2093 dasm_put(Dst, 13677);
2087 if (!vk) { 2094 if (!vk) {
2088 dasm_put(Dst, 13687, LJ_TISNUM, LJ_TISNUM); 2095 dasm_put(Dst, 13681, LJ_TISNUM, LJ_TISNUM);
2089 } 2096 }
2090 dasm_put(Dst, 13706); 2097 dasm_put(Dst, 13700);
2091 if (!vk) { 2098 if (!vk) {
2092 dasm_put(Dst, 13710, LJ_TISNUM); 2099 dasm_put(Dst, 13704, LJ_TISNUM);
2093 } 2100 }
2094 if (sse) { 2101 if (sse) {
2095 dasm_put(Dst, 13719); 2102 dasm_put(Dst, 13713);
2096 if (vk) { 2103 if (vk) {
2097 dasm_put(Dst, 13731); 2104 dasm_put(Dst, 13725);
2098 } else { 2105 } else {
2099 dasm_put(Dst, 13750); 2106 dasm_put(Dst, 13744);
2100 } 2107 }
2101 dasm_put(Dst, 13755); 2108 dasm_put(Dst, 13749);
2102 } else { 2109 } else {
2103 dasm_put(Dst, 13768); 2110 dasm_put(Dst, 13762);
2104 if (vk) { 2111 if (vk) {
2105 dasm_put(Dst, 13774); 2112 dasm_put(Dst, 13768);
2106 } else { 2113 } else {
2107 dasm_put(Dst, 13790); 2114 dasm_put(Dst, 13784);
2108 } 2115 }
2109 dasm_put(Dst, 13798); 2116 dasm_put(Dst, 13792);
2110 if (cmov) { 2117 if (cmov) {
2111 dasm_put(Dst, 9481); 2118 dasm_put(Dst, 9475);
2112 } else { 2119 } else {
2113 dasm_put(Dst, 9487); 2120 dasm_put(Dst, 9481);
2114 } 2121 }
2115 if (!cmov) { 2122 if (!cmov) {
2116 dasm_put(Dst, 13803); 2123 dasm_put(Dst, 13797);
2117 } 2124 }
2118 } 2125 }
2119 if (op == BC_FORI) { 2126 if (op == BC_FORI) {
2120 dasm_put(Dst, 13809, -BCBIAS_J*4); 2127 dasm_put(Dst, 13803, -BCBIAS_J*4);
2121 } else if (op == BC_JFORI) { 2128 } else if (op == BC_JFORI) {
2122 dasm_put(Dst, 13819, -BCBIAS_J*4, BC_JLOOP); 2129 dasm_put(Dst, 13813, -BCBIAS_J*4, BC_JLOOP);
2123 } else if (op == BC_IFORL) { 2130 } else if (op == BC_IFORL) {
2124 dasm_put(Dst, 13833, -BCBIAS_J*4); 2131 dasm_put(Dst, 13827, -BCBIAS_J*4);
2125 } else { 2132 } else {
2126 dasm_put(Dst, 13829, BC_JLOOP); 2133 dasm_put(Dst, 13823, BC_JLOOP);
2127 } 2134 }
2128 dasm_put(Dst, 9516); 2135 dasm_put(Dst, 9510);
2129 if (sse) { 2136 if (sse) {
2130 dasm_put(Dst, 13843); 2137 dasm_put(Dst, 13837);
2131 } 2138 }
2132 break; 2139 break;
2133 2140
2134 case BC_ITERL: 2141 case BC_ITERL:
2135#if LJ_HASJIT 2142#if LJ_HASJIT
2136 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT); 2143 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
2137#endif 2144#endif
2138 break; 2145 break;
2139 2146
@@ -2142,33 +2149,33 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2142 break; 2149 break;
2143#endif 2150#endif
2144 case BC_IITERL: 2151 case BC_IITERL:
2145 dasm_put(Dst, 13854, LJ_TNIL); 2152 dasm_put(Dst, 13848, LJ_TNIL);
2146 if (op == BC_JITERL) { 2153 if (op == BC_JITERL) {
2147 dasm_put(Dst, 13869, BC_JLOOP); 2154 dasm_put(Dst, 13863, BC_JLOOP);
2148 } else { 2155 } else {
2149 dasm_put(Dst, 13883, -BCBIAS_J*4); 2156 dasm_put(Dst, 13877, -BCBIAS_J*4);
2150 } 2157 }
2151 dasm_put(Dst, 9820); 2158 dasm_put(Dst, 9814);
2152 break; 2159 break;
2153 2160
2154 case BC_LOOP: 2161 case BC_LOOP:
2155#if LJ_HASJIT 2162#if LJ_HASJIT
2156 dasm_put(Dst, 13662, HOTCOUNT_PCMASK, GG_DISP2HOT); 2163 dasm_put(Dst, 13656, HOTCOUNT_PCMASK, GG_DISP2HOT);
2157#endif 2164#endif
2158 break; 2165 break;
2159 2166
2160 case BC_ILOOP: 2167 case BC_ILOOP:
2161 dasm_put(Dst, 9518); 2168 dasm_put(Dst, 9512);
2162 break; 2169 break;
2163 2170
2164 case BC_JLOOP: 2171 case BC_JLOOP:
2165#if LJ_HASJIT 2172#if LJ_HASJIT
2166 dasm_put(Dst, 13899, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L)); 2173 dasm_put(Dst, 13893, DISPATCH_J(trace), DtD(->mcode), DISPATCH_GL(jit_base), DISPATCH_GL(jit_L));
2167#endif 2174#endif
2168 break; 2175 break;
2169 2176
2170 case BC_JMP: 2177 case BC_JMP:
2171 dasm_put(Dst, 13940, -BCBIAS_J*4); 2178 dasm_put(Dst, 13934, -BCBIAS_J*4);
2172 break; 2179 break;
2173 2180
2174 /* -- Function headers -------------------------------------------------- */ 2181 /* -- Function headers -------------------------------------------------- */
@@ -2182,7 +2189,7 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2182 2189
2183 case BC_FUNCF: 2190 case BC_FUNCF:
2184#if LJ_HASJIT 2191#if LJ_HASJIT
2185 dasm_put(Dst, 13966, HOTCOUNT_PCMASK, GG_DISP2HOT); 2192 dasm_put(Dst, 13960, HOTCOUNT_PCMASK, GG_DISP2HOT);
2186#endif 2193#endif
2187 case BC_FUNCV: /* NYI: compiled vararg functions. */ 2194 case BC_FUNCV: /* NYI: compiled vararg functions. */
2188 break; 2195 break;
@@ -2192,47 +2199,47 @@ static void build_ins(BuildCtx *ctx, BCOp op, int defop, int cmov, int sse)
2192 break; 2199 break;
2193#endif 2200#endif
2194 case BC_IFUNCF: 2201 case BC_IFUNCF:
2195 dasm_put(Dst, 13987, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams)); 2202 dasm_put(Dst, 13981, -4+PC2PROTO(k), Dt1(->maxstack), -4+PC2PROTO(numparams));
2196 if (op == BC_JFUNCF) { 2203 if (op == BC_JFUNCF) {
2197 dasm_put(Dst, 14018, BC_JLOOP); 2204 dasm_put(Dst, 14012, BC_JLOOP);
2198 } else { 2205 } else {
2199 dasm_put(Dst, 9518); 2206 dasm_put(Dst, 9512);
2200 } 2207 }
2201 dasm_put(Dst, 14027, LJ_TNIL); 2208 dasm_put(Dst, 14021, LJ_TNIL);
2202 break; 2209 break;
2203 2210
2204 case BC_JFUNCV: 2211 case BC_JFUNCV:
2205#if !LJ_HASJIT 2212#if !LJ_HASJIT
2206 break; 2213 break;
2207#endif 2214#endif
2208 dasm_put(Dst, 8997); 2215 dasm_put(Dst, 8991);
2209 break; /* NYI: compiled vararg functions. */ 2216 break; /* NYI: compiled vararg functions. */
2210 2217
2211 case BC_IFUNCV: 2218 case BC_IFUNCV:
2212 dasm_put(Dst, 14049, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL); 2219 dasm_put(Dst, 14043, FRAME_VARG, Dt1(->maxstack), -4+PC2PROTO(numparams), LJ_TNIL);
2213 if (op == BC_JFUNCV) { 2220 if (op == BC_JFUNCV) {
2214 dasm_put(Dst, 14018, BC_JLOOP); 2221 dasm_put(Dst, 14012, BC_JLOOP);
2215 } else { 2222 } else {
2216 dasm_put(Dst, 14146, -4+PC2PROTO(k)); 2223 dasm_put(Dst, 14140, -4+PC2PROTO(k));
2217 } 2224 }
2218 dasm_put(Dst, 14171, LJ_TNIL); 2225 dasm_put(Dst, 14165, LJ_TNIL);
2219 break; 2226 break;
2220 2227
2221 case BC_FUNCC: 2228 case BC_FUNCC:
2222 case BC_FUNCCW: 2229 case BC_FUNCCW:
2223 dasm_put(Dst, 14193, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top)); 2230 dasm_put(Dst, 14187, Dt8(->f), Dt1(->base), 8*LUA_MINSTACK, Dt1(->maxstack), Dt1(->top));
2224 if (op == BC_FUNCC) { 2231 if (op == BC_FUNCC) {
2225 dasm_put(Dst, 14223); 2232 dasm_put(Dst, 14217);
2226 } else { 2233 } else {
2227 dasm_put(Dst, 14227); 2234 dasm_put(Dst, 14221);
2228 } 2235 }
2229 dasm_put(Dst, 14235, DISPATCH_GL(vmstate), ~LJ_VMST_C); 2236 dasm_put(Dst, 14229, DISPATCH_GL(vmstate), ~LJ_VMST_C);
2230 if (op == BC_FUNCC) { 2237 if (op == BC_FUNCC) {
2231 dasm_put(Dst, 14245); 2238 dasm_put(Dst, 14239);
2232 } else { 2239 } else {
2233 dasm_put(Dst, 14250, DISPATCH_GL(wrapf)); 2240 dasm_put(Dst, 14244, DISPATCH_GL(wrapf));
2234 } 2241 }
2235 dasm_put(Dst, 14256, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top)); 2242 dasm_put(Dst, 14250, DISPATCH_GL(vmstate), ~LJ_VMST_INTERP, Dt1(->base), Dt1(->top));
2236 break; 2243 break;
2237 2244
2238 /* ---------------------------------------------------------------------- */ 2245 /* ---------------------------------------------------------------------- */
@@ -2260,7 +2267,7 @@ static int build_backend(BuildCtx *ctx)
2260 2267
2261 build_subroutines(ctx, cmov, sse); 2268 build_subroutines(ctx, cmov, sse);
2262 2269
2263 dasm_put(Dst, 14282); 2270 dasm_put(Dst, 14276);
2264 for (op = 0; op < BC__MAX; op++) 2271 for (op = 0; op < BC__MAX; op++)
2265 build_ins(ctx, (BCOp)op, op, cmov, sse); 2272 build_ins(ctx, (BCOp)op, op, cmov, sse);
2266 2273