...

Source file src/github.com/leodido/go-urn/machine.go

Documentation: github.com/leodido/go-urn

     1  package urn
     2  
     3  import (
     4  	"fmt"
     5  
     6  	scimschema "github.com/leodido/go-urn/scim/schema"
     7  )
     8  
     9  var (
    10  	errPrefix              = "expecting the prefix to be the \"urn\" string (whatever case) [col %d]"
    11  	errIdentifier          = "expecting the identifier to be string (1..31 alnum chars, also containing dashes but not at its beginning) [col %d]"
    12  	errSpecificString      = "expecting the specific string to be a string containing alnum, hex, or others ([()+,-.:=@;$_!*']) chars [col %d]"
    13  	errNoUrnWithinID       = "expecting the identifier to not contain the \"urn\" reserved string [col %d]"
    14  	errHex                 = "expecting the percent encoded chars to be well-formed (%%alnum{2}) [col %d]"
    15  	errSCIMNamespace       = "expecing the SCIM namespace identifier (ietf:params:scim) [col %d]"
    16  	errSCIMType            = "expecting a correct SCIM type (schemas, api, param) [col %d]"
    17  	errSCIMName            = "expecting one or more alnum char in the SCIM name part [col %d]"
    18  	errSCIMOther           = "expecting a well-formed other SCIM part [col %d]"
    19  	errSCIMOtherIncomplete = "expecting a not empty SCIM other part after colon [col %d]"
    20  	err8141InformalID      = "informal URN namespace must be in the form urn-[1-9][0-9] [col %d]"
    21  	err8141SpecificString  = "expecting the specific string to contain alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] not in first position) chars [col %d]"
    22  	err8141Identifier      = "expecting the indentifier to be a string with (length 2 to 32 chars) containing alnum (or dashes) not starting or ending with a dash [col %d]"
    23  	err8141RComponentStart = "expecting only one r-component (starting with the ?+ sequence) [col %d]"
    24  	err8141QComponentStart = "expecting only one q-component (starting with the ?= sequence) [col %d]"
    25  	err8141MalformedRComp  = "expecting a non-empty r-component containing alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] but not at its beginning) [col %d]"
    26  	err8141MalformedQComp  = "expecting a non-empty q-component containing alnum, hex, or others ([~&()+,-.:=@;$_!*'] or [/?] but not at its beginning) [col %d]"
    27  )
    28  var _toStateActions []byte = []byte{
    29  	0, 0, 0, 0, 0, 0, 0, 0,
    30  	0, 0, 0, 0, 0, 0, 0, 0,
    31  	0, 0, 0, 0, 0, 0, 0, 0,
    32  	0, 0, 0, 0, 0, 0, 0, 0,
    33  	0, 0, 0, 0, 0, 0, 0, 0,
    34  	0, 0, 0, 0, 0, 0, 0, 0,
    35  	0, 0, 0, 0, 0, 0, 0, 0,
    36  	0, 0, 0, 0, 0, 0, 0, 0,
    37  	0, 0, 0, 0, 0, 0, 0, 0,
    38  	0, 0, 0, 0, 0, 0, 0, 0,
    39  	0, 0, 0, 0, 0, 0, 0, 0,
    40  	0, 0, 0, 0, 0, 0, 0, 0,
    41  	0, 0, 0, 0, 0, 0, 0, 0,
    42  	0, 0, 0, 0, 0, 0, 0, 0,
    43  	0, 0, 0, 0, 0, 0, 0, 0,
    44  	0, 0, 0, 0, 0, 0, 0, 0,
    45  	0, 0, 0, 0, 0, 0, 0, 0,
    46  	0, 0, 0, 0, 0, 0, 0, 0,
    47  	0, 0, 0, 0, 0, 0, 0, 0,
    48  	0, 0, 0, 0, 0, 0, 0, 0,
    49  	0, 0, 0, 0, 0, 0, 0, 0,
    50  	0, 0, 0, 33, 0, 0, 0, 0,
    51  	0, 0, 0, 0, 0, 0, 0, 0,
    52  	0, 0, 0, 0, 0, 0, 0, 0,
    53  	0, 0,
    54  }
    55  
    56  var _eofActions []byte = []byte{
    57  	0, 1, 1, 1, 1, 4, 6, 6,
    58  	6, 6, 6, 6, 6, 6, 6, 6,
    59  	6, 6, 6, 6, 6, 6, 6, 6,
    60  	6, 6, 6, 6, 6, 6, 6, 6,
    61  	6, 6, 6, 6, 6, 6, 8, 9,
    62  	9, 4, 4, 11, 1, 1, 1, 1,
    63  	12, 12, 12, 12, 12, 12, 12, 12,
    64  	12, 12, 12, 12, 12, 12, 12, 12,
    65  	12, 14, 14, 14, 14, 16, 18, 20,
    66  	20, 14, 14, 14, 14, 14, 14, 14,
    67  	14, 14, 14, 1, 1, 1, 1, 21,
    68  	22, 22, 22, 22, 22, 22, 22, 22,
    69  	22, 22, 22, 22, 22, 22, 22, 22,
    70  	22, 22, 22, 22, 22, 22, 22, 22,
    71  	22, 22, 22, 22, 22, 22, 22, 22,
    72  	23, 24, 24, 25, 25, 0, 26, 28,
    73  	28, 29, 29, 30, 30, 26, 26, 31,
    74  	31, 22, 22, 22, 22, 22, 22, 22,
    75  	22, 22, 22, 22, 22, 22, 22, 22,
    76  	22, 22, 22, 22, 22, 22, 22, 22,
    77  	22, 22, 22, 22, 22, 22, 22, 21,
    78  	21, 22, 22, 22, 34, 34, 35, 37,
    79  	37, 38, 40, 41, 41, 38, 42, 42,
    80  	42, 44, 42, 48, 48, 48, 50, 44,
    81  	50, 0,
    82  }
    83  
    84  const start int = 1
    85  const firstFinal int = 172
    86  
    87  const enScimOnly int = 44
    88  const enRfc8141Only int = 83
    89  const enFail int = 193
    90  const enMain int = 1
    91  
    92  // Machine is the interface representing the FSM
    93  type Machine interface {
    94  	Error() error
    95  	Parse(input []byte) (*URN, error)
    96  	WithParsingMode(ParsingMode)
    97  }
    98  
    99  type machine struct {
   100  	data           []byte
   101  	cs             int
   102  	p, pe, eof, pb int
   103  	err            error
   104  	startParsingAt int
   105  	parsingMode    ParsingMode
   106  	parsingModeSet bool
   107  }
   108  
   109  // NewMachine creates a new FSM able to parse RFC 2141 strings.
   110  func NewMachine(options ...Option) Machine {
   111  	m := &machine{
   112  		parsingModeSet: false,
   113  	}
   114  
   115  	for _, o := range options {
   116  		o(m)
   117  	}
   118  	// Set default parsing mode
   119  	if !m.parsingModeSet {
   120  		m.WithParsingMode(DefaultParsingMode)
   121  	}
   122  
   123  	return m
   124  }
   125  
   126  // Err returns the error that occurred on the last call to Parse.
   127  //
   128  // If the result is nil, then the line was parsed successfully.
   129  func (m *machine) Error() error {
   130  	return m.err
   131  }
   132  
   133  func (m *machine) text() []byte {
   134  	return m.data[m.pb:m.p]
   135  }
   136  
   137  // Parse parses the input byte array as a RFC 2141 or RFC7643 string.
   138  func (m *machine) Parse(input []byte) (*URN, error) {
   139  	m.data = input
   140  	m.p = 0
   141  	m.pb = 0
   142  	m.pe = len(input)
   143  	m.eof = len(input)
   144  	m.err = nil
   145  	m.cs = m.startParsingAt
   146  	output := &URN{
   147  		tolower: []int{},
   148  	}
   149  	{
   150  		if (m.p) == (m.pe) {
   151  			goto _testEof
   152  		}
   153  		if m.cs == 0 {
   154  			goto _out
   155  		}
   156  	_resume:
   157  		switch m.cs {
   158  		case 1:
   159  			switch (m.data)[(m.p)] {
   160  			case 85:
   161  				goto tr1
   162  			case 117:
   163  				goto tr1
   164  			}
   165  			goto tr0
   166  		case 0:
   167  			goto _out
   168  		case 2:
   169  			switch (m.data)[(m.p)] {
   170  			case 82:
   171  				goto tr2
   172  			case 114:
   173  				goto tr2
   174  			}
   175  			goto tr0
   176  		case 3:
   177  			switch (m.data)[(m.p)] {
   178  			case 78:
   179  				goto tr3
   180  			case 110:
   181  				goto tr3
   182  			}
   183  			goto tr0
   184  		case 4:
   185  			if (m.data)[(m.p)] == 58 {
   186  				goto tr4
   187  			}
   188  			goto tr0
   189  		case 5:
   190  			switch (m.data)[(m.p)] {
   191  			case 85:
   192  				goto tr7
   193  			case 117:
   194  				goto tr7
   195  			}
   196  			switch {
   197  			case (m.data)[(m.p)] < 65:
   198  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   199  					goto tr6
   200  				}
   201  			case (m.data)[(m.p)] > 90:
   202  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   203  					goto tr6
   204  				}
   205  			default:
   206  				goto tr6
   207  			}
   208  			goto tr5
   209  		case 6:
   210  			switch (m.data)[(m.p)] {
   211  			case 45:
   212  				goto tr9
   213  			case 58:
   214  				goto tr10
   215  			}
   216  			switch {
   217  			case (m.data)[(m.p)] < 65:
   218  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   219  					goto tr9
   220  				}
   221  			case (m.data)[(m.p)] > 90:
   222  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   223  					goto tr9
   224  				}
   225  			default:
   226  				goto tr9
   227  			}
   228  			goto tr8
   229  		case 7:
   230  			switch (m.data)[(m.p)] {
   231  			case 45:
   232  				goto tr11
   233  			case 58:
   234  				goto tr10
   235  			}
   236  			switch {
   237  			case (m.data)[(m.p)] < 65:
   238  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   239  					goto tr11
   240  				}
   241  			case (m.data)[(m.p)] > 90:
   242  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   243  					goto tr11
   244  				}
   245  			default:
   246  				goto tr11
   247  			}
   248  			goto tr8
   249  		case 8:
   250  			switch (m.data)[(m.p)] {
   251  			case 45:
   252  				goto tr12
   253  			case 58:
   254  				goto tr10
   255  			}
   256  			switch {
   257  			case (m.data)[(m.p)] < 65:
   258  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   259  					goto tr12
   260  				}
   261  			case (m.data)[(m.p)] > 90:
   262  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   263  					goto tr12
   264  				}
   265  			default:
   266  				goto tr12
   267  			}
   268  			goto tr8
   269  		case 9:
   270  			switch (m.data)[(m.p)] {
   271  			case 45:
   272  				goto tr13
   273  			case 58:
   274  				goto tr10
   275  			}
   276  			switch {
   277  			case (m.data)[(m.p)] < 65:
   278  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   279  					goto tr13
   280  				}
   281  			case (m.data)[(m.p)] > 90:
   282  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   283  					goto tr13
   284  				}
   285  			default:
   286  				goto tr13
   287  			}
   288  			goto tr8
   289  		case 10:
   290  			switch (m.data)[(m.p)] {
   291  			case 45:
   292  				goto tr14
   293  			case 58:
   294  				goto tr10
   295  			}
   296  			switch {
   297  			case (m.data)[(m.p)] < 65:
   298  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   299  					goto tr14
   300  				}
   301  			case (m.data)[(m.p)] > 90:
   302  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   303  					goto tr14
   304  				}
   305  			default:
   306  				goto tr14
   307  			}
   308  			goto tr8
   309  		case 11:
   310  			switch (m.data)[(m.p)] {
   311  			case 45:
   312  				goto tr15
   313  			case 58:
   314  				goto tr10
   315  			}
   316  			switch {
   317  			case (m.data)[(m.p)] < 65:
   318  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   319  					goto tr15
   320  				}
   321  			case (m.data)[(m.p)] > 90:
   322  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   323  					goto tr15
   324  				}
   325  			default:
   326  				goto tr15
   327  			}
   328  			goto tr8
   329  		case 12:
   330  			switch (m.data)[(m.p)] {
   331  			case 45:
   332  				goto tr16
   333  			case 58:
   334  				goto tr10
   335  			}
   336  			switch {
   337  			case (m.data)[(m.p)] < 65:
   338  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   339  					goto tr16
   340  				}
   341  			case (m.data)[(m.p)] > 90:
   342  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   343  					goto tr16
   344  				}
   345  			default:
   346  				goto tr16
   347  			}
   348  			goto tr8
   349  		case 13:
   350  			switch (m.data)[(m.p)] {
   351  			case 45:
   352  				goto tr17
   353  			case 58:
   354  				goto tr10
   355  			}
   356  			switch {
   357  			case (m.data)[(m.p)] < 65:
   358  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   359  					goto tr17
   360  				}
   361  			case (m.data)[(m.p)] > 90:
   362  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   363  					goto tr17
   364  				}
   365  			default:
   366  				goto tr17
   367  			}
   368  			goto tr8
   369  		case 14:
   370  			switch (m.data)[(m.p)] {
   371  			case 45:
   372  				goto tr18
   373  			case 58:
   374  				goto tr10
   375  			}
   376  			switch {
   377  			case (m.data)[(m.p)] < 65:
   378  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   379  					goto tr18
   380  				}
   381  			case (m.data)[(m.p)] > 90:
   382  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   383  					goto tr18
   384  				}
   385  			default:
   386  				goto tr18
   387  			}
   388  			goto tr8
   389  		case 15:
   390  			switch (m.data)[(m.p)] {
   391  			case 45:
   392  				goto tr19
   393  			case 58:
   394  				goto tr10
   395  			}
   396  			switch {
   397  			case (m.data)[(m.p)] < 65:
   398  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   399  					goto tr19
   400  				}
   401  			case (m.data)[(m.p)] > 90:
   402  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   403  					goto tr19
   404  				}
   405  			default:
   406  				goto tr19
   407  			}
   408  			goto tr8
   409  		case 16:
   410  			switch (m.data)[(m.p)] {
   411  			case 45:
   412  				goto tr20
   413  			case 58:
   414  				goto tr10
   415  			}
   416  			switch {
   417  			case (m.data)[(m.p)] < 65:
   418  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   419  					goto tr20
   420  				}
   421  			case (m.data)[(m.p)] > 90:
   422  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   423  					goto tr20
   424  				}
   425  			default:
   426  				goto tr20
   427  			}
   428  			goto tr8
   429  		case 17:
   430  			switch (m.data)[(m.p)] {
   431  			case 45:
   432  				goto tr21
   433  			case 58:
   434  				goto tr10
   435  			}
   436  			switch {
   437  			case (m.data)[(m.p)] < 65:
   438  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   439  					goto tr21
   440  				}
   441  			case (m.data)[(m.p)] > 90:
   442  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   443  					goto tr21
   444  				}
   445  			default:
   446  				goto tr21
   447  			}
   448  			goto tr8
   449  		case 18:
   450  			switch (m.data)[(m.p)] {
   451  			case 45:
   452  				goto tr22
   453  			case 58:
   454  				goto tr10
   455  			}
   456  			switch {
   457  			case (m.data)[(m.p)] < 65:
   458  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   459  					goto tr22
   460  				}
   461  			case (m.data)[(m.p)] > 90:
   462  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   463  					goto tr22
   464  				}
   465  			default:
   466  				goto tr22
   467  			}
   468  			goto tr8
   469  		case 19:
   470  			switch (m.data)[(m.p)] {
   471  			case 45:
   472  				goto tr23
   473  			case 58:
   474  				goto tr10
   475  			}
   476  			switch {
   477  			case (m.data)[(m.p)] < 65:
   478  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   479  					goto tr23
   480  				}
   481  			case (m.data)[(m.p)] > 90:
   482  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   483  					goto tr23
   484  				}
   485  			default:
   486  				goto tr23
   487  			}
   488  			goto tr8
   489  		case 20:
   490  			switch (m.data)[(m.p)] {
   491  			case 45:
   492  				goto tr24
   493  			case 58:
   494  				goto tr10
   495  			}
   496  			switch {
   497  			case (m.data)[(m.p)] < 65:
   498  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   499  					goto tr24
   500  				}
   501  			case (m.data)[(m.p)] > 90:
   502  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   503  					goto tr24
   504  				}
   505  			default:
   506  				goto tr24
   507  			}
   508  			goto tr8
   509  		case 21:
   510  			switch (m.data)[(m.p)] {
   511  			case 45:
   512  				goto tr25
   513  			case 58:
   514  				goto tr10
   515  			}
   516  			switch {
   517  			case (m.data)[(m.p)] < 65:
   518  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   519  					goto tr25
   520  				}
   521  			case (m.data)[(m.p)] > 90:
   522  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   523  					goto tr25
   524  				}
   525  			default:
   526  				goto tr25
   527  			}
   528  			goto tr8
   529  		case 22:
   530  			switch (m.data)[(m.p)] {
   531  			case 45:
   532  				goto tr26
   533  			case 58:
   534  				goto tr10
   535  			}
   536  			switch {
   537  			case (m.data)[(m.p)] < 65:
   538  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   539  					goto tr26
   540  				}
   541  			case (m.data)[(m.p)] > 90:
   542  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   543  					goto tr26
   544  				}
   545  			default:
   546  				goto tr26
   547  			}
   548  			goto tr8
   549  		case 23:
   550  			switch (m.data)[(m.p)] {
   551  			case 45:
   552  				goto tr27
   553  			case 58:
   554  				goto tr10
   555  			}
   556  			switch {
   557  			case (m.data)[(m.p)] < 65:
   558  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   559  					goto tr27
   560  				}
   561  			case (m.data)[(m.p)] > 90:
   562  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   563  					goto tr27
   564  				}
   565  			default:
   566  				goto tr27
   567  			}
   568  			goto tr8
   569  		case 24:
   570  			switch (m.data)[(m.p)] {
   571  			case 45:
   572  				goto tr28
   573  			case 58:
   574  				goto tr10
   575  			}
   576  			switch {
   577  			case (m.data)[(m.p)] < 65:
   578  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   579  					goto tr28
   580  				}
   581  			case (m.data)[(m.p)] > 90:
   582  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   583  					goto tr28
   584  				}
   585  			default:
   586  				goto tr28
   587  			}
   588  			goto tr8
   589  		case 25:
   590  			switch (m.data)[(m.p)] {
   591  			case 45:
   592  				goto tr29
   593  			case 58:
   594  				goto tr10
   595  			}
   596  			switch {
   597  			case (m.data)[(m.p)] < 65:
   598  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   599  					goto tr29
   600  				}
   601  			case (m.data)[(m.p)] > 90:
   602  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   603  					goto tr29
   604  				}
   605  			default:
   606  				goto tr29
   607  			}
   608  			goto tr8
   609  		case 26:
   610  			switch (m.data)[(m.p)] {
   611  			case 45:
   612  				goto tr30
   613  			case 58:
   614  				goto tr10
   615  			}
   616  			switch {
   617  			case (m.data)[(m.p)] < 65:
   618  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   619  					goto tr30
   620  				}
   621  			case (m.data)[(m.p)] > 90:
   622  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   623  					goto tr30
   624  				}
   625  			default:
   626  				goto tr30
   627  			}
   628  			goto tr8
   629  		case 27:
   630  			switch (m.data)[(m.p)] {
   631  			case 45:
   632  				goto tr31
   633  			case 58:
   634  				goto tr10
   635  			}
   636  			switch {
   637  			case (m.data)[(m.p)] < 65:
   638  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   639  					goto tr31
   640  				}
   641  			case (m.data)[(m.p)] > 90:
   642  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   643  					goto tr31
   644  				}
   645  			default:
   646  				goto tr31
   647  			}
   648  			goto tr8
   649  		case 28:
   650  			switch (m.data)[(m.p)] {
   651  			case 45:
   652  				goto tr32
   653  			case 58:
   654  				goto tr10
   655  			}
   656  			switch {
   657  			case (m.data)[(m.p)] < 65:
   658  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   659  					goto tr32
   660  				}
   661  			case (m.data)[(m.p)] > 90:
   662  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   663  					goto tr32
   664  				}
   665  			default:
   666  				goto tr32
   667  			}
   668  			goto tr8
   669  		case 29:
   670  			switch (m.data)[(m.p)] {
   671  			case 45:
   672  				goto tr33
   673  			case 58:
   674  				goto tr10
   675  			}
   676  			switch {
   677  			case (m.data)[(m.p)] < 65:
   678  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   679  					goto tr33
   680  				}
   681  			case (m.data)[(m.p)] > 90:
   682  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   683  					goto tr33
   684  				}
   685  			default:
   686  				goto tr33
   687  			}
   688  			goto tr8
   689  		case 30:
   690  			switch (m.data)[(m.p)] {
   691  			case 45:
   692  				goto tr34
   693  			case 58:
   694  				goto tr10
   695  			}
   696  			switch {
   697  			case (m.data)[(m.p)] < 65:
   698  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   699  					goto tr34
   700  				}
   701  			case (m.data)[(m.p)] > 90:
   702  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   703  					goto tr34
   704  				}
   705  			default:
   706  				goto tr34
   707  			}
   708  			goto tr8
   709  		case 31:
   710  			switch (m.data)[(m.p)] {
   711  			case 45:
   712  				goto tr35
   713  			case 58:
   714  				goto tr10
   715  			}
   716  			switch {
   717  			case (m.data)[(m.p)] < 65:
   718  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   719  					goto tr35
   720  				}
   721  			case (m.data)[(m.p)] > 90:
   722  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   723  					goto tr35
   724  				}
   725  			default:
   726  				goto tr35
   727  			}
   728  			goto tr8
   729  		case 32:
   730  			switch (m.data)[(m.p)] {
   731  			case 45:
   732  				goto tr36
   733  			case 58:
   734  				goto tr10
   735  			}
   736  			switch {
   737  			case (m.data)[(m.p)] < 65:
   738  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   739  					goto tr36
   740  				}
   741  			case (m.data)[(m.p)] > 90:
   742  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   743  					goto tr36
   744  				}
   745  			default:
   746  				goto tr36
   747  			}
   748  			goto tr8
   749  		case 33:
   750  			switch (m.data)[(m.p)] {
   751  			case 45:
   752  				goto tr37
   753  			case 58:
   754  				goto tr10
   755  			}
   756  			switch {
   757  			case (m.data)[(m.p)] < 65:
   758  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   759  					goto tr37
   760  				}
   761  			case (m.data)[(m.p)] > 90:
   762  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   763  					goto tr37
   764  				}
   765  			default:
   766  				goto tr37
   767  			}
   768  			goto tr8
   769  		case 34:
   770  			switch (m.data)[(m.p)] {
   771  			case 45:
   772  				goto tr38
   773  			case 58:
   774  				goto tr10
   775  			}
   776  			switch {
   777  			case (m.data)[(m.p)] < 65:
   778  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   779  					goto tr38
   780  				}
   781  			case (m.data)[(m.p)] > 90:
   782  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   783  					goto tr38
   784  				}
   785  			default:
   786  				goto tr38
   787  			}
   788  			goto tr8
   789  		case 35:
   790  			switch (m.data)[(m.p)] {
   791  			case 45:
   792  				goto tr39
   793  			case 58:
   794  				goto tr10
   795  			}
   796  			switch {
   797  			case (m.data)[(m.p)] < 65:
   798  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   799  					goto tr39
   800  				}
   801  			case (m.data)[(m.p)] > 90:
   802  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   803  					goto tr39
   804  				}
   805  			default:
   806  				goto tr39
   807  			}
   808  			goto tr8
   809  		case 36:
   810  			switch (m.data)[(m.p)] {
   811  			case 45:
   812  				goto tr40
   813  			case 58:
   814  				goto tr10
   815  			}
   816  			switch {
   817  			case (m.data)[(m.p)] < 65:
   818  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   819  					goto tr40
   820  				}
   821  			case (m.data)[(m.p)] > 90:
   822  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   823  					goto tr40
   824  				}
   825  			default:
   826  				goto tr40
   827  			}
   828  			goto tr8
   829  		case 37:
   830  			if (m.data)[(m.p)] == 58 {
   831  				goto tr10
   832  			}
   833  			goto tr8
   834  		case 38:
   835  			switch (m.data)[(m.p)] {
   836  			case 33:
   837  				goto tr42
   838  			case 36:
   839  				goto tr42
   840  			case 37:
   841  				goto tr43
   842  			case 61:
   843  				goto tr42
   844  			case 95:
   845  				goto tr42
   846  			}
   847  			switch {
   848  			case (m.data)[(m.p)] < 48:
   849  				if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
   850  					goto tr42
   851  				}
   852  			case (m.data)[(m.p)] > 59:
   853  				switch {
   854  				case (m.data)[(m.p)] > 90:
   855  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   856  						goto tr42
   857  					}
   858  				case (m.data)[(m.p)] >= 64:
   859  					goto tr42
   860  				}
   861  			default:
   862  				goto tr42
   863  			}
   864  			goto tr41
   865  		case 172:
   866  			switch (m.data)[(m.p)] {
   867  			case 33:
   868  				goto tr212
   869  			case 36:
   870  				goto tr212
   871  			case 37:
   872  				goto tr213
   873  			case 61:
   874  				goto tr212
   875  			case 95:
   876  				goto tr212
   877  			}
   878  			switch {
   879  			case (m.data)[(m.p)] < 48:
   880  				if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
   881  					goto tr212
   882  				}
   883  			case (m.data)[(m.p)] > 59:
   884  				switch {
   885  				case (m.data)[(m.p)] > 90:
   886  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   887  						goto tr212
   888  					}
   889  				case (m.data)[(m.p)] >= 64:
   890  					goto tr212
   891  				}
   892  			default:
   893  				goto tr212
   894  			}
   895  			goto tr41
   896  		case 39:
   897  			switch {
   898  			case (m.data)[(m.p)] < 65:
   899  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   900  					goto tr45
   901  				}
   902  			case (m.data)[(m.p)] > 90:
   903  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   904  					goto tr45
   905  				}
   906  			default:
   907  				goto tr46
   908  			}
   909  			goto tr44
   910  		case 40:
   911  			switch {
   912  			case (m.data)[(m.p)] < 65:
   913  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   914  					goto tr47
   915  				}
   916  			case (m.data)[(m.p)] > 90:
   917  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   918  					goto tr47
   919  				}
   920  			default:
   921  				goto tr48
   922  			}
   923  			goto tr44
   924  		case 173:
   925  			switch (m.data)[(m.p)] {
   926  			case 33:
   927  				goto tr212
   928  			case 36:
   929  				goto tr212
   930  			case 37:
   931  				goto tr213
   932  			case 61:
   933  				goto tr212
   934  			case 95:
   935  				goto tr212
   936  			}
   937  			switch {
   938  			case (m.data)[(m.p)] < 48:
   939  				if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
   940  					goto tr212
   941  				}
   942  			case (m.data)[(m.p)] > 59:
   943  				switch {
   944  				case (m.data)[(m.p)] > 90:
   945  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   946  						goto tr212
   947  					}
   948  				case (m.data)[(m.p)] >= 64:
   949  					goto tr212
   950  				}
   951  			default:
   952  				goto tr212
   953  			}
   954  			goto tr44
   955  		case 41:
   956  			switch (m.data)[(m.p)] {
   957  			case 45:
   958  				goto tr9
   959  			case 58:
   960  				goto tr10
   961  			case 82:
   962  				goto tr49
   963  			case 114:
   964  				goto tr49
   965  			}
   966  			switch {
   967  			case (m.data)[(m.p)] < 65:
   968  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   969  					goto tr9
   970  				}
   971  			case (m.data)[(m.p)] > 90:
   972  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   973  					goto tr9
   974  				}
   975  			default:
   976  				goto tr9
   977  			}
   978  			goto tr5
   979  		case 42:
   980  			switch (m.data)[(m.p)] {
   981  			case 45:
   982  				goto tr11
   983  			case 58:
   984  				goto tr10
   985  			case 78:
   986  				goto tr50
   987  			case 110:
   988  				goto tr50
   989  			}
   990  			switch {
   991  			case (m.data)[(m.p)] < 65:
   992  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
   993  					goto tr11
   994  				}
   995  			case (m.data)[(m.p)] > 90:
   996  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
   997  					goto tr11
   998  				}
   999  			default:
  1000  				goto tr11
  1001  			}
  1002  			goto tr5
  1003  		case 43:
  1004  			if (m.data)[(m.p)] == 45 {
  1005  				goto tr12
  1006  			}
  1007  			switch {
  1008  			case (m.data)[(m.p)] < 65:
  1009  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1010  					goto tr12
  1011  				}
  1012  			case (m.data)[(m.p)] > 90:
  1013  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1014  					goto tr12
  1015  				}
  1016  			default:
  1017  				goto tr12
  1018  			}
  1019  			goto tr51
  1020  		case 44:
  1021  			switch (m.data)[(m.p)] {
  1022  			case 85:
  1023  				goto tr52
  1024  			case 117:
  1025  				goto tr52
  1026  			}
  1027  			goto tr0
  1028  		case 45:
  1029  			switch (m.data)[(m.p)] {
  1030  			case 82:
  1031  				goto tr53
  1032  			case 114:
  1033  				goto tr53
  1034  			}
  1035  			goto tr0
  1036  		case 46:
  1037  			switch (m.data)[(m.p)] {
  1038  			case 78:
  1039  				goto tr54
  1040  			case 110:
  1041  				goto tr54
  1042  			}
  1043  			goto tr0
  1044  		case 47:
  1045  			if (m.data)[(m.p)] == 58 {
  1046  				goto tr55
  1047  			}
  1048  			goto tr0
  1049  		case 48:
  1050  			if (m.data)[(m.p)] == 105 {
  1051  				goto tr57
  1052  			}
  1053  			goto tr56
  1054  		case 49:
  1055  			if (m.data)[(m.p)] == 101 {
  1056  				goto tr58
  1057  			}
  1058  			goto tr56
  1059  		case 50:
  1060  			if (m.data)[(m.p)] == 116 {
  1061  				goto tr59
  1062  			}
  1063  			goto tr56
  1064  		case 51:
  1065  			if (m.data)[(m.p)] == 102 {
  1066  				goto tr60
  1067  			}
  1068  			goto tr56
  1069  		case 52:
  1070  			if (m.data)[(m.p)] == 58 {
  1071  				goto tr61
  1072  			}
  1073  			goto tr56
  1074  		case 53:
  1075  			if (m.data)[(m.p)] == 112 {
  1076  				goto tr62
  1077  			}
  1078  			goto tr56
  1079  		case 54:
  1080  			if (m.data)[(m.p)] == 97 {
  1081  				goto tr63
  1082  			}
  1083  			goto tr56
  1084  		case 55:
  1085  			if (m.data)[(m.p)] == 114 {
  1086  				goto tr64
  1087  			}
  1088  			goto tr56
  1089  		case 56:
  1090  			if (m.data)[(m.p)] == 97 {
  1091  				goto tr65
  1092  			}
  1093  			goto tr56
  1094  		case 57:
  1095  			if (m.data)[(m.p)] == 109 {
  1096  				goto tr66
  1097  			}
  1098  			goto tr56
  1099  		case 58:
  1100  			if (m.data)[(m.p)] == 115 {
  1101  				goto tr67
  1102  			}
  1103  			goto tr56
  1104  		case 59:
  1105  			if (m.data)[(m.p)] == 58 {
  1106  				goto tr68
  1107  			}
  1108  			goto tr56
  1109  		case 60:
  1110  			if (m.data)[(m.p)] == 115 {
  1111  				goto tr69
  1112  			}
  1113  			goto tr56
  1114  		case 61:
  1115  			if (m.data)[(m.p)] == 99 {
  1116  				goto tr70
  1117  			}
  1118  			goto tr56
  1119  		case 62:
  1120  			if (m.data)[(m.p)] == 105 {
  1121  				goto tr71
  1122  			}
  1123  			goto tr56
  1124  		case 63:
  1125  			if (m.data)[(m.p)] == 109 {
  1126  				goto tr72
  1127  			}
  1128  			goto tr56
  1129  		case 64:
  1130  			if (m.data)[(m.p)] == 58 {
  1131  				goto tr73
  1132  			}
  1133  			goto tr56
  1134  		case 65:
  1135  			switch (m.data)[(m.p)] {
  1136  			case 97:
  1137  				goto tr75
  1138  			case 112:
  1139  				goto tr76
  1140  			case 115:
  1141  				goto tr77
  1142  			}
  1143  			goto tr74
  1144  		case 66:
  1145  			if (m.data)[(m.p)] == 112 {
  1146  				goto tr78
  1147  			}
  1148  			goto tr74
  1149  		case 67:
  1150  			if (m.data)[(m.p)] == 105 {
  1151  				goto tr79
  1152  			}
  1153  			goto tr74
  1154  		case 68:
  1155  			if (m.data)[(m.p)] == 58 {
  1156  				goto tr80
  1157  			}
  1158  			goto tr74
  1159  		case 69:
  1160  			switch {
  1161  			case (m.data)[(m.p)] < 65:
  1162  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1163  					goto tr82
  1164  				}
  1165  			case (m.data)[(m.p)] > 90:
  1166  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1167  					goto tr82
  1168  				}
  1169  			default:
  1170  				goto tr82
  1171  			}
  1172  			goto tr81
  1173  		case 174:
  1174  			if (m.data)[(m.p)] == 58 {
  1175  				goto tr215
  1176  			}
  1177  			switch {
  1178  			case (m.data)[(m.p)] < 65:
  1179  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1180  					goto tr214
  1181  				}
  1182  			case (m.data)[(m.p)] > 90:
  1183  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1184  					goto tr214
  1185  				}
  1186  			default:
  1187  				goto tr214
  1188  			}
  1189  			goto tr81
  1190  		case 70:
  1191  			switch (m.data)[(m.p)] {
  1192  			case 33:
  1193  				goto tr84
  1194  			case 36:
  1195  				goto tr84
  1196  			case 37:
  1197  				goto tr85
  1198  			case 61:
  1199  				goto tr84
  1200  			case 95:
  1201  				goto tr84
  1202  			}
  1203  			switch {
  1204  			case (m.data)[(m.p)] < 48:
  1205  				if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  1206  					goto tr84
  1207  				}
  1208  			case (m.data)[(m.p)] > 59:
  1209  				switch {
  1210  				case (m.data)[(m.p)] > 90:
  1211  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1212  						goto tr84
  1213  					}
  1214  				case (m.data)[(m.p)] >= 64:
  1215  					goto tr84
  1216  				}
  1217  			default:
  1218  				goto tr84
  1219  			}
  1220  			goto tr83
  1221  		case 175:
  1222  			switch (m.data)[(m.p)] {
  1223  			case 33:
  1224  				goto tr216
  1225  			case 36:
  1226  				goto tr216
  1227  			case 37:
  1228  				goto tr217
  1229  			case 61:
  1230  				goto tr216
  1231  			case 95:
  1232  				goto tr216
  1233  			}
  1234  			switch {
  1235  			case (m.data)[(m.p)] < 48:
  1236  				if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  1237  					goto tr216
  1238  				}
  1239  			case (m.data)[(m.p)] > 59:
  1240  				switch {
  1241  				case (m.data)[(m.p)] > 90:
  1242  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1243  						goto tr216
  1244  					}
  1245  				case (m.data)[(m.p)] >= 64:
  1246  					goto tr216
  1247  				}
  1248  			default:
  1249  				goto tr216
  1250  			}
  1251  			goto tr83
  1252  		case 71:
  1253  			switch {
  1254  			case (m.data)[(m.p)] < 65:
  1255  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1256  					goto tr87
  1257  				}
  1258  			case (m.data)[(m.p)] > 90:
  1259  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1260  					goto tr87
  1261  				}
  1262  			default:
  1263  				goto tr88
  1264  			}
  1265  			goto tr86
  1266  		case 72:
  1267  			switch {
  1268  			case (m.data)[(m.p)] < 65:
  1269  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1270  					goto tr89
  1271  				}
  1272  			case (m.data)[(m.p)] > 90:
  1273  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1274  					goto tr89
  1275  				}
  1276  			default:
  1277  				goto tr90
  1278  			}
  1279  			goto tr86
  1280  		case 176:
  1281  			switch (m.data)[(m.p)] {
  1282  			case 33:
  1283  				goto tr216
  1284  			case 36:
  1285  				goto tr216
  1286  			case 37:
  1287  				goto tr217
  1288  			case 61:
  1289  				goto tr216
  1290  			case 95:
  1291  				goto tr216
  1292  			}
  1293  			switch {
  1294  			case (m.data)[(m.p)] < 48:
  1295  				if 39 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  1296  					goto tr216
  1297  				}
  1298  			case (m.data)[(m.p)] > 59:
  1299  				switch {
  1300  				case (m.data)[(m.p)] > 90:
  1301  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1302  						goto tr216
  1303  					}
  1304  				case (m.data)[(m.p)] >= 64:
  1305  					goto tr216
  1306  				}
  1307  			default:
  1308  				goto tr216
  1309  			}
  1310  			goto tr86
  1311  		case 73:
  1312  			if (m.data)[(m.p)] == 97 {
  1313  				goto tr91
  1314  			}
  1315  			goto tr74
  1316  		case 74:
  1317  			if (m.data)[(m.p)] == 114 {
  1318  				goto tr92
  1319  			}
  1320  			goto tr74
  1321  		case 75:
  1322  			if (m.data)[(m.p)] == 97 {
  1323  				goto tr93
  1324  			}
  1325  			goto tr74
  1326  		case 76:
  1327  			if (m.data)[(m.p)] == 109 {
  1328  				goto tr79
  1329  			}
  1330  			goto tr74
  1331  		case 77:
  1332  			if (m.data)[(m.p)] == 99 {
  1333  				goto tr94
  1334  			}
  1335  			goto tr74
  1336  		case 78:
  1337  			if (m.data)[(m.p)] == 104 {
  1338  				goto tr95
  1339  			}
  1340  			goto tr74
  1341  		case 79:
  1342  			if (m.data)[(m.p)] == 101 {
  1343  				goto tr96
  1344  			}
  1345  			goto tr74
  1346  		case 80:
  1347  			if (m.data)[(m.p)] == 109 {
  1348  				goto tr97
  1349  			}
  1350  			goto tr74
  1351  		case 81:
  1352  			if (m.data)[(m.p)] == 97 {
  1353  				goto tr98
  1354  			}
  1355  			goto tr74
  1356  		case 82:
  1357  			if (m.data)[(m.p)] == 115 {
  1358  				goto tr79
  1359  			}
  1360  			goto tr74
  1361  		case 83:
  1362  			switch (m.data)[(m.p)] {
  1363  			case 85:
  1364  				goto tr99
  1365  			case 117:
  1366  				goto tr99
  1367  			}
  1368  			goto tr0
  1369  		case 84:
  1370  			switch (m.data)[(m.p)] {
  1371  			case 82:
  1372  				goto tr100
  1373  			case 114:
  1374  				goto tr100
  1375  			}
  1376  			goto tr0
  1377  		case 85:
  1378  			switch (m.data)[(m.p)] {
  1379  			case 78:
  1380  				goto tr101
  1381  			case 110:
  1382  				goto tr101
  1383  			}
  1384  			goto tr0
  1385  		case 86:
  1386  			if (m.data)[(m.p)] == 58 {
  1387  				goto tr102
  1388  			}
  1389  			goto tr0
  1390  		case 87:
  1391  			switch (m.data)[(m.p)] {
  1392  			case 85:
  1393  				goto tr105
  1394  			case 117:
  1395  				goto tr105
  1396  			}
  1397  			switch {
  1398  			case (m.data)[(m.p)] < 65:
  1399  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1400  					goto tr104
  1401  				}
  1402  			case (m.data)[(m.p)] > 90:
  1403  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1404  					goto tr104
  1405  				}
  1406  			default:
  1407  				goto tr104
  1408  			}
  1409  			goto tr103
  1410  		case 88:
  1411  			if (m.data)[(m.p)] == 45 {
  1412  				goto tr107
  1413  			}
  1414  			switch {
  1415  			case (m.data)[(m.p)] < 65:
  1416  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1417  					goto tr108
  1418  				}
  1419  			case (m.data)[(m.p)] > 90:
  1420  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1421  					goto tr108
  1422  				}
  1423  			default:
  1424  				goto tr108
  1425  			}
  1426  			goto tr106
  1427  		case 89:
  1428  			if (m.data)[(m.p)] == 45 {
  1429  				goto tr109
  1430  			}
  1431  			switch {
  1432  			case (m.data)[(m.p)] < 65:
  1433  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1434  					goto tr110
  1435  				}
  1436  			case (m.data)[(m.p)] > 90:
  1437  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1438  					goto tr110
  1439  				}
  1440  			default:
  1441  				goto tr110
  1442  			}
  1443  			goto tr106
  1444  		case 90:
  1445  			if (m.data)[(m.p)] == 45 {
  1446  				goto tr111
  1447  			}
  1448  			switch {
  1449  			case (m.data)[(m.p)] < 65:
  1450  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1451  					goto tr112
  1452  				}
  1453  			case (m.data)[(m.p)] > 90:
  1454  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1455  					goto tr112
  1456  				}
  1457  			default:
  1458  				goto tr112
  1459  			}
  1460  			goto tr106
  1461  		case 91:
  1462  			if (m.data)[(m.p)] == 45 {
  1463  				goto tr113
  1464  			}
  1465  			switch {
  1466  			case (m.data)[(m.p)] < 65:
  1467  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1468  					goto tr114
  1469  				}
  1470  			case (m.data)[(m.p)] > 90:
  1471  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1472  					goto tr114
  1473  				}
  1474  			default:
  1475  				goto tr114
  1476  			}
  1477  			goto tr106
  1478  		case 92:
  1479  			if (m.data)[(m.p)] == 45 {
  1480  				goto tr115
  1481  			}
  1482  			switch {
  1483  			case (m.data)[(m.p)] < 65:
  1484  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1485  					goto tr116
  1486  				}
  1487  			case (m.data)[(m.p)] > 90:
  1488  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1489  					goto tr116
  1490  				}
  1491  			default:
  1492  				goto tr116
  1493  			}
  1494  			goto tr106
  1495  		case 93:
  1496  			if (m.data)[(m.p)] == 45 {
  1497  				goto tr117
  1498  			}
  1499  			switch {
  1500  			case (m.data)[(m.p)] < 65:
  1501  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1502  					goto tr118
  1503  				}
  1504  			case (m.data)[(m.p)] > 90:
  1505  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1506  					goto tr118
  1507  				}
  1508  			default:
  1509  				goto tr118
  1510  			}
  1511  			goto tr106
  1512  		case 94:
  1513  			if (m.data)[(m.p)] == 45 {
  1514  				goto tr119
  1515  			}
  1516  			switch {
  1517  			case (m.data)[(m.p)] < 65:
  1518  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1519  					goto tr120
  1520  				}
  1521  			case (m.data)[(m.p)] > 90:
  1522  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1523  					goto tr120
  1524  				}
  1525  			default:
  1526  				goto tr120
  1527  			}
  1528  			goto tr106
  1529  		case 95:
  1530  			if (m.data)[(m.p)] == 45 {
  1531  				goto tr121
  1532  			}
  1533  			switch {
  1534  			case (m.data)[(m.p)] < 65:
  1535  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1536  					goto tr122
  1537  				}
  1538  			case (m.data)[(m.p)] > 90:
  1539  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1540  					goto tr122
  1541  				}
  1542  			default:
  1543  				goto tr122
  1544  			}
  1545  			goto tr106
  1546  		case 96:
  1547  			if (m.data)[(m.p)] == 45 {
  1548  				goto tr123
  1549  			}
  1550  			switch {
  1551  			case (m.data)[(m.p)] < 65:
  1552  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1553  					goto tr124
  1554  				}
  1555  			case (m.data)[(m.p)] > 90:
  1556  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1557  					goto tr124
  1558  				}
  1559  			default:
  1560  				goto tr124
  1561  			}
  1562  			goto tr106
  1563  		case 97:
  1564  			if (m.data)[(m.p)] == 45 {
  1565  				goto tr125
  1566  			}
  1567  			switch {
  1568  			case (m.data)[(m.p)] < 65:
  1569  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1570  					goto tr126
  1571  				}
  1572  			case (m.data)[(m.p)] > 90:
  1573  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1574  					goto tr126
  1575  				}
  1576  			default:
  1577  				goto tr126
  1578  			}
  1579  			goto tr106
  1580  		case 98:
  1581  			if (m.data)[(m.p)] == 45 {
  1582  				goto tr127
  1583  			}
  1584  			switch {
  1585  			case (m.data)[(m.p)] < 65:
  1586  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1587  					goto tr128
  1588  				}
  1589  			case (m.data)[(m.p)] > 90:
  1590  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1591  					goto tr128
  1592  				}
  1593  			default:
  1594  				goto tr128
  1595  			}
  1596  			goto tr106
  1597  		case 99:
  1598  			if (m.data)[(m.p)] == 45 {
  1599  				goto tr129
  1600  			}
  1601  			switch {
  1602  			case (m.data)[(m.p)] < 65:
  1603  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1604  					goto tr130
  1605  				}
  1606  			case (m.data)[(m.p)] > 90:
  1607  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1608  					goto tr130
  1609  				}
  1610  			default:
  1611  				goto tr130
  1612  			}
  1613  			goto tr106
  1614  		case 100:
  1615  			if (m.data)[(m.p)] == 45 {
  1616  				goto tr131
  1617  			}
  1618  			switch {
  1619  			case (m.data)[(m.p)] < 65:
  1620  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1621  					goto tr132
  1622  				}
  1623  			case (m.data)[(m.p)] > 90:
  1624  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1625  					goto tr132
  1626  				}
  1627  			default:
  1628  				goto tr132
  1629  			}
  1630  			goto tr106
  1631  		case 101:
  1632  			if (m.data)[(m.p)] == 45 {
  1633  				goto tr133
  1634  			}
  1635  			switch {
  1636  			case (m.data)[(m.p)] < 65:
  1637  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1638  					goto tr134
  1639  				}
  1640  			case (m.data)[(m.p)] > 90:
  1641  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1642  					goto tr134
  1643  				}
  1644  			default:
  1645  				goto tr134
  1646  			}
  1647  			goto tr106
  1648  		case 102:
  1649  			if (m.data)[(m.p)] == 45 {
  1650  				goto tr135
  1651  			}
  1652  			switch {
  1653  			case (m.data)[(m.p)] < 65:
  1654  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1655  					goto tr136
  1656  				}
  1657  			case (m.data)[(m.p)] > 90:
  1658  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1659  					goto tr136
  1660  				}
  1661  			default:
  1662  				goto tr136
  1663  			}
  1664  			goto tr106
  1665  		case 103:
  1666  			if (m.data)[(m.p)] == 45 {
  1667  				goto tr137
  1668  			}
  1669  			switch {
  1670  			case (m.data)[(m.p)] < 65:
  1671  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1672  					goto tr138
  1673  				}
  1674  			case (m.data)[(m.p)] > 90:
  1675  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1676  					goto tr138
  1677  				}
  1678  			default:
  1679  				goto tr138
  1680  			}
  1681  			goto tr106
  1682  		case 104:
  1683  			if (m.data)[(m.p)] == 45 {
  1684  				goto tr139
  1685  			}
  1686  			switch {
  1687  			case (m.data)[(m.p)] < 65:
  1688  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1689  					goto tr140
  1690  				}
  1691  			case (m.data)[(m.p)] > 90:
  1692  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1693  					goto tr140
  1694  				}
  1695  			default:
  1696  				goto tr140
  1697  			}
  1698  			goto tr106
  1699  		case 105:
  1700  			if (m.data)[(m.p)] == 45 {
  1701  				goto tr141
  1702  			}
  1703  			switch {
  1704  			case (m.data)[(m.p)] < 65:
  1705  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1706  					goto tr142
  1707  				}
  1708  			case (m.data)[(m.p)] > 90:
  1709  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1710  					goto tr142
  1711  				}
  1712  			default:
  1713  				goto tr142
  1714  			}
  1715  			goto tr106
  1716  		case 106:
  1717  			if (m.data)[(m.p)] == 45 {
  1718  				goto tr143
  1719  			}
  1720  			switch {
  1721  			case (m.data)[(m.p)] < 65:
  1722  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1723  					goto tr144
  1724  				}
  1725  			case (m.data)[(m.p)] > 90:
  1726  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1727  					goto tr144
  1728  				}
  1729  			default:
  1730  				goto tr144
  1731  			}
  1732  			goto tr106
  1733  		case 107:
  1734  			if (m.data)[(m.p)] == 45 {
  1735  				goto tr145
  1736  			}
  1737  			switch {
  1738  			case (m.data)[(m.p)] < 65:
  1739  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1740  					goto tr146
  1741  				}
  1742  			case (m.data)[(m.p)] > 90:
  1743  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1744  					goto tr146
  1745  				}
  1746  			default:
  1747  				goto tr146
  1748  			}
  1749  			goto tr106
  1750  		case 108:
  1751  			if (m.data)[(m.p)] == 45 {
  1752  				goto tr147
  1753  			}
  1754  			switch {
  1755  			case (m.data)[(m.p)] < 65:
  1756  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1757  					goto tr148
  1758  				}
  1759  			case (m.data)[(m.p)] > 90:
  1760  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1761  					goto tr148
  1762  				}
  1763  			default:
  1764  				goto tr148
  1765  			}
  1766  			goto tr106
  1767  		case 109:
  1768  			if (m.data)[(m.p)] == 45 {
  1769  				goto tr149
  1770  			}
  1771  			switch {
  1772  			case (m.data)[(m.p)] < 65:
  1773  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1774  					goto tr150
  1775  				}
  1776  			case (m.data)[(m.p)] > 90:
  1777  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1778  					goto tr150
  1779  				}
  1780  			default:
  1781  				goto tr150
  1782  			}
  1783  			goto tr106
  1784  		case 110:
  1785  			if (m.data)[(m.p)] == 45 {
  1786  				goto tr151
  1787  			}
  1788  			switch {
  1789  			case (m.data)[(m.p)] < 65:
  1790  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1791  					goto tr152
  1792  				}
  1793  			case (m.data)[(m.p)] > 90:
  1794  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1795  					goto tr152
  1796  				}
  1797  			default:
  1798  				goto tr152
  1799  			}
  1800  			goto tr106
  1801  		case 111:
  1802  			if (m.data)[(m.p)] == 45 {
  1803  				goto tr153
  1804  			}
  1805  			switch {
  1806  			case (m.data)[(m.p)] < 65:
  1807  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1808  					goto tr154
  1809  				}
  1810  			case (m.data)[(m.p)] > 90:
  1811  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1812  					goto tr154
  1813  				}
  1814  			default:
  1815  				goto tr154
  1816  			}
  1817  			goto tr106
  1818  		case 112:
  1819  			if (m.data)[(m.p)] == 45 {
  1820  				goto tr155
  1821  			}
  1822  			switch {
  1823  			case (m.data)[(m.p)] < 65:
  1824  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1825  					goto tr156
  1826  				}
  1827  			case (m.data)[(m.p)] > 90:
  1828  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1829  					goto tr156
  1830  				}
  1831  			default:
  1832  				goto tr156
  1833  			}
  1834  			goto tr106
  1835  		case 113:
  1836  			if (m.data)[(m.p)] == 45 {
  1837  				goto tr157
  1838  			}
  1839  			switch {
  1840  			case (m.data)[(m.p)] < 65:
  1841  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1842  					goto tr158
  1843  				}
  1844  			case (m.data)[(m.p)] > 90:
  1845  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1846  					goto tr158
  1847  				}
  1848  			default:
  1849  				goto tr158
  1850  			}
  1851  			goto tr106
  1852  		case 114:
  1853  			if (m.data)[(m.p)] == 45 {
  1854  				goto tr159
  1855  			}
  1856  			switch {
  1857  			case (m.data)[(m.p)] < 65:
  1858  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1859  					goto tr160
  1860  				}
  1861  			case (m.data)[(m.p)] > 90:
  1862  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1863  					goto tr160
  1864  				}
  1865  			default:
  1866  				goto tr160
  1867  			}
  1868  			goto tr106
  1869  		case 115:
  1870  			if (m.data)[(m.p)] == 45 {
  1871  				goto tr161
  1872  			}
  1873  			switch {
  1874  			case (m.data)[(m.p)] < 65:
  1875  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1876  					goto tr162
  1877  				}
  1878  			case (m.data)[(m.p)] > 90:
  1879  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1880  					goto tr162
  1881  				}
  1882  			default:
  1883  				goto tr162
  1884  			}
  1885  			goto tr106
  1886  		case 116:
  1887  			if (m.data)[(m.p)] == 45 {
  1888  				goto tr163
  1889  			}
  1890  			switch {
  1891  			case (m.data)[(m.p)] < 65:
  1892  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1893  					goto tr164
  1894  				}
  1895  			case (m.data)[(m.p)] > 90:
  1896  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1897  					goto tr164
  1898  				}
  1899  			default:
  1900  				goto tr164
  1901  			}
  1902  			goto tr106
  1903  		case 117:
  1904  			if (m.data)[(m.p)] == 45 {
  1905  				goto tr165
  1906  			}
  1907  			switch {
  1908  			case (m.data)[(m.p)] < 65:
  1909  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1910  					goto tr166
  1911  				}
  1912  			case (m.data)[(m.p)] > 90:
  1913  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1914  					goto tr166
  1915  				}
  1916  			default:
  1917  				goto tr166
  1918  			}
  1919  			goto tr106
  1920  		case 118:
  1921  			switch {
  1922  			case (m.data)[(m.p)] < 65:
  1923  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  1924  					goto tr167
  1925  				}
  1926  			case (m.data)[(m.p)] > 90:
  1927  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1928  					goto tr167
  1929  				}
  1930  			default:
  1931  				goto tr167
  1932  			}
  1933  			goto tr106
  1934  		case 119:
  1935  			if (m.data)[(m.p)] == 58 {
  1936  				goto tr168
  1937  			}
  1938  			goto tr106
  1939  		case 120:
  1940  			switch (m.data)[(m.p)] {
  1941  			case 33:
  1942  				goto tr170
  1943  			case 37:
  1944  				goto tr171
  1945  			case 61:
  1946  				goto tr170
  1947  			case 95:
  1948  				goto tr170
  1949  			case 126:
  1950  				goto tr170
  1951  			}
  1952  			switch {
  1953  			case (m.data)[(m.p)] < 48:
  1954  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  1955  					goto tr170
  1956  				}
  1957  			case (m.data)[(m.p)] > 59:
  1958  				switch {
  1959  				case (m.data)[(m.p)] > 90:
  1960  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1961  						goto tr170
  1962  					}
  1963  				case (m.data)[(m.p)] >= 64:
  1964  					goto tr170
  1965  				}
  1966  			default:
  1967  				goto tr170
  1968  			}
  1969  			goto tr169
  1970  		case 177:
  1971  			switch (m.data)[(m.p)] {
  1972  			case 33:
  1973  				goto tr218
  1974  			case 35:
  1975  				goto tr219
  1976  			case 37:
  1977  				goto tr220
  1978  			case 61:
  1979  				goto tr218
  1980  			case 63:
  1981  				goto tr221
  1982  			case 95:
  1983  				goto tr218
  1984  			case 126:
  1985  				goto tr218
  1986  			}
  1987  			switch {
  1988  			case (m.data)[(m.p)] < 64:
  1989  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  1990  					goto tr218
  1991  				}
  1992  			case (m.data)[(m.p)] > 90:
  1993  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  1994  					goto tr218
  1995  				}
  1996  			default:
  1997  				goto tr218
  1998  			}
  1999  			goto tr169
  2000  		case 178:
  2001  			switch (m.data)[(m.p)] {
  2002  			case 33:
  2003  				goto tr222
  2004  			case 37:
  2005  				goto tr223
  2006  			case 61:
  2007  				goto tr222
  2008  			case 95:
  2009  				goto tr222
  2010  			case 126:
  2011  				goto tr222
  2012  			}
  2013  			switch {
  2014  			case (m.data)[(m.p)] < 63:
  2015  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2016  					goto tr222
  2017  				}
  2018  			case (m.data)[(m.p)] > 90:
  2019  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2020  					goto tr222
  2021  				}
  2022  			default:
  2023  				goto tr222
  2024  			}
  2025  			goto tr183
  2026  		case 179:
  2027  			switch (m.data)[(m.p)] {
  2028  			case 33:
  2029  				goto tr224
  2030  			case 37:
  2031  				goto tr225
  2032  			case 61:
  2033  				goto tr224
  2034  			case 95:
  2035  				goto tr224
  2036  			case 126:
  2037  				goto tr224
  2038  			}
  2039  			switch {
  2040  			case (m.data)[(m.p)] < 63:
  2041  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2042  					goto tr224
  2043  				}
  2044  			case (m.data)[(m.p)] > 90:
  2045  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2046  					goto tr224
  2047  				}
  2048  			default:
  2049  				goto tr224
  2050  			}
  2051  			goto tr183
  2052  		case 121:
  2053  			switch {
  2054  			case (m.data)[(m.p)] < 65:
  2055  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2056  					goto tr173
  2057  				}
  2058  			case (m.data)[(m.p)] > 90:
  2059  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2060  					goto tr173
  2061  				}
  2062  			default:
  2063  				goto tr174
  2064  			}
  2065  			goto tr172
  2066  		case 122:
  2067  			switch {
  2068  			case (m.data)[(m.p)] < 65:
  2069  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2070  					goto tr175
  2071  				}
  2072  			case (m.data)[(m.p)] > 90:
  2073  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2074  					goto tr175
  2075  				}
  2076  			default:
  2077  				goto tr176
  2078  			}
  2079  			goto tr172
  2080  		case 180:
  2081  			switch (m.data)[(m.p)] {
  2082  			case 33:
  2083  				goto tr224
  2084  			case 37:
  2085  				goto tr225
  2086  			case 61:
  2087  				goto tr224
  2088  			case 95:
  2089  				goto tr224
  2090  			case 126:
  2091  				goto tr224
  2092  			}
  2093  			switch {
  2094  			case (m.data)[(m.p)] < 63:
  2095  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2096  					goto tr224
  2097  				}
  2098  			case (m.data)[(m.p)] > 90:
  2099  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2100  					goto tr224
  2101  				}
  2102  			default:
  2103  				goto tr224
  2104  			}
  2105  			goto tr172
  2106  		case 123:
  2107  			switch {
  2108  			case (m.data)[(m.p)] < 65:
  2109  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2110  					goto tr178
  2111  				}
  2112  			case (m.data)[(m.p)] > 90:
  2113  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2114  					goto tr178
  2115  				}
  2116  			default:
  2117  				goto tr179
  2118  			}
  2119  			goto tr177
  2120  		case 124:
  2121  			switch {
  2122  			case (m.data)[(m.p)] < 65:
  2123  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2124  					goto tr180
  2125  				}
  2126  			case (m.data)[(m.p)] > 90:
  2127  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2128  					goto tr180
  2129  				}
  2130  			default:
  2131  				goto tr181
  2132  			}
  2133  			goto tr177
  2134  		case 181:
  2135  			switch (m.data)[(m.p)] {
  2136  			case 33:
  2137  				goto tr218
  2138  			case 35:
  2139  				goto tr219
  2140  			case 37:
  2141  				goto tr220
  2142  			case 61:
  2143  				goto tr218
  2144  			case 63:
  2145  				goto tr221
  2146  			case 95:
  2147  				goto tr218
  2148  			case 126:
  2149  				goto tr218
  2150  			}
  2151  			switch {
  2152  			case (m.data)[(m.p)] < 64:
  2153  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2154  					goto tr218
  2155  				}
  2156  			case (m.data)[(m.p)] > 90:
  2157  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2158  					goto tr218
  2159  				}
  2160  			default:
  2161  				goto tr218
  2162  			}
  2163  			goto tr177
  2164  		case 125:
  2165  			switch (m.data)[(m.p)] {
  2166  			case 43:
  2167  				goto tr182
  2168  			case 61:
  2169  				goto tr184
  2170  			}
  2171  			goto tr183
  2172  		case 126:
  2173  			switch (m.data)[(m.p)] {
  2174  			case 33:
  2175  				goto tr186
  2176  			case 37:
  2177  				goto tr187
  2178  			case 61:
  2179  				goto tr186
  2180  			case 63:
  2181  				goto tr188
  2182  			case 95:
  2183  				goto tr186
  2184  			case 126:
  2185  				goto tr186
  2186  			}
  2187  			switch {
  2188  			case (m.data)[(m.p)] < 48:
  2189  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  2190  					goto tr186
  2191  				}
  2192  			case (m.data)[(m.p)] > 59:
  2193  				switch {
  2194  				case (m.data)[(m.p)] > 90:
  2195  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2196  						goto tr186
  2197  					}
  2198  				case (m.data)[(m.p)] >= 64:
  2199  					goto tr186
  2200  				}
  2201  			default:
  2202  				goto tr186
  2203  			}
  2204  			goto tr185
  2205  		case 182:
  2206  			switch (m.data)[(m.p)] {
  2207  			case 33:
  2208  				goto tr226
  2209  			case 35:
  2210  				goto tr227
  2211  			case 37:
  2212  				goto tr228
  2213  			case 61:
  2214  				goto tr226
  2215  			case 63:
  2216  				goto tr229
  2217  			case 95:
  2218  				goto tr226
  2219  			case 126:
  2220  				goto tr226
  2221  			}
  2222  			switch {
  2223  			case (m.data)[(m.p)] < 64:
  2224  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2225  					goto tr226
  2226  				}
  2227  			case (m.data)[(m.p)] > 90:
  2228  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2229  					goto tr226
  2230  				}
  2231  			default:
  2232  				goto tr226
  2233  			}
  2234  			goto tr185
  2235  		case 127:
  2236  			switch {
  2237  			case (m.data)[(m.p)] < 65:
  2238  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2239  					goto tr190
  2240  				}
  2241  			case (m.data)[(m.p)] > 90:
  2242  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2243  					goto tr190
  2244  				}
  2245  			default:
  2246  				goto tr191
  2247  			}
  2248  			goto tr189
  2249  		case 128:
  2250  			switch {
  2251  			case (m.data)[(m.p)] < 65:
  2252  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2253  					goto tr192
  2254  				}
  2255  			case (m.data)[(m.p)] > 90:
  2256  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2257  					goto tr192
  2258  				}
  2259  			default:
  2260  				goto tr193
  2261  			}
  2262  			goto tr189
  2263  		case 183:
  2264  			switch (m.data)[(m.p)] {
  2265  			case 33:
  2266  				goto tr226
  2267  			case 35:
  2268  				goto tr227
  2269  			case 37:
  2270  				goto tr228
  2271  			case 61:
  2272  				goto tr226
  2273  			case 63:
  2274  				goto tr229
  2275  			case 95:
  2276  				goto tr226
  2277  			case 126:
  2278  				goto tr226
  2279  			}
  2280  			switch {
  2281  			case (m.data)[(m.p)] < 64:
  2282  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2283  					goto tr226
  2284  				}
  2285  			case (m.data)[(m.p)] > 90:
  2286  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2287  					goto tr226
  2288  				}
  2289  			default:
  2290  				goto tr226
  2291  			}
  2292  			goto tr189
  2293  		case 184:
  2294  			switch (m.data)[(m.p)] {
  2295  			case 33:
  2296  				goto tr226
  2297  			case 35:
  2298  				goto tr227
  2299  			case 37:
  2300  				goto tr228
  2301  			case 43:
  2302  				goto tr230
  2303  			case 61:
  2304  				goto tr231
  2305  			case 63:
  2306  				goto tr229
  2307  			case 95:
  2308  				goto tr226
  2309  			case 126:
  2310  				goto tr226
  2311  			}
  2312  			switch {
  2313  			case (m.data)[(m.p)] < 64:
  2314  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2315  					goto tr226
  2316  				}
  2317  			case (m.data)[(m.p)] > 90:
  2318  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2319  					goto tr226
  2320  				}
  2321  			default:
  2322  				goto tr226
  2323  			}
  2324  			goto tr185
  2325  		case 185:
  2326  			switch (m.data)[(m.p)] {
  2327  			case 33:
  2328  				goto tr232
  2329  			case 35:
  2330  				goto tr233
  2331  			case 37:
  2332  				goto tr234
  2333  			case 47:
  2334  				goto tr226
  2335  			case 61:
  2336  				goto tr232
  2337  			case 63:
  2338  				goto tr235
  2339  			case 95:
  2340  				goto tr232
  2341  			case 126:
  2342  				goto tr232
  2343  			}
  2344  			switch {
  2345  			case (m.data)[(m.p)] < 64:
  2346  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2347  					goto tr232
  2348  				}
  2349  			case (m.data)[(m.p)] > 90:
  2350  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2351  					goto tr232
  2352  				}
  2353  			default:
  2354  				goto tr232
  2355  			}
  2356  			goto tr185
  2357  		case 186:
  2358  			switch (m.data)[(m.p)] {
  2359  			case 33:
  2360  				goto tr204
  2361  			case 35:
  2362  				goto tr227
  2363  			case 37:
  2364  				goto tr237
  2365  			case 47:
  2366  				goto tr226
  2367  			case 61:
  2368  				goto tr204
  2369  			case 63:
  2370  				goto tr229
  2371  			case 95:
  2372  				goto tr204
  2373  			case 126:
  2374  				goto tr204
  2375  			}
  2376  			switch {
  2377  			case (m.data)[(m.p)] < 64:
  2378  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2379  					goto tr204
  2380  				}
  2381  			case (m.data)[(m.p)] > 90:
  2382  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2383  					goto tr204
  2384  				}
  2385  			default:
  2386  				goto tr204
  2387  			}
  2388  			goto tr236
  2389  		case 187:
  2390  			switch (m.data)[(m.p)] {
  2391  			case 33:
  2392  				goto tr238
  2393  			case 35:
  2394  				goto tr239
  2395  			case 37:
  2396  				goto tr240
  2397  			case 61:
  2398  				goto tr238
  2399  			case 63:
  2400  				goto tr241
  2401  			case 95:
  2402  				goto tr238
  2403  			case 126:
  2404  				goto tr238
  2405  			}
  2406  			switch {
  2407  			case (m.data)[(m.p)] < 64:
  2408  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2409  					goto tr238
  2410  				}
  2411  			case (m.data)[(m.p)] > 90:
  2412  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2413  					goto tr238
  2414  				}
  2415  			default:
  2416  				goto tr238
  2417  			}
  2418  			goto tr203
  2419  		case 129:
  2420  			switch {
  2421  			case (m.data)[(m.p)] < 65:
  2422  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2423  					goto tr195
  2424  				}
  2425  			case (m.data)[(m.p)] > 90:
  2426  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2427  					goto tr195
  2428  				}
  2429  			default:
  2430  				goto tr196
  2431  			}
  2432  			goto tr194
  2433  		case 130:
  2434  			switch {
  2435  			case (m.data)[(m.p)] < 65:
  2436  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2437  					goto tr197
  2438  				}
  2439  			case (m.data)[(m.p)] > 90:
  2440  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2441  					goto tr197
  2442  				}
  2443  			default:
  2444  				goto tr198
  2445  			}
  2446  			goto tr194
  2447  		case 188:
  2448  			switch (m.data)[(m.p)] {
  2449  			case 33:
  2450  				goto tr238
  2451  			case 35:
  2452  				goto tr239
  2453  			case 37:
  2454  				goto tr240
  2455  			case 61:
  2456  				goto tr238
  2457  			case 63:
  2458  				goto tr241
  2459  			case 95:
  2460  				goto tr238
  2461  			case 126:
  2462  				goto tr238
  2463  			}
  2464  			switch {
  2465  			case (m.data)[(m.p)] < 64:
  2466  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2467  					goto tr238
  2468  				}
  2469  			case (m.data)[(m.p)] > 90:
  2470  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2471  					goto tr238
  2472  				}
  2473  			default:
  2474  				goto tr238
  2475  			}
  2476  			goto tr194
  2477  		case 189:
  2478  			switch (m.data)[(m.p)] {
  2479  			case 33:
  2480  				goto tr238
  2481  			case 35:
  2482  				goto tr239
  2483  			case 37:
  2484  				goto tr240
  2485  			case 61:
  2486  				goto tr242
  2487  			case 63:
  2488  				goto tr241
  2489  			case 95:
  2490  				goto tr238
  2491  			case 126:
  2492  				goto tr238
  2493  			}
  2494  			switch {
  2495  			case (m.data)[(m.p)] < 64:
  2496  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2497  					goto tr238
  2498  				}
  2499  			case (m.data)[(m.p)] > 90:
  2500  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2501  					goto tr238
  2502  				}
  2503  			default:
  2504  				goto tr238
  2505  			}
  2506  			goto tr203
  2507  		case 190:
  2508  			switch (m.data)[(m.p)] {
  2509  			case 33:
  2510  				goto tr243
  2511  			case 35:
  2512  				goto tr244
  2513  			case 37:
  2514  				goto tr245
  2515  			case 47:
  2516  				goto tr238
  2517  			case 61:
  2518  				goto tr243
  2519  			case 63:
  2520  				goto tr246
  2521  			case 95:
  2522  				goto tr243
  2523  			case 126:
  2524  				goto tr243
  2525  			}
  2526  			switch {
  2527  			case (m.data)[(m.p)] < 64:
  2528  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 59 {
  2529  					goto tr243
  2530  				}
  2531  			case (m.data)[(m.p)] > 90:
  2532  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2533  					goto tr243
  2534  				}
  2535  			default:
  2536  				goto tr243
  2537  			}
  2538  			goto tr203
  2539  		case 131:
  2540  			switch {
  2541  			case (m.data)[(m.p)] < 65:
  2542  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2543  					goto tr200
  2544  				}
  2545  			case (m.data)[(m.p)] > 90:
  2546  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2547  					goto tr200
  2548  				}
  2549  			default:
  2550  				goto tr201
  2551  			}
  2552  			goto tr199
  2553  		case 132:
  2554  			switch {
  2555  			case (m.data)[(m.p)] < 65:
  2556  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2557  					goto tr197
  2558  				}
  2559  			case (m.data)[(m.p)] > 90:
  2560  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2561  					goto tr197
  2562  				}
  2563  			default:
  2564  				goto tr198
  2565  			}
  2566  			goto tr199
  2567  		case 133:
  2568  			if (m.data)[(m.p)] == 43 {
  2569  				goto tr202
  2570  			}
  2571  			goto tr185
  2572  		case 191:
  2573  			switch (m.data)[(m.p)] {
  2574  			case 33:
  2575  				goto tr232
  2576  			case 35:
  2577  				goto tr233
  2578  			case 37:
  2579  				goto tr234
  2580  			case 61:
  2581  				goto tr232
  2582  			case 63:
  2583  				goto tr247
  2584  			case 95:
  2585  				goto tr232
  2586  			case 126:
  2587  				goto tr232
  2588  			}
  2589  			switch {
  2590  			case (m.data)[(m.p)] < 48:
  2591  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  2592  					goto tr232
  2593  				}
  2594  			case (m.data)[(m.p)] > 59:
  2595  				switch {
  2596  				case (m.data)[(m.p)] > 90:
  2597  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2598  						goto tr232
  2599  					}
  2600  				case (m.data)[(m.p)] >= 64:
  2601  					goto tr232
  2602  				}
  2603  			default:
  2604  				goto tr232
  2605  			}
  2606  			goto tr185
  2607  		case 134:
  2608  			switch (m.data)[(m.p)] {
  2609  			case 43:
  2610  				goto tr202
  2611  			case 61:
  2612  				goto tr184
  2613  			}
  2614  			goto tr185
  2615  		case 135:
  2616  			switch (m.data)[(m.p)] {
  2617  			case 33:
  2618  				goto tr204
  2619  			case 37:
  2620  				goto tr205
  2621  			case 61:
  2622  				goto tr204
  2623  			case 63:
  2624  				goto tr206
  2625  			case 95:
  2626  				goto tr204
  2627  			case 126:
  2628  				goto tr204
  2629  			}
  2630  			switch {
  2631  			case (m.data)[(m.p)] < 48:
  2632  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  2633  					goto tr204
  2634  				}
  2635  			case (m.data)[(m.p)] > 59:
  2636  				switch {
  2637  				case (m.data)[(m.p)] > 90:
  2638  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2639  						goto tr204
  2640  					}
  2641  				case (m.data)[(m.p)] >= 64:
  2642  					goto tr204
  2643  				}
  2644  			default:
  2645  				goto tr204
  2646  			}
  2647  			goto tr203
  2648  		case 136:
  2649  			if (m.data)[(m.p)] == 61 {
  2650  				goto tr207
  2651  			}
  2652  			goto tr203
  2653  		case 192:
  2654  			switch (m.data)[(m.p)] {
  2655  			case 33:
  2656  				goto tr243
  2657  			case 35:
  2658  				goto tr244
  2659  			case 37:
  2660  				goto tr245
  2661  			case 61:
  2662  				goto tr243
  2663  			case 63:
  2664  				goto tr248
  2665  			case 95:
  2666  				goto tr243
  2667  			case 126:
  2668  				goto tr243
  2669  			}
  2670  			switch {
  2671  			case (m.data)[(m.p)] < 48:
  2672  				if 36 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 46 {
  2673  					goto tr243
  2674  				}
  2675  			case (m.data)[(m.p)] > 59:
  2676  				switch {
  2677  				case (m.data)[(m.p)] > 90:
  2678  					if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2679  						goto tr243
  2680  					}
  2681  				case (m.data)[(m.p)] >= 64:
  2682  					goto tr243
  2683  				}
  2684  			default:
  2685  				goto tr243
  2686  			}
  2687  			goto tr203
  2688  		case 137:
  2689  			if (m.data)[(m.p)] == 58 {
  2690  				goto tr168
  2691  			}
  2692  			switch {
  2693  			case (m.data)[(m.p)] < 65:
  2694  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2695  					goto tr167
  2696  				}
  2697  			case (m.data)[(m.p)] > 90:
  2698  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2699  					goto tr167
  2700  				}
  2701  			default:
  2702  				goto tr167
  2703  			}
  2704  			goto tr106
  2705  		case 138:
  2706  			switch (m.data)[(m.p)] {
  2707  			case 45:
  2708  				goto tr165
  2709  			case 58:
  2710  				goto tr168
  2711  			}
  2712  			switch {
  2713  			case (m.data)[(m.p)] < 65:
  2714  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2715  					goto tr166
  2716  				}
  2717  			case (m.data)[(m.p)] > 90:
  2718  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2719  					goto tr166
  2720  				}
  2721  			default:
  2722  				goto tr166
  2723  			}
  2724  			goto tr106
  2725  		case 139:
  2726  			switch (m.data)[(m.p)] {
  2727  			case 45:
  2728  				goto tr163
  2729  			case 58:
  2730  				goto tr168
  2731  			}
  2732  			switch {
  2733  			case (m.data)[(m.p)] < 65:
  2734  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2735  					goto tr164
  2736  				}
  2737  			case (m.data)[(m.p)] > 90:
  2738  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2739  					goto tr164
  2740  				}
  2741  			default:
  2742  				goto tr164
  2743  			}
  2744  			goto tr106
  2745  		case 140:
  2746  			switch (m.data)[(m.p)] {
  2747  			case 45:
  2748  				goto tr161
  2749  			case 58:
  2750  				goto tr168
  2751  			}
  2752  			switch {
  2753  			case (m.data)[(m.p)] < 65:
  2754  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2755  					goto tr162
  2756  				}
  2757  			case (m.data)[(m.p)] > 90:
  2758  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2759  					goto tr162
  2760  				}
  2761  			default:
  2762  				goto tr162
  2763  			}
  2764  			goto tr106
  2765  		case 141:
  2766  			switch (m.data)[(m.p)] {
  2767  			case 45:
  2768  				goto tr159
  2769  			case 58:
  2770  				goto tr168
  2771  			}
  2772  			switch {
  2773  			case (m.data)[(m.p)] < 65:
  2774  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2775  					goto tr160
  2776  				}
  2777  			case (m.data)[(m.p)] > 90:
  2778  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2779  					goto tr160
  2780  				}
  2781  			default:
  2782  				goto tr160
  2783  			}
  2784  			goto tr106
  2785  		case 142:
  2786  			switch (m.data)[(m.p)] {
  2787  			case 45:
  2788  				goto tr157
  2789  			case 58:
  2790  				goto tr168
  2791  			}
  2792  			switch {
  2793  			case (m.data)[(m.p)] < 65:
  2794  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2795  					goto tr158
  2796  				}
  2797  			case (m.data)[(m.p)] > 90:
  2798  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2799  					goto tr158
  2800  				}
  2801  			default:
  2802  				goto tr158
  2803  			}
  2804  			goto tr106
  2805  		case 143:
  2806  			switch (m.data)[(m.p)] {
  2807  			case 45:
  2808  				goto tr155
  2809  			case 58:
  2810  				goto tr168
  2811  			}
  2812  			switch {
  2813  			case (m.data)[(m.p)] < 65:
  2814  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2815  					goto tr156
  2816  				}
  2817  			case (m.data)[(m.p)] > 90:
  2818  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2819  					goto tr156
  2820  				}
  2821  			default:
  2822  				goto tr156
  2823  			}
  2824  			goto tr106
  2825  		case 144:
  2826  			switch (m.data)[(m.p)] {
  2827  			case 45:
  2828  				goto tr153
  2829  			case 58:
  2830  				goto tr168
  2831  			}
  2832  			switch {
  2833  			case (m.data)[(m.p)] < 65:
  2834  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2835  					goto tr154
  2836  				}
  2837  			case (m.data)[(m.p)] > 90:
  2838  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2839  					goto tr154
  2840  				}
  2841  			default:
  2842  				goto tr154
  2843  			}
  2844  			goto tr106
  2845  		case 145:
  2846  			switch (m.data)[(m.p)] {
  2847  			case 45:
  2848  				goto tr151
  2849  			case 58:
  2850  				goto tr168
  2851  			}
  2852  			switch {
  2853  			case (m.data)[(m.p)] < 65:
  2854  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2855  					goto tr152
  2856  				}
  2857  			case (m.data)[(m.p)] > 90:
  2858  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2859  					goto tr152
  2860  				}
  2861  			default:
  2862  				goto tr152
  2863  			}
  2864  			goto tr106
  2865  		case 146:
  2866  			switch (m.data)[(m.p)] {
  2867  			case 45:
  2868  				goto tr149
  2869  			case 58:
  2870  				goto tr168
  2871  			}
  2872  			switch {
  2873  			case (m.data)[(m.p)] < 65:
  2874  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2875  					goto tr150
  2876  				}
  2877  			case (m.data)[(m.p)] > 90:
  2878  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2879  					goto tr150
  2880  				}
  2881  			default:
  2882  				goto tr150
  2883  			}
  2884  			goto tr106
  2885  		case 147:
  2886  			switch (m.data)[(m.p)] {
  2887  			case 45:
  2888  				goto tr147
  2889  			case 58:
  2890  				goto tr168
  2891  			}
  2892  			switch {
  2893  			case (m.data)[(m.p)] < 65:
  2894  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2895  					goto tr148
  2896  				}
  2897  			case (m.data)[(m.p)] > 90:
  2898  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2899  					goto tr148
  2900  				}
  2901  			default:
  2902  				goto tr148
  2903  			}
  2904  			goto tr106
  2905  		case 148:
  2906  			switch (m.data)[(m.p)] {
  2907  			case 45:
  2908  				goto tr145
  2909  			case 58:
  2910  				goto tr168
  2911  			}
  2912  			switch {
  2913  			case (m.data)[(m.p)] < 65:
  2914  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2915  					goto tr146
  2916  				}
  2917  			case (m.data)[(m.p)] > 90:
  2918  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2919  					goto tr146
  2920  				}
  2921  			default:
  2922  				goto tr146
  2923  			}
  2924  			goto tr106
  2925  		case 149:
  2926  			switch (m.data)[(m.p)] {
  2927  			case 45:
  2928  				goto tr143
  2929  			case 58:
  2930  				goto tr168
  2931  			}
  2932  			switch {
  2933  			case (m.data)[(m.p)] < 65:
  2934  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2935  					goto tr144
  2936  				}
  2937  			case (m.data)[(m.p)] > 90:
  2938  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2939  					goto tr144
  2940  				}
  2941  			default:
  2942  				goto tr144
  2943  			}
  2944  			goto tr106
  2945  		case 150:
  2946  			switch (m.data)[(m.p)] {
  2947  			case 45:
  2948  				goto tr141
  2949  			case 58:
  2950  				goto tr168
  2951  			}
  2952  			switch {
  2953  			case (m.data)[(m.p)] < 65:
  2954  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2955  					goto tr142
  2956  				}
  2957  			case (m.data)[(m.p)] > 90:
  2958  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2959  					goto tr142
  2960  				}
  2961  			default:
  2962  				goto tr142
  2963  			}
  2964  			goto tr106
  2965  		case 151:
  2966  			switch (m.data)[(m.p)] {
  2967  			case 45:
  2968  				goto tr139
  2969  			case 58:
  2970  				goto tr168
  2971  			}
  2972  			switch {
  2973  			case (m.data)[(m.p)] < 65:
  2974  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2975  					goto tr140
  2976  				}
  2977  			case (m.data)[(m.p)] > 90:
  2978  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2979  					goto tr140
  2980  				}
  2981  			default:
  2982  				goto tr140
  2983  			}
  2984  			goto tr106
  2985  		case 152:
  2986  			switch (m.data)[(m.p)] {
  2987  			case 45:
  2988  				goto tr137
  2989  			case 58:
  2990  				goto tr168
  2991  			}
  2992  			switch {
  2993  			case (m.data)[(m.p)] < 65:
  2994  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  2995  					goto tr138
  2996  				}
  2997  			case (m.data)[(m.p)] > 90:
  2998  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  2999  					goto tr138
  3000  				}
  3001  			default:
  3002  				goto tr138
  3003  			}
  3004  			goto tr106
  3005  		case 153:
  3006  			switch (m.data)[(m.p)] {
  3007  			case 45:
  3008  				goto tr135
  3009  			case 58:
  3010  				goto tr168
  3011  			}
  3012  			switch {
  3013  			case (m.data)[(m.p)] < 65:
  3014  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3015  					goto tr136
  3016  				}
  3017  			case (m.data)[(m.p)] > 90:
  3018  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3019  					goto tr136
  3020  				}
  3021  			default:
  3022  				goto tr136
  3023  			}
  3024  			goto tr106
  3025  		case 154:
  3026  			switch (m.data)[(m.p)] {
  3027  			case 45:
  3028  				goto tr133
  3029  			case 58:
  3030  				goto tr168
  3031  			}
  3032  			switch {
  3033  			case (m.data)[(m.p)] < 65:
  3034  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3035  					goto tr134
  3036  				}
  3037  			case (m.data)[(m.p)] > 90:
  3038  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3039  					goto tr134
  3040  				}
  3041  			default:
  3042  				goto tr134
  3043  			}
  3044  			goto tr106
  3045  		case 155:
  3046  			switch (m.data)[(m.p)] {
  3047  			case 45:
  3048  				goto tr131
  3049  			case 58:
  3050  				goto tr168
  3051  			}
  3052  			switch {
  3053  			case (m.data)[(m.p)] < 65:
  3054  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3055  					goto tr132
  3056  				}
  3057  			case (m.data)[(m.p)] > 90:
  3058  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3059  					goto tr132
  3060  				}
  3061  			default:
  3062  				goto tr132
  3063  			}
  3064  			goto tr106
  3065  		case 156:
  3066  			switch (m.data)[(m.p)] {
  3067  			case 45:
  3068  				goto tr129
  3069  			case 58:
  3070  				goto tr168
  3071  			}
  3072  			switch {
  3073  			case (m.data)[(m.p)] < 65:
  3074  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3075  					goto tr130
  3076  				}
  3077  			case (m.data)[(m.p)] > 90:
  3078  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3079  					goto tr130
  3080  				}
  3081  			default:
  3082  				goto tr130
  3083  			}
  3084  			goto tr106
  3085  		case 157:
  3086  			switch (m.data)[(m.p)] {
  3087  			case 45:
  3088  				goto tr127
  3089  			case 58:
  3090  				goto tr168
  3091  			}
  3092  			switch {
  3093  			case (m.data)[(m.p)] < 65:
  3094  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3095  					goto tr128
  3096  				}
  3097  			case (m.data)[(m.p)] > 90:
  3098  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3099  					goto tr128
  3100  				}
  3101  			default:
  3102  				goto tr128
  3103  			}
  3104  			goto tr106
  3105  		case 158:
  3106  			switch (m.data)[(m.p)] {
  3107  			case 45:
  3108  				goto tr125
  3109  			case 58:
  3110  				goto tr168
  3111  			}
  3112  			switch {
  3113  			case (m.data)[(m.p)] < 65:
  3114  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3115  					goto tr126
  3116  				}
  3117  			case (m.data)[(m.p)] > 90:
  3118  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3119  					goto tr126
  3120  				}
  3121  			default:
  3122  				goto tr126
  3123  			}
  3124  			goto tr106
  3125  		case 159:
  3126  			switch (m.data)[(m.p)] {
  3127  			case 45:
  3128  				goto tr123
  3129  			case 58:
  3130  				goto tr168
  3131  			}
  3132  			switch {
  3133  			case (m.data)[(m.p)] < 65:
  3134  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3135  					goto tr124
  3136  				}
  3137  			case (m.data)[(m.p)] > 90:
  3138  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3139  					goto tr124
  3140  				}
  3141  			default:
  3142  				goto tr124
  3143  			}
  3144  			goto tr106
  3145  		case 160:
  3146  			switch (m.data)[(m.p)] {
  3147  			case 45:
  3148  				goto tr121
  3149  			case 58:
  3150  				goto tr168
  3151  			}
  3152  			switch {
  3153  			case (m.data)[(m.p)] < 65:
  3154  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3155  					goto tr122
  3156  				}
  3157  			case (m.data)[(m.p)] > 90:
  3158  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3159  					goto tr122
  3160  				}
  3161  			default:
  3162  				goto tr122
  3163  			}
  3164  			goto tr106
  3165  		case 161:
  3166  			switch (m.data)[(m.p)] {
  3167  			case 45:
  3168  				goto tr119
  3169  			case 58:
  3170  				goto tr168
  3171  			}
  3172  			switch {
  3173  			case (m.data)[(m.p)] < 65:
  3174  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3175  					goto tr120
  3176  				}
  3177  			case (m.data)[(m.p)] > 90:
  3178  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3179  					goto tr120
  3180  				}
  3181  			default:
  3182  				goto tr120
  3183  			}
  3184  			goto tr106
  3185  		case 162:
  3186  			switch (m.data)[(m.p)] {
  3187  			case 45:
  3188  				goto tr117
  3189  			case 58:
  3190  				goto tr168
  3191  			}
  3192  			switch {
  3193  			case (m.data)[(m.p)] < 65:
  3194  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3195  					goto tr118
  3196  				}
  3197  			case (m.data)[(m.p)] > 90:
  3198  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3199  					goto tr118
  3200  				}
  3201  			default:
  3202  				goto tr118
  3203  			}
  3204  			goto tr106
  3205  		case 163:
  3206  			switch (m.data)[(m.p)] {
  3207  			case 45:
  3208  				goto tr115
  3209  			case 58:
  3210  				goto tr168
  3211  			}
  3212  			switch {
  3213  			case (m.data)[(m.p)] < 65:
  3214  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3215  					goto tr116
  3216  				}
  3217  			case (m.data)[(m.p)] > 90:
  3218  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3219  					goto tr116
  3220  				}
  3221  			default:
  3222  				goto tr116
  3223  			}
  3224  			goto tr106
  3225  		case 164:
  3226  			switch (m.data)[(m.p)] {
  3227  			case 45:
  3228  				goto tr113
  3229  			case 58:
  3230  				goto tr168
  3231  			}
  3232  			switch {
  3233  			case (m.data)[(m.p)] < 65:
  3234  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3235  					goto tr114
  3236  				}
  3237  			case (m.data)[(m.p)] > 90:
  3238  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3239  					goto tr114
  3240  				}
  3241  			default:
  3242  				goto tr114
  3243  			}
  3244  			goto tr106
  3245  		case 165:
  3246  			switch (m.data)[(m.p)] {
  3247  			case 45:
  3248  				goto tr111
  3249  			case 58:
  3250  				goto tr168
  3251  			}
  3252  			switch {
  3253  			case (m.data)[(m.p)] < 65:
  3254  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3255  					goto tr112
  3256  				}
  3257  			case (m.data)[(m.p)] > 90:
  3258  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3259  					goto tr112
  3260  				}
  3261  			default:
  3262  				goto tr112
  3263  			}
  3264  			goto tr106
  3265  		case 166:
  3266  			switch (m.data)[(m.p)] {
  3267  			case 45:
  3268  				goto tr109
  3269  			case 58:
  3270  				goto tr168
  3271  			}
  3272  			switch {
  3273  			case (m.data)[(m.p)] < 65:
  3274  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3275  					goto tr110
  3276  				}
  3277  			case (m.data)[(m.p)] > 90:
  3278  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3279  					goto tr110
  3280  				}
  3281  			default:
  3282  				goto tr110
  3283  			}
  3284  			goto tr106
  3285  		case 167:
  3286  			switch (m.data)[(m.p)] {
  3287  			case 45:
  3288  				goto tr107
  3289  			case 82:
  3290  				goto tr208
  3291  			case 114:
  3292  				goto tr208
  3293  			}
  3294  			switch {
  3295  			case (m.data)[(m.p)] < 65:
  3296  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3297  					goto tr108
  3298  				}
  3299  			case (m.data)[(m.p)] > 90:
  3300  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3301  					goto tr108
  3302  				}
  3303  			default:
  3304  				goto tr108
  3305  			}
  3306  			goto tr103
  3307  		case 168:
  3308  			switch (m.data)[(m.p)] {
  3309  			case 45:
  3310  				goto tr109
  3311  			case 58:
  3312  				goto tr168
  3313  			case 78:
  3314  				goto tr209
  3315  			case 110:
  3316  				goto tr209
  3317  			}
  3318  			switch {
  3319  			case (m.data)[(m.p)] < 65:
  3320  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3321  					goto tr110
  3322  				}
  3323  			case (m.data)[(m.p)] > 90:
  3324  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3325  					goto tr110
  3326  				}
  3327  			default:
  3328  				goto tr110
  3329  			}
  3330  			goto tr103
  3331  		case 169:
  3332  			switch (m.data)[(m.p)] {
  3333  			case 45:
  3334  				goto tr210
  3335  			case 58:
  3336  				goto tr168
  3337  			}
  3338  			switch {
  3339  			case (m.data)[(m.p)] < 65:
  3340  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3341  					goto tr112
  3342  				}
  3343  			case (m.data)[(m.p)] > 90:
  3344  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3345  					goto tr112
  3346  				}
  3347  			default:
  3348  				goto tr112
  3349  			}
  3350  			goto tr106
  3351  		case 170:
  3352  			switch (m.data)[(m.p)] {
  3353  			case 45:
  3354  				goto tr113
  3355  			case 48:
  3356  				goto tr211
  3357  			}
  3358  			switch {
  3359  			case (m.data)[(m.p)] < 65:
  3360  				if 49 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3361  					goto tr114
  3362  				}
  3363  			case (m.data)[(m.p)] > 90:
  3364  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3365  					goto tr211
  3366  				}
  3367  			default:
  3368  				goto tr211
  3369  			}
  3370  			goto tr106
  3371  		case 171:
  3372  			if (m.data)[(m.p)] == 45 {
  3373  				goto tr115
  3374  			}
  3375  			switch {
  3376  			case (m.data)[(m.p)] < 65:
  3377  				if 48 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 57 {
  3378  					goto tr116
  3379  				}
  3380  			case (m.data)[(m.p)] > 90:
  3381  				if 97 <= (m.data)[(m.p)] && (m.data)[(m.p)] <= 122 {
  3382  					goto tr116
  3383  				}
  3384  			default:
  3385  				goto tr116
  3386  			}
  3387  			goto tr106
  3388  		case 193:
  3389  			switch (m.data)[(m.p)] {
  3390  			case 10:
  3391  				goto tr183
  3392  			case 13:
  3393  				goto tr183
  3394  			}
  3395  			goto tr249
  3396  		}
  3397  
  3398  	tr183:
  3399  		m.cs = 0
  3400  		goto _again
  3401  	tr0:
  3402  		m.cs = 0
  3403  		goto f0
  3404  	tr5:
  3405  		m.cs = 0
  3406  		goto f3
  3407  	tr8:
  3408  		m.cs = 0
  3409  		goto f5
  3410  	tr41:
  3411  		m.cs = 0
  3412  		goto f7
  3413  	tr44:
  3414  		m.cs = 0
  3415  		goto f8
  3416  	tr51:
  3417  		m.cs = 0
  3418  		goto f10
  3419  	tr56:
  3420  		m.cs = 0
  3421  		goto f11
  3422  	tr74:
  3423  		m.cs = 0
  3424  		goto f13
  3425  	tr81:
  3426  		m.cs = 0
  3427  		goto f15
  3428  	tr83:
  3429  		m.cs = 0
  3430  		goto f17
  3431  	tr86:
  3432  		m.cs = 0
  3433  		goto f19
  3434  	tr103:
  3435  		m.cs = 0
  3436  		goto f20
  3437  	tr106:
  3438  		m.cs = 0
  3439  		goto f21
  3440  	tr169:
  3441  		m.cs = 0
  3442  		goto f22
  3443  	tr172:
  3444  		m.cs = 0
  3445  		goto f23
  3446  	tr177:
  3447  		m.cs = 0
  3448  		goto f24
  3449  	tr185:
  3450  		m.cs = 0
  3451  		goto f25
  3452  	tr189:
  3453  		m.cs = 0
  3454  		goto f27
  3455  	tr194:
  3456  		m.cs = 0
  3457  		goto f28
  3458  	tr199:
  3459  		m.cs = 0
  3460  		goto f29
  3461  	tr203:
  3462  		m.cs = 0
  3463  		goto f30
  3464  	tr236:
  3465  		m.cs = 0
  3466  		goto f46
  3467  	tr1:
  3468  		m.cs = 2
  3469  		goto f1
  3470  	tr2:
  3471  		m.cs = 3
  3472  		goto _again
  3473  	tr3:
  3474  		m.cs = 4
  3475  		goto _again
  3476  	tr4:
  3477  		m.cs = 5
  3478  		goto f2
  3479  	tr6:
  3480  		m.cs = 6
  3481  		goto f4
  3482  	tr9:
  3483  		m.cs = 7
  3484  		goto _again
  3485  	tr11:
  3486  		m.cs = 8
  3487  		goto _again
  3488  	tr12:
  3489  		m.cs = 9
  3490  		goto _again
  3491  	tr13:
  3492  		m.cs = 10
  3493  		goto _again
  3494  	tr14:
  3495  		m.cs = 11
  3496  		goto _again
  3497  	tr15:
  3498  		m.cs = 12
  3499  		goto _again
  3500  	tr16:
  3501  		m.cs = 13
  3502  		goto _again
  3503  	tr17:
  3504  		m.cs = 14
  3505  		goto _again
  3506  	tr18:
  3507  		m.cs = 15
  3508  		goto _again
  3509  	tr19:
  3510  		m.cs = 16
  3511  		goto _again
  3512  	tr20:
  3513  		m.cs = 17
  3514  		goto _again
  3515  	tr21:
  3516  		m.cs = 18
  3517  		goto _again
  3518  	tr22:
  3519  		m.cs = 19
  3520  		goto _again
  3521  	tr23:
  3522  		m.cs = 20
  3523  		goto _again
  3524  	tr24:
  3525  		m.cs = 21
  3526  		goto _again
  3527  	tr25:
  3528  		m.cs = 22
  3529  		goto _again
  3530  	tr26:
  3531  		m.cs = 23
  3532  		goto _again
  3533  	tr27:
  3534  		m.cs = 24
  3535  		goto _again
  3536  	tr28:
  3537  		m.cs = 25
  3538  		goto _again
  3539  	tr29:
  3540  		m.cs = 26
  3541  		goto _again
  3542  	tr30:
  3543  		m.cs = 27
  3544  		goto _again
  3545  	tr31:
  3546  		m.cs = 28
  3547  		goto _again
  3548  	tr32:
  3549  		m.cs = 29
  3550  		goto _again
  3551  	tr33:
  3552  		m.cs = 30
  3553  		goto _again
  3554  	tr34:
  3555  		m.cs = 31
  3556  		goto _again
  3557  	tr35:
  3558  		m.cs = 32
  3559  		goto _again
  3560  	tr36:
  3561  		m.cs = 33
  3562  		goto _again
  3563  	tr37:
  3564  		m.cs = 34
  3565  		goto _again
  3566  	tr38:
  3567  		m.cs = 35
  3568  		goto _again
  3569  	tr39:
  3570  		m.cs = 36
  3571  		goto _again
  3572  	tr40:
  3573  		m.cs = 37
  3574  		goto _again
  3575  	tr10:
  3576  		m.cs = 38
  3577  		goto f6
  3578  	tr213:
  3579  		m.cs = 39
  3580  		goto _again
  3581  	tr43:
  3582  		m.cs = 39
  3583  		goto f4
  3584  	tr45:
  3585  		m.cs = 40
  3586  		goto _again
  3587  	tr46:
  3588  		m.cs = 40
  3589  		goto f9
  3590  	tr7:
  3591  		m.cs = 41
  3592  		goto f1
  3593  	tr49:
  3594  		m.cs = 42
  3595  		goto _again
  3596  	tr50:
  3597  		m.cs = 43
  3598  		goto _again
  3599  	tr52:
  3600  		m.cs = 45
  3601  		goto f1
  3602  	tr53:
  3603  		m.cs = 46
  3604  		goto _again
  3605  	tr54:
  3606  		m.cs = 47
  3607  		goto _again
  3608  	tr55:
  3609  		m.cs = 48
  3610  		goto f2
  3611  	tr57:
  3612  		m.cs = 49
  3613  		goto f4
  3614  	tr58:
  3615  		m.cs = 50
  3616  		goto _again
  3617  	tr59:
  3618  		m.cs = 51
  3619  		goto _again
  3620  	tr60:
  3621  		m.cs = 52
  3622  		goto _again
  3623  	tr61:
  3624  		m.cs = 53
  3625  		goto _again
  3626  	tr62:
  3627  		m.cs = 54
  3628  		goto _again
  3629  	tr63:
  3630  		m.cs = 55
  3631  		goto _again
  3632  	tr64:
  3633  		m.cs = 56
  3634  		goto _again
  3635  	tr65:
  3636  		m.cs = 57
  3637  		goto _again
  3638  	tr66:
  3639  		m.cs = 58
  3640  		goto _again
  3641  	tr67:
  3642  		m.cs = 59
  3643  		goto _again
  3644  	tr68:
  3645  		m.cs = 60
  3646  		goto _again
  3647  	tr69:
  3648  		m.cs = 61
  3649  		goto _again
  3650  	tr70:
  3651  		m.cs = 62
  3652  		goto _again
  3653  	tr71:
  3654  		m.cs = 63
  3655  		goto _again
  3656  	tr72:
  3657  		m.cs = 64
  3658  		goto _again
  3659  	tr73:
  3660  		m.cs = 65
  3661  		goto f12
  3662  	tr75:
  3663  		m.cs = 66
  3664  		goto f4
  3665  	tr78:
  3666  		m.cs = 67
  3667  		goto _again
  3668  	tr79:
  3669  		m.cs = 68
  3670  		goto _again
  3671  	tr80:
  3672  		m.cs = 69
  3673  		goto f14
  3674  	tr215:
  3675  		m.cs = 70
  3676  		goto f35
  3677  	tr217:
  3678  		m.cs = 71
  3679  		goto _again
  3680  	tr85:
  3681  		m.cs = 71
  3682  		goto f18
  3683  	tr87:
  3684  		m.cs = 72
  3685  		goto _again
  3686  	tr88:
  3687  		m.cs = 72
  3688  		goto f9
  3689  	tr76:
  3690  		m.cs = 73
  3691  		goto f4
  3692  	tr91:
  3693  		m.cs = 74
  3694  		goto _again
  3695  	tr92:
  3696  		m.cs = 75
  3697  		goto _again
  3698  	tr93:
  3699  		m.cs = 76
  3700  		goto _again
  3701  	tr77:
  3702  		m.cs = 77
  3703  		goto f4
  3704  	tr94:
  3705  		m.cs = 78
  3706  		goto _again
  3707  	tr95:
  3708  		m.cs = 79
  3709  		goto _again
  3710  	tr96:
  3711  		m.cs = 80
  3712  		goto _again
  3713  	tr97:
  3714  		m.cs = 81
  3715  		goto _again
  3716  	tr98:
  3717  		m.cs = 82
  3718  		goto _again
  3719  	tr99:
  3720  		m.cs = 84
  3721  		goto f1
  3722  	tr100:
  3723  		m.cs = 85
  3724  		goto _again
  3725  	tr101:
  3726  		m.cs = 86
  3727  		goto _again
  3728  	tr102:
  3729  		m.cs = 87
  3730  		goto f2
  3731  	tr104:
  3732  		m.cs = 88
  3733  		goto f4
  3734  	tr107:
  3735  		m.cs = 89
  3736  		goto _again
  3737  	tr109:
  3738  		m.cs = 90
  3739  		goto _again
  3740  	tr111:
  3741  		m.cs = 91
  3742  		goto _again
  3743  	tr113:
  3744  		m.cs = 92
  3745  		goto _again
  3746  	tr115:
  3747  		m.cs = 93
  3748  		goto _again
  3749  	tr117:
  3750  		m.cs = 94
  3751  		goto _again
  3752  	tr119:
  3753  		m.cs = 95
  3754  		goto _again
  3755  	tr121:
  3756  		m.cs = 96
  3757  		goto _again
  3758  	tr123:
  3759  		m.cs = 97
  3760  		goto _again
  3761  	tr125:
  3762  		m.cs = 98
  3763  		goto _again
  3764  	tr127:
  3765  		m.cs = 99
  3766  		goto _again
  3767  	tr129:
  3768  		m.cs = 100
  3769  		goto _again
  3770  	tr131:
  3771  		m.cs = 101
  3772  		goto _again
  3773  	tr133:
  3774  		m.cs = 102
  3775  		goto _again
  3776  	tr135:
  3777  		m.cs = 103
  3778  		goto _again
  3779  	tr137:
  3780  		m.cs = 104
  3781  		goto _again
  3782  	tr139:
  3783  		m.cs = 105
  3784  		goto _again
  3785  	tr141:
  3786  		m.cs = 106
  3787  		goto _again
  3788  	tr143:
  3789  		m.cs = 107
  3790  		goto _again
  3791  	tr145:
  3792  		m.cs = 108
  3793  		goto _again
  3794  	tr147:
  3795  		m.cs = 109
  3796  		goto _again
  3797  	tr149:
  3798  		m.cs = 110
  3799  		goto _again
  3800  	tr151:
  3801  		m.cs = 111
  3802  		goto _again
  3803  	tr153:
  3804  		m.cs = 112
  3805  		goto _again
  3806  	tr155:
  3807  		m.cs = 113
  3808  		goto _again
  3809  	tr157:
  3810  		m.cs = 114
  3811  		goto _again
  3812  	tr159:
  3813  		m.cs = 115
  3814  		goto _again
  3815  	tr161:
  3816  		m.cs = 116
  3817  		goto _again
  3818  	tr163:
  3819  		m.cs = 117
  3820  		goto _again
  3821  	tr165:
  3822  		m.cs = 118
  3823  		goto _again
  3824  	tr167:
  3825  		m.cs = 119
  3826  		goto _again
  3827  	tr168:
  3828  		m.cs = 120
  3829  		goto f6
  3830  	tr225:
  3831  		m.cs = 121
  3832  		goto _again
  3833  	tr223:
  3834  		m.cs = 121
  3835  		goto f4
  3836  	tr173:
  3837  		m.cs = 122
  3838  		goto _again
  3839  	tr174:
  3840  		m.cs = 122
  3841  		goto f9
  3842  	tr220:
  3843  		m.cs = 123
  3844  		goto _again
  3845  	tr171:
  3846  		m.cs = 123
  3847  		goto f4
  3848  	tr178:
  3849  		m.cs = 124
  3850  		goto _again
  3851  	tr179:
  3852  		m.cs = 124
  3853  		goto f9
  3854  	tr221:
  3855  		m.cs = 125
  3856  		goto f38
  3857  	tr182:
  3858  		m.cs = 126
  3859  		goto _again
  3860  	tr228:
  3861  		m.cs = 127
  3862  		goto _again
  3863  	tr187:
  3864  		m.cs = 127
  3865  		goto f26
  3866  	tr234:
  3867  		m.cs = 127
  3868  		goto f44
  3869  	tr190:
  3870  		m.cs = 128
  3871  		goto _again
  3872  	tr191:
  3873  		m.cs = 128
  3874  		goto f9
  3875  	tr240:
  3876  		m.cs = 129
  3877  		goto _again
  3878  	tr205:
  3879  		m.cs = 129
  3880  		goto f31
  3881  	tr245:
  3882  		m.cs = 129
  3883  		goto f50
  3884  	tr195:
  3885  		m.cs = 130
  3886  		goto _again
  3887  	tr196:
  3888  		m.cs = 130
  3889  		goto f9
  3890  	tr237:
  3891  		m.cs = 131
  3892  		goto f31
  3893  	tr200:
  3894  		m.cs = 132
  3895  		goto _again
  3896  	tr201:
  3897  		m.cs = 132
  3898  		goto f9
  3899  	tr188:
  3900  		m.cs = 133
  3901  		goto f26
  3902  	tr247:
  3903  		m.cs = 134
  3904  		goto f45
  3905  	tr184:
  3906  		m.cs = 135
  3907  		goto _again
  3908  	tr206:
  3909  		m.cs = 136
  3910  		goto f31
  3911  	tr248:
  3912  		m.cs = 136
  3913  		goto f50
  3914  	tr166:
  3915  		m.cs = 137
  3916  		goto _again
  3917  	tr164:
  3918  		m.cs = 138
  3919  		goto _again
  3920  	tr162:
  3921  		m.cs = 139
  3922  		goto _again
  3923  	tr160:
  3924  		m.cs = 140
  3925  		goto _again
  3926  	tr158:
  3927  		m.cs = 141
  3928  		goto _again
  3929  	tr156:
  3930  		m.cs = 142
  3931  		goto _again
  3932  	tr154:
  3933  		m.cs = 143
  3934  		goto _again
  3935  	tr152:
  3936  		m.cs = 144
  3937  		goto _again
  3938  	tr150:
  3939  		m.cs = 145
  3940  		goto _again
  3941  	tr148:
  3942  		m.cs = 146
  3943  		goto _again
  3944  	tr146:
  3945  		m.cs = 147
  3946  		goto _again
  3947  	tr144:
  3948  		m.cs = 148
  3949  		goto _again
  3950  	tr142:
  3951  		m.cs = 149
  3952  		goto _again
  3953  	tr140:
  3954  		m.cs = 150
  3955  		goto _again
  3956  	tr138:
  3957  		m.cs = 151
  3958  		goto _again
  3959  	tr136:
  3960  		m.cs = 152
  3961  		goto _again
  3962  	tr134:
  3963  		m.cs = 153
  3964  		goto _again
  3965  	tr132:
  3966  		m.cs = 154
  3967  		goto _again
  3968  	tr130:
  3969  		m.cs = 155
  3970  		goto _again
  3971  	tr128:
  3972  		m.cs = 156
  3973  		goto _again
  3974  	tr126:
  3975  		m.cs = 157
  3976  		goto _again
  3977  	tr124:
  3978  		m.cs = 158
  3979  		goto _again
  3980  	tr122:
  3981  		m.cs = 159
  3982  		goto _again
  3983  	tr120:
  3984  		m.cs = 160
  3985  		goto _again
  3986  	tr118:
  3987  		m.cs = 161
  3988  		goto _again
  3989  	tr116:
  3990  		m.cs = 162
  3991  		goto _again
  3992  	tr114:
  3993  		m.cs = 163
  3994  		goto _again
  3995  	tr112:
  3996  		m.cs = 164
  3997  		goto _again
  3998  	tr110:
  3999  		m.cs = 165
  4000  		goto _again
  4001  	tr108:
  4002  		m.cs = 166
  4003  		goto _again
  4004  	tr105:
  4005  		m.cs = 167
  4006  		goto f1
  4007  	tr208:
  4008  		m.cs = 168
  4009  		goto _again
  4010  	tr209:
  4011  		m.cs = 169
  4012  		goto _again
  4013  	tr210:
  4014  		m.cs = 170
  4015  		goto f2
  4016  	tr211:
  4017  		m.cs = 171
  4018  		goto _again
  4019  	tr212:
  4020  		m.cs = 172
  4021  		goto _again
  4022  	tr42:
  4023  		m.cs = 172
  4024  		goto f4
  4025  	tr47:
  4026  		m.cs = 173
  4027  		goto _again
  4028  	tr48:
  4029  		m.cs = 173
  4030  		goto f9
  4031  	tr214:
  4032  		m.cs = 174
  4033  		goto _again
  4034  	tr82:
  4035  		m.cs = 174
  4036  		goto f16
  4037  	tr216:
  4038  		m.cs = 175
  4039  		goto _again
  4040  	tr84:
  4041  		m.cs = 175
  4042  		goto f18
  4043  	tr89:
  4044  		m.cs = 176
  4045  		goto _again
  4046  	tr90:
  4047  		m.cs = 176
  4048  		goto f9
  4049  	tr218:
  4050  		m.cs = 177
  4051  		goto _again
  4052  	tr170:
  4053  		m.cs = 177
  4054  		goto f4
  4055  	tr219:
  4056  		m.cs = 178
  4057  		goto f38
  4058  	tr227:
  4059  		m.cs = 178
  4060  		goto f42
  4061  	tr233:
  4062  		m.cs = 178
  4063  		goto f45
  4064  	tr239:
  4065  		m.cs = 178
  4066  		goto f48
  4067  	tr244:
  4068  		m.cs = 178
  4069  		goto f51
  4070  	tr224:
  4071  		m.cs = 179
  4072  		goto _again
  4073  	tr222:
  4074  		m.cs = 179
  4075  		goto f4
  4076  	tr175:
  4077  		m.cs = 180
  4078  		goto _again
  4079  	tr176:
  4080  		m.cs = 180
  4081  		goto f9
  4082  	tr180:
  4083  		m.cs = 181
  4084  		goto _again
  4085  	tr181:
  4086  		m.cs = 181
  4087  		goto f9
  4088  	tr226:
  4089  		m.cs = 182
  4090  		goto _again
  4091  	tr186:
  4092  		m.cs = 182
  4093  		goto f26
  4094  	tr232:
  4095  		m.cs = 182
  4096  		goto f44
  4097  	tr192:
  4098  		m.cs = 183
  4099  		goto _again
  4100  	tr193:
  4101  		m.cs = 183
  4102  		goto f9
  4103  	tr229:
  4104  		m.cs = 184
  4105  		goto f42
  4106  	tr235:
  4107  		m.cs = 184
  4108  		goto f45
  4109  	tr230:
  4110  		m.cs = 185
  4111  		goto _again
  4112  	tr231:
  4113  		m.cs = 186
  4114  		goto _again
  4115  	tr238:
  4116  		m.cs = 187
  4117  		goto _again
  4118  	tr204:
  4119  		m.cs = 187
  4120  		goto f31
  4121  	tr243:
  4122  		m.cs = 187
  4123  		goto f50
  4124  	tr197:
  4125  		m.cs = 188
  4126  		goto _again
  4127  	tr198:
  4128  		m.cs = 188
  4129  		goto f9
  4130  	tr241:
  4131  		m.cs = 189
  4132  		goto _again
  4133  	tr246:
  4134  		m.cs = 189
  4135  		goto f50
  4136  	tr242:
  4137  		m.cs = 190
  4138  		goto _again
  4139  	tr202:
  4140  		m.cs = 191
  4141  		goto _again
  4142  	tr207:
  4143  		m.cs = 192
  4144  		goto _again
  4145  	tr249:
  4146  		m.cs = 193
  4147  		goto _again
  4148  
  4149  	f4:
  4150  
  4151  		m.pb = m.p
  4152  
  4153  		goto _again
  4154  	f9:
  4155  
  4156  		// List of positions in the buffer to later lowercase
  4157  		output.tolower = append(output.tolower, m.p-m.pb)
  4158  
  4159  		goto _again
  4160  	f2:
  4161  
  4162  		output.prefix = string(m.text())
  4163  
  4164  		goto _again
  4165  	f6:
  4166  
  4167  		output.ID = string(m.text())
  4168  
  4169  		goto _again
  4170  	f38:
  4171  
  4172  		output.SS = string(m.text())
  4173  		// Iterate upper letters lowering them
  4174  		for _, i := range output.tolower {
  4175  			m.data[m.pb+i] = m.data[m.pb+i] + 32
  4176  		}
  4177  		output.norm = string(m.text())
  4178  		// Revert the buffer to the original
  4179  		for _, i := range output.tolower {
  4180  			m.data[m.pb+i] = m.data[m.pb+i] - 32
  4181  		}
  4182  
  4183  		goto _again
  4184  	f0:
  4185  
  4186  		m.err = fmt.Errorf(errPrefix, m.p)
  4187  		(m.p)--
  4188  
  4189  		m.cs = 193
  4190  		goto _again
  4191  
  4192  		goto _again
  4193  	f5:
  4194  
  4195  		m.err = fmt.Errorf(errIdentifier, m.p)
  4196  		(m.p)--
  4197  
  4198  		m.cs = 193
  4199  		goto _again
  4200  
  4201  		goto _again
  4202  	f7:
  4203  
  4204  		m.err = fmt.Errorf(errSpecificString, m.p)
  4205  		(m.p)--
  4206  
  4207  		m.cs = 193
  4208  		goto _again
  4209  
  4210  		goto _again
  4211  	f23:
  4212  
  4213  		if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4214  			m.err = fmt.Errorf(errHex, m.p)
  4215  			(m.p)--
  4216  
  4217  			m.cs = 193
  4218  			goto _again
  4219  
  4220  		}
  4221  
  4222  		goto _again
  4223  	f11:
  4224  
  4225  		m.err = fmt.Errorf(errSCIMNamespace, m.p)
  4226  		(m.p)--
  4227  
  4228  		m.cs = 193
  4229  		goto _again
  4230  
  4231  		goto _again
  4232  	f13:
  4233  
  4234  		m.err = fmt.Errorf(errSCIMType, m.p)
  4235  		(m.p)--
  4236  
  4237  		m.cs = 193
  4238  		goto _again
  4239  
  4240  		goto _again
  4241  	f15:
  4242  
  4243  		m.err = fmt.Errorf(errSCIMName, m.p)
  4244  		(m.p)--
  4245  
  4246  		m.cs = 193
  4247  		goto _again
  4248  
  4249  		goto _again
  4250  	f17:
  4251  
  4252  		if m.p == m.pe {
  4253  			m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1)
  4254  		} else {
  4255  			m.err = fmt.Errorf(errSCIMOther, m.p)
  4256  		}
  4257  		(m.p)--
  4258  
  4259  		m.cs = 193
  4260  		goto _again
  4261  
  4262  		goto _again
  4263  	f14:
  4264  
  4265  		output.scim.Type = scimschema.TypeFromString(string(m.text()))
  4266  
  4267  		goto _again
  4268  	f16:
  4269  
  4270  		output.scim.pos = m.p
  4271  
  4272  		goto _again
  4273  	f35:
  4274  
  4275  		output.scim.Name = string(m.data[output.scim.pos:m.p])
  4276  
  4277  		goto _again
  4278  	f18:
  4279  
  4280  		output.scim.pos = m.p
  4281  
  4282  		goto _again
  4283  	f22:
  4284  
  4285  		m.err = fmt.Errorf(err8141SpecificString, m.p)
  4286  		(m.p)--
  4287  
  4288  		m.cs = 193
  4289  		goto _again
  4290  
  4291  		goto _again
  4292  	f21:
  4293  
  4294  		m.err = fmt.Errorf(err8141Identifier, m.p)
  4295  		(m.p)--
  4296  
  4297  		m.cs = 193
  4298  		goto _again
  4299  
  4300  		goto _again
  4301  	f42:
  4302  
  4303  		output.rComponent = string(m.text())
  4304  
  4305  		goto _again
  4306  	f48:
  4307  
  4308  		output.qComponent = string(m.text())
  4309  
  4310  		goto _again
  4311  	f44:
  4312  
  4313  		if output.rStart {
  4314  			m.err = fmt.Errorf(err8141RComponentStart, m.p)
  4315  			(m.p)--
  4316  
  4317  			m.cs = 193
  4318  			goto _again
  4319  
  4320  		}
  4321  		output.rStart = true
  4322  
  4323  		goto _again
  4324  	f50:
  4325  
  4326  		if output.qStart {
  4327  			m.err = fmt.Errorf(err8141QComponentStart, m.p)
  4328  			(m.p)--
  4329  
  4330  			m.cs = 193
  4331  			goto _again
  4332  
  4333  		}
  4334  		output.qStart = true
  4335  
  4336  		goto _again
  4337  	f25:
  4338  
  4339  		m.err = fmt.Errorf(err8141MalformedRComp, m.p)
  4340  		(m.p)--
  4341  
  4342  		m.cs = 193
  4343  		goto _again
  4344  
  4345  		goto _again
  4346  	f30:
  4347  
  4348  		m.err = fmt.Errorf(err8141MalformedQComp, m.p)
  4349  		(m.p)--
  4350  
  4351  		m.cs = 193
  4352  		goto _again
  4353  
  4354  		goto _again
  4355  	f1:
  4356  
  4357  		m.pb = m.p
  4358  
  4359  		if m.parsingMode != RFC8141Only {
  4360  			// Throw an error when:
  4361  			// - we are entering here matching the the prefix in the namespace identifier part
  4362  			// - looking ahead (3 chars) we find a colon
  4363  			if pos := m.p + 3; pos < m.pe && m.data[pos] == 58 && output.prefix != "" {
  4364  				m.err = fmt.Errorf(errNoUrnWithinID, pos)
  4365  				(m.p)--
  4366  
  4367  				m.cs = 193
  4368  				goto _again
  4369  
  4370  			}
  4371  		}
  4372  
  4373  		goto _again
  4374  	f12:
  4375  
  4376  		output.ID = string(m.text())
  4377  
  4378  		output.scim = &SCIM{}
  4379  
  4380  		goto _again
  4381  	f3:
  4382  
  4383  		m.err = fmt.Errorf(errIdentifier, m.p)
  4384  		(m.p)--
  4385  
  4386  		m.cs = 193
  4387  		goto _again
  4388  
  4389  		m.err = fmt.Errorf(errPrefix, m.p)
  4390  		(m.p)--
  4391  
  4392  		m.cs = 193
  4393  		goto _again
  4394  
  4395  		goto _again
  4396  	f10:
  4397  
  4398  		m.err = fmt.Errorf(errIdentifier, m.p)
  4399  		(m.p)--
  4400  
  4401  		m.cs = 193
  4402  		goto _again
  4403  
  4404  		m.err = fmt.Errorf(errNoUrnWithinID, m.p)
  4405  		(m.p)--
  4406  
  4407  		m.cs = 193
  4408  		goto _again
  4409  
  4410  		goto _again
  4411  	f8:
  4412  
  4413  		if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4414  			m.err = fmt.Errorf(errHex, m.p)
  4415  			(m.p)--
  4416  
  4417  			m.cs = 193
  4418  			goto _again
  4419  
  4420  		}
  4421  
  4422  		m.err = fmt.Errorf(errSpecificString, m.p)
  4423  		(m.p)--
  4424  
  4425  		m.cs = 193
  4426  		goto _again
  4427  
  4428  		goto _again
  4429  	f19:
  4430  
  4431  		if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4432  			m.err = fmt.Errorf(errHex, m.p)
  4433  			(m.p)--
  4434  
  4435  			m.cs = 193
  4436  			goto _again
  4437  
  4438  		}
  4439  
  4440  		if m.p == m.pe {
  4441  			m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1)
  4442  		} else {
  4443  			m.err = fmt.Errorf(errSCIMOther, m.p)
  4444  		}
  4445  		(m.p)--
  4446  
  4447  		m.cs = 193
  4448  		goto _again
  4449  
  4450  		goto _again
  4451  	f24:
  4452  
  4453  		if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4454  			m.err = fmt.Errorf(errHex, m.p)
  4455  			(m.p)--
  4456  
  4457  			m.cs = 193
  4458  			goto _again
  4459  
  4460  		}
  4461  
  4462  		m.err = fmt.Errorf(err8141SpecificString, m.p)
  4463  		(m.p)--
  4464  
  4465  		m.cs = 193
  4466  		goto _again
  4467  
  4468  		goto _again
  4469  	f27:
  4470  
  4471  		if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4472  			m.err = fmt.Errorf(errHex, m.p)
  4473  			(m.p)--
  4474  
  4475  			m.cs = 193
  4476  			goto _again
  4477  
  4478  		}
  4479  
  4480  		m.err = fmt.Errorf(err8141MalformedRComp, m.p)
  4481  		(m.p)--
  4482  
  4483  		m.cs = 193
  4484  		goto _again
  4485  
  4486  		goto _again
  4487  	f28:
  4488  
  4489  		if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4490  			m.err = fmt.Errorf(errHex, m.p)
  4491  			(m.p)--
  4492  
  4493  			m.cs = 193
  4494  			goto _again
  4495  
  4496  		}
  4497  
  4498  		m.err = fmt.Errorf(err8141MalformedQComp, m.p)
  4499  		(m.p)--
  4500  
  4501  		m.cs = 193
  4502  		goto _again
  4503  
  4504  		goto _again
  4505  	f20:
  4506  
  4507  		m.err = fmt.Errorf(err8141Identifier, m.p)
  4508  		(m.p)--
  4509  
  4510  		m.cs = 193
  4511  		goto _again
  4512  
  4513  		m.err = fmt.Errorf(errPrefix, m.p)
  4514  		(m.p)--
  4515  
  4516  		m.cs = 193
  4517  		goto _again
  4518  
  4519  		goto _again
  4520  	f26:
  4521  
  4522  		if output.rStart {
  4523  			m.err = fmt.Errorf(err8141RComponentStart, m.p)
  4524  			(m.p)--
  4525  
  4526  			m.cs = 193
  4527  			goto _again
  4528  
  4529  		}
  4530  		output.rStart = true
  4531  
  4532  		m.pb = m.p
  4533  
  4534  		goto _again
  4535  	f45:
  4536  
  4537  		if output.rStart {
  4538  			m.err = fmt.Errorf(err8141RComponentStart, m.p)
  4539  			(m.p)--
  4540  
  4541  			m.cs = 193
  4542  			goto _again
  4543  
  4544  		}
  4545  		output.rStart = true
  4546  
  4547  		output.rComponent = string(m.text())
  4548  
  4549  		goto _again
  4550  	f31:
  4551  
  4552  		if output.qStart {
  4553  			m.err = fmt.Errorf(err8141QComponentStart, m.p)
  4554  			(m.p)--
  4555  
  4556  			m.cs = 193
  4557  			goto _again
  4558  
  4559  		}
  4560  		output.qStart = true
  4561  
  4562  		m.pb = m.p
  4563  
  4564  		goto _again
  4565  	f51:
  4566  
  4567  		if output.qStart {
  4568  			m.err = fmt.Errorf(err8141QComponentStart, m.p)
  4569  			(m.p)--
  4570  
  4571  			m.cs = 193
  4572  			goto _again
  4573  
  4574  		}
  4575  		output.qStart = true
  4576  
  4577  		output.qComponent = string(m.text())
  4578  
  4579  		goto _again
  4580  	f46:
  4581  
  4582  		m.err = fmt.Errorf(err8141MalformedRComp, m.p)
  4583  		(m.p)--
  4584  
  4585  		m.cs = 193
  4586  		goto _again
  4587  
  4588  		m.err = fmt.Errorf(err8141MalformedQComp, m.p)
  4589  		(m.p)--
  4590  
  4591  		m.cs = 193
  4592  		goto _again
  4593  
  4594  		goto _again
  4595  	f29:
  4596  
  4597  		if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4598  			m.err = fmt.Errorf(errHex, m.p)
  4599  			(m.p)--
  4600  
  4601  			m.cs = 193
  4602  			goto _again
  4603  
  4604  		}
  4605  
  4606  		m.err = fmt.Errorf(err8141MalformedRComp, m.p)
  4607  		(m.p)--
  4608  
  4609  		m.cs = 193
  4610  		goto _again
  4611  
  4612  		m.err = fmt.Errorf(err8141MalformedQComp, m.p)
  4613  		(m.p)--
  4614  
  4615  		m.cs = 193
  4616  		goto _again
  4617  
  4618  		goto _again
  4619  
  4620  	_again:
  4621  		switch _toStateActions[m.cs] {
  4622  		case 33:
  4623  
  4624  			(m.p)--
  4625  
  4626  			m.err = fmt.Errorf(err8141InformalID, m.p)
  4627  			m.cs = 193
  4628  			goto _again
  4629  		}
  4630  
  4631  		if m.cs == 0 {
  4632  			goto _out
  4633  		}
  4634  		if (m.p)++; (m.p) != (m.pe) {
  4635  			goto _resume
  4636  		}
  4637  	_testEof:
  4638  		{
  4639  		}
  4640  		if (m.p) == (m.eof) {
  4641  			switch _eofActions[m.cs] {
  4642  			case 1:
  4643  
  4644  				m.err = fmt.Errorf(errPrefix, m.p)
  4645  				(m.p)--
  4646  
  4647  				m.cs = 193
  4648  				goto _again
  4649  
  4650  			case 6:
  4651  
  4652  				m.err = fmt.Errorf(errIdentifier, m.p)
  4653  				(m.p)--
  4654  
  4655  				m.cs = 193
  4656  				goto _again
  4657  
  4658  			case 8:
  4659  
  4660  				m.err = fmt.Errorf(errSpecificString, m.p)
  4661  				(m.p)--
  4662  
  4663  				m.cs = 193
  4664  				goto _again
  4665  
  4666  			case 24:
  4667  
  4668  				if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4669  					m.err = fmt.Errorf(errHex, m.p)
  4670  					(m.p)--
  4671  
  4672  					m.cs = 193
  4673  					goto _again
  4674  
  4675  				}
  4676  
  4677  			case 12:
  4678  
  4679  				m.err = fmt.Errorf(errSCIMNamespace, m.p)
  4680  				(m.p)--
  4681  
  4682  				m.cs = 193
  4683  				goto _again
  4684  
  4685  			case 14:
  4686  
  4687  				m.err = fmt.Errorf(errSCIMType, m.p)
  4688  				(m.p)--
  4689  
  4690  				m.cs = 193
  4691  				goto _again
  4692  
  4693  			case 16:
  4694  
  4695  				m.err = fmt.Errorf(errSCIMName, m.p)
  4696  				(m.p)--
  4697  
  4698  				m.cs = 193
  4699  				goto _again
  4700  
  4701  			case 18:
  4702  
  4703  				if m.p == m.pe {
  4704  					m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1)
  4705  				} else {
  4706  					m.err = fmt.Errorf(errSCIMOther, m.p)
  4707  				}
  4708  				(m.p)--
  4709  
  4710  				m.cs = 193
  4711  				goto _again
  4712  
  4713  			case 23:
  4714  
  4715  				m.err = fmt.Errorf(err8141SpecificString, m.p)
  4716  				(m.p)--
  4717  
  4718  				m.cs = 193
  4719  				goto _again
  4720  
  4721  			case 22:
  4722  
  4723  				m.err = fmt.Errorf(err8141Identifier, m.p)
  4724  				(m.p)--
  4725  
  4726  				m.cs = 193
  4727  				goto _again
  4728  
  4729  			case 26:
  4730  
  4731  				m.err = fmt.Errorf(err8141MalformedRComp, m.p)
  4732  				(m.p)--
  4733  
  4734  				m.cs = 193
  4735  				goto _again
  4736  
  4737  			case 31:
  4738  
  4739  				m.err = fmt.Errorf(err8141MalformedQComp, m.p)
  4740  				(m.p)--
  4741  
  4742  				m.cs = 193
  4743  				goto _again
  4744  
  4745  			case 34:
  4746  
  4747  				output.SS = string(m.text())
  4748  				// Iterate upper letters lowering them
  4749  				for _, i := range output.tolower {
  4750  					m.data[m.pb+i] = m.data[m.pb+i] + 32
  4751  				}
  4752  				output.norm = string(m.text())
  4753  				// Revert the buffer to the original
  4754  				for _, i := range output.tolower {
  4755  					m.data[m.pb+i] = m.data[m.pb+i] - 32
  4756  				}
  4757  
  4758  				output.kind = RFC2141
  4759  
  4760  			case 38:
  4761  
  4762  				output.SS = string(m.text())
  4763  				// Iterate upper letters lowering them
  4764  				for _, i := range output.tolower {
  4765  					m.data[m.pb+i] = m.data[m.pb+i] + 32
  4766  				}
  4767  				output.norm = string(m.text())
  4768  				// Revert the buffer to the original
  4769  				for _, i := range output.tolower {
  4770  					m.data[m.pb+i] = m.data[m.pb+i] - 32
  4771  				}
  4772  
  4773  				output.kind = RFC8141
  4774  
  4775  			case 4:
  4776  
  4777  				m.err = fmt.Errorf(errIdentifier, m.p)
  4778  				(m.p)--
  4779  
  4780  				m.cs = 193
  4781  				goto _again
  4782  
  4783  				m.err = fmt.Errorf(errPrefix, m.p)
  4784  				(m.p)--
  4785  
  4786  				m.cs = 193
  4787  				goto _again
  4788  
  4789  			case 11:
  4790  
  4791  				m.err = fmt.Errorf(errIdentifier, m.p)
  4792  				(m.p)--
  4793  
  4794  				m.cs = 193
  4795  				goto _again
  4796  
  4797  				m.err = fmt.Errorf(errNoUrnWithinID, m.p)
  4798  				(m.p)--
  4799  
  4800  				m.cs = 193
  4801  				goto _again
  4802  
  4803  			case 9:
  4804  
  4805  				if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4806  					m.err = fmt.Errorf(errHex, m.p)
  4807  					(m.p)--
  4808  
  4809  					m.cs = 193
  4810  					goto _again
  4811  
  4812  				}
  4813  
  4814  				m.err = fmt.Errorf(errSpecificString, m.p)
  4815  				(m.p)--
  4816  
  4817  				m.cs = 193
  4818  				goto _again
  4819  
  4820  			case 20:
  4821  
  4822  				if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4823  					m.err = fmt.Errorf(errHex, m.p)
  4824  					(m.p)--
  4825  
  4826  					m.cs = 193
  4827  					goto _again
  4828  
  4829  				}
  4830  
  4831  				if m.p == m.pe {
  4832  					m.err = fmt.Errorf(errSCIMOtherIncomplete, m.p-1)
  4833  				} else {
  4834  					m.err = fmt.Errorf(errSCIMOther, m.p)
  4835  				}
  4836  				(m.p)--
  4837  
  4838  				m.cs = 193
  4839  				goto _again
  4840  
  4841  			case 25:
  4842  
  4843  				if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4844  					m.err = fmt.Errorf(errHex, m.p)
  4845  					(m.p)--
  4846  
  4847  					m.cs = 193
  4848  					goto _again
  4849  
  4850  				}
  4851  
  4852  				m.err = fmt.Errorf(err8141SpecificString, m.p)
  4853  				(m.p)--
  4854  
  4855  				m.cs = 193
  4856  				goto _again
  4857  
  4858  			case 28:
  4859  
  4860  				if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4861  					m.err = fmt.Errorf(errHex, m.p)
  4862  					(m.p)--
  4863  
  4864  					m.cs = 193
  4865  					goto _again
  4866  
  4867  				}
  4868  
  4869  				m.err = fmt.Errorf(err8141MalformedRComp, m.p)
  4870  				(m.p)--
  4871  
  4872  				m.cs = 193
  4873  				goto _again
  4874  
  4875  			case 29:
  4876  
  4877  				if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4878  					m.err = fmt.Errorf(errHex, m.p)
  4879  					(m.p)--
  4880  
  4881  					m.cs = 193
  4882  					goto _again
  4883  
  4884  				}
  4885  
  4886  				m.err = fmt.Errorf(err8141MalformedQComp, m.p)
  4887  				(m.p)--
  4888  
  4889  				m.cs = 193
  4890  				goto _again
  4891  
  4892  			case 21:
  4893  
  4894  				m.err = fmt.Errorf(err8141Identifier, m.p)
  4895  				(m.p)--
  4896  
  4897  				m.cs = 193
  4898  				goto _again
  4899  
  4900  				m.err = fmt.Errorf(errPrefix, m.p)
  4901  				(m.p)--
  4902  
  4903  				m.cs = 193
  4904  				goto _again
  4905  
  4906  			case 42:
  4907  
  4908  				output.rComponent = string(m.text())
  4909  
  4910  				output.kind = RFC8141
  4911  
  4912  			case 48:
  4913  
  4914  				output.qComponent = string(m.text())
  4915  
  4916  				output.kind = RFC8141
  4917  
  4918  			case 41:
  4919  
  4920  				output.fComponent = string(m.text())
  4921  
  4922  				output.kind = RFC8141
  4923  
  4924  			case 40:
  4925  
  4926  				m.pb = m.p
  4927  
  4928  				output.fComponent = string(m.text())
  4929  
  4930  				output.kind = RFC8141
  4931  
  4932  			case 30:
  4933  
  4934  				if m.parsingMode == RFC2141Only || m.parsingMode == RFC8141Only {
  4935  					m.err = fmt.Errorf(errHex, m.p)
  4936  					(m.p)--
  4937  
  4938  					m.cs = 193
  4939  					goto _again
  4940  
  4941  				}
  4942  
  4943  				m.err = fmt.Errorf(err8141MalformedRComp, m.p)
  4944  				(m.p)--
  4945  
  4946  				m.cs = 193
  4947  				goto _again
  4948  
  4949  				m.err = fmt.Errorf(err8141MalformedQComp, m.p)
  4950  				(m.p)--
  4951  
  4952  				m.cs = 193
  4953  				goto _again
  4954  
  4955  			case 35:
  4956  
  4957  				output.scim.Name = string(m.data[output.scim.pos:m.p])
  4958  
  4959  				output.SS = string(m.text())
  4960  				// Iterate upper letters lowering them
  4961  				for _, i := range output.tolower {
  4962  					m.data[m.pb+i] = m.data[m.pb+i] + 32
  4963  				}
  4964  				output.norm = string(m.text())
  4965  				// Revert the buffer to the original
  4966  				for _, i := range output.tolower {
  4967  					m.data[m.pb+i] = m.data[m.pb+i] - 32
  4968  				}
  4969  
  4970  				output.kind = RFC7643
  4971  
  4972  			case 37:
  4973  
  4974  				output.scim.Other = string(m.data[output.scim.pos:m.p])
  4975  
  4976  				output.SS = string(m.text())
  4977  				// Iterate upper letters lowering them
  4978  				for _, i := range output.tolower {
  4979  					m.data[m.pb+i] = m.data[m.pb+i] + 32
  4980  				}
  4981  				output.norm = string(m.text())
  4982  				// Revert the buffer to the original
  4983  				for _, i := range output.tolower {
  4984  					m.data[m.pb+i] = m.data[m.pb+i] - 32
  4985  				}
  4986  
  4987  				output.kind = RFC7643
  4988  
  4989  			case 44:
  4990  
  4991  				if output.rStart {
  4992  					m.err = fmt.Errorf(err8141RComponentStart, m.p)
  4993  					(m.p)--
  4994  
  4995  					m.cs = 193
  4996  					goto _again
  4997  
  4998  				}
  4999  				output.rStart = true
  5000  
  5001  				output.rComponent = string(m.text())
  5002  
  5003  				output.kind = RFC8141
  5004  
  5005  			case 50:
  5006  
  5007  				if output.qStart {
  5008  					m.err = fmt.Errorf(err8141QComponentStart, m.p)
  5009  					(m.p)--
  5010  
  5011  					m.cs = 193
  5012  					goto _again
  5013  
  5014  				}
  5015  				output.qStart = true
  5016  
  5017  				output.qComponent = string(m.text())
  5018  
  5019  				output.kind = RFC8141
  5020  			}
  5021  		}
  5022  
  5023  	_out:
  5024  		{
  5025  		}
  5026  	}
  5027  
  5028  	if m.cs < firstFinal || m.cs == enFail {
  5029  		return nil, m.err
  5030  	}
  5031  
  5032  	return output, nil
  5033  }
  5034  
  5035  func (m *machine) WithParsingMode(x ParsingMode) {
  5036  	m.parsingMode = x
  5037  	switch m.parsingMode {
  5038  	case RFC2141Only:
  5039  		m.startParsingAt = enMain
  5040  	case RFC8141Only:
  5041  		m.startParsingAt = enRfc8141Only
  5042  	case RFC7643Only:
  5043  		m.startParsingAt = enScimOnly
  5044  	}
  5045  	m.parsingModeSet = true
  5046  }
  5047  

View as plain text