// line 1 "ext/hpricot_scan/hpricot_scan.java.rl" import java.io.IOException; import org.jruby.Ruby; import org.jruby.RubyClass; import org.jruby.RubyHash; import org.jruby.RubyModule; import org.jruby.RubyNumeric; import org.jruby.RubyObjectAdapter; import org.jruby.RubyString; import org.jruby.javasupport.JavaEmbedUtils; import org.jruby.runtime.Block; import org.jruby.runtime.CallbackFactory; import org.jruby.runtime.builtin.IRubyObject; import org.jruby.exceptions.RaiseException; import org.jruby.runtime.load.BasicLibraryService; public class HpricotScanService implements BasicLibraryService { public static String NO_WAY_SERIOUSLY="*** This should not happen, please send a bug report with the HTML you're parsing to why@whytheluckystiff.net. So sorry!"; private static RubyObjectAdapter rubyApi; public void ELE(IRubyObject N) { if (tokend > tokstart || text) { IRubyObject raw_string = runtime.getNil(); ele_open = false; text = false; if (tokstart != -1 && N != cdata && N != sym_text && N != procins && N != comment) { raw_string = runtime.newString(new String(buf,tokstart,tokend-tokstart)); } rb_yield_tokens(N, tag[0], attr, raw_string, taint); } } public void SET(IRubyObject[] N, int E) { int mark = 0; if(N == tag) { if(mark_tag == -1 || E == mark_tag) { tag[0] = runtime.newString(""); } else if(E > mark_tag) { tag[0] = runtime.newString(new String(buf,mark_tag, E-mark_tag)); } } else if(N == akey) { if(mark_akey == -1 || E == mark_akey) { akey[0] = runtime.newString(""); } else if(E > mark_akey) { akey[0] = runtime.newString(new String(buf,mark_akey, E-mark_akey)); } } else if(N == aval) { if(mark_aval == -1 || E == mark_aval) { aval[0] = runtime.newString(""); } else if(E > mark_aval) { aval[0] = runtime.newString(new String(buf,mark_aval, E-mark_aval)); } } } public void CAT(IRubyObject[] N, int E) { if(N[0].isNil()) { SET(N,E); } else { int mark = 0; if(N == tag) { mark = mark_tag; } else if(N == akey) { mark = mark_akey; } else if(N == aval) { mark = mark_aval; } ((RubyString)(N[0])).append(runtime.newString(new String(buf, mark, E-mark))); } } public void SLIDE(Object N) { int mark = 0; if(N == tag) { mark = mark_tag; } else if(N == akey) { mark = mark_akey; } else if(N == aval) { mark = mark_aval; } if(mark > tokstart) { if(N == tag) { mark_tag -= tokstart; } else if(N == akey) { mark_akey -= tokstart; } else if(N == aval) { mark_aval -= tokstart; } } } public void ATTR(IRubyObject K, IRubyObject V) { if(!K.isNil()) { if(attr.isNil()) { attr = RubyHash.newHash(runtime); } ((RubyHash)attr).aset(K,V); } } public void ATTR(IRubyObject[] K, IRubyObject V) { ATTR(K[0],V); } public void ATTR(IRubyObject K, IRubyObject[] V) { ATTR(K,V[0]); } public void ATTR(IRubyObject[] K, IRubyObject[] V) { ATTR(K[0],V[0]); } public void TEXT_PASS() { if(!text) { if(ele_open) { ele_open = false; if(tokstart > -1) { mark_tag = tokstart; } } else { mark_tag = p; } attr = runtime.getNil(); tag[0] = runtime.getNil(); text = true; } } public void EBLK(IRubyObject N, int T) { CAT(tag, p - T + 1); ELE(N); } public void rb_raise(RubyClass error, String message) { throw new RaiseException(runtime, error, message, true); } public IRubyObject rb_str_new2(String s) { return runtime.newString(s); } // line 188 "ext/hpricot_scan/hpricot_scan.java.rl" // line 149 "ext/hpricot_scan/HpricotScanService.java" private static void init__hpricot_scan_actions_0( byte[] r ) { r[0]=0; r[1]=1; r[2]=1; r[3]=1; r[4]=2; r[5]=1; r[6]=4; r[7]=1; r[8]=5; r[9]=1; r[10]=6; r[11]=1; r[12]=7; r[13]=1; r[14]=8; r[15]=1; r[16]=9; r[17]=1; r[18]=10; r[19]=1; r[20]=11; r[21]=1; r[22]=12; r[23]=1; r[24]=14; r[25]=1; r[26]=16; r[27]=1; r[28]=20; r[29]=1; r[30]=21; r[31]=1; r[32]=22; r[33]=1; r[34]=24; r[35]=1; r[36]=25; r[37]=1; r[38]=26; r[39]=1; r[40]=28; r[41]=1; r[42]=29; r[43]=1; r[44]=30; r[45]=1; r[46]=32; r[47]=1; r[48]=33; r[49]=1; r[50]=38; r[51]=1; r[52]=39; r[53]=1; r[54]=40; r[55]=1; r[56]=41; r[57]=1; r[58]=42; r[59]=1; r[60]=43; r[61]=1; r[62]=44; r[63]=1; r[64]=45; r[65]=1; r[66]=46; r[67]=1; r[68]=47; r[69]=1; r[70]=48; r[71]=1; r[72]=49; r[73]=1; r[74]=50; r[75]=2; r[76]=2; r[77]=5; r[78]=2; r[79]=2; r[80]=6; r[81]=2; r[82]=2; r[83]=11; r[84]=2; r[85]=2; r[86]=12; r[87]=2; r[88]=2; r[89]=14; r[90]=2; r[91]=4; r[92]=39; r[93]=2; r[94]=4; r[95]=40; r[96]=2; r[97]=4; r[98]=41; r[99]=2; r[100]=5; r[101]=2; r[102]=2; r[103]=6; r[104]=14; r[105]=2; r[106]=7; r[107]=6; r[108]=2; r[109]=7; r[110]=14; r[111]=2; r[112]=11; r[113]=12; r[114]=2; r[115]=13; r[116]=3; r[117]=2; r[118]=14; r[119]=6; r[120]=2; r[121]=14; r[122]=40; r[123]=2; r[124]=15; r[125]=24; r[126]=2; r[127]=15; r[128]=28; r[129]=2; r[130]=15; r[131]=32; r[132]=2; r[133]=15; r[134]=45; r[135]=2; r[136]=17; r[137]=23; r[138]=2; r[139]=18; r[140]=27; r[141]=2; r[142]=19; r[143]=31; r[144]=2; r[145]=22; r[146]=34; r[147]=2; r[148]=22; r[149]=36; r[150]=3; r[151]=2; r[152]=6; r[153]=14; r[154]=3; r[155]=2; r[156]=14; r[157]=6; r[158]=3; r[159]=6; r[160]=7; r[161]=14; r[162]=3; r[163]=6; r[164]=14; r[165]=40; r[166]=3; r[167]=7; r[168]=14; r[169]=40; r[170]=3; r[171]=14; r[172]=6; r[173]=40; r[174]=3; r[175]=14; r[176]=13; r[177]=3; r[178]=3; r[179]=22; r[180]=0; r[181]=37; r[182]=3; r[183]=22; r[184]=2; r[185]=34; r[186]=3; r[187]=22; r[188]=14; r[189]=35; r[190]=4; r[191]=2; r[192]=14; r[193]=13; r[194]=3; r[195]=4; r[196]=6; r[197]=7; r[198]=14; r[199]=40; r[200]=4; r[201]=22; r[202]=2; r[203]=14; r[204]=35; r[205]=4; r[206]=22; r[207]=6; r[208]=14; r[209]=35; r[210]=4; r[211]=22; r[212]=7; r[213]=14; r[214]=35; r[215]=4; r[216]=22; r[217]=14; r[218]=6; r[219]=35; r[220]=5; r[221]=22; r[222]=2; r[223]=6; r[224]=14; r[225]=35; r[226]=5; r[227]=22; r[228]=2; r[229]=14; r[230]=6; r[231]=35; r[232]=5; r[233]=22; r[234]=6; r[235]=7; r[236]=14; r[237]=35; } private static byte[] create__hpricot_scan_actions( ) { byte[] r = new byte[238]; init__hpricot_scan_actions_0( r ); return r; } private static final byte _hpricot_scan_actions[] = create__hpricot_scan_actions(); private static void init__hpricot_scan_key_offsets_0( short[] r ) { r[0]=0; r[1]=3; r[2]=4; r[3]=5; r[4]=6; r[5]=7; r[6]=8; r[7]=9; r[8]=10; r[9]=13; r[10]=22; r[11]=37; r[12]=44; r[13]=45; r[14]=46; r[15]=47; r[16]=48; r[17]=49; r[18]=52; r[19]=57; r[20]=69; r[21]=81; r[22]=86; r[23]=93; r[24]=94; r[25]=95; r[26]=100; r[27]=101; r[28]=105; r[29]=106; r[30]=107; r[31]=121; r[32]=135; r[33]=152; r[34]=169; r[35]=186; r[36]=203; r[37]=210; r[38]=212; r[39]=214; r[40]=220; r[41]=222; r[42]=227; r[43]=232; r[44]=238; r[45]=240; r[46]=245; r[47]=251; r[48]=265; r[49]=266; r[50]=267; r[51]=268; r[52]=269; r[53]=270; r[54]=271; r[55]=272; r[56]=273; r[57]=274; r[58]=275; r[59]=276; r[60]=282; r[61]=296; r[62]=300; r[63]=313; r[64]=326; r[65]=340; r[66]=354; r[67]=355; r[68]=366; r[69]=375; r[70]=388; r[71]=405; r[72]=423; r[73]=441; r[74]=450; r[75]=461; r[76]=480; r[77]=499; r[78]=510; r[79]=521; r[80]=536; r[81]=538; r[82]=540; r[83]=556; r[84]=572; r[85]=575; r[86]=587; r[87]=599; r[88]=619; r[89]=639; r[90]=658; r[91]=677; r[92]=697; r[93]=717; r[94]=728; r[95]=739; r[96]=751; r[97]=763; r[98]=775; r[99]=791; r[100]=794; r[101]=809; r[102]=811; r[103]=813; r[104]=829; r[105]=845; r[106]=848; r[107]=860; r[108]=871; r[109]=890; r[110]=910; r[111]=930; r[112]=941; r[113]=952; r[114]=964; r[115]=984; r[116]=1004; r[117]=1016; r[118]=1036; r[119]=1057; r[120]=1074; r[121]=1091; r[122]=1095; r[123]=1098; r[124]=1110; r[125]=1122; r[126]=1142; r[127]=1162; r[128]=1182; r[129]=1194; r[130]=1206; r[131]=1226; r[132]=1242; r[133]=1258; r[134]=1270; r[135]=1291; r[136]=1310; r[137]=1313; r[138]=1328; r[139]=1340; r[140]=1355; r[141]=1358; r[142]=1369; r[143]=1371; r[144]=1373; r[145]=1384; r[146]=1391; r[147]=1404; r[148]=1418; r[149]=1432; r[150]=1445; r[151]=1446; r[152]=1447; r[153]=1448; r[154]=1449; r[155]=1450; r[156]=1451; r[157]=1455; r[158]=1460; r[159]=1469; r[160]=1479; r[161]=1484; r[162]=1491; r[163]=1492; r[164]=1493; r[165]=1494; r[166]=1495; r[167]=1496; r[168]=1497; r[169]=1498; r[170]=1499; r[171]=1503; r[172]=1508; r[173]=1512; r[174]=1522; r[175]=1527; r[176]=1533; r[177]=1534; r[178]=1535; r[179]=1536; r[180]=1537; r[181]=1538; r[182]=1539; r[183]=1540; r[184]=1541; r[185]=1542; r[186]=1546; r[187]=1551; r[188]=1553; r[189]=1554; r[190]=1555; r[191]=1560; r[192]=1561; r[193]=1562; r[194]=1564; r[195]=1565; r[196]=1566; r[197]=1567; r[198]=1568; r[199]=1572; r[200]=1582; r[201]=1591; r[202]=1601; r[203]=1602; r[204]=1603; r[205]=1605; r[206]=1614; r[207]=1615; r[208]=1616; r[209]=1617; r[210]=1619; r[211]=1621; r[212]=1624; r[213]=1627; r[214]=1631; r[215]=1633; r[216]=1634; r[217]=1636; r[218]=1637; r[219]=1640; } private static short[] create__hpricot_scan_key_offsets( ) { short[] r = new short[220]; init__hpricot_scan_key_offsets_0( r ); return r; } private static final short _hpricot_scan_key_offsets[] = create__hpricot_scan_key_offsets(); private static void init__hpricot_scan_trans_keys_0( char[] r ) { r[0]=45; r[1]=68; r[2]=91; r[3]=45; r[4]=79; r[5]=67; r[6]=84; r[7]=89; r[8]=80; r[9]=69; r[10]=32; r[11]=9; r[12]=13; r[13]=32; r[14]=58; r[15]=95; r[16]=9; r[17]=13; r[18]=65; r[19]=90; r[20]=97; r[21]=122; r[22]=32; r[23]=62; r[24]=63; r[25]=91; r[26]=95; r[27]=9; r[28]=13; r[29]=45; r[30]=46; r[31]=48; r[32]=58; r[33]=65; r[34]=90; r[35]=97; r[36]=122; r[37]=32; r[38]=62; r[39]=80; r[40]=83; r[41]=91; r[42]=9; r[43]=13; r[44]=85; r[45]=66; r[46]=76; r[47]=73; r[48]=67; r[49]=32; r[50]=9; r[51]=13; r[52]=32; r[53]=34; r[54]=39; r[55]=9; r[56]=13; r[57]=9; r[58]=34; r[59]=61; r[60]=95; r[61]=32; r[62]=37; r[63]=39; r[64]=59; r[65]=63; r[66]=90; r[67]=97; r[68]=122; r[69]=9; r[70]=34; r[71]=61; r[72]=95; r[73]=32; r[74]=37; r[75]=39; r[76]=59; r[77]=63; r[78]=90; r[79]=97; r[80]=122; r[81]=32; r[82]=62; r[83]=91; r[84]=9; r[85]=13; r[86]=32; r[87]=34; r[88]=39; r[89]=62; r[90]=91; r[91]=9; r[92]=13; r[93]=34; r[94]=34; r[95]=32; r[96]=62; r[97]=91; r[98]=9; r[99]=13; r[100]=93; r[101]=32; r[102]=62; r[103]=9; r[104]=13; r[105]=39; r[106]=39; r[107]=9; r[108]=39; r[109]=61; r[110]=95; r[111]=32; r[112]=33; r[113]=35; r[114]=37; r[115]=40; r[116]=59; r[117]=63; r[118]=90; r[119]=97; r[120]=122; r[121]=9; r[122]=39; r[123]=61; r[124]=95; r[125]=32; r[126]=33; r[127]=35; r[128]=37; r[129]=40; r[130]=59; r[131]=63; r[132]=90; r[133]=97; r[134]=122; r[135]=9; r[136]=32; r[137]=33; r[138]=39; r[139]=62; r[140]=91; r[141]=95; r[142]=10; r[143]=13; r[144]=35; r[145]=37; r[146]=40; r[147]=59; r[148]=61; r[149]=90; r[150]=97; r[151]=122; r[152]=9; r[153]=32; r[154]=34; r[155]=39; r[156]=62; r[157]=91; r[158]=95; r[159]=10; r[160]=13; r[161]=33; r[162]=37; r[163]=40; r[164]=59; r[165]=61; r[166]=90; r[167]=97; r[168]=122; r[169]=9; r[170]=32; r[171]=33; r[172]=39; r[173]=62; r[174]=91; r[175]=95; r[176]=10; r[177]=13; r[178]=35; r[179]=37; r[180]=40; r[181]=59; r[182]=61; r[183]=90; r[184]=97; r[185]=122; r[186]=9; r[187]=32; r[188]=34; r[189]=39; r[190]=62; r[191]=91; r[192]=95; r[193]=10; r[194]=13; r[195]=33; r[196]=37; r[197]=40; r[198]=59; r[199]=61; r[200]=90; r[201]=97; r[202]=122; r[203]=32; r[204]=34; r[205]=39; r[206]=62; r[207]=91; r[208]=9; r[209]=13; r[210]=34; r[211]=39; r[212]=34; r[213]=39; r[214]=32; r[215]=39; r[216]=62; r[217]=91; r[218]=9; r[219]=13; r[220]=39; r[221]=93; r[222]=32; r[223]=62; r[224]=93; r[225]=9; r[226]=13; r[227]=32; r[228]=39; r[229]=62; r[230]=9; r[231]=13; r[232]=32; r[233]=34; r[234]=62; r[235]=91; r[236]=9; r[237]=13; r[238]=34; r[239]=93; r[240]=32; r[241]=34; r[242]=62; r[243]=9; r[244]=13; r[245]=32; r[246]=39; r[247]=62; r[248]=91; r[249]=9; r[250]=13; r[251]=9; r[252]=39; r[253]=61; r[254]=95; r[255]=32; r[256]=33; r[257]=35; r[258]=37; r[259]=40; r[260]=59; r[261]=63; r[262]=90; r[263]=97; r[264]=122; r[265]=89; r[266]=83; r[267]=84; r[268]=69; r[269]=77; r[270]=67; r[271]=68; r[272]=65; r[273]=84; r[274]=65; r[275]=91; r[276]=58; r[277]=95; r[278]=65; r[279]=90; r[280]=97; r[281]=122; r[282]=32; r[283]=62; r[284]=63; r[285]=95; r[286]=9; r[287]=13; r[288]=45; r[289]=46; r[290]=48; r[291]=58; r[292]=65; r[293]=90; r[294]=97; r[295]=122; r[296]=32; r[297]=62; r[298]=9; r[299]=13; r[300]=32; r[301]=47; r[302]=62; r[303]=63; r[304]=95; r[305]=9; r[306]=13; r[307]=45; r[308]=58; r[309]=65; r[310]=90; r[311]=97; r[312]=122; r[313]=32; r[314]=47; r[315]=62; r[316]=63; r[317]=95; r[318]=9; r[319]=13; r[320]=45; r[321]=58; r[322]=65; r[323]=90; r[324]=97; r[325]=122; r[326]=32; r[327]=47; r[328]=61; r[329]=62; r[330]=63; r[331]=95; r[332]=9; r[333]=13; r[334]=45; r[335]=58; r[336]=65; r[337]=90; r[338]=97; r[339]=122; r[340]=32; r[341]=47; r[342]=61; r[343]=62; r[344]=63; r[345]=95; r[346]=9; r[347]=13; r[348]=45; r[349]=58; r[350]=65; r[351]=90; r[352]=97; r[353]=122; r[354]=62; r[355]=13; r[356]=32; r[357]=34; r[358]=39; r[359]=47; r[360]=60; r[361]=62; r[362]=9; r[363]=10; r[364]=11; r[365]=12; r[366]=13; r[367]=32; r[368]=47; r[369]=60; r[370]=62; r[371]=9; r[372]=10; r[373]=11; r[374]=12; r[375]=32; r[376]=47; r[377]=62; r[378]=63; r[379]=95; r[380]=9; r[381]=13; r[382]=45; r[383]=58; r[384]=65; r[385]=90; r[386]=97; r[387]=122; r[388]=13; r[389]=32; r[390]=47; r[391]=60; r[392]=62; r[393]=63; r[394]=95; r[395]=9; r[396]=10; r[397]=11; r[398]=12; r[399]=45; r[400]=58; r[401]=65; r[402]=90; r[403]=97; r[404]=122; r[405]=13; r[406]=32; r[407]=47; r[408]=60; r[409]=61; r[410]=62; r[411]=63; r[412]=95; r[413]=9; r[414]=10; r[415]=11; r[416]=12; r[417]=45; r[418]=58; r[419]=65; r[420]=90; r[421]=97; r[422]=122; r[423]=13; r[424]=32; r[425]=47; r[426]=60; r[427]=61; r[428]=62; r[429]=63; r[430]=95; r[431]=9; r[432]=10; r[433]=11; r[434]=12; r[435]=45; r[436]=58; r[437]=65; r[438]=90; r[439]=97; r[440]=122; r[441]=13; r[442]=32; r[443]=47; r[444]=60; r[445]=62; r[446]=9; r[447]=10; r[448]=11; r[449]=12; r[450]=13; r[451]=32; r[452]=34; r[453]=39; r[454]=47; r[455]=60; r[456]=62; r[457]=9; r[458]=10; r[459]=11; r[460]=12; r[461]=13; r[462]=32; r[463]=34; r[464]=39; r[465]=47; r[466]=60; r[467]=62; r[468]=63; r[469]=95; r[470]=9; r[471]=10; r[472]=11; r[473]=12; r[474]=45; r[475]=58; r[476]=65; r[477]=90; r[478]=97; r[479]=122; r[480]=13; r[481]=32; r[482]=34; r[483]=39; r[484]=47; r[485]=60; r[486]=62; r[487]=63; r[488]=95; r[489]=9; r[490]=10; r[491]=11; r[492]=12; r[493]=45; r[494]=58; r[495]=65; r[496]=90; r[497]=97; r[498]=122; r[499]=13; r[500]=32; r[501]=34; r[502]=47; r[503]=60; r[504]=62; r[505]=92; r[506]=9; r[507]=10; r[508]=11; r[509]=12; r[510]=13; r[511]=32; r[512]=34; r[513]=47; r[514]=60; r[515]=62; r[516]=92; r[517]=9; r[518]=10; r[519]=11; r[520]=12; r[521]=32; r[522]=34; r[523]=47; r[524]=62; r[525]=63; r[526]=92; r[527]=95; r[528]=9; r[529]=13; r[530]=45; r[531]=58; r[532]=65; r[533]=90; r[534]=97; r[535]=122; r[536]=34; r[537]=92; r[538]=34; r[539]=92; r[540]=32; r[541]=34; r[542]=47; r[543]=61; r[544]=62; r[545]=63; r[546]=92; r[547]=95; r[548]=9; r[549]=13; r[550]=45; r[551]=58; r[552]=65; r[553]=90; r[554]=97; r[555]=122; r[556]=32; r[557]=34; r[558]=47; r[559]=61; r[560]=62; r[561]=63; r[562]=92; r[563]=95; r[564]=9; r[565]=13; r[566]=45; r[567]=58; r[568]=65; r[569]=90; r[570]=97; r[571]=122; r[572]=34; r[573]=62; r[574]=92; r[575]=13; r[576]=32; r[577]=34; r[578]=39; r[579]=47; r[580]=60; r[581]=62; r[582]=92; r[583]=9; r[584]=10; r[585]=11; r[586]=12; r[587]=13; r[588]=32; r[589]=34; r[590]=39; r[591]=47; r[592]=60; r[593]=62; r[594]=92; r[595]=9; r[596]=10; r[597]=11; r[598]=12; r[599]=13; r[600]=32; r[601]=34; r[602]=39; r[603]=47; r[604]=60; r[605]=62; r[606]=63; r[607]=92; r[608]=95; r[609]=9; r[610]=10; r[611]=11; r[612]=12; r[613]=45; r[614]=58; r[615]=65; r[616]=90; r[617]=97; r[618]=122; r[619]=13; r[620]=32; r[621]=34; r[622]=39; r[623]=47; r[624]=60; r[625]=62; r[626]=63; r[627]=92; r[628]=95; r[629]=9; r[630]=10; r[631]=11; r[632]=12; r[633]=45; r[634]=58; r[635]=65; r[636]=90; r[637]=97; r[638]=122; r[639]=13; r[640]=32; r[641]=34; r[642]=47; r[643]=60; r[644]=62; r[645]=63; r[646]=92; r[647]=95; r[648]=9; r[649]=10; r[650]=11; r[651]=12; r[652]=45; r[653]=58; r[654]=65; r[655]=90; r[656]=97; r[657]=122; r[658]=13; r[659]=32; r[660]=34; r[661]=47; r[662]=60; r[663]=62; r[664]=63; r[665]=92; r[666]=95; r[667]=9; r[668]=10; r[669]=11; r[670]=12; r[671]=45; r[672]=58; r[673]=65; r[674]=90; r[675]=97; r[676]=122; r[677]=13; r[678]=32; r[679]=34; r[680]=47; r[681]=60; r[682]=61; r[683]=62; r[684]=63; r[685]=92; r[686]=95; r[687]=9; r[688]=10; r[689]=11; r[690]=12; r[691]=45; r[692]=58; r[693]=65; r[694]=90; r[695]=97; r[696]=122; r[697]=13; r[698]=32; r[699]=34; r[700]=47; r[701]=60; r[702]=61; r[703]=62; r[704]=63; r[705]=92; r[706]=95; r[707]=9; r[708]=10; r[709]=11; r[710]=12; r[711]=45; r[712]=58; r[713]=65; r[714]=90; r[715]=97; r[716]=122; r[717]=13; r[718]=32; r[719]=34; r[720]=47; r[721]=60; r[722]=62; r[723]=92; r[724]=9; r[725]=10; r[726]=11; r[727]=12; r[728]=13; r[729]=32; r[730]=34; r[731]=47; r[732]=60; r[733]=62; r[734]=92; r[735]=9; r[736]=10; r[737]=11; r[738]=12; r[739]=13; r[740]=32; r[741]=34; r[742]=39; r[743]=47; r[744]=60; r[745]=62; r[746]=92; r[747]=9; r[748]=10; r[749]=11; r[750]=12; r[751]=13; r[752]=32; r[753]=34; r[754]=39; r[755]=47; r[756]=60; r[757]=62; r[758]=92; r[759]=9; r[760]=10; r[761]=11; r[762]=12; r[763]=13; r[764]=32; r[765]=34; r[766]=39; r[767]=47; r[768]=60; r[769]=62; r[770]=92; r[771]=9; r[772]=10; r[773]=11; r[774]=12; r[775]=32; r[776]=34; r[777]=39; r[778]=47; r[779]=62; r[780]=63; r[781]=92; r[782]=95; r[783]=9; r[784]=13; r[785]=45; r[786]=58; r[787]=65; r[788]=90; r[789]=97; r[790]=122; r[791]=34; r[792]=39; r[793]=92; r[794]=32; r[795]=39; r[796]=47; r[797]=62; r[798]=63; r[799]=92; r[800]=95; r[801]=9; r[802]=13; r[803]=45; r[804]=58; r[805]=65; r[806]=90; r[807]=97; r[808]=122; r[809]=39; r[810]=92; r[811]=39; r[812]=92; r[813]=32; r[814]=39; r[815]=47; r[816]=61; r[817]=62; r[818]=63; r[819]=92; r[820]=95; r[821]=9; r[822]=13; r[823]=45; r[824]=58; r[825]=65; r[826]=90; r[827]=97; r[828]=122; r[829]=32; r[830]=39; r[831]=47; r[832]=61; r[833]=62; r[834]=63; r[835]=92; r[836]=95; r[837]=9; r[838]=13; r[839]=45; r[840]=58; r[841]=65; r[842]=90; r[843]=97; r[844]=122; r[845]=39; r[846]=62; r[847]=92; r[848]=13; r[849]=32; r[850]=34; r[851]=39; r[852]=47; r[853]=60; r[854]=62; r[855]=92; r[856]=9; r[857]=10; r[858]=11; r[859]=12; r[860]=13; r[861]=32; r[862]=39; r[863]=47; r[864]=60; r[865]=62; r[866]=92; r[867]=9; r[868]=10; r[869]=11; r[870]=12; r[871]=13; r[872]=32; r[873]=39; r[874]=47; r[875]=60; r[876]=62; r[877]=63; r[878]=92; r[879]=95; r[880]=9; r[881]=10; r[882]=11; r[883]=12; r[884]=45; r[885]=58; r[886]=65; r[887]=90; r[888]=97; r[889]=122; r[890]=13; r[891]=32; r[892]=39; r[893]=47; r[894]=60; r[895]=61; r[896]=62; r[897]=63; r[898]=92; r[899]=95; r[900]=9; r[901]=10; r[902]=11; r[903]=12; r[904]=45; r[905]=58; r[906]=65; r[907]=90; r[908]=97; r[909]=122; r[910]=13; r[911]=32; r[912]=39; r[913]=47; r[914]=60; r[915]=61; r[916]=62; r[917]=63; r[918]=92; r[919]=95; r[920]=9; r[921]=10; r[922]=11; r[923]=12; r[924]=45; r[925]=58; r[926]=65; r[927]=90; r[928]=97; r[929]=122; r[930]=13; r[931]=32; r[932]=39; r[933]=47; r[934]=60; r[935]=62; r[936]=92; r[937]=9; r[938]=10; r[939]=11; r[940]=12; r[941]=13; r[942]=32; r[943]=39; r[944]=47; r[945]=60; r[946]=62; r[947]=92; r[948]=9; r[949]=10; r[950]=11; r[951]=12; r[952]=13; r[953]=32; r[954]=34; r[955]=39; r[956]=47; r[957]=60; r[958]=62; r[959]=92; r[960]=9; r[961]=10; r[962]=11; r[963]=12; r[964]=13; r[965]=32; r[966]=34; r[967]=39; r[968]=47; r[969]=60; r[970]=62; r[971]=63; r[972]=92; r[973]=95; r[974]=9; r[975]=10; r[976]=11; r[977]=12; r[978]=45; r[979]=58; r[980]=65; r[981]=90; r[982]=97; r[983]=122; r[984]=13; r[985]=32; r[986]=34; r[987]=39; r[988]=47; r[989]=60; r[990]=62; r[991]=63; r[992]=92; r[993]=95; r[994]=9; r[995]=10; r[996]=11; r[997]=12; r[998]=45; r[999]=58; r[1000]=65; r[1001]=90; r[1002]=97; r[1003]=122; r[1004]=13; r[1005]=32; r[1006]=34; r[1007]=39; r[1008]=47; r[1009]=60; r[1010]=62; r[1011]=92; r[1012]=9; r[1013]=10; r[1014]=11; r[1015]=12; r[1016]=13; r[1017]=32; r[1018]=34; r[1019]=39; r[1020]=47; r[1021]=60; r[1022]=62; r[1023]=63; r[1024]=92; r[1025]=95; r[1026]=9; r[1027]=10; r[1028]=11; r[1029]=12; r[1030]=45; r[1031]=58; r[1032]=65; r[1033]=90; r[1034]=97; r[1035]=122; r[1036]=13; r[1037]=32; r[1038]=34; r[1039]=39; r[1040]=47; r[1041]=60; r[1042]=61; r[1043]=62; r[1044]=63; r[1045]=92; r[1046]=95; r[1047]=9; r[1048]=10; r[1049]=11; r[1050]=12; r[1051]=45; r[1052]=58; r[1053]=65; r[1054]=90; r[1055]=97; r[1056]=122; r[1057]=32; r[1058]=34; r[1059]=39; r[1060]=47; r[1061]=61; r[1062]=62; r[1063]=63; r[1064]=92; r[1065]=95; r[1066]=9; r[1067]=13; r[1068]=45; r[1069]=58; r[1070]=65; r[1071]=90; r[1072]=97; r[1073]=122; r[1074]=32; r[1075]=34; r[1076]=39; r[1077]=47; r[1078]=61; r[1079]=62; r[1080]=63; r[1081]=92; r[1082]=95; r[1083]=9; r[1084]=13; r[1085]=45; r[1086]=58; r[1087]=65; r[1088]=90; r[1089]=97; r[1090]=122; r[1091]=34; r[1092]=39; r[1093]=62; r[1094]=92; r[1095]=34; r[1096]=39; r[1097]=92; r[1098]=13; r[1099]=32; r[1100]=34; r[1101]=39; r[1102]=47; r[1103]=60; r[1104]=62; r[1105]=92; r[1106]=9; r[1107]=10; r[1108]=11; r[1109]=12; r[1110]=13; r[1111]=32; r[1112]=34; r[1113]=39; r[1114]=47; r[1115]=60; r[1116]=62; r[1117]=92; r[1118]=9; r[1119]=10; r[1120]=11; r[1121]=12; r[1122]=13; r[1123]=32; r[1124]=34; r[1125]=39; r[1126]=47; r[1127]=60; r[1128]=62; r[1129]=63; r[1130]=92; r[1131]=95; r[1132]=9; r[1133]=10; r[1134]=11; r[1135]=12; r[1136]=45; r[1137]=58; r[1138]=65; r[1139]=90; r[1140]=97; r[1141]=122; r[1142]=13; r[1143]=32; r[1144]=34; r[1145]=39; r[1146]=47; r[1147]=60; r[1148]=62; r[1149]=63; r[1150]=92; r[1151]=95; r[1152]=9; r[1153]=10; r[1154]=11; r[1155]=12; r[1156]=45; r[1157]=58; r[1158]=65; r[1159]=90; r[1160]=97; r[1161]=122; r[1162]=13; r[1163]=32; r[1164]=34; r[1165]=39; r[1166]=47; r[1167]=60; r[1168]=62; r[1169]=63; r[1170]=92; r[1171]=95; r[1172]=9; r[1173]=10; r[1174]=11; r[1175]=12; r[1176]=45; r[1177]=58; r[1178]=65; r[1179]=90; r[1180]=97; r[1181]=122; r[1182]=13; r[1183]=32; r[1184]=34; r[1185]=39; r[1186]=47; r[1187]=60; r[1188]=62; r[1189]=92; r[1190]=9; r[1191]=10; r[1192]=11; r[1193]=12; r[1194]=13; r[1195]=32; r[1196]=34; r[1197]=39; r[1198]=47; r[1199]=60; r[1200]=62; r[1201]=92; r[1202]=9; r[1203]=10; r[1204]=11; r[1205]=12; r[1206]=13; r[1207]=32; r[1208]=34; r[1209]=39; r[1210]=47; r[1211]=60; r[1212]=62; r[1213]=63; r[1214]=92; r[1215]=95; r[1216]=9; r[1217]=10; r[1218]=11; r[1219]=12; r[1220]=45; r[1221]=58; r[1222]=65; r[1223]=90; r[1224]=97; r[1225]=122; r[1226]=32; r[1227]=34; r[1228]=39; r[1229]=47; r[1230]=62; r[1231]=63; r[1232]=92; r[1233]=95; r[1234]=9; r[1235]=13; r[1236]=45; r[1237]=58; r[1238]=65; r[1239]=90; r[1240]=97; r[1241]=122; r[1242]=32; r[1243]=34; r[1244]=39; r[1245]=47; r[1246]=62; r[1247]=63; r[1248]=92; r[1249]=95; r[1250]=9; r[1251]=13; r[1252]=45; r[1253]=58; r[1254]=65; r[1255]=90; r[1256]=97; r[1257]=122; r[1258]=13; r[1259]=32; r[1260]=34; r[1261]=39; r[1262]=47; r[1263]=60; r[1264]=62; r[1265]=92; r[1266]=9; r[1267]=10; r[1268]=11; r[1269]=12; r[1270]=13; r[1271]=32; r[1272]=34; r[1273]=39; r[1274]=47; r[1275]=60; r[1276]=61; r[1277]=62; r[1278]=63; r[1279]=92; r[1280]=95; r[1281]=9; r[1282]=10; r[1283]=11; r[1284]=12; r[1285]=45; r[1286]=58; r[1287]=65; r[1288]=90; r[1289]=97; r[1290]=122; r[1291]=13; r[1292]=32; r[1293]=39; r[1294]=47; r[1295]=60; r[1296]=62; r[1297]=63; r[1298]=92; r[1299]=95; r[1300]=9; r[1301]=10; r[1302]=11; r[1303]=12; r[1304]=45; r[1305]=58; r[1306]=65; r[1307]=90; r[1308]=97; r[1309]=122; r[1310]=34; r[1311]=39; r[1312]=92; r[1313]=32; r[1314]=39; r[1315]=47; r[1316]=62; r[1317]=63; r[1318]=92; r[1319]=95; r[1320]=9; r[1321]=13; r[1322]=45; r[1323]=58; r[1324]=65; r[1325]=90; r[1326]=97; r[1327]=122; r[1328]=13; r[1329]=32; r[1330]=34; r[1331]=39; r[1332]=47; r[1333]=60; r[1334]=62; r[1335]=92; r[1336]=9; r[1337]=10; r[1338]=11; r[1339]=12; r[1340]=32; r[1341]=34; r[1342]=47; r[1343]=62; r[1344]=63; r[1345]=92; r[1346]=95; r[1347]=9; r[1348]=13; r[1349]=45; r[1350]=58; r[1351]=65; r[1352]=90; r[1353]=97; r[1354]=122; r[1355]=34; r[1356]=39; r[1357]=92; r[1358]=13; r[1359]=32; r[1360]=39; r[1361]=47; r[1362]=60; r[1363]=62; r[1364]=92; r[1365]=9; r[1366]=10; r[1367]=11; r[1368]=12; r[1369]=34; r[1370]=92; r[1371]=39; r[1372]=92; r[1373]=13; r[1374]=32; r[1375]=34; r[1376]=39; r[1377]=47; r[1378]=60; r[1379]=62; r[1380]=9; r[1381]=10; r[1382]=11; r[1383]=12; r[1384]=58; r[1385]=95; r[1386]=120; r[1387]=65; r[1388]=90; r[1389]=97; r[1390]=122; r[1391]=32; r[1392]=63; r[1393]=95; r[1394]=9; r[1395]=13; r[1396]=45; r[1397]=46; r[1398]=48; r[1399]=58; r[1400]=65; r[1401]=90; r[1402]=97; r[1403]=122; r[1404]=32; r[1405]=63; r[1406]=95; r[1407]=109; r[1408]=9; r[1409]=13; r[1410]=45; r[1411]=46; r[1412]=48; r[1413]=58; r[1414]=65; r[1415]=90; r[1416]=97; r[1417]=122; r[1418]=32; r[1419]=63; r[1420]=95; r[1421]=108; r[1422]=9; r[1423]=13; r[1424]=45; r[1425]=46; r[1426]=48; r[1427]=58; r[1428]=65; r[1429]=90; r[1430]=97; r[1431]=122; r[1432]=32; r[1433]=63; r[1434]=95; r[1435]=9; r[1436]=13; r[1437]=45; r[1438]=46; r[1439]=48; r[1440]=58; r[1441]=65; r[1442]=90; r[1443]=97; r[1444]=122; r[1445]=101; r[1446]=114; r[1447]=115; r[1448]=105; r[1449]=111; r[1450]=110; r[1451]=32; r[1452]=61; r[1453]=9; r[1454]=13; r[1455]=32; r[1456]=34; r[1457]=39; r[1458]=9; r[1459]=13; r[1460]=95; r[1461]=45; r[1462]=46; r[1463]=48; r[1464]=58; r[1465]=65; r[1466]=90; r[1467]=97; r[1468]=122; r[1469]=34; r[1470]=95; r[1471]=45; r[1472]=46; r[1473]=48; r[1474]=58; r[1475]=65; r[1476]=90; r[1477]=97; r[1478]=122; r[1479]=32; r[1480]=62; r[1481]=63; r[1482]=9; r[1483]=13; r[1484]=32; r[1485]=62; r[1486]=63; r[1487]=101; r[1488]=115; r[1489]=9; r[1490]=13; r[1491]=62; r[1492]=110; r[1493]=99; r[1494]=111; r[1495]=100; r[1496]=105; r[1497]=110; r[1498]=103; r[1499]=32; r[1500]=61; r[1501]=9; r[1502]=13; r[1503]=32; r[1504]=34; r[1505]=39; r[1506]=9; r[1507]=13; r[1508]=65; r[1509]=90; r[1510]=97; r[1511]=122; r[1512]=34; r[1513]=95; r[1514]=45; r[1515]=46; r[1516]=48; r[1517]=57; r[1518]=65; r[1519]=90; r[1520]=97; r[1521]=122; r[1522]=32; r[1523]=62; r[1524]=63; r[1525]=9; r[1526]=13; r[1527]=32; r[1528]=62; r[1529]=63; r[1530]=115; r[1531]=9; r[1532]=13; r[1533]=116; r[1534]=97; r[1535]=110; r[1536]=100; r[1537]=97; r[1538]=108; r[1539]=111; r[1540]=110; r[1541]=101; r[1542]=32; r[1543]=61; r[1544]=9; r[1545]=13; r[1546]=32; r[1547]=34; r[1548]=39; r[1549]=9; r[1550]=13; r[1551]=110; r[1552]=121; r[1553]=111; r[1554]=34; r[1555]=32; r[1556]=62; r[1557]=63; r[1558]=9; r[1559]=13; r[1560]=101; r[1561]=115; r[1562]=110; r[1563]=121; r[1564]=111; r[1565]=39; r[1566]=101; r[1567]=115; r[1568]=65; r[1569]=90; r[1570]=97; r[1571]=122; r[1572]=39; r[1573]=95; r[1574]=45; r[1575]=46; r[1576]=48; r[1577]=57; r[1578]=65; r[1579]=90; r[1580]=97; r[1581]=122; r[1582]=95; r[1583]=45; r[1584]=46; r[1585]=48; r[1586]=58; r[1587]=65; r[1588]=90; r[1589]=97; r[1590]=122; r[1591]=39; r[1592]=95; r[1593]=45; r[1594]=46; r[1595]=48; r[1596]=58; r[1597]=65; r[1598]=90; r[1599]=97; r[1600]=122; r[1601]=62; r[1602]=62; r[1603]=10; r[1604]=60; r[1605]=33; r[1606]=47; r[1607]=58; r[1608]=63; r[1609]=95; r[1610]=65; r[1611]=90; r[1612]=97; r[1613]=122; r[1614]=39; r[1615]=93; r[1616]=34; r[1617]=34; r[1618]=92; r[1619]=39; r[1620]=92; r[1621]=34; r[1622]=39; r[1623]=92; r[1624]=32; r[1625]=9; r[1626]=13; r[1627]=32; r[1628]=118; r[1629]=9; r[1630]=13; r[1631]=10; r[1632]=45; r[1633]=45; r[1634]=10; r[1635]=93; r[1636]=93; r[1637]=10; r[1638]=62; r[1639]=63; r[1640]=62; r[1641]=0; } private static char[] create__hpricot_scan_trans_keys( ) { char[] r = new char[1642]; init__hpricot_scan_trans_keys_0( r ); return r; } private static final char _hpricot_scan_trans_keys[] = create__hpricot_scan_trans_keys(); private static void init__hpricot_scan_single_lengths_0( byte[] r ) { r[0]=3; r[1]=1; r[2]=1; r[3]=1; r[4]=1; r[5]=1; r[6]=1; r[7]=1; r[8]=1; r[9]=3; r[10]=5; r[11]=5; r[12]=1; r[13]=1; r[14]=1; r[15]=1; r[16]=1; r[17]=1; r[18]=3; r[19]=4; r[20]=4; r[21]=3; r[22]=5; r[23]=1; r[24]=1; r[25]=3; r[26]=1; r[27]=2; r[28]=1; r[29]=1; r[30]=4; r[31]=4; r[32]=7; r[33]=7; r[34]=7; r[35]=7; r[36]=5; r[37]=2; r[38]=2; r[39]=4; r[40]=2; r[41]=3; r[42]=3; r[43]=4; r[44]=2; r[45]=3; r[46]=4; r[47]=4; r[48]=1; r[49]=1; r[50]=1; r[51]=1; r[52]=1; r[53]=1; r[54]=1; r[55]=1; r[56]=1; r[57]=1; r[58]=1; r[59]=2; r[60]=4; r[61]=2; r[62]=5; r[63]=5; r[64]=6; r[65]=6; r[66]=1; r[67]=7; r[68]=5; r[69]=5; r[70]=7; r[71]=8; r[72]=8; r[73]=5; r[74]=7; r[75]=9; r[76]=9; r[77]=7; r[78]=7; r[79]=7; r[80]=2; r[81]=2; r[82]=8; r[83]=8; r[84]=3; r[85]=8; r[86]=8; r[87]=10; r[88]=10; r[89]=9; r[90]=9; r[91]=10; r[92]=10; r[93]=7; r[94]=7; r[95]=8; r[96]=8; r[97]=8; r[98]=8; r[99]=3; r[100]=7; r[101]=2; r[102]=2; r[103]=8; r[104]=8; r[105]=3; r[106]=8; r[107]=7; r[108]=9; r[109]=10; r[110]=10; r[111]=7; r[112]=7; r[113]=8; r[114]=10; r[115]=10; r[116]=8; r[117]=10; r[118]=11; r[119]=9; r[120]=9; r[121]=4; r[122]=3; r[123]=8; r[124]=8; r[125]=10; r[126]=10; r[127]=10; r[128]=8; r[129]=8; r[130]=10; r[131]=8; r[132]=8; r[133]=8; r[134]=11; r[135]=9; r[136]=3; r[137]=7; r[138]=8; r[139]=7; r[140]=3; r[141]=7; r[142]=2; r[143]=2; r[144]=7; r[145]=3; r[146]=3; r[147]=4; r[148]=4; r[149]=3; r[150]=1; r[151]=1; r[152]=1; r[153]=1; r[154]=1; r[155]=1; r[156]=2; r[157]=3; r[158]=1; r[159]=2; r[160]=3; r[161]=5; r[162]=1; r[163]=1; r[164]=1; r[165]=1; r[166]=1; r[167]=1; r[168]=1; r[169]=1; r[170]=2; r[171]=3; r[172]=0; r[173]=2; r[174]=3; r[175]=4; r[176]=1; r[177]=1; r[178]=1; r[179]=1; r[180]=1; r[181]=1; r[182]=1; r[183]=1; r[184]=1; r[185]=2; r[186]=3; r[187]=2; r[188]=1; r[189]=1; r[190]=3; r[191]=1; r[192]=1; r[193]=2; r[194]=1; r[195]=1; r[196]=1; r[197]=1; r[198]=0; r[199]=2; r[200]=1; r[201]=2; r[202]=1; r[203]=1; r[204]=2; r[205]=5; r[206]=1; r[207]=1; r[208]=1; r[209]=2; r[210]=2; r[211]=3; r[212]=1; r[213]=2; r[214]=2; r[215]=1; r[216]=2; r[217]=1; r[218]=3; r[219]=1; } private static byte[] create__hpricot_scan_single_lengths( ) { byte[] r = new byte[220]; init__hpricot_scan_single_lengths_0( r ); return r; } private static final byte _hpricot_scan_single_lengths[] = create__hpricot_scan_single_lengths(); private static void init__hpricot_scan_range_lengths_0( byte[] r ) { r[0]=0; r[1]=0; r[2]=0; r[3]=0; r[4]=0; r[5]=0; r[6]=0; r[7]=0; r[8]=1; r[9]=3; r[10]=5; r[11]=1; r[12]=0; r[13]=0; r[14]=0; r[15]=0; r[16]=0; r[17]=1; r[18]=1; r[19]=4; r[20]=4; r[21]=1; r[22]=1; r[23]=0; r[24]=0; r[25]=1; r[26]=0; r[27]=1; r[28]=0; r[29]=0; r[30]=5; r[31]=5; r[32]=5; r[33]=5; r[34]=5; r[35]=5; r[36]=1; r[37]=0; r[38]=0; r[39]=1; r[40]=0; r[41]=1; r[42]=1; r[43]=1; r[44]=0; r[45]=1; r[46]=1; r[47]=5; r[48]=0; r[49]=0; r[50]=0; r[51]=0; r[52]=0; r[53]=0; r[54]=0; r[55]=0; r[56]=0; r[57]=0; r[58]=0; r[59]=2; r[60]=5; r[61]=1; r[62]=4; r[63]=4; r[64]=4; r[65]=4; r[66]=0; r[67]=2; r[68]=2; r[69]=4; r[70]=5; r[71]=5; r[72]=5; r[73]=2; r[74]=2; r[75]=5; r[76]=5; r[77]=2; r[78]=2; r[79]=4; r[80]=0; r[81]=0; r[82]=4; r[83]=4; r[84]=0; r[85]=2; r[86]=2; r[87]=5; r[88]=5; r[89]=5; r[90]=5; r[91]=5; r[92]=5; r[93]=2; r[94]=2; r[95]=2; r[96]=2; r[97]=2; r[98]=4; r[99]=0; r[100]=4; r[101]=0; r[102]=0; r[103]=4; r[104]=4; r[105]=0; r[106]=2; r[107]=2; r[108]=5; r[109]=5; r[110]=5; r[111]=2; r[112]=2; r[113]=2; r[114]=5; r[115]=5; r[116]=2; r[117]=5; r[118]=5; r[119]=4; r[120]=4; r[121]=0; r[122]=0; r[123]=2; r[124]=2; r[125]=5; r[126]=5; r[127]=5; r[128]=2; r[129]=2; r[130]=5; r[131]=4; r[132]=4; r[133]=2; r[134]=5; r[135]=5; r[136]=0; r[137]=4; r[138]=2; r[139]=4; r[140]=0; r[141]=2; r[142]=0; r[143]=0; r[144]=2; r[145]=2; r[146]=5; r[147]=5; r[148]=5; r[149]=5; r[150]=0; r[151]=0; r[152]=0; r[153]=0; r[154]=0; r[155]=0; r[156]=1; r[157]=1; r[158]=4; r[159]=4; r[160]=1; r[161]=1; r[162]=0; r[163]=0; r[164]=0; r[165]=0; r[166]=0; r[167]=0; r[168]=0; r[169]=0; r[170]=1; r[171]=1; r[172]=2; r[173]=4; r[174]=1; r[175]=1; r[176]=0; r[177]=0; r[178]=0; r[179]=0; r[180]=0; r[181]=0; r[182]=0; r[183]=0; r[184]=0; r[185]=1; r[186]=1; r[187]=0; r[188]=0; r[189]=0; r[190]=1; r[191]=0; r[192]=0; r[193]=0; r[194]=0; r[195]=0; r[196]=0; r[197]=0; r[198]=2; r[199]=4; r[200]=4; r[201]=4; r[202]=0; r[203]=0; r[204]=0; r[205]=2; r[206]=0; r[207]=0; r[208]=0; r[209]=0; r[210]=0; r[211]=0; r[212]=1; r[213]=1; r[214]=0; r[215]=0; r[216]=0; r[217]=0; r[218]=0; r[219]=0; } private static byte[] create__hpricot_scan_range_lengths( ) { byte[] r = new byte[220]; init__hpricot_scan_range_lengths_0( r ); return r; } private static final byte _hpricot_scan_range_lengths[] = create__hpricot_scan_range_lengths(); private static void init__hpricot_scan_index_offsets_0( short[] r ) { r[0]=0; r[1]=4; r[2]=6; r[3]=8; r[4]=10; r[5]=12; r[6]=14; r[7]=16; r[8]=18; r[9]=21; r[10]=28; r[11]=39; r[12]=46; r[13]=48; r[14]=50; r[15]=52; r[16]=54; r[17]=56; r[18]=59; r[19]=64; r[20]=73; r[21]=82; r[22]=87; r[23]=94; r[24]=96; r[25]=98; r[26]=103; r[27]=105; r[28]=109; r[29]=111; r[30]=113; r[31]=123; r[32]=133; r[33]=146; r[34]=159; r[35]=172; r[36]=185; r[37]=192; r[38]=195; r[39]=198; r[40]=204; r[41]=207; r[42]=212; r[43]=217; r[44]=223; r[45]=226; r[46]=231; r[47]=237; r[48]=247; r[49]=249; r[50]=251; r[51]=253; r[52]=255; r[53]=257; r[54]=259; r[55]=261; r[56]=263; r[57]=265; r[58]=267; r[59]=269; r[60]=274; r[61]=284; r[62]=288; r[63]=298; r[64]=308; r[65]=319; r[66]=330; r[67]=332; r[68]=342; r[69]=350; r[70]=360; r[71]=373; r[72]=387; r[73]=401; r[74]=409; r[75]=419; r[76]=434; r[77]=449; r[78]=459; r[79]=469; r[80]=481; r[81]=484; r[82]=487; r[83]=500; r[84]=513; r[85]=517; r[86]=528; r[87]=539; r[88]=555; r[89]=571; r[90]=586; r[91]=601; r[92]=617; r[93]=633; r[94]=643; r[95]=653; r[96]=664; r[97]=675; r[98]=686; r[99]=699; r[100]=703; r[101]=715; r[102]=718; r[103]=721; r[104]=734; r[105]=747; r[106]=751; r[107]=762; r[108]=772; r[109]=787; r[110]=803; r[111]=819; r[112]=829; r[113]=839; r[114]=850; r[115]=866; r[116]=882; r[117]=893; r[118]=909; r[119]=926; r[120]=940; r[121]=954; r[122]=959; r[123]=963; r[124]=974; r[125]=985; r[126]=1001; r[127]=1017; r[128]=1033; r[129]=1044; r[130]=1055; r[131]=1071; r[132]=1084; r[133]=1097; r[134]=1108; r[135]=1125; r[136]=1140; r[137]=1144; r[138]=1156; r[139]=1167; r[140]=1179; r[141]=1183; r[142]=1193; r[143]=1196; r[144]=1199; r[145]=1209; r[146]=1215; r[147]=1224; r[148]=1234; r[149]=1244; r[150]=1253; r[151]=1255; r[152]=1257; r[153]=1259; r[154]=1261; r[155]=1263; r[156]=1265; r[157]=1269; r[158]=1274; r[159]=1280; r[160]=1287; r[161]=1292; r[162]=1299; r[163]=1301; r[164]=1303; r[165]=1305; r[166]=1307; r[167]=1309; r[168]=1311; r[169]=1313; r[170]=1315; r[171]=1319; r[172]=1324; r[173]=1327; r[174]=1334; r[175]=1339; r[176]=1345; r[177]=1347; r[178]=1349; r[179]=1351; r[180]=1353; r[181]=1355; r[182]=1357; r[183]=1359; r[184]=1361; r[185]=1363; r[186]=1367; r[187]=1372; r[188]=1375; r[189]=1377; r[190]=1379; r[191]=1384; r[192]=1386; r[193]=1388; r[194]=1391; r[195]=1393; r[196]=1395; r[197]=1397; r[198]=1399; r[199]=1402; r[200]=1409; r[201]=1415; r[202]=1422; r[203]=1424; r[204]=1426; r[205]=1429; r[206]=1437; r[207]=1439; r[208]=1441; r[209]=1443; r[210]=1446; r[211]=1449; r[212]=1453; r[213]=1456; r[214]=1460; r[215]=1463; r[216]=1465; r[217]=1468; r[218]=1470; r[219]=1474; } private static short[] create__hpricot_scan_index_offsets( ) { short[] r = new short[220]; init__hpricot_scan_index_offsets_0( r ); return r; } private static final short _hpricot_scan_index_offsets[] = create__hpricot_scan_index_offsets(); private static void init__hpricot_scan_indicies_0( short[] r ) { r[0]=1; r[1]=2; r[2]=3; r[3]=0; r[4]=4; r[5]=0; r[6]=5; r[7]=0; r[8]=6; r[9]=0; r[10]=7; r[11]=0; r[12]=8; r[13]=0; r[14]=9; r[15]=0; r[16]=10; r[17]=0; r[18]=11; r[19]=11; r[20]=0; r[21]=11; r[22]=12; r[23]=12; r[24]=11; r[25]=12; r[26]=12; r[27]=0; r[28]=13; r[29]=15; r[30]=14; r[31]=16; r[32]=14; r[33]=13; r[34]=14; r[35]=14; r[36]=14; r[37]=14; r[38]=0; r[39]=17; r[40]=18; r[41]=19; r[42]=20; r[43]=21; r[44]=17; r[45]=0; r[46]=22; r[47]=0; r[48]=23; r[49]=0; r[50]=24; r[51]=0; r[52]=25; r[53]=0; r[54]=26; r[55]=0; r[56]=27; r[57]=27; r[58]=0; r[59]=27; r[60]=28; r[61]=29; r[62]=27; r[63]=0; r[64]=30; r[65]=31; r[66]=30; r[67]=30; r[68]=30; r[69]=30; r[70]=30; r[71]=30; r[72]=0; r[73]=32; r[74]=31; r[75]=32; r[76]=32; r[77]=32; r[78]=32; r[79]=32; r[80]=32; r[81]=0; r[82]=33; r[83]=18; r[84]=21; r[85]=33; r[86]=0; r[87]=33; r[88]=34; r[89]=35; r[90]=18; r[91]=21; r[92]=33; r[93]=0; r[94]=37; r[95]=36; r[96]=37; r[97]=38; r[98]=40; r[99]=18; r[100]=21; r[101]=40; r[102]=39; r[103]=41; r[104]=21; r[105]=41; r[106]=18; r[107]=41; r[108]=39; r[109]=37; r[110]=42; r[111]=37; r[112]=43; r[113]=44; r[114]=45; r[115]=44; r[116]=44; r[117]=44; r[118]=44; r[119]=44; r[120]=44; r[121]=44; r[122]=0; r[123]=46; r[124]=47; r[125]=46; r[126]=46; r[127]=46; r[128]=46; r[129]=46; r[130]=46; r[131]=46; r[132]=0; r[133]=48; r[134]=48; r[135]=46; r[136]=47; r[137]=18; r[138]=21; r[139]=46; r[140]=33; r[141]=46; r[142]=46; r[143]=46; r[144]=46; r[145]=0; r[146]=48; r[147]=48; r[148]=34; r[149]=49; r[150]=18; r[151]=21; r[152]=46; r[153]=33; r[154]=46; r[155]=46; r[156]=46; r[157]=46; r[158]=0; r[159]=50; r[160]=50; r[161]=52; r[162]=53; r[163]=54; r[164]=55; r[165]=52; r[166]=51; r[167]=52; r[168]=52; r[169]=52; r[170]=52; r[171]=42; r[172]=56; r[173]=56; r[174]=59; r[175]=60; r[176]=61; r[177]=62; r[178]=58; r[179]=57; r[180]=58; r[181]=58; r[182]=58; r[183]=58; r[184]=43; r[185]=57; r[186]=59; r[187]=63; r[188]=61; r[189]=62; r[190]=57; r[191]=43; r[192]=65; r[193]=66; r[194]=64; r[195]=65; r[196]=68; r[197]=67; r[198]=69; r[199]=37; r[200]=61; r[201]=62; r[202]=69; r[203]=43; r[204]=70; r[205]=71; r[206]=62; r[207]=72; r[208]=73; r[209]=41; r[210]=72; r[211]=21; r[212]=71; r[213]=37; r[214]=61; r[215]=71; r[216]=43; r[217]=74; r[218]=37; r[219]=75; r[220]=76; r[221]=74; r[222]=38; r[223]=70; r[224]=77; r[225]=76; r[226]=77; r[227]=37; r[228]=75; r[229]=77; r[230]=38; r[231]=78; r[232]=37; r[233]=54; r[234]=55; r[235]=78; r[236]=42; r[237]=58; r[238]=53; r[239]=58; r[240]=58; r[241]=58; r[242]=58; r[243]=58; r[244]=58; r[245]=58; r[246]=43; r[247]=79; r[248]=0; r[249]=80; r[250]=0; r[251]=81; r[252]=0; r[253]=82; r[254]=0; r[255]=83; r[256]=0; r[257]=84; r[258]=0; r[259]=85; r[260]=0; r[261]=86; r[262]=0; r[263]=87; r[264]=0; r[265]=88; r[266]=0; r[267]=89; r[268]=0; r[269]=90; r[270]=90; r[271]=90; r[272]=90; r[273]=0; r[274]=91; r[275]=93; r[276]=92; r[277]=92; r[278]=91; r[279]=92; r[280]=92; r[281]=92; r[282]=92; r[283]=0; r[284]=94; r[285]=95; r[286]=94; r[287]=0; r[288]=96; r[289]=98; r[290]=99; r[291]=97; r[292]=97; r[293]=96; r[294]=97; r[295]=97; r[296]=97; r[297]=0; r[298]=100; r[299]=102; r[300]=103; r[301]=101; r[302]=101; r[303]=100; r[304]=101; r[305]=101; r[306]=101; r[307]=0; r[308]=104; r[309]=106; r[310]=107; r[311]=108; r[312]=105; r[313]=105; r[314]=104; r[315]=105; r[316]=105; r[317]=105; r[318]=39; r[319]=109; r[320]=111; r[321]=112; r[322]=113; r[323]=110; r[324]=110; r[325]=109; r[326]=110; r[327]=110; r[328]=110; r[329]=39; r[330]=114; r[331]=39; r[332]=116; r[333]=116; r[334]=118; r[335]=119; r[336]=120; r[337]=39; r[338]=113; r[339]=116; r[340]=117; r[341]=115; r[342]=122; r[343]=122; r[344]=124; r[345]=39; r[346]=125; r[347]=122; r[348]=123; r[349]=121; r[350]=126; r[351]=111; r[352]=113; r[353]=110; r[354]=110; r[355]=126; r[356]=110; r[357]=110; r[358]=110; r[359]=39; r[360]=122; r[361]=122; r[362]=128; r[363]=39; r[364]=129; r[365]=127; r[366]=127; r[367]=122; r[368]=123; r[369]=127; r[370]=127; r[371]=127; r[372]=121; r[373]=130; r[374]=130; r[375]=133; r[376]=39; r[377]=134; r[378]=135; r[379]=132; r[380]=132; r[381]=130; r[382]=131; r[383]=132; r[384]=132; r[385]=132; r[386]=121; r[387]=136; r[388]=136; r[389]=128; r[390]=39; r[391]=138; r[392]=129; r[393]=127; r[394]=127; r[395]=136; r[396]=137; r[397]=127; r[398]=127; r[399]=127; r[400]=121; r[401]=122; r[402]=122; r[403]=124; r[404]=39; r[405]=125; r[406]=122; r[407]=123; r[408]=121; r[409]=139; r[410]=139; r[411]=141; r[412]=142; r[413]=143; r[414]=39; r[415]=125; r[416]=139; r[417]=140; r[418]=115; r[419]=144; r[420]=144; r[421]=118; r[422]=119; r[423]=120; r[424]=39; r[425]=113; r[426]=146; r[427]=146; r[428]=144; r[429]=145; r[430]=146; r[431]=146; r[432]=146; r[433]=115; r[434]=139; r[435]=139; r[436]=141; r[437]=142; r[438]=147; r[439]=39; r[440]=129; r[441]=146; r[442]=146; r[443]=139; r[444]=140; r[445]=146; r[446]=146; r[447]=146; r[448]=115; r[449]=149; r[450]=149; r[451]=151; r[452]=152; r[453]=153; r[454]=154; r[455]=155; r[456]=149; r[457]=150; r[458]=148; r[459]=157; r[460]=157; r[461]=151; r[462]=159; r[463]=160; r[464]=161; r[465]=162; r[466]=157; r[467]=158; r[468]=156; r[469]=163; r[470]=164; r[471]=166; r[472]=167; r[473]=165; r[474]=168; r[475]=165; r[476]=163; r[477]=165; r[478]=165; r[479]=165; r[480]=160; r[481]=164; r[482]=168; r[483]=160; r[484]=169; r[485]=168; r[486]=160; r[487]=170; r[488]=164; r[489]=172; r[490]=173; r[491]=174; r[492]=171; r[493]=168; r[494]=171; r[495]=170; r[496]=171; r[497]=171; r[498]=171; r[499]=160; r[500]=175; r[501]=164; r[502]=166; r[503]=176; r[504]=167; r[505]=165; r[506]=168; r[507]=165; r[508]=175; r[509]=165; r[510]=165; r[511]=165; r[512]=160; r[513]=164; r[514]=177; r[515]=168; r[516]=160; r[517]=178; r[518]=178; r[519]=180; r[520]=181; r[521]=182; r[522]=160; r[523]=167; r[524]=155; r[525]=178; r[526]=179; r[527]=148; r[528]=183; r[529]=183; r[530]=180; r[531]=181; r[532]=182; r[533]=160; r[534]=167; r[535]=155; r[536]=183; r[537]=184; r[538]=148; r[539]=183; r[540]=183; r[541]=180; r[542]=181; r[543]=182; r[544]=160; r[545]=167; r[546]=185; r[547]=155; r[548]=185; r[549]=183; r[550]=184; r[551]=185; r[552]=185; r[553]=185; r[554]=148; r[555]=186; r[556]=186; r[557]=188; r[558]=189; r[559]=190; r[560]=160; r[561]=191; r[562]=185; r[563]=155; r[564]=185; r[565]=186; r[566]=187; r[567]=185; r[568]=185; r[569]=185; r[570]=148; r[571]=149; r[572]=149; r[573]=151; r[574]=190; r[575]=153; r[576]=192; r[577]=185; r[578]=155; r[579]=185; r[580]=149; r[581]=150; r[582]=185; r[583]=185; r[584]=185; r[585]=148; r[586]=157; r[587]=157; r[588]=151; r[589]=194; r[590]=160; r[591]=191; r[592]=193; r[593]=162; r[594]=193; r[595]=157; r[596]=158; r[597]=193; r[598]=193; r[599]=193; r[600]=156; r[601]=195; r[602]=195; r[603]=151; r[604]=198; r[605]=160; r[606]=199; r[607]=200; r[608]=197; r[609]=162; r[610]=197; r[611]=195; r[612]=196; r[613]=197; r[614]=197; r[615]=197; r[616]=156; r[617]=201; r[618]=201; r[619]=151; r[620]=194; r[621]=160; r[622]=203; r[623]=191; r[624]=193; r[625]=162; r[626]=193; r[627]=201; r[628]=202; r[629]=193; r[630]=193; r[631]=193; r[632]=156; r[633]=157; r[634]=157; r[635]=151; r[636]=159; r[637]=160; r[638]=161; r[639]=162; r[640]=157; r[641]=158; r[642]=156; r[643]=157; r[644]=157; r[645]=204; r[646]=159; r[647]=160; r[648]=161; r[649]=162; r[650]=157; r[651]=158; r[652]=156; r[653]=186; r[654]=186; r[655]=188; r[656]=189; r[657]=152; r[658]=160; r[659]=161; r[660]=155; r[661]=186; r[662]=187; r[663]=148; r[664]=206; r[665]=206; r[666]=208; r[667]=204; r[668]=209; r[669]=210; r[670]=211; r[671]=212; r[672]=206; r[673]=207; r[674]=205; r[675]=214; r[676]=214; r[677]=216; r[678]=204; r[679]=217; r[680]=218; r[681]=219; r[682]=220; r[683]=214; r[684]=215; r[685]=213; r[686]=221; r[687]=222; r[688]=169; r[689]=224; r[690]=225; r[691]=223; r[692]=226; r[693]=223; r[694]=221; r[695]=223; r[696]=223; r[697]=223; r[698]=218; r[699]=222; r[700]=169; r[701]=226; r[702]=218; r[703]=228; r[704]=164; r[705]=230; r[706]=231; r[707]=229; r[708]=232; r[709]=229; r[710]=228; r[711]=229; r[712]=229; r[713]=229; r[714]=227; r[715]=164; r[716]=232; r[717]=227; r[718]=222; r[719]=232; r[720]=227; r[721]=233; r[722]=164; r[723]=235; r[724]=236; r[725]=237; r[726]=234; r[727]=232; r[728]=234; r[729]=233; r[730]=234; r[731]=234; r[732]=234; r[733]=227; r[734]=238; r[735]=164; r[736]=230; r[737]=239; r[738]=231; r[739]=229; r[740]=232; r[741]=229; r[742]=238; r[743]=229; r[744]=229; r[745]=229; r[746]=227; r[747]=164; r[748]=240; r[749]=232; r[750]=227; r[751]=242; r[752]=242; r[753]=244; r[754]=245; r[755]=246; r[756]=227; r[757]=231; r[758]=247; r[759]=242; r[760]=243; r[761]=241; r[762]=249; r[763]=249; r[764]=151; r[765]=251; r[766]=227; r[767]=252; r[768]=253; r[769]=249; r[770]=250; r[771]=248; r[772]=249; r[773]=249; r[774]=151; r[775]=255; r[776]=227; r[777]=256; r[778]=254; r[779]=253; r[780]=254; r[781]=249; r[782]=250; r[783]=254; r[784]=254; r[785]=254; r[786]=248; r[787]=257; r[788]=257; r[789]=151; r[790]=260; r[791]=227; r[792]=261; r[793]=262; r[794]=259; r[795]=253; r[796]=259; r[797]=257; r[798]=258; r[799]=259; r[800]=259; r[801]=259; r[802]=248; r[803]=263; r[804]=263; r[805]=151; r[806]=255; r[807]=227; r[808]=265; r[809]=256; r[810]=254; r[811]=253; r[812]=254; r[813]=263; r[814]=264; r[815]=254; r[816]=254; r[817]=254; r[818]=248; r[819]=249; r[820]=249; r[821]=151; r[822]=251; r[823]=227; r[824]=252; r[825]=253; r[826]=249; r[827]=250; r[828]=248; r[829]=249; r[830]=249; r[831]=216; r[832]=251; r[833]=227; r[834]=252; r[835]=253; r[836]=249; r[837]=250; r[838]=248; r[839]=266; r[840]=266; r[841]=268; r[842]=269; r[843]=270; r[844]=227; r[845]=252; r[846]=247; r[847]=266; r[848]=267; r[849]=241; r[850]=271; r[851]=271; r[852]=244; r[853]=245; r[854]=246; r[855]=227; r[856]=231; r[857]=273; r[858]=247; r[859]=273; r[860]=271; r[861]=272; r[862]=273; r[863]=273; r[864]=273; r[865]=241; r[866]=266; r[867]=266; r[868]=268; r[869]=269; r[870]=274; r[871]=227; r[872]=256; r[873]=273; r[874]=247; r[875]=273; r[876]=266; r[877]=267; r[878]=273; r[879]=273; r[880]=273; r[881]=241; r[882]=206; r[883]=206; r[884]=216; r[885]=275; r[886]=209; r[887]=210; r[888]=211; r[889]=212; r[890]=206; r[891]=207; r[892]=205; r[893]=214; r[894]=214; r[895]=216; r[896]=204; r[897]=277; r[898]=218; r[899]=278; r[900]=276; r[901]=220; r[902]=276; r[903]=214; r[904]=215; r[905]=276; r[906]=276; r[907]=276; r[908]=213; r[909]=279; r[910]=279; r[911]=216; r[912]=204; r[913]=282; r[914]=218; r[915]=283; r[916]=284; r[917]=281; r[918]=220; r[919]=281; r[920]=279; r[921]=280; r[922]=281; r[923]=281; r[924]=281; r[925]=213; r[926]=285; r[927]=222; r[928]=169; r[929]=224; r[930]=286; r[931]=225; r[932]=223; r[933]=226; r[934]=223; r[935]=285; r[936]=223; r[937]=223; r[938]=223; r[939]=218; r[940]=287; r[941]=222; r[942]=169; r[943]=289; r[944]=290; r[945]=291; r[946]=288; r[947]=226; r[948]=288; r[949]=287; r[950]=288; r[951]=288; r[952]=288; r[953]=218; r[954]=222; r[955]=169; r[956]=292; r[957]=226; r[958]=218; r[959]=293; r[960]=293; r[961]=226; r[962]=218; r[963]=294; r[964]=294; r[965]=296; r[966]=297; r[967]=298; r[968]=218; r[969]=225; r[970]=212; r[971]=294; r[972]=295; r[973]=205; r[974]=299; r[975]=299; r[976]=296; r[977]=297; r[978]=298; r[979]=218; r[980]=225; r[981]=212; r[982]=299; r[983]=300; r[984]=205; r[985]=299; r[986]=299; r[987]=296; r[988]=297; r[989]=298; r[990]=218; r[991]=225; r[992]=301; r[993]=212; r[994]=301; r[995]=299; r[996]=300; r[997]=301; r[998]=301; r[999]=301; r[1000]=205; r[1001]=302; r[1002]=302; r[1003]=304; r[1004]=305; r[1005]=306; r[1006]=218; r[1007]=278; r[1008]=301; r[1009]=212; r[1010]=301; r[1011]=302; r[1012]=303; r[1013]=301; r[1014]=301; r[1015]=301; r[1016]=205; r[1017]=206; r[1018]=206; r[1019]=216; r[1020]=275; r[1021]=306; r[1022]=210; r[1023]=307; r[1024]=301; r[1025]=212; r[1026]=301; r[1027]=206; r[1028]=207; r[1029]=301; r[1030]=301; r[1031]=301; r[1032]=205; r[1033]=214; r[1034]=214; r[1035]=216; r[1036]=204; r[1037]=217; r[1038]=218; r[1039]=219; r[1040]=220; r[1041]=214; r[1042]=215; r[1043]=213; r[1044]=214; r[1045]=214; r[1046]=308; r[1047]=308; r[1048]=217; r[1049]=218; r[1050]=219; r[1051]=220; r[1052]=214; r[1053]=215; r[1054]=213; r[1055]=206; r[1056]=206; r[1057]=208; r[1058]=204; r[1059]=306; r[1060]=210; r[1061]=307; r[1062]=301; r[1063]=212; r[1064]=301; r[1065]=206; r[1066]=207; r[1067]=301; r[1068]=301; r[1069]=301; r[1070]=205; r[1071]=309; r[1072]=222; r[1073]=310; r[1074]=312; r[1075]=313; r[1076]=311; r[1077]=314; r[1078]=311; r[1079]=309; r[1080]=311; r[1081]=311; r[1082]=311; r[1083]=210; r[1084]=309; r[1085]=315; r[1086]=169; r[1087]=312; r[1088]=313; r[1089]=311; r[1090]=314; r[1091]=311; r[1092]=309; r[1093]=311; r[1094]=311; r[1095]=311; r[1096]=210; r[1097]=302; r[1098]=302; r[1099]=304; r[1100]=305; r[1101]=209; r[1102]=218; r[1103]=219; r[1104]=212; r[1105]=302; r[1106]=303; r[1107]=205; r[1108]=316; r[1109]=316; r[1110]=216; r[1111]=204; r[1112]=277; r[1113]=218; r[1114]=318; r[1115]=278; r[1116]=276; r[1117]=220; r[1118]=276; r[1119]=316; r[1120]=317; r[1121]=276; r[1122]=276; r[1123]=276; r[1124]=213; r[1125]=319; r[1126]=319; r[1127]=151; r[1128]=274; r[1129]=321; r[1130]=322; r[1131]=273; r[1132]=247; r[1133]=273; r[1134]=319; r[1135]=320; r[1136]=273; r[1137]=273; r[1138]=273; r[1139]=241; r[1140]=222; r[1141]=310; r[1142]=314; r[1143]=210; r[1144]=323; r[1145]=164; r[1146]=325; r[1147]=326; r[1148]=324; r[1149]=327; r[1150]=324; r[1151]=323; r[1152]=324; r[1153]=324; r[1154]=324; r[1155]=321; r[1156]=271; r[1157]=271; r[1158]=244; r[1159]=245; r[1160]=246; r[1161]=227; r[1162]=231; r[1163]=247; r[1164]=271; r[1165]=272; r[1166]=241; r[1167]=328; r[1168]=164; r[1169]=330; r[1170]=331; r[1171]=329; r[1172]=332; r[1173]=329; r[1174]=328; r[1175]=329; r[1176]=329; r[1177]=329; r[1178]=153; r[1179]=315; r[1180]=169; r[1181]=314; r[1182]=210; r[1183]=319; r[1184]=319; r[1185]=151; r[1186]=270; r[1187]=321; r[1188]=333; r[1189]=247; r[1190]=319; r[1191]=320; r[1192]=241; r[1193]=164; r[1194]=332; r[1195]=153; r[1196]=164; r[1197]=327; r[1198]=321; r[1199]=144; r[1200]=144; r[1201]=118; r[1202]=119; r[1203]=120; r[1204]=39; r[1205]=113; r[1206]=144; r[1207]=145; r[1208]=115; r[1209]=334; r[1210]=334; r[1211]=335; r[1212]=334; r[1213]=334; r[1214]=0; r[1215]=336; r[1216]=337; r[1217]=337; r[1218]=336; r[1219]=337; r[1220]=337; r[1221]=337; r[1222]=337; r[1223]=0; r[1224]=336; r[1225]=337; r[1226]=337; r[1227]=338; r[1228]=336; r[1229]=337; r[1230]=337; r[1231]=337; r[1232]=337; r[1233]=0; r[1234]=336; r[1235]=337; r[1236]=337; r[1237]=339; r[1238]=336; r[1239]=337; r[1240]=337; r[1241]=337; r[1242]=337; r[1243]=0; r[1244]=340; r[1245]=337; r[1246]=337; r[1247]=340; r[1248]=337; r[1249]=337; r[1250]=337; r[1251]=337; r[1252]=0; r[1253]=342; r[1254]=341; r[1255]=343; r[1256]=341; r[1257]=344; r[1258]=341; r[1259]=345; r[1260]=341; r[1261]=346; r[1262]=341; r[1263]=347; r[1264]=341; r[1265]=347; r[1266]=348; r[1267]=347; r[1268]=341; r[1269]=348; r[1270]=349; r[1271]=350; r[1272]=348; r[1273]=341; r[1274]=351; r[1275]=351; r[1276]=351; r[1277]=351; r[1278]=351; r[1279]=341; r[1280]=352; r[1281]=353; r[1282]=353; r[1283]=353; r[1284]=353; r[1285]=353; r[1286]=341; r[1287]=354; r[1288]=355; r[1289]=356; r[1290]=354; r[1291]=341; r[1292]=354; r[1293]=355; r[1294]=356; r[1295]=357; r[1296]=358; r[1297]=354; r[1298]=341; r[1299]=355; r[1300]=341; r[1301]=359; r[1302]=341; r[1303]=360; r[1304]=341; r[1305]=361; r[1306]=341; r[1307]=362; r[1308]=341; r[1309]=363; r[1310]=341; r[1311]=364; r[1312]=341; r[1313]=365; r[1314]=341; r[1315]=365; r[1316]=366; r[1317]=365; r[1318]=341; r[1319]=366; r[1320]=367; r[1321]=368; r[1322]=366; r[1323]=341; r[1324]=369; r[1325]=369; r[1326]=341; r[1327]=370; r[1328]=371; r[1329]=371; r[1330]=371; r[1331]=371; r[1332]=371; r[1333]=341; r[1334]=372; r[1335]=355; r[1336]=356; r[1337]=372; r[1338]=341; r[1339]=372; r[1340]=355; r[1341]=356; r[1342]=358; r[1343]=372; r[1344]=341; r[1345]=373; r[1346]=341; r[1347]=374; r[1348]=341; r[1349]=375; r[1350]=341; r[1351]=376; r[1352]=341; r[1353]=377; r[1354]=341; r[1355]=378; r[1356]=341; r[1357]=379; r[1358]=341; r[1359]=380; r[1360]=341; r[1361]=381; r[1362]=341; r[1363]=381; r[1364]=382; r[1365]=381; r[1366]=341; r[1367]=382; r[1368]=383; r[1369]=384; r[1370]=382; r[1371]=341; r[1372]=385; r[1373]=386; r[1374]=341; r[1375]=387; r[1376]=341; r[1377]=388; r[1378]=341; r[1379]=389; r[1380]=355; r[1381]=356; r[1382]=389; r[1383]=341; r[1384]=390; r[1385]=341; r[1386]=387; r[1387]=341; r[1388]=391; r[1389]=392; r[1390]=341; r[1391]=393; r[1392]=341; r[1393]=388; r[1394]=341; r[1395]=394; r[1396]=341; r[1397]=393; r[1398]=341; r[1399]=395; r[1400]=395; r[1401]=341; r[1402]=370; r[1403]=396; r[1404]=396; r[1405]=396; r[1406]=396; r[1407]=396; r[1408]=341; r[1409]=397; r[1410]=397; r[1411]=397; r[1412]=397; r[1413]=397; r[1414]=341; r[1415]=352; r[1416]=398; r[1417]=398; r[1418]=398; r[1419]=398; r[1420]=398; r[1421]=341; r[1422]=400; r[1423]=399; r[1424]=402; r[1425]=401; r[1426]=404; r[1427]=405; r[1428]=403; r[1429]=407; r[1430]=408; r[1431]=409; r[1432]=410; r[1433]=409; r[1434]=409; r[1435]=409; r[1436]=406; r[1437]=37; r[1438]=43; r[1439]=41; r[1440]=21; r[1441]=37; r[1442]=38; r[1443]=164; r[1444]=168; r[1445]=160; r[1446]=164; r[1447]=232; r[1448]=227; r[1449]=222; r[1450]=169; r[1451]=226; r[1452]=218; r[1453]=336; r[1454]=336; r[1455]=411; r[1456]=340; r[1457]=412; r[1458]=340; r[1459]=411; r[1460]=414; r[1461]=415; r[1462]=413; r[1463]=417; r[1464]=416; r[1465]=419; r[1466]=420; r[1467]=418; r[1468]=422; r[1469]=421; r[1470]=424; r[1471]=425; r[1472]=426; r[1473]=423; r[1474]=425; r[1475]=427; r[1476]=0; } private static short[] create__hpricot_scan_indicies( ) { short[] r = new short[1477]; init__hpricot_scan_indicies_0( r ); return r; } private static final short _hpricot_scan_indicies[] = create__hpricot_scan_indicies(); private static void init__hpricot_scan_trans_targs_wi_0( short[] r ) { r[0]=204; r[1]=1; r[2]=2; r[3]=53; r[4]=204; r[5]=3; r[6]=4; r[7]=5; r[8]=6; r[9]=7; r[10]=8; r[11]=9; r[12]=10; r[13]=11; r[14]=10; r[15]=204; r[16]=26; r[17]=11; r[18]=204; r[19]=12; r[20]=48; r[21]=26; r[22]=13; r[23]=14; r[24]=15; r[25]=16; r[26]=17; r[27]=18; r[28]=19; r[29]=30; r[30]=20; r[31]=21; r[32]=20; r[33]=22; r[34]=23; r[35]=28; r[36]=24; r[37]=25; r[38]=24; r[39]=204; r[40]=25; r[41]=27; r[42]=29; r[43]=29; r[44]=31; r[45]=32; r[46]=31; r[47]=32; r[48]=33; r[49]=34; r[50]=35; r[51]=36; r[52]=47; r[53]=32; r[54]=206; r[55]=40; r[56]=35; r[57]=36; r[58]=47; r[59]=37; r[60]=34; r[61]=206; r[62]=40; r[63]=46; r[64]=38; r[65]=39; r[66]=43; r[67]=38; r[68]=43; r[69]=39; r[70]=41; r[71]=42; r[72]=41; r[73]=207; r[74]=43; r[75]=208; r[76]=44; r[77]=45; r[78]=39; r[79]=49; r[80]=50; r[81]=51; r[82]=52; r[83]=21; r[84]=54; r[85]=55; r[86]=56; r[87]=57; r[88]=58; r[89]=204; r[90]=60; r[91]=61; r[92]=60; r[93]=204; r[94]=61; r[95]=204; r[96]=63; r[97]=62; r[98]=66; r[99]=204; r[100]=63; r[101]=64; r[102]=66; r[103]=204; r[104]=65; r[105]=64; r[106]=66; r[107]=67; r[108]=204; r[109]=65; r[110]=64; r[111]=66; r[112]=67; r[113]=204; r[114]=204; r[115]=68; r[116]=144; r[117]=74; r[118]=142; r[119]=143; r[120]=73; r[121]=68; r[122]=69; r[123]=70; r[124]=73; r[125]=204; r[126]=69; r[127]=71; r[128]=73; r[129]=204; r[130]=65; r[131]=72; r[132]=71; r[133]=73; r[134]=74; r[135]=204; r[136]=65; r[137]=72; r[138]=74; r[139]=75; r[140]=76; r[141]=77; r[142]=141; r[143]=73; r[144]=75; r[145]=76; r[146]=71; r[147]=73; r[148]=78; r[149]=79; r[150]=90; r[151]=70; r[152]=93; r[153]=80; r[154]=209; r[155]=94; r[156]=78; r[157]=79; r[158]=90; r[159]=93; r[160]=80; r[161]=209; r[162]=94; r[163]=79; r[164]=69; r[165]=82; r[166]=84; r[167]=209; r[168]=81; r[169]=79; r[170]=83; r[171]=82; r[172]=84; r[173]=85; r[174]=209; r[175]=83; r[176]=85; r[177]=209; r[178]=86; r[179]=95; r[180]=139; r[181]=140; r[182]=93; r[183]=87; r[184]=88; r[185]=91; r[186]=87; r[187]=88; r[188]=89; r[189]=96; r[190]=93; r[191]=209; r[192]=209; r[193]=91; r[194]=93; r[195]=83; r[196]=92; r[197]=91; r[198]=93; r[199]=95; r[200]=209; r[201]=83; r[202]=92; r[203]=95; r[204]=90; r[205]=97; r[206]=98; r[207]=117; r[208]=108; r[209]=128; r[210]=99; r[211]=211; r[212]=129; r[213]=97; r[214]=98; r[215]=117; r[216]=108; r[217]=128; r[218]=99; r[219]=211; r[220]=129; r[221]=98; r[222]=100; r[223]=120; r[224]=121; r[225]=211; r[226]=122; r[227]=101; r[228]=100; r[229]=103; r[230]=105; r[231]=210; r[232]=102; r[233]=104; r[234]=103; r[235]=105; r[236]=106; r[237]=210; r[238]=104; r[239]=106; r[240]=210; r[241]=107; r[242]=138; r[243]=113; r[244]=136; r[245]=137; r[246]=111; r[247]=112; r[248]=107; r[249]=100; r[250]=108; r[251]=111; r[252]=210; r[253]=112; r[254]=109; r[255]=111; r[256]=210; r[257]=104; r[258]=110; r[259]=109; r[260]=111; r[261]=113; r[262]=210; r[263]=104; r[264]=110; r[265]=113; r[266]=114; r[267]=115; r[268]=116; r[269]=135; r[270]=111; r[271]=114; r[272]=115; r[273]=109; r[274]=111; r[275]=90; r[276]=118; r[277]=128; r[278]=211; r[279]=119; r[280]=134; r[281]=118; r[282]=128; r[283]=133; r[284]=211; r[285]=119; r[286]=123; r[287]=119; r[288]=120; r[289]=121; r[290]=123; r[291]=211; r[292]=211; r[293]=98; r[294]=124; r[295]=133; r[296]=131; r[297]=132; r[298]=128; r[299]=125; r[300]=126; r[301]=118; r[302]=125; r[303]=126; r[304]=127; r[305]=130; r[306]=128; r[307]=211; r[308]=117; r[309]=98; r[310]=79; r[311]=120; r[312]=121; r[313]=211; r[314]=122; r[315]=100; r[316]=119; r[317]=134; r[318]=133; r[319]=100; r[320]=108; r[321]=101; r[322]=210; r[323]=100; r[324]=103; r[325]=105; r[326]=210; r[327]=102; r[328]=79; r[329]=82; r[330]=84; r[331]=209; r[332]=81; r[333]=210; r[334]=146; r[335]=147; r[336]=212; r[337]=146; r[338]=148; r[339]=149; r[340]=213; r[341]=204; r[342]=151; r[343]=152; r[344]=153; r[345]=154; r[346]=155; r[347]=156; r[348]=157; r[349]=158; r[350]=200; r[351]=159; r[352]=160; r[353]=159; r[354]=161; r[355]=204; r[356]=162; r[357]=163; r[358]=176; r[359]=164; r[360]=165; r[361]=166; r[362]=167; r[363]=168; r[364]=169; r[365]=170; r[366]=171; r[367]=172; r[368]=198; r[369]=173; r[370]=174; r[371]=173; r[372]=175; r[373]=177; r[374]=178; r[375]=179; r[376]=180; r[377]=181; r[378]=182; r[379]=183; r[380]=184; r[381]=185; r[382]=186; r[383]=187; r[384]=193; r[385]=188; r[386]=191; r[387]=189; r[388]=190; r[389]=190; r[390]=192; r[391]=194; r[392]=196; r[393]=195; r[394]=197; r[395]=199; r[396]=199; r[397]=201; r[398]=201; r[399]=214; r[400]=214; r[401]=216; r[402]=216; r[403]=204; r[404]=204; r[405]=205; r[406]=204; r[407]=0; r[408]=59; r[409]=62; r[410]=145; r[411]=204; r[412]=150; r[413]=214; r[414]=214; r[415]=215; r[416]=214; r[417]=202; r[418]=216; r[419]=216; r[420]=217; r[421]=216; r[422]=203; r[423]=218; r[424]=218; r[425]=218; r[426]=219; r[427]=218; } private static short[] create__hpricot_scan_trans_targs_wi( ) { short[] r = new short[428]; init__hpricot_scan_trans_targs_wi_0( r ); return r; } private static final short _hpricot_scan_trans_targs_wi[] = create__hpricot_scan_trans_targs_wi(); private static void init__hpricot_scan_trans_actions_wi_0( short[] r ) { r[0]=71; r[1]=0; r[2]=0; r[3]=0; r[4]=59; r[5]=0; r[6]=0; r[7]=0; r[8]=0; r[9]=0; r[10]=0; r[11]=0; r[12]=1; r[13]=5; r[14]=0; r[15]=90; r[16]=5; r[17]=0; r[18]=51; r[19]=0; r[20]=0; r[21]=0; r[22]=0; r[23]=0; r[24]=0; r[25]=0; r[26]=0; r[27]=0; r[28]=0; r[29]=0; r[30]=3; r[31]=19; r[32]=0; r[33]=0; r[34]=0; r[35]=0; r[36]=3; r[37]=21; r[38]=0; r[39]=73; r[40]=0; r[41]=0; r[42]=3; r[43]=0; r[44]=3; r[45]=81; r[46]=0; r[47]=19; r[48]=0; r[49]=19; r[50]=3; r[51]=3; r[52]=3; r[53]=111; r[54]=182; r[55]=3; r[56]=0; r[57]=0; r[58]=0; r[59]=0; r[60]=111; r[61]=144; r[62]=0; r[63]=21; r[64]=3; r[65]=21; r[66]=84; r[67]=0; r[68]=21; r[69]=0; r[70]=21; r[71]=0; r[72]=0; r[73]=144; r[74]=0; r[75]=144; r[76]=0; r[77]=0; r[78]=3; r[79]=0; r[80]=0; r[81]=0; r[82]=0; r[83]=0; r[84]=0; r[85]=0; r[86]=0; r[87]=0; r[88]=0; r[89]=61; r[90]=1; r[91]=5; r[92]=0; r[93]=96; r[94]=0; r[95]=55; r[96]=5; r[97]=0; r[98]=5; r[99]=93; r[100]=0; r[101]=114; r[102]=0; r[103]=53; r[104]=11; r[105]=0; r[106]=108; r[107]=11; r[108]=166; r[109]=0; r[110]=174; r[111]=23; r[112]=0; r[113]=120; r[114]=57; r[115]=3; r[116]=3; r[117]=3; r[118]=0; r[119]=0; r[120]=87; r[121]=0; r[122]=9; r[123]=9; r[124]=102; r[125]=162; r[126]=0; r[127]=174; r[128]=117; r[129]=170; r[130]=105; r[131]=105; r[132]=0; r[133]=158; r[134]=11; r[135]=195; r[136]=9; r[137]=9; r[138]=0; r[139]=78; r[140]=78; r[141]=0; r[142]=0; r[143]=150; r[144]=3; r[145]=3; r[146]=190; r[147]=154; r[148]=3; r[149]=78; r[150]=78; r[151]=7; r[152]=150; r[153]=3; r[154]=220; r[155]=3; r[156]=0; r[157]=9; r[158]=9; r[159]=102; r[160]=0; r[161]=205; r[162]=0; r[163]=0; r[164]=7; r[165]=174; r[166]=23; r[167]=186; r[168]=0; r[169]=7; r[170]=11; r[171]=0; r[172]=108; r[173]=11; r[174]=210; r[175]=0; r[176]=0; r[177]=147; r[178]=3; r[179]=3; r[180]=7; r[181]=0; r[182]=87; r[183]=3; r[184]=3; r[185]=190; r[186]=78; r[187]=78; r[188]=7; r[189]=0; r[190]=154; r[191]=215; r[192]=226; r[193]=174; r[194]=117; r[195]=105; r[196]=105; r[197]=0; r[198]=158; r[199]=11; r[200]=232; r[201]=9; r[202]=9; r[203]=0; r[204]=7; r[205]=3; r[206]=78; r[207]=78; r[208]=99; r[209]=150; r[210]=3; r[211]=220; r[212]=3; r[213]=0; r[214]=9; r[215]=9; r[216]=7; r[217]=102; r[218]=0; r[219]=205; r[220]=0; r[221]=0; r[222]=7; r[223]=174; r[224]=23; r[225]=186; r[226]=0; r[227]=0; r[228]=0; r[229]=174; r[230]=23; r[231]=186; r[232]=0; r[233]=11; r[234]=0; r[235]=108; r[236]=11; r[237]=210; r[238]=0; r[239]=0; r[240]=147; r[241]=3; r[242]=3; r[243]=3; r[244]=0; r[245]=7; r[246]=87; r[247]=3; r[248]=0; r[249]=9; r[250]=9; r[251]=102; r[252]=205; r[253]=0; r[254]=174; r[255]=117; r[256]=215; r[257]=105; r[258]=105; r[259]=0; r[260]=158; r[261]=11; r[262]=232; r[263]=9; r[264]=9; r[265]=0; r[266]=78; r[267]=78; r[268]=0; r[269]=7; r[270]=150; r[271]=3; r[272]=3; r[273]=190; r[274]=154; r[275]=75; r[276]=174; r[277]=117; r[278]=215; r[279]=105; r[280]=105; r[281]=0; r[282]=158; r[283]=11; r[284]=232; r[285]=0; r[286]=0; r[287]=11; r[288]=0; r[289]=108; r[290]=11; r[291]=210; r[292]=147; r[293]=7; r[294]=3; r[295]=3; r[296]=7; r[297]=7; r[298]=87; r[299]=3; r[300]=3; r[301]=190; r[302]=78; r[303]=78; r[304]=7; r[305]=7; r[306]=154; r[307]=226; r[308]=7; r[309]=3; r[310]=75; r[311]=190; r[312]=87; r[313]=200; r[314]=3; r[315]=99; r[316]=9; r[317]=9; r[318]=0; r[319]=78; r[320]=78; r[321]=3; r[322]=226; r[323]=3; r[324]=190; r[325]=87; r[326]=200; r[327]=3; r[328]=3; r[329]=190; r[330]=87; r[331]=200; r[332]=3; r[333]=220; r[334]=25; r[335]=25; r[336]=0; r[337]=0; r[338]=0; r[339]=0; r[340]=31; r[341]=69; r[342]=0; r[343]=0; r[344]=0; r[345]=0; r[346]=0; r[347]=0; r[348]=0; r[349]=0; r[350]=0; r[351]=3; r[352]=13; r[353]=0; r[354]=0; r[355]=49; r[356]=0; r[357]=0; r[358]=0; r[359]=0; r[360]=0; r[361]=0; r[362]=0; r[363]=0; r[364]=0; r[365]=0; r[366]=0; r[367]=0; r[368]=0; r[369]=3; r[370]=15; r[371]=0; r[372]=0; r[373]=0; r[374]=0; r[375]=0; r[376]=0; r[377]=0; r[378]=0; r[379]=0; r[380]=0; r[381]=0; r[382]=0; r[383]=0; r[384]=0; r[385]=3; r[386]=3; r[387]=0; r[388]=17; r[389]=0; r[390]=0; r[391]=3; r[392]=3; r[393]=0; r[394]=0; r[395]=3; r[396]=0; r[397]=3; r[398]=0; r[399]=37; r[400]=135; r[401]=43; r[402]=138; r[403]=63; r[404]=132; r[405]=178; r[406]=67; r[407]=0; r[408]=0; r[409]=1; r[410]=0; r[411]=65; r[412]=0; r[413]=33; r[414]=123; r[415]=31; r[416]=35; r[417]=0; r[418]=39; r[419]=126; r[420]=31; r[421]=41; r[422]=0; r[423]=45; r[424]=129; r[425]=141; r[426]=0; r[427]=47; } private static short[] create__hpricot_scan_trans_actions_wi( ) { short[] r = new short[428]; init__hpricot_scan_trans_actions_wi_0( r ); return r; } private static final short _hpricot_scan_trans_actions_wi[] = create__hpricot_scan_trans_actions_wi(); private static void init__hpricot_scan_to_state_actions_0( short[] r ) { r[0]=0; r[1]=0; r[2]=0; r[3]=0; r[4]=0; r[5]=0; r[6]=0; r[7]=0; r[8]=0; r[9]=0; r[10]=0; r[11]=0; r[12]=0; r[13]=0; r[14]=0; r[15]=0; r[16]=0; r[17]=0; r[18]=0; r[19]=0; r[20]=0; r[21]=0; r[22]=0; r[23]=0; r[24]=0; r[25]=0; r[26]=0; r[27]=0; r[28]=0; r[29]=0; r[30]=0; r[31]=0; r[32]=0; r[33]=0; r[34]=0; r[35]=0; r[36]=0; r[37]=0; r[38]=0; r[39]=0; r[40]=0; r[41]=0; r[42]=0; r[43]=0; r[44]=0; r[45]=0; r[46]=0; r[47]=0; r[48]=0; r[49]=0; r[50]=0; r[51]=0; r[52]=0; r[53]=0; r[54]=0; r[55]=0; r[56]=0; r[57]=0; r[58]=0; r[59]=0; r[60]=0; r[61]=0; r[62]=0; r[63]=0; r[64]=0; r[65]=0; r[66]=0; r[67]=0; r[68]=0; r[69]=0; r[70]=0; r[71]=0; r[72]=0; r[73]=0; r[74]=0; r[75]=0; r[76]=0; r[77]=0; r[78]=0; r[79]=0; r[80]=0; r[81]=0; r[82]=0; r[83]=0; r[84]=0; r[85]=0; r[86]=0; r[87]=0; r[88]=0; r[89]=0; r[90]=0; r[91]=0; r[92]=0; r[93]=0; r[94]=0; r[95]=0; r[96]=0; r[97]=0; r[98]=0; r[99]=0; r[100]=0; r[101]=0; r[102]=0; r[103]=0; r[104]=0; r[105]=0; r[106]=0; r[107]=0; r[108]=0; r[109]=0; r[110]=0; r[111]=0; r[112]=0; r[113]=0; r[114]=0; r[115]=0; r[116]=0; r[117]=0; r[118]=0; r[119]=0; r[120]=0; r[121]=0; r[122]=0; r[123]=0; r[124]=0; r[125]=0; r[126]=0; r[127]=0; r[128]=0; r[129]=0; r[130]=0; r[131]=0; r[132]=0; r[133]=0; r[134]=0; r[135]=0; r[136]=0; r[137]=0; r[138]=0; r[139]=0; r[140]=0; r[141]=0; r[142]=0; r[143]=0; r[144]=0; r[145]=0; r[146]=0; r[147]=0; r[148]=0; r[149]=0; r[150]=0; r[151]=0; r[152]=0; r[153]=0; r[154]=0; r[155]=0; r[156]=0; r[157]=0; r[158]=0; r[159]=0; r[160]=0; r[161]=0; r[162]=0; r[163]=0; r[164]=0; r[165]=0; r[166]=0; r[167]=0; r[168]=0; r[169]=0; r[170]=0; r[171]=0; r[172]=0; r[173]=0; r[174]=0; r[175]=0; r[176]=0; r[177]=0; r[178]=0; r[179]=0; r[180]=0; r[181]=0; r[182]=0; r[183]=0; r[184]=0; r[185]=0; r[186]=0; r[187]=0; r[188]=0; r[189]=0; r[190]=0; r[191]=0; r[192]=0; r[193]=0; r[194]=0; r[195]=0; r[196]=0; r[197]=0; r[198]=0; r[199]=0; r[200]=0; r[201]=0; r[202]=0; r[203]=0; r[204]=27; r[205]=0; r[206]=0; r[207]=0; r[208]=0; r[209]=0; r[210]=0; r[211]=0; r[212]=0; r[213]=0; r[214]=27; r[215]=0; r[216]=27; r[217]=0; r[218]=27; r[219]=0; } private static short[] create__hpricot_scan_to_state_actions( ) { short[] r = new short[220]; init__hpricot_scan_to_state_actions_0( r ); return r; } private static final short _hpricot_scan_to_state_actions[] = create__hpricot_scan_to_state_actions(); private static void init__hpricot_scan_from_state_actions_0( short[] r ) { r[0]=0; r[1]=0; r[2]=0; r[3]=0; r[4]=0; r[5]=0; r[6]=0; r[7]=0; r[8]=0; r[9]=0; r[10]=0; r[11]=0; r[12]=0; r[13]=0; r[14]=0; r[15]=0; r[16]=0; r[17]=0; r[18]=0; r[19]=0; r[20]=0; r[21]=0; r[22]=0; r[23]=0; r[24]=0; r[25]=0; r[26]=0; r[27]=0; r[28]=0; r[29]=0; r[30]=0; r[31]=0; r[32]=0; r[33]=0; r[34]=0; r[35]=0; r[36]=0; r[37]=0; r[38]=0; r[39]=0; r[40]=0; r[41]=0; r[42]=0; r[43]=0; r[44]=0; r[45]=0; r[46]=0; r[47]=0; r[48]=0; r[49]=0; r[50]=0; r[51]=0; r[52]=0; r[53]=0; r[54]=0; r[55]=0; r[56]=0; r[57]=0; r[58]=0; r[59]=0; r[60]=0; r[61]=0; r[62]=0; r[63]=0; r[64]=0; r[65]=0; r[66]=0; r[67]=0; r[68]=0; r[69]=0; r[70]=0; r[71]=0; r[72]=0; r[73]=0; r[74]=0; r[75]=0; r[76]=0; r[77]=0; r[78]=0; r[79]=0; r[80]=0; r[81]=0; r[82]=0; r[83]=0; r[84]=0; r[85]=0; r[86]=0; r[87]=0; r[88]=0; r[89]=0; r[90]=0; r[91]=0; r[92]=0; r[93]=0; r[94]=0; r[95]=0; r[96]=0; r[97]=0; r[98]=0; r[99]=0; r[100]=0; r[101]=0; r[102]=0; r[103]=0; r[104]=0; r[105]=0; r[106]=0; r[107]=0; r[108]=0; r[109]=0; r[110]=0; r[111]=0; r[112]=0; r[113]=0; r[114]=0; r[115]=0; r[116]=0; r[117]=0; r[118]=0; r[119]=0; r[120]=0; r[121]=0; r[122]=0; r[123]=0; r[124]=0; r[125]=0; r[126]=0; r[127]=0; r[128]=0; r[129]=0; r[130]=0; r[131]=0; r[132]=0; r[133]=0; r[134]=0; r[135]=0; r[136]=0; r[137]=0; r[138]=0; r[139]=0; r[140]=0; r[141]=0; r[142]=0; r[143]=0; r[144]=0; r[145]=0; r[146]=0; r[147]=0; r[148]=0; r[149]=0; r[150]=0; r[151]=0; r[152]=0; r[153]=0; r[154]=0; r[155]=0; r[156]=0; r[157]=0; r[158]=0; r[159]=0; r[160]=0; r[161]=0; r[162]=0; r[163]=0; r[164]=0; r[165]=0; r[166]=0; r[167]=0; r[168]=0; r[169]=0; r[170]=0; r[171]=0; r[172]=0; r[173]=0; r[174]=0; r[175]=0; r[176]=0; r[177]=0; r[178]=0; r[179]=0; r[180]=0; r[181]=0; r[182]=0; r[183]=0; r[184]=0; r[185]=0; r[186]=0; r[187]=0; r[188]=0; r[189]=0; r[190]=0; r[191]=0; r[192]=0; r[193]=0; r[194]=0; r[195]=0; r[196]=0; r[197]=0; r[198]=0; r[199]=0; r[200]=0; r[201]=0; r[202]=0; r[203]=0; r[204]=29; r[205]=0; r[206]=0; r[207]=0; r[208]=0; r[209]=0; r[210]=0; r[211]=0; r[212]=0; r[213]=0; r[214]=29; r[215]=0; r[216]=29; r[217]=0; r[218]=29; r[219]=0; } private static short[] create__hpricot_scan_from_state_actions( ) { short[] r = new short[220]; init__hpricot_scan_from_state_actions_0( r ); return r; } private static final short _hpricot_scan_from_state_actions[] = create__hpricot_scan_from_state_actions(); static final int hpricot_scan_start = 204; static final int hpricot_scan_error = -1; static final int hpricot_scan_en_html_comment = 214; static final int hpricot_scan_en_html_cdata = 216; static final int hpricot_scan_en_html_procins = 218; static final int hpricot_scan_en_main = 204; // line 191 "ext/hpricot_scan/hpricot_scan.java.rl" public final static int BUFSIZE=16384; private void rb_yield_tokens(IRubyObject sym, IRubyObject tag, IRubyObject attr, IRubyObject raw, boolean taint) { IRubyObject ary; if (sym == runtime.newSymbol("text")) { raw = tag; } ary = runtime.newArray(new IRubyObject[]{sym, tag, attr, raw}); if (taint) { ary.setTaint(true); tag.setTaint(true); attr.setTaint(true); raw.setTaint(true); } block.yield(runtime.getCurrentContext(), ary, null, null, false); } int cs, act, have = 0, nread = 0, curline = 1, p=-1; boolean text = false; int tokstart=-1, tokend; char[] buf; Ruby runtime; IRubyObject attr, bufsize; IRubyObject[] tag, akey, aval; int mark_tag, mark_akey, mark_aval; boolean done = false, ele_open = false; int buffer_size = 0; boolean taint = false; Block block = null; IRubyObject xmldecl, doctype, procins, stag, etag, emptytag, comment, cdata, sym_text; IRubyObject hpricot_scan(IRubyObject recv, IRubyObject port) { attr = bufsize = runtime.getNil(); tag = new IRubyObject[]{runtime.getNil()}; akey = new IRubyObject[]{runtime.getNil()}; aval = new IRubyObject[]{runtime.getNil()}; RubyClass rb_eHpricotParseError = runtime.getModule("Hpricot").getClass("ParseError"); taint = port.isTaint(); if ( !port.respondsTo("read")) { if ( port.respondsTo("to_str")) { port = port.callMethod(runtime.getCurrentContext(),"to_str"); } else { throw runtime.newArgumentError("bad Hpricot argument, String or IO only please."); } } buffer_size = BUFSIZE; if (rubyApi.getInstanceVariable(recv, "@buffer_size") != null) { bufsize = rubyApi.getInstanceVariable(recv, "@buffer_size"); if (!bufsize.isNil()) { buffer_size = RubyNumeric.fix2int(bufsize); } } buf = new char[buffer_size]; // line 1073 "ext/hpricot_scan/HpricotScanService.java" { cs = hpricot_scan_start; tokstart = -1; tokend = -1; act = 0; } // line 254 "ext/hpricot_scan/hpricot_scan.java.rl" while( !done ) { IRubyObject str; p = have; int pe; int len, space = buffer_size - have; if ( space == 0 ) { /* We've used up the entire buffer storing an already-parsed token * prefix that must be preserved. Likely caused by super-long attributes. * See ticket #13. */ rb_raise(rb_eHpricotParseError, "ran out of buffer space on element <" + tag.toString() + ">, starting on line "+curline+"."); } if (port.respondsTo("read")) { str = port.callMethod(runtime.getCurrentContext(),"read",runtime.newFixnum(space)); } else { str = ((RubyString)port).substr(nread,space); } str = str.convertToString(); String sss = str.toString(); char[] chars = sss.toCharArray(); System.arraycopy(chars,0,buf,p,chars.length); len = sss.length(); nread += len; if ( len < space ) { len++; done = true; } pe = p + len; char[] data = buf; // line 1118 "ext/hpricot_scan/HpricotScanService.java" { int _klen; int _trans; int _acts; int _nacts; int _keys; if ( p != pe ) { _resume: while ( true ) { _again: do { _acts = _hpricot_scan_from_state_actions[cs]; _nacts = (int) _hpricot_scan_actions[_acts++]; while ( _nacts-- > 0 ) { switch ( _hpricot_scan_actions[_acts++] ) { case 21: // line 1 "ext/hpricot_scan/hpricot_scan.java.rl" {tokstart = p;} break; // line 1137 "ext/hpricot_scan/HpricotScanService.java" } } _match: do { _keys = _hpricot_scan_key_offsets[cs]; _trans = _hpricot_scan_index_offsets[cs]; _klen = _hpricot_scan_single_lengths[cs]; if ( _klen > 0 ) { int _lower = _keys; int _mid; int _upper = _keys + _klen - 1; while (true) { if ( _upper < _lower ) break; _mid = _lower + ((_upper-_lower) >> 1); if ( data[p] < _hpricot_scan_trans_keys[_mid] ) _upper = _mid - 1; else if ( data[p] > _hpricot_scan_trans_keys[_mid] ) _lower = _mid + 1; else { _trans += (_mid - _keys); break _match; } } _keys += _klen; _trans += _klen; } _klen = _hpricot_scan_range_lengths[cs]; if ( _klen > 0 ) { int _lower = _keys; int _mid; int _upper = _keys + (_klen<<1) - 2; while (true) { if ( _upper < _lower ) break; _mid = _lower + (((_upper-_lower) >> 1) & ~1); if ( data[p] < _hpricot_scan_trans_keys[_mid] ) _upper = _mid - 2; else if ( data[p] > _hpricot_scan_trans_keys[_mid+1] ) _lower = _mid + 2; else { _trans += ((_mid - _keys)>>1); break _match; } } _trans += _klen; } } while (false); _trans = _hpricot_scan_indicies[_trans]; cs = _hpricot_scan_trans_targs_wi[_trans]; if ( _hpricot_scan_trans_actions_wi[_trans] == 0 ) break _again; _acts = _hpricot_scan_trans_actions_wi[_trans]; _nacts = (int) _hpricot_scan_actions[_acts++]; while ( _nacts-- > 0 ) { switch ( _hpricot_scan_actions[_acts++] ) { case 0: // line 146 "ext/hpricot_scan/hpricot_scan.java.rl" { if (text) { CAT(tag, p); ELE(sym_text); text = false; } attr = runtime.getNil(); tag[0] = runtime.getNil(); mark_tag = -1; ele_open = true; } break; case 1: // line 158 "ext/hpricot_scan/hpricot_scan.java.rl" { mark_tag = p; } break; case 2: // line 159 "ext/hpricot_scan/hpricot_scan.java.rl" { mark_aval = p; } break; case 3: // line 160 "ext/hpricot_scan/hpricot_scan.java.rl" { mark_akey = p; } break; case 4: // line 161 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(tag, p); } break; case 5: // line 163 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(aval, p); } break; case 6: // line 164 "ext/hpricot_scan/hpricot_scan.java.rl" { if (buf[p-1] == '"' || buf[p-1] == '\'') { SET(aval, p-1); } else { SET(aval, p); } } break; case 7: // line 168 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(akey, p); } break; case 8: // line 169 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(aval, p); ATTR(rb_str_new2("version"), aval); } break; case 9: // line 170 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(aval, p); ATTR(rb_str_new2("encoding"), aval); } break; case 10: // line 171 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(aval, p); ATTR(rb_str_new2("standalone"), aval); } break; case 11: // line 172 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(aval, p); ATTR(rb_str_new2("public_id"), aval); } break; case 12: // line 173 "ext/hpricot_scan/hpricot_scan.java.rl" { SET(aval, p); ATTR(rb_str_new2("system_id"), aval); } break; case 13: // line 175 "ext/hpricot_scan/hpricot_scan.java.rl" { akey[0] = runtime.getNil(); aval[0] = runtime.getNil(); mark_akey = -1; mark_aval = -1; } break; case 14: // line 182 "ext/hpricot_scan/hpricot_scan.java.rl" { ATTR(akey, aval); } break; case 15: // line 9 "ext/hpricot_scan/hpricot_scan.java.rl" {curline += 1;} break; case 16: // line 46 "ext/hpricot_scan/hpricot_scan.java.rl" { TEXT_PASS(); } break; case 17: // line 50 "ext/hpricot_scan/hpricot_scan.java.rl" { EBLK(comment, 3); {cs = 204; if (true) break _again;} } break; case 18: // line 55 "ext/hpricot_scan/hpricot_scan.java.rl" { EBLK(cdata, 3); {cs = 204; if (true) break _again;} } break; case 19: // line 60 "ext/hpricot_scan/hpricot_scan.java.rl" { EBLK(procins, 2); {cs = 204; if (true) break _again;} } break; case 22: // line 1 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;} break; case 23: // line 50 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;} break; case 24: // line 51 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ TEXT_PASS(); }} break; case 25: // line 51 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p;p--;{ TEXT_PASS(); }} break; case 26: // line 51 "ext/hpricot_scan/hpricot_scan.java.rl" {{p = ((tokend))-1;}{ TEXT_PASS(); }} break; case 27: // line 55 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;} break; case 28: // line 56 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ TEXT_PASS(); }} break; case 29: // line 56 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p;p--;{ TEXT_PASS(); }} break; case 30: // line 56 "ext/hpricot_scan/hpricot_scan.java.rl" {{p = ((tokend))-1;}{ TEXT_PASS(); }} break; case 31: // line 60 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;} break; case 32: // line 61 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ TEXT_PASS(); }} break; case 33: // line 61 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p;p--;{ TEXT_PASS(); }} break; case 34: // line 66 "ext/hpricot_scan/hpricot_scan.java.rl" {act = 8;} break; case 35: // line 68 "ext/hpricot_scan/hpricot_scan.java.rl" {act = 10;} break; case 36: // line 70 "ext/hpricot_scan/hpricot_scan.java.rl" {act = 12;} break; case 37: // line 73 "ext/hpricot_scan/hpricot_scan.java.rl" {act = 15;} break; case 38: // line 65 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ ELE(xmldecl); }} break; case 39: // line 66 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ ELE(doctype); }} break; case 40: // line 68 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ ELE(stag); }} break; case 41: // line 69 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ ELE(etag); }} break; case 42: // line 70 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ ELE(emptytag); }} break; case 43: // line 71 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ {cs = 214; if (true) break _again;} }} break; case 44: // line 72 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ {cs = 216; if (true) break _again;} }} break; case 45: // line 73 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p+1;{ TEXT_PASS(); }} break; case 46: // line 67 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p;p--;{ {cs = 218; if (true) break _again;} }} break; case 47: // line 73 "ext/hpricot_scan/hpricot_scan.java.rl" {tokend = p;p--;{ TEXT_PASS(); }} break; case 48: // line 67 "ext/hpricot_scan/hpricot_scan.java.rl" {{p = ((tokend))-1;}{ {cs = 218; if (true) break _again;} }} break; case 49: // line 73 "ext/hpricot_scan/hpricot_scan.java.rl" {{p = ((tokend))-1;}{ TEXT_PASS(); }} break; case 50: // line 1 "ext/hpricot_scan/hpricot_scan.java.rl" { switch( act ) { case 8: {{p = ((tokend))-1;} ELE(doctype); } break; case 10: {{p = ((tokend))-1;} ELE(stag); } break; case 12: {{p = ((tokend))-1;} ELE(emptytag); } break; case 15: {{p = ((tokend))-1;} TEXT_PASS(); } break; default: break; } } break; // line 1433 "ext/hpricot_scan/HpricotScanService.java" } } } while (false); _acts = _hpricot_scan_to_state_actions[cs]; _nacts = (int) _hpricot_scan_actions[_acts++]; while ( _nacts-- > 0 ) { switch ( _hpricot_scan_actions[_acts++] ) { case 20: // line 1 "ext/hpricot_scan/hpricot_scan.java.rl" {tokstart = -1;} break; // line 1446 "ext/hpricot_scan/HpricotScanService.java" } } if ( ++p == pe ) break _resume; } } } // line 291 "ext/hpricot_scan/hpricot_scan.java.rl" if ( cs == hpricot_scan_error ) { if(!tag[0].isNil()) { rb_raise(rb_eHpricotParseError, "parse error on element <"+tag.toString()+">, starting on line "+curline+".\n" + NO_WAY_SERIOUSLY); } else { rb_raise(rb_eHpricotParseError, "parse error on line "+curline+".\n" + NO_WAY_SERIOUSLY); } } if ( done && ele_open ) { ele_open = false; if(tokstart > -1) { mark_tag = tokstart; tokstart = -1; text = true; } } if(tokstart == -1) { have = 0; /* text nodes have no tokstart because each byte is parsed alone */ if(mark_tag != -1 && text) { if (done) { if(mark_tag < p-1) { CAT(tag, p-1); ELE(sym_text); } } else { CAT(tag, p); } } mark_tag = 0; } else { have = pe - tokstart; System.arraycopy(buf,tokstart,buf,0,have); SLIDE(tag); SLIDE(akey); SLIDE(aval); tokend = (tokend - tokstart); tokstart = 0; } } return runtime.getNil(); } public static IRubyObject __hpricot_scan(IRubyObject recv, IRubyObject port, Block block) { Ruby runtime = recv.getRuntime(); HpricotScanService service = new HpricotScanService(); service.runtime = runtime; service.xmldecl = runtime.newSymbol("xmldecl"); service.doctype = runtime.newSymbol("doctype"); service.procins = runtime.newSymbol("procins"); service.stag = runtime.newSymbol("stag"); service.etag = runtime.newSymbol("etag"); service.emptytag = runtime.newSymbol("emptytag"); service.comment = runtime.newSymbol("comment"); service.cdata = runtime.newSymbol("cdata"); service.sym_text = runtime.newSymbol("text"); service.block = block; return service.hpricot_scan(recv, port); } public boolean basicLoad(final Ruby runtime) throws IOException { Init_hpricot_scan(runtime); return true; } public static void Init_hpricot_scan(Ruby runtime) { RubyModule mHpricot = runtime.defineModule("Hpricot"); mHpricot.getMetaClass().attr_accessor(new IRubyObject[]{runtime.newSymbol("buffer_size")}); CallbackFactory fact = runtime.callbackFactory(HpricotScanService.class); mHpricot.getMetaClass().defineMethod("scan",fact.getSingletonMethod("__hpricot_scan",IRubyObject.class)); mHpricot.defineClassUnder("ParseError",runtime.getClass("Exception"),runtime.getClass("Exception").getAllocator()); rubyApi = JavaEmbedUtils.newObjectAdapter(); } }