001    /*
002     * Copyright 2002-2005 Sun Microsystems, Inc.  All Rights Reserved.
003     * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
004     *
005     * This code is free software; you can redistribute it and/or modify it
006     * under the terms of the GNU General Public License version 2 only, as
007     * published by the Free Software Foundation.  Sun designates this
008     * particular file as subject to the "Classpath" exception as provided
009     * by Sun in the LICENSE file that accompanied this code.
010     *
011     * This code is distributed in the hope that it will be useful, but WITHOUT
012     * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
013     * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
014     * version 2 for more details (a copy is included in the LICENSE file that
015     * accompanied this code).
016     *
017     * You should have received a copy of the GNU General Public License version
018     * 2 along with this work; if not, write to the Free Software Foundation,
019     * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
020     *
021     * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
022     * CA 95054 USA or visit www.sun.com if you need additional information or
023     * have any questions.
024     */
025    
026    
027    package sun.tools.javap;
028    
029    public interface RuntimeConstants {
030    
031        /* Signature Characters */
032        public static final char   SIGC_VOID                  = 'V';
033        public static final String SIG_VOID                   = "V";
034        public static final char   SIGC_BOOLEAN               = 'Z';
035        public static final String SIG_BOOLEAN                = "Z";
036        public static final char   SIGC_BYTE                  = 'B';
037        public static final String SIG_BYTE                   = "B";
038        public static final char   SIGC_CHAR                  = 'C';
039        public static final String SIG_CHAR                   = "C";
040        public static final char   SIGC_SHORT                 = 'S';
041        public static final String SIG_SHORT                  = "S";
042        public static final char   SIGC_INT                   = 'I';
043        public static final String SIG_INT                    = "I";
044        public static final char   SIGC_LONG                  = 'J';
045        public static final String SIG_LONG                   = "J";
046        public static final char   SIGC_FLOAT                 = 'F';
047        public static final String SIG_FLOAT                  = "F";
048        public static final char   SIGC_DOUBLE                = 'D';
049        public static final String SIG_DOUBLE                 = "D";
050        public static final char   SIGC_ARRAY                 = '[';
051        public static final String SIG_ARRAY                  = "[";
052        public static final char   SIGC_CLASS                 = 'L';
053        public static final String SIG_CLASS                  = "L";
054        public static final char   SIGC_METHOD                = '(';
055        public static final String SIG_METHOD                 = "(";
056        public static final char   SIGC_ENDCLASS              = ';';
057        public static final String SIG_ENDCLASS               = ";";
058        public static final char   SIGC_ENDMETHOD             = ')';
059        public static final String SIG_ENDMETHOD              = ")";
060        public static final char   SIGC_PACKAGE               = '/';
061        public static final String SIG_PACKAGE                = "/";
062    
063        /* Class File Constants */
064        public static final int JAVA_MAGIC                   = 0xcafebabe;
065        public static final int JAVA_VERSION                 = 45;
066        public static final int JAVA_MINOR_VERSION           = 3;
067    
068        /* Constant table */
069        public static final int CONSTANT_UTF8                = 1;
070        public static final int CONSTANT_UNICODE             = 2;
071        public static final int CONSTANT_INTEGER             = 3;
072        public static final int CONSTANT_FLOAT               = 4;
073        public static final int CONSTANT_LONG                = 5;
074        public static final int CONSTANT_DOUBLE              = 6;
075        public static final int CONSTANT_CLASS               = 7;
076        public static final int CONSTANT_STRING              = 8;
077        public static final int CONSTANT_FIELD               = 9;
078        public static final int CONSTANT_METHOD              = 10;
079        public static final int CONSTANT_INTERFACEMETHOD     = 11;
080        public static final int CONSTANT_NAMEANDTYPE         = 12;
081    
082        /* Access Flags */
083        public static final int ACC_PUBLIC                   = 0x00000001;
084        public static final int ACC_PRIVATE                  = 0x00000002;
085        public static final int ACC_PROTECTED                = 0x00000004;
086        public static final int ACC_STATIC                   = 0x00000008;
087        public static final int ACC_FINAL                    = 0x00000010;
088        public static final int ACC_SYNCHRONIZED             = 0x00000020;
089        public static final int ACC_SUPER                        = 0x00000020;
090        public static final int ACC_VOLATILE                 = 0x00000040;
091        public static final int ACC_TRANSIENT                = 0x00000080;
092        public static final int ACC_NATIVE                   = 0x00000100;
093        public static final int ACC_INTERFACE                = 0x00000200;
094        public static final int ACC_ABSTRACT                 = 0x00000400;
095        public static final int ACC_STRICT                   = 0x00000800;
096        public static final int ACC_EXPLICIT                 = 0x00001000;
097        public static final int ACC_SYNTHETIC                = 0x00010000; // actually, this is an attribute
098    
099        /* Type codes */
100        public static final int T_CLASS                      = 0x00000002;
101        public static final int T_BOOLEAN                    = 0x00000004;
102        public static final int T_CHAR                       = 0x00000005;
103        public static final int T_FLOAT                      = 0x00000006;
104        public static final int T_DOUBLE                     = 0x00000007;
105        public static final int T_BYTE                       = 0x00000008;
106        public static final int T_SHORT                      = 0x00000009;
107        public static final int T_INT                        = 0x0000000a;
108        public static final int T_LONG                       = 0x0000000b;
109    
110        /* Type codes for StackMap attribute */
111        public static final int ITEM_Bogus      =0; // an unknown or uninitialized value
112        public static final int ITEM_Integer    =1; // a 32-bit integer
113        public static final int ITEM_Float      =2; // not used
114        public static final int ITEM_Double     =3; // not used
115        public static final int ITEM_Long       =4; // a 64-bit integer
116        public static final int ITEM_Null       =5; // the type of null
117        public static final int ITEM_InitObject =6; // "this" in constructor
118        public static final int ITEM_Object     =7; // followed by 2-byte index of class name
119        public static final int ITEM_NewObject  =8; // followed by 2-byte ref to "new"
120    
121        /* Constants used in StackMapTable attribute */
122        public static final int SAME_FRAME_BOUND                  = 64;
123        public static final int SAME_LOCALS_1_STACK_ITEM_BOUND    = 128;
124        public static final int SAME_LOCALS_1_STACK_ITEM_EXTENDED = 247;
125        public static final int SAME_FRAME_EXTENDED               = 251;
126        public static final int FULL_FRAME                        = 255;
127    
128        /* Opcodes */
129        public static final int opc_dead                     = -2;
130        public static final int opc_label                    = -1;
131        public static final int opc_nop                      = 0;
132        public static final int opc_aconst_null              = 1;
133        public static final int opc_iconst_m1                = 2;
134        public static final int opc_iconst_0                 = 3;
135        public static final int opc_iconst_1                 = 4;
136        public static final int opc_iconst_2                 = 5;
137        public static final int opc_iconst_3                 = 6;
138        public static final int opc_iconst_4                 = 7;
139        public static final int opc_iconst_5                 = 8;
140        public static final int opc_lconst_0                 = 9;
141        public static final int opc_lconst_1                 = 10;
142        public static final int opc_fconst_0                 = 11;
143        public static final int opc_fconst_1                 = 12;
144        public static final int opc_fconst_2                 = 13;
145        public static final int opc_dconst_0                 = 14;
146        public static final int opc_dconst_1                 = 15;
147        public static final int opc_bipush                   = 16;
148        public static final int opc_sipush                   = 17;
149        public static final int opc_ldc                      = 18;
150        public static final int opc_ldc_w                    = 19;
151        public static final int opc_ldc2_w                   = 20;
152        public static final int opc_iload                    = 21;
153        public static final int opc_lload                    = 22;
154        public static final int opc_fload                    = 23;
155        public static final int opc_dload                    = 24;
156        public static final int opc_aload                    = 25;
157        public static final int opc_iload_0                  = 26;
158        public static final int opc_iload_1                  = 27;
159        public static final int opc_iload_2                  = 28;
160        public static final int opc_iload_3                  = 29;
161        public static final int opc_lload_0                  = 30;
162        public static final int opc_lload_1                  = 31;
163        public static final int opc_lload_2                  = 32;
164        public static final int opc_lload_3                  = 33;
165        public static final int opc_fload_0                  = 34;
166        public static final int opc_fload_1                  = 35;
167        public static final int opc_fload_2                  = 36;
168        public static final int opc_fload_3                  = 37;
169        public static final int opc_dload_0                  = 38;
170        public static final int opc_dload_1                  = 39;
171        public static final int opc_dload_2                  = 40;
172        public static final int opc_dload_3                  = 41;
173        public static final int opc_aload_0                  = 42;
174        public static final int opc_aload_1                  = 43;
175        public static final int opc_aload_2                  = 44;
176        public static final int opc_aload_3                  = 45;
177        public static final int opc_iaload                   = 46;
178        public static final int opc_laload                   = 47;
179        public static final int opc_faload                   = 48;
180        public static final int opc_daload                   = 49;
181        public static final int opc_aaload                   = 50;
182        public static final int opc_baload                   = 51;
183        public static final int opc_caload                   = 52;
184        public static final int opc_saload                   = 53;
185        public static final int opc_istore                   = 54;
186        public static final int opc_lstore                   = 55;
187        public static final int opc_fstore                   = 56;
188        public static final int opc_dstore                   = 57;
189        public static final int opc_astore                   = 58;
190        public static final int opc_istore_0                 = 59;
191        public static final int opc_istore_1                 = 60;
192        public static final int opc_istore_2                 = 61;
193        public static final int opc_istore_3                 = 62;
194        public static final int opc_lstore_0                 = 63;
195        public static final int opc_lstore_1                 = 64;
196        public static final int opc_lstore_2                 = 65;
197        public static final int opc_lstore_3                 = 66;
198        public static final int opc_fstore_0                 = 67;
199        public static final int opc_fstore_1                 = 68;
200        public static final int opc_fstore_2                 = 69;
201        public static final int opc_fstore_3                 = 70;
202        public static final int opc_dstore_0                 = 71;
203        public static final int opc_dstore_1                 = 72;
204        public static final int opc_dstore_2                 = 73;
205        public static final int opc_dstore_3                 = 74;
206        public static final int opc_astore_0                 = 75;
207        public static final int opc_astore_1                 = 76;
208        public static final int opc_astore_2                 = 77;
209        public static final int opc_astore_3                 = 78;
210        public static final int opc_iastore                  = 79;
211        public static final int opc_lastore                  = 80;
212        public static final int opc_fastore                  = 81;
213        public static final int opc_dastore                  = 82;
214        public static final int opc_aastore                  = 83;
215        public static final int opc_bastore                  = 84;
216        public static final int opc_castore                  = 85;
217        public static final int opc_sastore                  = 86;
218        public static final int opc_pop                      = 87;
219        public static final int opc_pop2                     = 88;
220        public static final int opc_dup                      = 89;
221        public static final int opc_dup_x1                   = 90;
222        public static final int opc_dup_x2                   = 91;
223        public static final int opc_dup2                     = 92;
224        public static final int opc_dup2_x1                  = 93;
225        public static final int opc_dup2_x2                  = 94;
226        public static final int opc_swap                     = 95;
227        public static final int opc_iadd                     = 96;
228        public static final int opc_ladd                     = 97;
229        public static final int opc_fadd                     = 98;
230        public static final int opc_dadd                     = 99;
231        public static final int opc_isub                     = 100;
232        public static final int opc_lsub                     = 101;
233        public static final int opc_fsub                     = 102;
234        public static final int opc_dsub                     = 103;
235        public static final int opc_imul                     = 104;
236        public static final int opc_lmul                     = 105;
237        public static final int opc_fmul                     = 106;
238        public static final int opc_dmul                     = 107;
239        public static final int opc_idiv                     = 108;
240        public static final int opc_ldiv                     = 109;
241        public static final int opc_fdiv                     = 110;
242        public static final int opc_ddiv                     = 111;
243        public static final int opc_irem                     = 112;
244        public static final int opc_lrem                     = 113;
245        public static final int opc_frem                     = 114;
246        public static final int opc_drem                     = 115;
247        public static final int opc_ineg                     = 116;
248        public static final int opc_lneg                     = 117;
249        public static final int opc_fneg                     = 118;
250        public static final int opc_dneg                     = 119;
251        public static final int opc_ishl                     = 120;
252        public static final int opc_lshl                     = 121;
253        public static final int opc_ishr                     = 122;
254        public static final int opc_lshr                     = 123;
255        public static final int opc_iushr                    = 124;
256        public static final int opc_lushr                    = 125;
257        public static final int opc_iand                     = 126;
258        public static final int opc_land                     = 127;
259        public static final int opc_ior                      = 128;
260        public static final int opc_lor                      = 129;
261        public static final int opc_ixor                     = 130;
262        public static final int opc_lxor                     = 131;
263        public static final int opc_iinc                     = 132;
264        public static final int opc_i2l                      = 133;
265        public static final int opc_i2f                      = 134;
266        public static final int opc_i2d                      = 135;
267        public static final int opc_l2i                      = 136;
268        public static final int opc_l2f                      = 137;
269        public static final int opc_l2d                      = 138;
270        public static final int opc_f2i                      = 139;
271        public static final int opc_f2l                      = 140;
272        public static final int opc_f2d                      = 141;
273        public static final int opc_d2i                      = 142;
274        public static final int opc_d2l                      = 143;
275        public static final int opc_d2f                      = 144;
276        public static final int opc_i2b                      = 145;
277        public static final int opc_int2byte                 = 145;
278        public static final int opc_i2c                      = 146;
279        public static final int opc_int2char                 = 146;
280        public static final int opc_i2s                      = 147;
281        public static final int opc_int2short                = 147;
282        public static final int opc_lcmp                     = 148;
283        public static final int opc_fcmpl                    = 149;
284        public static final int opc_fcmpg                    = 150;
285        public static final int opc_dcmpl                    = 151;
286        public static final int opc_dcmpg                    = 152;
287        public static final int opc_ifeq                     = 153;
288        public static final int opc_ifne                     = 154;
289        public static final int opc_iflt                     = 155;
290        public static final int opc_ifge                     = 156;
291        public static final int opc_ifgt                     = 157;
292        public static final int opc_ifle                     = 158;
293        public static final int opc_if_icmpeq                = 159;
294        public static final int opc_if_icmpne                = 160;
295        public static final int opc_if_icmplt                = 161;
296        public static final int opc_if_icmpge                = 162;
297        public static final int opc_if_icmpgt                = 163;
298        public static final int opc_if_icmple                = 164;
299        public static final int opc_if_acmpeq                = 165;
300        public static final int opc_if_acmpne                = 166;
301        public static final int opc_goto                     = 167;
302        public static final int opc_jsr                      = 168;
303        public static final int opc_ret                      = 169;
304        public static final int opc_tableswitch              = 170;
305        public static final int opc_lookupswitch             = 171;
306        public static final int opc_ireturn                  = 172;
307        public static final int opc_lreturn                  = 173;
308        public static final int opc_freturn                  = 174;
309        public static final int opc_dreturn                  = 175;
310        public static final int opc_areturn                  = 176;
311        public static final int opc_return                   = 177;
312        public static final int opc_getstatic                = 178;
313        public static final int opc_putstatic                = 179;
314        public static final int opc_getfield                 = 180;
315        public static final int opc_putfield                 = 181;
316        public static final int opc_invokevirtual            = 182;
317        public static final int opc_invokenonvirtual         = 183;
318        public static final int opc_invokespecial            = 183;
319        public static final int opc_invokestatic             = 184;
320        public static final int opc_invokeinterface          = 185;
321    //    public static final int opc_xxxunusedxxx             = 186;
322        public static final int opc_new                      = 187;
323        public static final int opc_newarray                 = 188;
324        public static final int opc_anewarray                = 189;
325        public static final int opc_arraylength              = 190;
326        public static final int opc_athrow                   = 191;
327        public static final int opc_checkcast                = 192;
328        public static final int opc_instanceof               = 193;
329        public static final int opc_monitorenter             = 194;
330        public static final int opc_monitorexit              = 195;
331        public static final int opc_wide                     = 196;
332        public static final int opc_multianewarray           = 197;
333        public static final int opc_ifnull                   = 198;
334        public static final int opc_ifnonnull                = 199;
335        public static final int opc_goto_w                   = 200;
336        public static final int opc_jsr_w                    = 201;
337            /* Pseudo-instructions */
338        public static final int opc_bytecode                 = 203;
339        public static final int opc_try                      = 204;
340        public static final int opc_endtry                   = 205;
341        public static final int opc_catch                    = 206;
342        public static final int opc_var                      = 207;
343        public static final int opc_endvar                   = 208;
344        public static final int opc_localsmap                = 209;
345        public static final int opc_stackmap                 = 210;
346            /* PicoJava prefixes */
347        public static final int opc_nonpriv                  = 254;
348        public static final int opc_priv                     = 255;
349    
350            /* Wide instructions */
351        public static final int opc_iload_w         = (opc_wide<<8)|opc_iload;
352        public static final int opc_lload_w         = (opc_wide<<8)|opc_lload;
353        public static final int opc_fload_w         = (opc_wide<<8)|opc_fload;
354        public static final int opc_dload_w         = (opc_wide<<8)|opc_dload;
355        public static final int opc_aload_w         = (opc_wide<<8)|opc_aload;
356        public static final int opc_istore_w        = (opc_wide<<8)|opc_istore;
357        public static final int opc_lstore_w        = (opc_wide<<8)|opc_lstore;
358        public static final int opc_fstore_w        = (opc_wide<<8)|opc_fstore;
359        public static final int opc_dstore_w        = (opc_wide<<8)|opc_dstore;
360        public static final int opc_astore_w        = (opc_wide<<8)|opc_astore;
361        public static final int opc_ret_w           = (opc_wide<<8)|opc_ret;
362        public static final int opc_iinc_w          = (opc_wide<<8)|opc_iinc;
363    
364        /* Opcode Names */
365      public static final String opcNamesTab[] = {
366            "nop",
367            "aconst_null",
368            "iconst_m1",
369            "iconst_0",
370            "iconst_1",
371            "iconst_2",
372            "iconst_3",
373            "iconst_4",
374            "iconst_5",
375            "lconst_0",
376            "lconst_1",
377            "fconst_0",
378            "fconst_1",
379            "fconst_2",
380            "dconst_0",
381            "dconst_1",
382            "bipush",
383            "sipush",
384            "ldc",
385            "ldc_w",
386            "ldc2_w",
387            "iload",
388            "lload",
389            "fload",
390            "dload",
391            "aload",
392            "iload_0",
393            "iload_1",
394            "iload_2",
395            "iload_3",
396            "lload_0",
397            "lload_1",
398            "lload_2",
399            "lload_3",
400            "fload_0",
401            "fload_1",
402            "fload_2",
403            "fload_3",
404            "dload_0",
405            "dload_1",
406            "dload_2",
407            "dload_3",
408            "aload_0",
409            "aload_1",
410            "aload_2",
411            "aload_3",
412            "iaload",
413            "laload",
414            "faload",
415            "daload",
416            "aaload",
417            "baload",
418            "caload",
419            "saload",
420            "istore",
421            "lstore",
422            "fstore",
423            "dstore",
424            "astore",
425            "istore_0",
426            "istore_1",
427            "istore_2",
428            "istore_3",
429            "lstore_0",
430            "lstore_1",
431            "lstore_2",
432            "lstore_3",
433            "fstore_0",
434            "fstore_1",
435            "fstore_2",
436            "fstore_3",
437            "dstore_0",
438            "dstore_1",
439            "dstore_2",
440            "dstore_3",
441            "astore_0",
442            "astore_1",
443            "astore_2",
444            "astore_3",
445            "iastore",
446            "lastore",
447            "fastore",
448            "dastore",
449            "aastore",
450            "bastore",
451            "castore",
452            "sastore",
453            "pop",
454            "pop2",
455            "dup",
456            "dup_x1",
457            "dup_x2",
458            "dup2",
459            "dup2_x1",
460            "dup2_x2",
461            "swap",
462            "iadd",
463            "ladd",
464            "fadd",
465            "dadd",
466            "isub",
467            "lsub",
468            "fsub",
469            "dsub",
470            "imul",
471            "lmul",
472            "fmul",
473            "dmul",
474            "idiv",
475            "ldiv",
476            "fdiv",
477            "ddiv",
478            "irem",
479            "lrem",
480            "frem",
481            "drem",
482            "ineg",
483            "lneg",
484            "fneg",
485            "dneg",
486            "ishl",
487            "lshl",
488            "ishr",
489            "lshr",
490            "iushr",
491            "lushr",
492            "iand",
493            "land",
494            "ior",
495            "lor",
496            "ixor",
497            "lxor",
498            "iinc",
499            "i2l",
500            "i2f",
501            "i2d",
502            "l2i",
503            "l2f",
504            "l2d",
505            "f2i",
506            "f2l",
507            "f2d",
508            "d2i",
509            "d2l",
510            "d2f",
511            "i2b",
512            "i2c",
513            "i2s",
514            "lcmp",
515            "fcmpl",
516            "fcmpg",
517            "dcmpl",
518            "dcmpg",
519            "ifeq",
520            "ifne",
521            "iflt",
522            "ifge",
523            "ifgt",
524            "ifle",
525            "if_icmpeq",
526            "if_icmpne",
527            "if_icmplt",
528            "if_icmpge",
529            "if_icmpgt",
530            "if_icmple",
531            "if_acmpeq",
532            "if_acmpne",
533            "goto",
534            "jsr",
535            "ret",
536            "tableswitch",
537            "lookupswitch",
538            "ireturn",
539            "lreturn",
540            "freturn",
541            "dreturn",
542            "areturn",
543            "return",
544            "getstatic",
545            "putstatic",
546            "getfield",
547            "putfield",
548            "invokevirtual",
549            "invokespecial", //     was "invokenonvirtual",
550            "invokestatic",
551            "invokeinterface",
552            "bytecode 186", //"xxxunusedxxx",
553            "new",
554            "newarray",
555            "anewarray",
556            "arraylength",
557            "athrow",
558            "checkcast",
559            "instanceof",
560            "monitorenter",
561            "monitorexit",
562             null, // "wide",
563            "multianewarray",
564            "ifnull",
565            "ifnonnull",
566            "goto_w",
567            "jsr_w",
568            "bytecode 202", // "breakpoint",
569            "bytecode",
570            "try",
571            "endtry",
572            "catch",
573            "var",
574            "endvar",
575            "locals_map",
576            "stack_map"
577      };
578    
579        /* Opcode Lengths */
580      public static final int opcLengthsTab[] = {
581            1,
582            1,
583            1,
584            1,
585            1,
586            1,
587            1,
588            1,
589            1,
590            1,
591            1,
592            1,
593            1,
594            1,
595            1,
596            1,
597            2,
598            3,
599            2,
600            3,
601            3,
602            2,
603            2,
604            2,
605            2,
606            2,
607            1,
608            1,
609            1,
610            1,
611            1,
612            1,
613            1,
614            1,
615            1,
616            1,
617            1,
618            1,
619            1,
620            1,
621            1,
622            1,
623            1,
624            1,
625            1,
626            1,
627            1,
628            1,
629            1,
630            1,
631            1,
632            1,
633            1,
634            1,
635            2,
636            2,
637            2,
638            2,
639            2,
640            1,
641            1,
642            1,
643            1,
644            1,
645            1,
646            1,
647            1,
648            1,
649            1,
650            1,
651            1,
652            1,
653            1,
654            1,
655            1,
656            1,
657            1,
658            1,
659            1,
660            1,
661            1,
662            1,
663            1,
664            1,
665            1,
666            1,
667            1,
668            1,
669            1,
670            1,
671            1,
672            1,
673            1,
674            1,
675            1,
676            1,
677            1,
678            1,
679            1,
680            1,
681            1,
682            1,
683            1,
684            1,
685            1,
686            1,
687            1,
688            1,
689            1,
690            1,
691            1,
692            1,
693            1,
694            1,
695            1,
696            1,
697            1,
698            1,
699            1,
700            1,
701            1,
702            1,
703            1,
704            1,
705            1,
706            1,
707            1,
708            1,
709            1,
710            1,
711            1,
712            1,
713            3,
714            1,
715            1,
716            1,
717            1,
718            1,
719            1,
720            1,
721            1,
722            1,
723            1,
724            1,
725            1,
726            1,
727            1,
728            1,
729            1,
730            1,
731            1,
732            1,
733            1,
734            3,
735            3,
736            3,
737            3,
738            3,
739            3,
740            3,
741            3,
742            3,
743            3,
744            3,
745            3,
746            3,
747            3,
748            3,
749            3,
750            2,
751            99,
752            99,
753            1,
754            1,
755            1,
756            1,
757            1,
758            1,
759            3,
760            3,
761            3,
762            3,
763            3,
764            3,
765            3,
766            5,
767            0,
768            3,
769            2,
770            3,
771            1,
772            1,
773            3,
774            3,
775            1,
776            1,
777            0, // wide
778            4,
779            3,
780            3,
781            5,
782            5,
783            1,
784            1, 0, 0, 0, 0, 0 // pseudo
785      };
786    
787    }