/* A Bison parser, made by GNU Bison 3.8.2. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual, especially those whose name start with YY_ or yy_. They are private implementation details that can be changed or removed. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output, and Bison version. */ #define YYBISON 30802 /* Bison version string. */ #define YYBISON_VERSION "3.8.2" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 0 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Substitute the variable and function names. */ #define yyparse xxparse #define yylex xxlex #define yyerror xxerror #define yydebug xxdebug #define yynerrs xxnerrs #define yylval xxlval #define yychar xxchar #define yylloc xxlloc /* First part of user prologue. */ #line 30 "SecParser.y" #include #include #include #include #include #include "NestedText.h" #define YYERROR_VERBOSE #define YYDEBUG 1 bool USE_AUTO_BUFFER = false; extern int yylex(); string* yacc_outtext; typedef char cstring[50]; cstring paramname; // temporarly variable #define maxparams 10 cstring params[maxparams]; int paramno; stack > paramstack; extern void yyerror( const char* s ); void cleanVariables(int max){ if(maxparams > tmpstack; while(!paramstack.empty()){ pair t = paramstack.top(); tmpstack.push(t); paramstack.pop(); } while(!tmpstack.empty()){ pair t = tmpstack.top(); paramstack.push(t); tmpstack.pop(); strcpy(params[t.first], t.second.c_str()); } } void PRINTF (const char *s) { (*yacc_outtext).append( s ); } void PRINT (int i) { string temp; NestedText::CopyOut( i, temp ); *yacc_outtext += temp; } void CLEAR(){ *yacc_outtext=""; } #line 162 "SecParser.tab.cpp" # ifndef YY_CAST # ifdef __cplusplus # define YY_CAST(Type, Val) static_cast (Val) # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast (Val) # else # define YY_CAST(Type, Val) ((Type) (Val)) # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val)) # endif # endif # ifndef YY_NULLPTR # if defined __cplusplus # if 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # else # define YY_NULLPTR ((void*)0) # endif # endif #include "SecParser.tab.hpp" /* Symbol kind. */ enum yysymbol_kind_t { YYSYMBOL_YYEMPTY = -2, YYSYMBOL_YYEOF = 0, /* "end of file" */ YYSYMBOL_YYerror = 1, /* error */ YYSYMBOL_YYUNDEF = 2, /* "invalid token" */ YYSYMBOL_ZZATTRABBR = 3, /* ZZATTRABBR */ YYSYMBOL_ZZATTRABBR2 = 4, /* ZZATTRABBR2 */ YYSYMBOL_ZZIDENTIFIER = 5, /* ZZIDENTIFIER */ YYSYMBOL_ZZFUN = 6, /* ZZFUN */ YYSYMBOL_ZZINTEGER = 7, /* ZZINTEGER */ YYSYMBOL_ZZREAL = 8, /* ZZREAL */ YYSYMBOL_ZZSTRING = 9, /* ZZSTRING */ YYSYMBOL_ZZBOOLEAN = 10, /* ZZBOOLEAN */ YYSYMBOL_ZZCONST = 11, /* ZZCONST */ YYSYMBOL_ZZTUPLE = 12, /* ZZTUPLE */ YYSYMBOL_ZZGROUP = 13, /* ZZGROUP */ YYSYMBOL_ZZTYPE = 14, /* ZZTYPE */ YYSYMBOL_ZZDELETE = 15, /* ZZDELETE */ YYSYMBOL_ZZCREATE = 16, /* ZZCREATE */ YYSYMBOL_ZZUPDATE = 17, /* ZZUPDATE */ YYSYMBOL_ZZKILL = 18, /* ZZKILL */ YYSYMBOL_ZZQUERY = 19, /* ZZQUERY */ YYSYMBOL_ZZQUERYNT = 20, /* ZZQUERYNT */ YYSYMBOL_ZZPQUERY = 21, /* ZZPQUERY */ YYSYMBOL_ZZPCOMPILE = 22, /* ZZPCOMPILE */ YYSYMBOL_ZZLET = 23, /* ZZLET */ YYSYMBOL_ZZDERIVE = 24, /* ZZDERIVE */ YYSYMBOL_ZZPERSISTENT = 25, /* ZZPERSISTENT */ YYSYMBOL_ZZBEGIN1 = 26, /* ZZBEGIN1 */ YYSYMBOL_ZZTRANSACTION = 27, /* ZZTRANSACTION */ YYSYMBOL_ZZCOMMIT = 28, /* ZZCOMMIT */ YYSYMBOL_ZZABORT = 29, /* ZZABORT */ YYSYMBOL_ZZDATABASE = 30, /* ZZDATABASE */ YYSYMBOL_ZZOPEN = 31, /* ZZOPEN */ YYSYMBOL_ZZCLOSE = 32, /* ZZCLOSE */ YYSYMBOL_ZZSAVE = 33, /* ZZSAVE */ YYSYMBOL_ZZTO = 34, /* ZZTO */ YYSYMBOL_ZZRESTORE = 35, /* ZZRESTORE */ YYSYMBOL_ZZFROM = 36, /* ZZFROM */ YYSYMBOL_ZZLIST = 37, /* ZZLIST */ YYSYMBOL_ZZDATABASES = 38, /* ZZDATABASES */ YYSYMBOL_ZZCONSTRUCTORS = 39, /* ZZCONSTRUCTORS */ YYSYMBOL_ZZOPERATORS = 40, /* ZZOPERATORS */ YYSYMBOL_ZZTYPES = 41, /* ZZTYPES */ YYSYMBOL_ZZOBJECTS = 42, /* ZZOBJECTS */ YYSYMBOL_ZZASSIGN = 43, /* ZZASSIGN */ YYSYMBOL_ZZDOUBLE = 44, /* ZZDOUBLE */ YYSYMBOL_ZZVALUE = 45, /* ZZVALUE */ YYSYMBOL_ZZPOINTER = 46, /* ZZPOINTER */ YYSYMBOL_ZZCOUNTERS = 47, /* ZZCOUNTERS */ YYSYMBOL_ZZALGEBRAS = 48, /* ZZALGEBRAS */ YYSYMBOL_ZZALGEBRA = 49, /* ZZALGEBRA */ YYSYMBOL_ZZTEXT = 50, /* ZZTEXT */ YYSYMBOL_ZZFILE = 51, /* ZZFILE */ YYSYMBOL_ZZINFIXOP = 52, /* ZZINFIXOP */ YYSYMBOL_ZZPREFIXOP = 53, /* ZZPREFIXOP */ YYSYMBOL_ZZINFIXOP_BUF = 54, /* ZZINFIXOP_BUF */ YYSYMBOL_ZZPREFIXOP_BUF = 55, /* ZZPREFIXOP_BUF */ YYSYMBOL_ZZIF = 56, /* ZZIF */ YYSYMBOL_ZZTHEN = 57, /* ZZTHEN */ YYSYMBOL_ZZELSE = 58, /* ZZELSE */ YYSYMBOL_ZZENDIF = 59, /* ZZENDIF */ YYSYMBOL_ZZWHILE = 60, /* ZZWHILE */ YYSYMBOL_ZZDO = 61, /* ZZDO */ YYSYMBOL_ZZENDWHILE = 62, /* ZZENDWHILE */ YYSYMBOL_ZZNAMING = 63, /* ZZNAMING */ YYSYMBOL_ZZMEMORY = 64, /* ZZMEMORY */ YYSYMBOL_ZZDEFAULTSEP = 65, /* ZZDEFAULTSEP */ YYSYMBOL_OPENDOUBLEBRACE = 66, /* OPENDOUBLEBRACE */ YYSYMBOL_CLOSEDOUBLEBRACE = 67, /* CLOSEDOUBLEBRACE */ YYSYMBOL_ZZSINGLE = 68, /* ZZSINGLE */ YYSYMBOL_ZZARG3 = 69, /* ZZARG3 */ YYSYMBOL_ZZARG4 = 70, /* ZZARG4 */ YYSYMBOL_ZZARG5 = 71, /* ZZARG5 */ YYSYMBOL_ZZARG6 = 72, /* ZZARG6 */ YYSYMBOL_ZZARG7 = 73, /* ZZARG7 */ YYSYMBOL_ZZARG8 = 74, /* ZZARG8 */ YYSYMBOL_ZZARG9 = 75, /* ZZARG9 */ YYSYMBOL_ZZATTRABBR3 = 76, /* ZZATTRABBR3 */ YYSYMBOL_ZZATTRABBR4 = 77, /* ZZATTRABBR4 */ YYSYMBOL_ZZATTRABBR5 = 78, /* ZZATTRABBR5 */ YYSYMBOL_ZZATTRABBR6 = 79, /* ZZATTRABBR6 */ YYSYMBOL_ZZATTRABBR7 = 80, /* ZZATTRABBR7 */ YYSYMBOL_ZZATTRABBR8 = 81, /* ZZATTRABBR8 */ YYSYMBOL_ZZATTRABBR9 = 82, /* ZZATTRABBR9 */ YYSYMBOL_ZZCHANGENAME = 83, /* ZZCHANGENAME */ YYSYMBOL_ZZTYPEOF = 84, /* ZZTYPEOF */ YYSYMBOL_ZZPOSTFIXOP1 = 85, /* ZZPOSTFIXOP1 */ YYSYMBOL_ZZPOSTFIXOP1_a = 86, /* ZZPOSTFIXOP1_a */ YYSYMBOL_ZZPOSTFIXOP2_a = 87, /* ZZPOSTFIXOP2_a */ YYSYMBOL_ZZNEST = 88, /* ZZNEST */ YYSYMBOL_ZZPOSTFIXOP2 = 89, /* ZZPOSTFIXOP2 */ YYSYMBOL_ZZSORTBY = 90, /* ZZSORTBY */ YYSYMBOL_ZZSORTBYPARAM = 91, /* ZZSORTBYPARAM */ YYSYMBOL_ZZSORTBYH = 92, /* ZZSORTBYH */ YYSYMBOL_ZZGDIJKSTRA = 93, /* ZZGDIJKSTRA */ YYSYMBOL_ZZMINPATHCOST2 = 94, /* ZZMINPATHCOST2 */ YYSYMBOL_ZZGBIDIJKSTRA = 95, /* ZZGBIDIJKSTRA */ YYSYMBOL_ZZMTMINPATHCOSTS2 = 96, /* ZZMTMINPATHCOSTS2 */ YYSYMBOL_ZZD_SEND_SHUFFLE = 97, /* ZZD_SEND_SHUFFLE */ YYSYMBOL_ZZDSHUFFLE = 98, /* ZZDSHUFFLE */ YYSYMBOL_ZZDSHUFFLE2 = 99, /* ZZDSHUFFLE2 */ YYSYMBOL_ZZDSHUFFLE1 = 100, /* ZZDSHUFFLE1 */ YYSYMBOL_ZZDLOOP_OLD = 101, /* ZZDLOOP_OLD */ YYSYMBOL_ZZDLOOPA_OLD = 102, /* ZZDLOOPA_OLD */ YYSYMBOL_ZZDTIE = 103, /* ZZDTIE */ YYSYMBOL_ZZPARTITIONDMAP = 104, /* ZZPARTITIONDMAP */ YYSYMBOL_ZZDMAPPDMAP = 105, /* ZZDMAPPDMAP */ YYSYMBOL_ZZFDISTRIBUTE2TES = 106, /* ZZFDISTRIBUTE2TES */ YYSYMBOL_ZZDISTRIBUTE2TES = 107, /* ZZDISTRIBUTE2TES */ YYSYMBOL_ZZCOLLECTPC2 = 108, /* ZZCOLLECTPC2 */ YYSYMBOL_ZZOPTICSR = 109, /* ZZOPTICSR */ YYSYMBOL_ZZOPTICSM = 110, /* ZZOPTICSM */ YYSYMBOL_ZZOPTICSF = 111, /* ZZOPTICSF */ YYSYMBOL_ZZOPTICSTF = 112, /* ZZOPTICSTF */ YYSYMBOL_ZZFILTERV = 113, /* ZZFILTERV */ YYSYMBOL_ZZFILTERNP = 114, /* ZZFILTERNP */ YYSYMBOL_ZZEXTENDV = 115, /* ZZEXTENDV */ YYSYMBOL_ZZPROJECTEXTENDV = 116, /* ZZPROJECTEXTENDV */ YYSYMBOL_ZZEXTENDNP = 117, /* ZZEXTENDNP */ YYSYMBOL_ZZPROJECTEXTENDNP = 118, /* ZZPROJECTEXTENDNP */ YYSYMBOL_ZZDBDACSCAN = 119, /* ZZDBDACSCAN */ YYSYMBOL_ZZDISTSAMP = 120, /* ZZDISTSAMP */ YYSYMBOL_ZZAPPLYPREDICATE = 121, /* ZZAPPLYPREDICATE */ YYSYMBOL_ZZFEEDPROJECT = 122, /* ZZFEEDPROJECT */ YYSYMBOL_ZZFILTER = 123, /* ZZFILTER */ YYSYMBOL_ZZCFILTER = 124, /* ZZCFILTER */ YYSYMBOL_ZZCAND = 125, /* ZZCAND */ YYSYMBOL_ZZCOR = 126, /* ZZCOR */ YYSYMBOL_ZZWITHIN = 127, /* ZZWITHIN */ YYSYMBOL_ZZWITHIN2 = 128, /* ZZWITHIN2 */ YYSYMBOL_ZZWHILEDO = 129, /* ZZWHILEDO */ YYSYMBOL_ZZFUNSEQ1 = 130, /* ZZFUNSEQ1 */ YYSYMBOL_ZZFUNSEQ2 = 131, /* ZZFUNSEQ2 */ YYSYMBOL_ZZFUNSEQ3 = 132, /* ZZFUNSEQ3 */ YYSYMBOL_ZZFUNSEQ4 = 133, /* ZZFUNSEQ4 */ YYSYMBOL_ZZFUNSEQ5 = 134, /* ZZFUNSEQ5 */ YYSYMBOL_ZZFUNSEQ6 = 135, /* ZZFUNSEQ6 */ YYSYMBOL_ZZDDISTRIBUTE4 = 136, /* ZZDDISTRIBUTE4 */ YYSYMBOL_ZZFDISTRIBUTE7 = 137, /* ZZFDISTRIBUTE7 */ YYSYMBOL_ZZDLOOP = 138, /* ZZDLOOP */ YYSYMBOL_ZZDLOOP2 = 139, /* ZZDLOOP2 */ YYSYMBOL_ZZDMAP = 140, /* ZZDMAP */ YYSYMBOL_ZZPDMAP = 141, /* ZZPDMAP */ YYSYMBOL_ZZDMAP2n = 142, /* ZZDMAP2n */ YYSYMBOL_ZZDMAP2 = 143, /* ZZDMAP2 */ YYSYMBOL_ZZDMAP3 = 144, /* ZZDMAP3 */ YYSYMBOL_ZZDMAP4 = 145, /* ZZDMAP4 */ YYSYMBOL_ZZDMAP5 = 146, /* ZZDMAP5 */ YYSYMBOL_ZZDMAP6 = 147, /* ZZDMAP6 */ YYSYMBOL_ZZDMAP7 = 148, /* ZZDMAP7 */ YYSYMBOL_ZZDMAP8 = 149, /* ZZDMAP8 */ YYSYMBOL_ZZPDMAP2 = 150, /* ZZPDMAP2 */ YYSYMBOL_ZZPDMAP3 = 151, /* ZZPDMAP3 */ YYSYMBOL_ZZPDMAP4 = 152, /* ZZPDMAP4 */ YYSYMBOL_ZZPDMAP5 = 153, /* ZZPDMAP5 */ YYSYMBOL_ZZPDMAP6 = 154, /* ZZPDMAP6 */ YYSYMBOL_ZZPDMAP7 = 155, /* ZZPDMAP7 */ YYSYMBOL_ZZPDMAP8 = 156, /* ZZPDMAP8 */ YYSYMBOL_ZZDFDISTRIBUTE4 = 157, /* ZZDFDISTRIBUTE4 */ YYSYMBOL_ZZPARTITION = 158, /* ZZPARTITION */ YYSYMBOL_ZZPARTITIONF = 159, /* ZZPARTITIONF */ YYSYMBOL_ZZAREDUCE = 160, /* ZZAREDUCE */ YYSYMBOL_ZZAREDUCE2 = 161, /* ZZAREDUCE2 */ YYSYMBOL_ZZAREDUCE2F = 162, /* ZZAREDUCE2F */ YYSYMBOL_ZZDPRODUCT = 163, /* ZZDPRODUCT */ YYSYMBOL_ZZDDISTRIBUTE = 164, /* ZZDDISTRIBUTE */ YYSYMBOL_ZZDFDISTRIBUTE = 165, /* ZZDFDISTRIBUTE */ YYSYMBOL_ZZPARTITION8LOCAL = 166, /* ZZPARTITION8LOCAL */ YYSYMBOL_ZZPARTITIONF8 = 167, /* ZZPARTITIONF8 */ YYSYMBOL_ZZLOOPJOINREL = 168, /* ZZLOOPJOINREL */ YYSYMBOL_ZZCONSTGRAPH = 169, /* ZZCONSTGRAPH */ YYSYMBOL_ZZCONSTGRAPHPOINTS = 170, /* ZZCONSTGRAPHPOINTS */ YYSYMBOL_ZZTRANSLATE = 171, /* ZZTRANSLATE */ YYSYMBOL_ZZPOSTFIXOP3_a = 172, /* ZZPOSTFIXOP3_a */ YYSYMBOL_ZZEXISTS = 173, /* ZZEXISTS */ YYSYMBOL_ZZFORALL = 174, /* ZZFORALL */ YYSYMBOL_ZZPOSTFIXOP3 = 175, /* ZZPOSTFIXOP3 */ YYSYMBOL_ZZPARAJOIN = 176, /* ZZPARAJOIN */ YYSYMBOL_ZZFCONSUME = 177, /* ZZFCONSUME */ YYSYMBOL_ZZFFEED = 178, /* ZZFFEED */ YYSYMBOL_ZZHADOOPJOIN = 179, /* ZZHADOOPJOIN */ YYSYMBOL_ZZFDISTRIBUTE = 180, /* ZZFDISTRIBUTE */ YYSYMBOL_ZZFFEED2 = 181, /* ZZFFEED2 */ YYSYMBOL_ZZFCONSUME3 = 182, /* ZZFCONSUME3 */ YYSYMBOL_ZZFFEED3 = 183, /* ZZFFEED3 */ YYSYMBOL_ZZFETCHFLOB = 184, /* ZZFETCHFLOB */ YYSYMBOL_ZZFDISTRIBUTE3 = 185, /* ZZFDISTRIBUTE3 */ YYSYMBOL_ZZMOCONSUME = 186, /* ZZMOCONSUME */ YYSYMBOL_ZZMOCONSUMEFLOB = 187, /* ZZMOCONSUMEFLOB */ YYSYMBOL_ZZMINSERTTUPLE = 188, /* ZZMINSERTTUPLE */ YYSYMBOL_ZZMINSERTTUPLESAVE = 189, /* ZZMINSERTTUPLESAVE */ YYSYMBOL_ZZMUPDATE = 190, /* ZZMUPDATE */ YYSYMBOL_ZZMUPDATESAVE = 191, /* ZZMUPDATESAVE */ YYSYMBOL_ZZMUPDATEBYID = 192, /* ZZMUPDATEBYID */ YYSYMBOL_ZZMUPDATEDIRECT2 = 193, /* ZZMUPDATEDIRECT2 */ YYSYMBOL_ZZMORANGE = 194, /* ZZMORANGE */ YYSYMBOL_ZZMOLEFTRANGE = 195, /* ZZMOLEFTRANGE */ YYSYMBOL_ZZMORIGHTRANGE = 196, /* ZZMORIGHTRANGE */ YYSYMBOL_ZZMOSHORTESTPATHD = 197, /* ZZMOSHORTESTPATHD */ YYSYMBOL_ZZMOSHORTESTPATHA = 198, /* ZZMOSHORTESTPATHA */ YYSYMBOL_ZZMQUICKSORTBY = 199, /* ZZMQUICKSORTBY */ YYSYMBOL_ZZMGSHORTESTPATHD = 200, /* ZZMGSHORTESTPATHD */ YYSYMBOL_ZZMGSHORTESTPATHA = 201, /* ZZMGSHORTESTPATHA */ YYSYMBOL_ZZMINSERTTUPLEPQPROJECTU = 202, /* ZZMINSERTTUPLEPQPROJECTU */ YYSYMBOL_ZZMINSERTTUPLEPQPROJECT = 203, /* ZZMINSERTTUPLEPQPROJECT */ YYSYMBOL_ZZMPQREORDER = 204, /* ZZMPQREORDER */ YYSYMBOL_ZZMPQREORDERUPDATE = 205, /* ZZMPQREORDERUPDATE */ YYSYMBOL_ZZCREATEMGRAPH2 = 206, /* ZZCREATEMGRAPH2 */ YYSYMBOL_ZZCREATEMGRAPH2FLOB = 207, /* ZZCREATEMGRAPH2FLOB */ YYSYMBOL_ZZMG2INSERTORIG = 208, /* ZZMG2INSERTORIG */ YYSYMBOL_ZZMEMGROUPBY = 209, /* ZZMEMGROUPBY */ YYSYMBOL_ZZMMERGEJOINPROJECT = 210, /* ZZMMERGEJOINPROJECT */ YYSYMBOL_ZZPUSE = 211, /* ZZPUSE */ YYSYMBOL_ZZPJOIN2 = 212, /* ZZPJOIN2 */ YYSYMBOL_ZZPJOIN1 = 213, /* ZZPJOIN1 */ YYSYMBOL_ZZEXTENDITEMNAMES = 214, /* ZZEXTENDITEMNAMES */ YYSYMBOL_ZZSORTARRAY = 215, /* ZZSORTARRAY */ YYSYMBOL_ZZTIE = 216, /* ZZTIE */ YYSYMBOL_ZZCUMULATE = 217, /* ZZCUMULATE */ YYSYMBOL_ZZLOOP = 218, /* ZZLOOP */ YYSYMBOL_ZZLOOPA = 219, /* ZZLOOPA */ YYSYMBOL_ZZLOOPB = 220, /* ZZLOOPB */ YYSYMBOL_ZZLOOPSWITCH = 221, /* ZZLOOPSWITCH */ YYSYMBOL_ZZLOOPSWITCHA = 222, /* ZZLOOPSWITCHA */ YYSYMBOL_ZZLOOPSWITCHB = 223, /* ZZLOOPSWITCHB */ YYSYMBOL_ZZLOOPSELECT = 224, /* ZZLOOPSELECT */ YYSYMBOL_ZZLOOPSELECTA = 225, /* ZZLOOPSELECTA */ YYSYMBOL_ZZLOOPSELECTB = 226, /* ZZLOOPSELECTB */ YYSYMBOL_ZZPARTJOIN = 227, /* ZZPARTJOIN */ YYSYMBOL_ZZPARTJOINSWITCH = 228, /* ZZPARTJOINSWITCH */ YYSYMBOL_ZZPARTJOINSELECT = 229, /* ZZPARTJOINSELECT */ YYSYMBOL_ZZEXTEND = 230, /* ZZEXTEND */ YYSYMBOL_ZZPARAJOIN2 = 231, /* ZZPARAJOIN2 */ YYSYMBOL_ZZDRELFILTER = 232, /* ZZDRELFILTER */ YYSYMBOL_ZZDRELEXTEND = 233, /* ZZDRELEXTEND */ YYSYMBOL_ZZDRELPROJECTEXTEND = 234, /* ZZDRELPROJECTEXTEND */ YYSYMBOL_ZZPROJECT = 235, /* ZZPROJECT */ YYSYMBOL_ZZLSORTBY = 236, /* ZZLSORTBY */ YYSYMBOL_ZZDRELLGROUPBY = 237, /* ZZDRELLGROUPBY */ YYSYMBOL_ZZDRELGROUPBY = 238, /* ZZDRELGROUPBY */ YYSYMBOL_ZZDRELINSERTTUPLE = 239, /* ZZDRELINSERTTUPLE */ YYSYMBOL_ZZDRELUPDATE = 240, /* ZZDRELUPDATE */ YYSYMBOL_ZZDRELUPDATEBYID = 241, /* ZZDRELUPDATEBYID */ YYSYMBOL_ZZDRELFILTERADDID = 242, /* ZZDRELFILTERADDID */ YYSYMBOL_ZZDRELFILTERDELETE = 243, /* ZZDRELFILTERDELETE */ YYSYMBOL_ZZDRELFILTERUPDATE = 244, /* ZZDRELFILTERUPDATE */ YYSYMBOL_ZZDBSCANR = 245, /* ZZDBSCANR */ YYSYMBOL_ZZDBSCANM = 246, /* ZZDBSCANM */ YYSYMBOL_ZZDBSCANF = 247, /* ZZDBSCANF */ YYSYMBOL_ZZDBSCANTF = 248, /* ZZDBSCANTF */ YYSYMBOL_ZZPFILTERS = 249, /* ZZPFILTERS */ YYSYMBOL_ZZPEXTEND = 250, /* ZZPEXTEND */ YYSYMBOL_ZZPEXTENDSTREAM = 251, /* ZZPEXTENDSTREAM */ YYSYMBOL_ZZPLOOPSEL = 252, /* ZZPLOOPSEL */ YYSYMBOL_ZZPLOOPJOIN = 253, /* ZZPLOOPJOIN */ YYSYMBOL_ZZPAGGREGATE = 254, /* ZZPAGGREGATE */ YYSYMBOL_ZZPAGGREGATEB = 255, /* ZZPAGGREGATEB */ YYSYMBOL_ZZPSORTBY = 256, /* ZZPSORTBY */ YYSYMBOL_ZZPOSTFIXOP4_a = 257, /* ZZPOSTFIXOP4_a */ YYSYMBOL_ZZPOSTFIXOP6_a = 258, /* ZZPOSTFIXOP6_a */ YYSYMBOL_ZZAGGREGATES = 259, /* ZZAGGREGATES */ YYSYMBOL_ZZUSE = 260, /* ZZUSE */ YYSYMBOL_ZZUSE2 = 261, /* ZZUSE2 */ YYSYMBOL_ZZTS = 262, /* ZZTS */ YYSYMBOL_ZZAS = 263, /* ZZAS */ YYSYMBOL_ZZstreamfun = 264, /* ZZstreamfun */ YYSYMBOL_ZZprog = 265, /* ZZprog */ YYSYMBOL_ZZSYNC = 266, /* ZZSYNC */ YYSYMBOL_ZZSideEffect = 267, /* ZZSideEffect */ YYSYMBOL_ZZTRANSLATE_GROOM = 268, /* ZZTRANSLATE_GROOM */ YYSYMBOL_ZZOLEFTRANGE = 269, /* ZZOLEFTRANGE */ YYSYMBOL_ZZORIGHTRANGE = 270, /* ZZORIGHTRANGE */ YYSYMBOL_ZZORANGE = 271, /* ZZORANGE */ YYSYMBOL_ZZOSHORTESTPATHD = 272, /* ZZOSHORTESTPATHD */ YYSYMBOL_ZZOSHORTESTPATHA = 273, /* ZZOSHORTESTPATHA */ YYSYMBOL_ZZREAD2 = 274, /* ZZREAD2 */ YYSYMBOL_ZZREAD3 = 275, /* ZZREAD3 */ YYSYMBOL_ZZRDERIVE = 276, /* ZZRDERIVE */ YYSYMBOL_ZZREAD3_1 = 277, /* ZZREAD3_1 */ YYSYMBOL_ZZREAD3_2 = 278, /* ZZREAD3_2 */ YYSYMBOL_ZZFILTERX = 279, /* ZZFILTERX */ YYSYMBOL_ZZINSERTTUPLE = 280, /* ZZINSERTTUPLE */ YYSYMBOL_ZZINSERTTUPLESAVE = 281, /* ZZINSERTTUPLESAVE */ YYSYMBOL_ZZUPDATESEARCH = 282, /* ZZUPDATESEARCH */ YYSYMBOL_ZZUPDATEDIRECT = 283, /* ZZUPDATEDIRECT */ YYSYMBOL_ZZUPDATEDIRECT2 = 284, /* ZZUPDATEDIRECT2 */ YYSYMBOL_ZZUPDATEBYID2 = 285, /* ZZUPDATEBYID2 */ YYSYMBOL_ZZUPDATESEARCHSAVE = 286, /* ZZUPDATESEARCHSAVE */ YYSYMBOL_ZZUPDATEDIRECTSAVE = 287, /* ZZUPDATEDIRECTSAVE */ YYSYMBOL_ZZUPDATEBYID = 288, /* ZZUPDATEBYID */ YYSYMBOL_ZZFILTERINSERT = 289, /* ZZFILTERINSERT */ YYSYMBOL_ZZCPROJECTEXTEND = 290, /* ZZCPROJECTEXTEND */ YYSYMBOL_ZZMAP = 291, /* ZZMAP */ YYSYMBOL_ZZMAP2 = 292, /* ZZMAP2 */ YYSYMBOL_ZZMATCHGRID = 293, /* ZZMATCHGRID */ YYSYMBOL_ZZREPLACEELEM = 294, /* ZZREPLACEELEM */ YYSYMBOL_ZZGROUPBY2 = 295, /* ZZGROUPBY2 */ YYSYMBOL_ZZSPREAD = 296, /* ZZSPREAD */ YYSYMBOL_ZZCOLLECT = 297, /* ZZCOLLECT */ YYSYMBOL_ZZHADOOPMAP = 298, /* ZZHADOOPMAP */ YYSYMBOL_ZZHADOOPREDUCE = 299, /* ZZHADOOPREDUCE */ YYSYMBOL_ZZHADOOPREDUCE2 = 300, /* ZZHADOOPREDUCE2 */ YYSYMBOL_ZZPFFEED = 301, /* ZZPFFEED */ YYSYMBOL_ZZPFFEED2 = 302, /* ZZPFFEED2 */ YYSYMBOL_ZZPFFEED3 = 303, /* ZZPFFEED3 */ YYSYMBOL_ZZHADOOPMAP2 = 304, /* ZZHADOOPMAP2 */ YYSYMBOL_ZZREPORTPATTERN = 305, /* ZZREPORTPATTERN */ YYSYMBOL_ZZGPATTERN = 306, /* ZZGPATTERN */ YYSYMBOL_ZZCROSSPATTERN = 307, /* ZZCROSSPATTERN */ YYSYMBOL_ZZMTHREADEDMERGESORT = 308, /* ZZMTHREADEDMERGESORT */ YYSYMBOL_ZZMTHREADEDFILTER = 309, /* ZZMTHREADEDFILTER */ YYSYMBOL_ZZCANCEL = 310, /* ZZCANCEL */ YYSYMBOL_ZZKRDUP = 311, /* ZZKRDUP */ YYSYMBOL_ZZPROJECTEXTEND = 312, /* ZZPROJECTEXTEND */ YYSYMBOL_ZZEXTENDSTREAM = 313, /* ZZEXTENDSTREAM */ YYSYMBOL_ZZPROJECTEXTENDSTREAM = 314, /* ZZPROJECTEXTENDSTREAM */ YYSYMBOL_ZZGROUPBY = 315, /* ZZGROUPBY */ YYSYMBOL_ZZSLIDINGWINDOW = 316, /* ZZSLIDINGWINDOW */ YYSYMBOL_ZZSORTBYOLD = 317, /* ZZSORTBYOLD */ YYSYMBOL_ZZPOSTFIXOP2_a_autobuffer = 318, /* ZZPOSTFIXOP2_a_autobuffer */ YYSYMBOL_ZZLOOPJOIN = 319, /* ZZLOOPJOIN */ YYSYMBOL_ZZLOOPSEL = 320, /* ZZLOOPSEL */ YYSYMBOL_ZZAGGREGATE = 321, /* ZZAGGREGATE */ YYSYMBOL_ZZAGGREGATEB = 322, /* ZZAGGREGATEB */ YYSYMBOL_ZZSYMMJOIN = 323, /* ZZSYMMJOIN */ YYSYMBOL_ZZSYMMOUTERJOIN = 324, /* ZZSYMMOUTERJOIN */ YYSYMBOL_ZZSYMMPRODUCTEXTEND = 325, /* ZZSYMMPRODUCTEXTEND */ YYSYMBOL_ZZKSMALLEST = 326, /* ZZKSMALLEST */ YYSYMBOL_ZZKBIGGEST = 327, /* ZZKBIGGEST */ YYSYMBOL_ZZEXTEND_AGGR = 328, /* ZZEXTEND_AGGR */ YYSYMBOL_ZZEXTEND_LAST = 329, /* ZZEXTEND_LAST */ YYSYMBOL_ZZEXTEND_NEXT = 330, /* ZZEXTEND_NEXT */ YYSYMBOL_ZZREPLACEATTR = 331, /* ZZREPLACEATTR */ YYSYMBOL_ZZPFILTER = 332, /* ZZPFILTER */ YYSYMBOL_ZZEXTENDX = 333, /* ZZEXTENDX */ YYSYMBOL_ZZOBOJOIND = 334, /* ZZOBOJOIND */ YYSYMBOL_ZZISORDEREDBY = 335, /* ZZISORDEREDBY */ YYSYMBOL_ZZADDMODCOUNTER = 336, /* ZZADDMODCOUNTER */ YYSYMBOL_ZZUSEHISTOGRAM = 337, /* ZZUSEHISTOGRAM */ YYSYMBOL_ZZUSEHISTOGRAM2 = 338, /* ZZUSEHISTOGRAM2 */ YYSYMBOL_ZZDMAPS = 339, /* ZZDMAPS */ YYSYMBOL_ZZDMAPS2 = 340, /* ZZDMAPS2 */ YYSYMBOL_ZZDMAPS3 = 341, /* ZZDMAPS3 */ YYSYMBOL_ZZDMAPS4 = 342, /* ZZDMAPS4 */ YYSYMBOL_ZZDMAPS5 = 343, /* ZZDMAPS5 */ YYSYMBOL_ZZDPRODUCTS = 344, /* ZZDPRODUCTS */ YYSYMBOL_ZZPARTITIONFS = 345, /* ZZPARTITIONFS */ YYSYMBOL_ZZDBSCAN = 346, /* ZZDBSCAN */ YYSYMBOL_ZZREGISTERFORSTREAM = 347, /* ZZREGISTERFORSTREAM */ YYSYMBOL_ZZNEST2 = 348, /* ZZNEST2 */ YYSYMBOL_ZZPREDCOUNTS = 349, /* ZZPREDCOUNTS */ YYSYMBOL_ZZSTPATTERN = 350, /* ZZSTPATTERN */ YYSYMBOL_ZZSTPATTERN2 = 351, /* ZZSTPATTERN2 */ YYSYMBOL_ZZSTPATTERNEX = 352, /* ZZSTPATTERNEX */ YYSYMBOL_ZZSTPATTERNEX2 = 353, /* ZZSTPATTERNEX2 */ YYSYMBOL_ZZSTPATTERNEXTEND = 354, /* ZZSTPATTERNEXTEND */ YYSYMBOL_ZZSTPATTERNEXTEND2 = 355, /* ZZSTPATTERNEXTEND2 */ YYSYMBOL_ZZSTPATTERNEXEXTEND = 356, /* ZZSTPATTERNEXEXTEND */ YYSYMBOL_ZZSTPATTERNEXEXTEND2 = 357, /* ZZSTPATTERNEXEXTEND2 */ YYSYMBOL_ZZSTPATTERNEXTENDSTREAM = 358, /* ZZSTPATTERNEXTENDSTREAM */ YYSYMBOL_ZZSTPATTERNEXTENDSTREAM2 = 359, /* ZZSTPATTERNEXTENDSTREAM2 */ YYSYMBOL_ZZSTPATTERNEXEXTENDSTREAM = 360, /* ZZSTPATTERNEXEXTENDSTREAM */ YYSYMBOL_ZZSTPATTERNEXEXTENDSTREAM2 = 361, /* ZZSTPATTERNEXEXTENDSTREAM2 */ YYSYMBOL_ZZCOMPUTECLOSURE = 362, /* ZZCOMPUTECLOSURE */ YYSYMBOL_ZZOCONSUME = 363, /* ZZOCONSUME */ YYSYMBOL_ZZREMOVE = 364, /* ZZREMOVE */ YYSYMBOL_ZZREDUCE = 365, /* ZZREDUCE */ YYSYMBOL_ZZRENAMEATTR = 366, /* ZZRENAMEATTR */ YYSYMBOL_ZZTSMOTIFBFFUN = 367, /* ZZTSMOTIFBFFUN */ YYSYMBOL_ZZTSDISTANCEFUN = 368, /* ZZTSDISTANCEFUN */ YYSYMBOL_369_ = 369, /* ';' */ YYSYMBOL_370_ = 370, /* '{' */ YYSYMBOL_371_ = 371, /* '}' */ YYSYMBOL_372_ = 372, /* '|' */ YYSYMBOL_373_ = 373, /* '(' */ YYSYMBOL_374_ = 374, /* ')' */ YYSYMBOL_375_ = 375, /* '[' */ YYSYMBOL_376_ = 376, /* ']' */ YYSYMBOL_377_ = 377, /* ',' */ YYSYMBOL_378_ = 378, /* '.' */ YYSYMBOL_YYACCEPT = 379, /* $accept */ YYSYMBOL_commands = 380, /* commands */ YYSYMBOL_command = 381, /* command */ YYSYMBOL_whilecommand = 382, /* whilecommand */ YYSYMBOL_commandblock = 383, /* commandblock */ YYSYMBOL_commandblock1 = 384, /* commandblock1 */ YYSYMBOL_commandblock2 = 385, /* commandblock2 */ YYSYMBOL_commandseq = 386, /* commandseq */ YYSYMBOL_conditionalcommand = 387, /* conditionalcommand */ YYSYMBOL_basic = 388, /* basic */ YYSYMBOL_389_1 = 389, /* $@1 */ YYSYMBOL_390_2 = 390, /* $@2 */ YYSYMBOL_391_3 = 391, /* $@3 */ YYSYMBOL_392_4 = 392, /* $@4 */ YYSYMBOL_393_5 = 393, /* $@5 */ YYSYMBOL_394_6 = 394, /* $@6 */ YYSYMBOL_395_7 = 395, /* $@7 */ YYSYMBOL_396_8 = 396, /* $@8 */ YYSYMBOL_transaction = 397, /* transaction */ YYSYMBOL_database = 398, /* database */ YYSYMBOL_filename = 399, /* filename */ YYSYMBOL_inquiries = 400, /* inquiries */ YYSYMBOL_set = 401, /* set */ YYSYMBOL_typeexpr = 402, /* typeexpr */ YYSYMBOL_typeexpr2 = 403, /* typeexpr2 */ YYSYMBOL_constructor = 404, /* constructor */ YYSYMBOL_typeexprs = 405, /* typeexprs */ YYSYMBOL_namedfunction = 406, /* namedfunction */ YYSYMBOL_function = 407, /* function */ YYSYMBOL_arg = 408, /* arg */ YYSYMBOL_args = 409, /* args */ YYSYMBOL_attribute = 410, /* attribute */ YYSYMBOL_attribute2 = 411, /* attribute2 */ YYSYMBOL_constant = 412, /* constant */ YYSYMBOL_nestedlist = 413, /* nestedlist */ YYSYMBOL_rest = 414, /* rest */ YYSYMBOL_atom = 415, /* atom */ YYSYMBOL_list = 416, /* list */ YYSYMBOL_elems = 417, /* elems */ YYSYMBOL_elem = 418, /* elem */ YYSYMBOL_naming = 419, /* naming */ YYSYMBOL_valueexprlistcomma = 420, /* valueexprlistcomma */ YYSYMBOL_simplearguments = 421, /* simplearguments */ YYSYMBOL_valueexpr = 422, /* valueexpr */ YYSYMBOL_GDIJKSTRA_fun = 423, /* GDIJKSTRA_fun */ YYSYMBOL_424_9 = 424, /* $@9 */ YYSYMBOL_MINPATHCOST2_fun = 425, /* MINPATHCOST2_fun */ YYSYMBOL_426_10 = 426, /* $@10 */ YYSYMBOL_GBIDIJKSTRA_fun = 427, /* GBIDIJKSTRA_fun */ YYSYMBOL_428_11 = 428, /* $@11 */ YYSYMBOL_MTMINPATHCOSTS2_fun = 429, /* MTMINPATHCOSTS2_fun */ YYSYMBOL_430_12 = 430, /* $@12 */ YYSYMBOL_D_SEND_SHUFFLE_fun = 431, /* D_SEND_SHUFFLE_fun */ YYSYMBOL_432_13 = 432, /* $@13 */ YYSYMBOL_DSHUFFLE_fun = 433, /* DSHUFFLE_fun */ YYSYMBOL_434_14 = 434, /* $@14 */ YYSYMBOL_DSHUFFLE2_fun = 435, /* DSHUFFLE2_fun */ YYSYMBOL_436_15 = 436, /* $@15 */ YYSYMBOL_DSHUFFLE1_fun = 437, /* DSHUFFLE1_fun */ YYSYMBOL_438_16 = 438, /* $@16 */ YYSYMBOL_DLOOP_OLD_fun = 439, /* DLOOP_OLD_fun */ YYSYMBOL_440_17 = 440, /* $@17 */ YYSYMBOL_DLOOPA_OLD_fun = 441, /* DLOOPA_OLD_fun */ YYSYMBOL_442_18 = 442, /* $@18 */ YYSYMBOL_DTIE_fun = 443, /* DTIE_fun */ YYSYMBOL_444_19 = 444, /* $@19 */ YYSYMBOL_PARTITIONDMAP_fun = 445, /* PARTITIONDMAP_fun */ YYSYMBOL_446_20 = 446, /* $@20 */ YYSYMBOL_DMAPPDMAP_fun = 447, /* DMAPPDMAP_fun */ YYSYMBOL_448_21 = 448, /* $@21 */ YYSYMBOL_FDISTRIBUTE2TES_fun = 449, /* FDISTRIBUTE2TES_fun */ YYSYMBOL_450_22 = 450, /* $@22 */ YYSYMBOL_DISTRIBUTE2TES_fun = 451, /* DISTRIBUTE2TES_fun */ YYSYMBOL_452_23 = 452, /* $@23 */ YYSYMBOL_OPTICSF_fun = 453, /* OPTICSF_fun */ YYSYMBOL_454_24 = 454, /* $@24 */ YYSYMBOL_OPTICSTF_fun = 455, /* OPTICSTF_fun */ YYSYMBOL_456_25 = 456, /* $@25 */ YYSYMBOL_FILTERV_fun = 457, /* FILTERV_fun */ YYSYMBOL_458_26 = 458, /* $@26 */ YYSYMBOL_FILTERNP_fun = 459, /* FILTERNP_fun */ YYSYMBOL_460_27 = 460, /* $@27 */ YYSYMBOL_EXTENDV_fun = 461, /* EXTENDV_fun */ YYSYMBOL_EXTENDV_fun_1 = 462, /* EXTENDV_fun_1 */ YYSYMBOL_463_28 = 463, /* $@28 */ YYSYMBOL_EXTENDV_funlist = 464, /* EXTENDV_funlist */ YYSYMBOL_EXTENDV_funlist_1 = 465, /* EXTENDV_funlist_1 */ YYSYMBOL_PROJECTEXTENDV_fun = 466, /* PROJECTEXTENDV_fun */ YYSYMBOL_PROJECTEXTENDV_fun_1 = 467, /* PROJECTEXTENDV_fun_1 */ YYSYMBOL_468_29 = 468, /* $@29 */ YYSYMBOL_PROJECTEXTENDV_funlist = 469, /* PROJECTEXTENDV_funlist */ YYSYMBOL_PROJECTEXTENDV_funlist_1 = 470, /* PROJECTEXTENDV_funlist_1 */ YYSYMBOL_EXTENDNP_fun = 471, /* EXTENDNP_fun */ YYSYMBOL_EXTENDNP_fun_1 = 472, /* EXTENDNP_fun_1 */ YYSYMBOL_473_30 = 473, /* $@30 */ YYSYMBOL_EXTENDNP_funlist = 474, /* EXTENDNP_funlist */ YYSYMBOL_EXTENDNP_funlist_1 = 475, /* EXTENDNP_funlist_1 */ YYSYMBOL_PROJECTEXTENDNP_fun = 476, /* PROJECTEXTENDNP_fun */ YYSYMBOL_PROJECTEXTENDNP_fun_1 = 477, /* PROJECTEXTENDNP_fun_1 */ YYSYMBOL_478_31 = 478, /* $@31 */ YYSYMBOL_PROJECTEXTENDNP_funlist = 479, /* PROJECTEXTENDNP_funlist */ YYSYMBOL_PROJECTEXTENDNP_funlist_1 = 480, /* PROJECTEXTENDNP_funlist_1 */ YYSYMBOL_APPLYPREDICATE_fun = 481, /* APPLYPREDICATE_fun */ YYSYMBOL_482_32 = 482, /* $@32 */ YYSYMBOL_FILTER_fun = 483, /* FILTER_fun */ YYSYMBOL_484_33 = 484, /* $@33 */ YYSYMBOL_CFILTER_fun = 485, /* CFILTER_fun */ YYSYMBOL_486_34 = 486, /* $@34 */ YYSYMBOL_CAND_fun = 487, /* CAND_fun */ YYSYMBOL_488_35 = 488, /* $@35 */ YYSYMBOL_COR_fun = 489, /* COR_fun */ YYSYMBOL_490_36 = 490, /* $@36 */ YYSYMBOL_WITHIN_fun = 491, /* WITHIN_fun */ YYSYMBOL_492_37 = 492, /* $@37 */ YYSYMBOL_WITHIN2_fun = 493, /* WITHIN2_fun */ YYSYMBOL_494_38 = 494, /* $@38 */ YYSYMBOL_WHILEDO_fun = 495, /* WHILEDO_fun */ YYSYMBOL_496_39 = 496, /* $@39 */ YYSYMBOL_FUNSEQ1_fun = 497, /* FUNSEQ1_fun */ YYSYMBOL_498_40 = 498, /* $@40 */ YYSYMBOL_FUNSEQ2_fun = 499, /* FUNSEQ2_fun */ YYSYMBOL_500_41 = 500, /* $@41 */ YYSYMBOL_FUNSEQ3_fun = 501, /* FUNSEQ3_fun */ YYSYMBOL_502_42 = 502, /* $@42 */ YYSYMBOL_FUNSEQ4_fun = 503, /* FUNSEQ4_fun */ YYSYMBOL_504_43 = 504, /* $@43 */ YYSYMBOL_FUNSEQ5_fun = 505, /* FUNSEQ5_fun */ YYSYMBOL_506_44 = 506, /* $@44 */ YYSYMBOL_FUNSEQ6_fun = 507, /* FUNSEQ6_fun */ YYSYMBOL_508_45 = 508, /* $@45 */ YYSYMBOL_DDISTRIBUTE4_fun = 509, /* DDISTRIBUTE4_fun */ YYSYMBOL_510_46 = 510, /* $@46 */ YYSYMBOL_FDISTRIBUTE7_fun = 511, /* FDISTRIBUTE7_fun */ YYSYMBOL_512_47 = 512, /* $@47 */ YYSYMBOL_DLOOP_fun = 513, /* DLOOP_fun */ YYSYMBOL_514_48 = 514, /* $@48 */ YYSYMBOL_DLOOP2_fun = 515, /* DLOOP2_fun */ YYSYMBOL_516_49 = 516, /* $@49 */ YYSYMBOL_DMAP_fun = 517, /* DMAP_fun */ YYSYMBOL_518_50 = 518, /* $@50 */ YYSYMBOL_PDMAP_fun = 519, /* PDMAP_fun */ YYSYMBOL_520_51 = 520, /* $@51 */ YYSYMBOL_DMAP2n_fun = 521, /* DMAP2n_fun */ YYSYMBOL_522_52 = 522, /* $@52 */ YYSYMBOL_DMAP2_fun = 523, /* DMAP2_fun */ YYSYMBOL_524_53 = 524, /* $@53 */ YYSYMBOL_DMAP3_fun = 525, /* DMAP3_fun */ YYSYMBOL_526_54 = 526, /* $@54 */ YYSYMBOL_DMAP4_fun = 527, /* DMAP4_fun */ YYSYMBOL_528_55 = 528, /* $@55 */ YYSYMBOL_DMAP5_fun = 529, /* DMAP5_fun */ YYSYMBOL_530_56 = 530, /* $@56 */ YYSYMBOL_DMAP6_fun = 531, /* DMAP6_fun */ YYSYMBOL_532_57 = 532, /* $@57 */ YYSYMBOL_DMAP7_fun = 533, /* DMAP7_fun */ YYSYMBOL_534_58 = 534, /* $@58 */ YYSYMBOL_DMAP8_fun = 535, /* DMAP8_fun */ YYSYMBOL_536_59 = 536, /* $@59 */ YYSYMBOL_PDMAP2_fun = 537, /* PDMAP2_fun */ YYSYMBOL_538_60 = 538, /* $@60 */ YYSYMBOL_PDMAP3_fun = 539, /* PDMAP3_fun */ YYSYMBOL_540_61 = 540, /* $@61 */ YYSYMBOL_PDMAP4_fun = 541, /* PDMAP4_fun */ YYSYMBOL_542_62 = 542, /* $@62 */ YYSYMBOL_PDMAP5_fun = 543, /* PDMAP5_fun */ YYSYMBOL_544_63 = 544, /* $@63 */ YYSYMBOL_PDMAP6_fun = 545, /* PDMAP6_fun */ YYSYMBOL_546_64 = 546, /* $@64 */ YYSYMBOL_PDMAP7_fun = 547, /* PDMAP7_fun */ YYSYMBOL_548_65 = 548, /* $@65 */ YYSYMBOL_PDMAP8_fun = 549, /* PDMAP8_fun */ YYSYMBOL_550_66 = 550, /* $@66 */ YYSYMBOL_DFDISTRIBUTE4_fun = 551, /* DFDISTRIBUTE4_fun */ YYSYMBOL_552_67 = 552, /* $@67 */ YYSYMBOL_PARTITION_fun = 553, /* PARTITION_fun */ YYSYMBOL_554_68 = 554, /* $@68 */ YYSYMBOL_PARTITIONF_fun = 555, /* PARTITIONF_fun */ YYSYMBOL_556_69 = 556, /* $@69 */ YYSYMBOL_AREDUCE_fun = 557, /* AREDUCE_fun */ YYSYMBOL_558_70 = 558, /* $@70 */ YYSYMBOL_AREDUCE2_fun = 559, /* AREDUCE2_fun */ YYSYMBOL_560_71 = 560, /* $@71 */ YYSYMBOL_AREDUCE2F_fun = 561, /* AREDUCE2F_fun */ YYSYMBOL_562_72 = 562, /* $@72 */ YYSYMBOL_DPRODUCT_fun = 563, /* DPRODUCT_fun */ YYSYMBOL_564_73 = 564, /* $@73 */ YYSYMBOL_DDISTRIBUTE_fun = 565, /* DDISTRIBUTE_fun */ YYSYMBOL_566_74 = 566, /* $@74 */ YYSYMBOL_DFDISTRIBUTE_fun = 567, /* DFDISTRIBUTE_fun */ YYSYMBOL_568_75 = 568, /* $@75 */ YYSYMBOL_PARTITION8LOCAL_fun = 569, /* PARTITION8LOCAL_fun */ YYSYMBOL_570_76 = 570, /* $@76 */ YYSYMBOL_PARTITIONF8_fun = 571, /* PARTITIONF8_fun */ YYSYMBOL_572_77 = 572, /* $@77 */ YYSYMBOL_LOOPJOINREL_fun = 573, /* LOOPJOINREL_fun */ YYSYMBOL_574_78 = 574, /* $@78 */ YYSYMBOL_CONSTGRAPH_fun = 575, /* CONSTGRAPH_fun */ YYSYMBOL_576_79 = 576, /* $@79 */ YYSYMBOL_CONSTGRAPHPOINTS_fun = 577, /* CONSTGRAPHPOINTS_fun */ YYSYMBOL_578_80 = 578, /* $@80 */ YYSYMBOL_EXISTS_fun = 579, /* EXISTS_fun */ YYSYMBOL_580_81 = 580, /* $@81 */ YYSYMBOL_FORALL_fun = 581, /* FORALL_fun */ YYSYMBOL_582_82 = 582, /* $@82 */ YYSYMBOL_PARAJOIN_fun = 583, /* PARAJOIN_fun */ YYSYMBOL_584_83 = 584, /* $@83 */ YYSYMBOL_HADOOPJOIN_fun = 585, /* HADOOPJOIN_fun */ YYSYMBOL_586_84 = 586, /* $@84 */ YYSYMBOL_MUPDATE_fun = 587, /* MUPDATE_fun */ YYSYMBOL_MUPDATE_fun_1 = 588, /* MUPDATE_fun_1 */ YYSYMBOL_589_85 = 589, /* $@85 */ YYSYMBOL_MUPDATE_funlist = 590, /* MUPDATE_funlist */ YYSYMBOL_MUPDATE_funlist_1 = 591, /* MUPDATE_funlist_1 */ YYSYMBOL_MUPDATESAVE_fun = 592, /* MUPDATESAVE_fun */ YYSYMBOL_MUPDATESAVE_fun_1 = 593, /* MUPDATESAVE_fun_1 */ YYSYMBOL_594_86 = 594, /* $@86 */ YYSYMBOL_MUPDATESAVE_funlist = 595, /* MUPDATESAVE_funlist */ YYSYMBOL_MUPDATESAVE_funlist_1 = 596, /* MUPDATESAVE_funlist_1 */ YYSYMBOL_MUPDATEBYID_fun = 597, /* MUPDATEBYID_fun */ YYSYMBOL_MUPDATEBYID_fun_1 = 598, /* MUPDATEBYID_fun_1 */ YYSYMBOL_599_87 = 599, /* $@87 */ YYSYMBOL_MUPDATEBYID_funlist = 600, /* MUPDATEBYID_funlist */ YYSYMBOL_MUPDATEBYID_funlist_1 = 601, /* MUPDATEBYID_funlist_1 */ YYSYMBOL_MUPDATEDIRECT2_fun = 602, /* MUPDATEDIRECT2_fun */ YYSYMBOL_MUPDATEDIRECT2_fun_1 = 603, /* MUPDATEDIRECT2_fun_1 */ YYSYMBOL_604_88 = 604, /* $@88 */ YYSYMBOL_MUPDATEDIRECT2_funlist = 605, /* MUPDATEDIRECT2_funlist */ YYSYMBOL_MUPDATEDIRECT2_funlist_1 = 606, /* MUPDATEDIRECT2_funlist_1 */ YYSYMBOL_MOSHORTESTPATHD_fun = 607, /* MOSHORTESTPATHD_fun */ YYSYMBOL_608_89 = 608, /* $@89 */ YYSYMBOL_MOSHORTESTPATHA_fun = 609, /* MOSHORTESTPATHA_fun */ YYSYMBOL_610_90 = 610, /* $@90 */ YYSYMBOL_MGSHORTESTPATHD_fun = 611, /* MGSHORTESTPATHD_fun */ YYSYMBOL_612_91 = 612, /* $@91 */ YYSYMBOL_MGSHORTESTPATHA_fun = 613, /* MGSHORTESTPATHA_fun */ YYSYMBOL_614_92 = 614, /* $@92 */ YYSYMBOL_MPQREORDER_fun = 615, /* MPQREORDER_fun */ YYSYMBOL_616_93 = 616, /* $@93 */ YYSYMBOL_MPQREORDERUPDATE_fun = 617, /* MPQREORDERUPDATE_fun */ YYSYMBOL_618_94 = 618, /* $@94 */ YYSYMBOL_CREATEMGRAPH2_fun = 619, /* CREATEMGRAPH2_fun */ YYSYMBOL_620_95 = 620, /* $@95 */ YYSYMBOL_CREATEMGRAPH2FLOB_fun = 621, /* CREATEMGRAPH2FLOB_fun */ YYSYMBOL_622_96 = 622, /* $@96 */ YYSYMBOL_MG2INSERTORIG_fun = 623, /* MG2INSERTORIG_fun */ YYSYMBOL_624_97 = 624, /* $@97 */ YYSYMBOL_MEMGROUPBY_fun = 625, /* MEMGROUPBY_fun */ YYSYMBOL_MEMGROUPBY_fun_1 = 626, /* MEMGROUPBY_fun_1 */ YYSYMBOL_627_98 = 627, /* $@98 */ YYSYMBOL_MEMGROUPBY_funlist = 628, /* MEMGROUPBY_funlist */ YYSYMBOL_MEMGROUPBY_funlist_1 = 629, /* MEMGROUPBY_funlist_1 */ YYSYMBOL_PUSE_fun = 630, /* PUSE_fun */ YYSYMBOL_631_99 = 631, /* $@99 */ YYSYMBOL_PJOIN2_fun = 632, /* PJOIN2_fun */ YYSYMBOL_PJOIN2_fun_1 = 633, /* PJOIN2_fun_1 */ YYSYMBOL_634_100 = 634, /* $@100 */ YYSYMBOL_PJOIN2_funlist = 635, /* PJOIN2_funlist */ YYSYMBOL_PJOIN2_funlist_1 = 636, /* PJOIN2_funlist_1 */ YYSYMBOL_PJOIN1_fun = 637, /* PJOIN1_fun */ YYSYMBOL_PJOIN1_fun_1 = 638, /* PJOIN1_fun_1 */ YYSYMBOL_639_101 = 639, /* $@101 */ YYSYMBOL_PJOIN1_funlist = 640, /* PJOIN1_funlist */ YYSYMBOL_PJOIN1_funlist_1 = 641, /* PJOIN1_funlist_1 */ YYSYMBOL_SORTARRAY_fun = 642, /* SORTARRAY_fun */ YYSYMBOL_643_102 = 643, /* $@102 */ YYSYMBOL_TIE_fun = 644, /* TIE_fun */ YYSYMBOL_645_103 = 645, /* $@103 */ YYSYMBOL_CUMULATE_fun = 646, /* CUMULATE_fun */ YYSYMBOL_647_104 = 647, /* $@104 */ YYSYMBOL_LOOP_fun = 648, /* LOOP_fun */ YYSYMBOL_649_105 = 649, /* $@105 */ YYSYMBOL_LOOPA_fun = 650, /* LOOPA_fun */ YYSYMBOL_651_106 = 651, /* $@106 */ YYSYMBOL_LOOPB_fun = 652, /* LOOPB_fun */ YYSYMBOL_653_107 = 653, /* $@107 */ YYSYMBOL_LOOPSWITCH_fun = 654, /* LOOPSWITCH_fun */ YYSYMBOL_LOOPSWITCH_fun_1 = 655, /* LOOPSWITCH_fun_1 */ YYSYMBOL_656_108 = 656, /* $@108 */ YYSYMBOL_LOOPSWITCH_funlist = 657, /* LOOPSWITCH_funlist */ YYSYMBOL_LOOPSWITCH_funlist_1 = 658, /* LOOPSWITCH_funlist_1 */ YYSYMBOL_LOOPSWITCHA_fun = 659, /* LOOPSWITCHA_fun */ YYSYMBOL_LOOPSWITCHA_fun_1 = 660, /* LOOPSWITCHA_fun_1 */ YYSYMBOL_661_109 = 661, /* $@109 */ YYSYMBOL_LOOPSWITCHA_funlist = 662, /* LOOPSWITCHA_funlist */ YYSYMBOL_LOOPSWITCHA_funlist_1 = 663, /* LOOPSWITCHA_funlist_1 */ YYSYMBOL_LOOPSWITCHB_fun = 664, /* LOOPSWITCHB_fun */ YYSYMBOL_LOOPSWITCHB_fun_1 = 665, /* LOOPSWITCHB_fun_1 */ YYSYMBOL_666_110 = 666, /* $@110 */ YYSYMBOL_LOOPSWITCHB_funlist = 667, /* LOOPSWITCHB_funlist */ YYSYMBOL_LOOPSWITCHB_funlist_1 = 668, /* LOOPSWITCHB_funlist_1 */ YYSYMBOL_LOOPSELECT_fun = 669, /* LOOPSELECT_fun */ YYSYMBOL_LOOPSELECT_fun_1 = 670, /* LOOPSELECT_fun_1 */ YYSYMBOL_671_111 = 671, /* $@111 */ YYSYMBOL_LOOPSELECT_funlist = 672, /* LOOPSELECT_funlist */ YYSYMBOL_LOOPSELECT_funlist_1 = 673, /* LOOPSELECT_funlist_1 */ YYSYMBOL_LOOPSELECTA_fun = 674, /* LOOPSELECTA_fun */ YYSYMBOL_LOOPSELECTA_fun_1 = 675, /* LOOPSELECTA_fun_1 */ YYSYMBOL_676_112 = 676, /* $@112 */ YYSYMBOL_LOOPSELECTA_funlist = 677, /* LOOPSELECTA_funlist */ YYSYMBOL_LOOPSELECTA_funlist_1 = 678, /* LOOPSELECTA_funlist_1 */ YYSYMBOL_LOOPSELECTB_fun = 679, /* LOOPSELECTB_fun */ YYSYMBOL_LOOPSELECTB_fun_1 = 680, /* LOOPSELECTB_fun_1 */ YYSYMBOL_681_113 = 681, /* $@113 */ YYSYMBOL_LOOPSELECTB_funlist = 682, /* LOOPSELECTB_funlist */ YYSYMBOL_LOOPSELECTB_funlist_1 = 683, /* LOOPSELECTB_funlist_1 */ YYSYMBOL_PARTJOIN_fun = 684, /* PARTJOIN_fun */ YYSYMBOL_685_114 = 685, /* $@114 */ YYSYMBOL_PARTJOINSWITCH_fun = 686, /* PARTJOINSWITCH_fun */ YYSYMBOL_PARTJOINSWITCH_fun_1 = 687, /* PARTJOINSWITCH_fun_1 */ YYSYMBOL_688_115 = 688, /* $@115 */ YYSYMBOL_PARTJOINSWITCH_funlist = 689, /* PARTJOINSWITCH_funlist */ YYSYMBOL_PARTJOINSWITCH_funlist_1 = 690, /* PARTJOINSWITCH_funlist_1 */ YYSYMBOL_PARTJOINSELECT_fun = 691, /* PARTJOINSELECT_fun */ YYSYMBOL_PARTJOINSELECT_fun_1 = 692, /* PARTJOINSELECT_fun_1 */ YYSYMBOL_693_116 = 693, /* $@116 */ YYSYMBOL_PARTJOINSELECT_funlist = 694, /* PARTJOINSELECT_funlist */ YYSYMBOL_PARTJOINSELECT_funlist_1 = 695, /* PARTJOINSELECT_funlist_1 */ YYSYMBOL_EXTEND_fun = 696, /* EXTEND_fun */ YYSYMBOL_EXTEND_fun_1 = 697, /* EXTEND_fun_1 */ YYSYMBOL_698_117 = 698, /* $@117 */ YYSYMBOL_EXTEND_funlist = 699, /* EXTEND_funlist */ YYSYMBOL_EXTEND_funlist_1 = 700, /* EXTEND_funlist_1 */ YYSYMBOL_PARAJOIN2_fun = 701, /* PARAJOIN2_fun */ YYSYMBOL_702_118 = 702, /* $@118 */ YYSYMBOL_DRELFILTER_fun = 703, /* DRELFILTER_fun */ YYSYMBOL_704_119 = 704, /* $@119 */ YYSYMBOL_DRELEXTEND_fun = 705, /* DRELEXTEND_fun */ YYSYMBOL_DRELEXTEND_fun_1 = 706, /* DRELEXTEND_fun_1 */ YYSYMBOL_707_120 = 707, /* $@120 */ YYSYMBOL_DRELEXTEND_funlist = 708, /* DRELEXTEND_funlist */ YYSYMBOL_DRELEXTEND_funlist_1 = 709, /* DRELEXTEND_funlist_1 */ YYSYMBOL_DRELPROJECTEXTEND_fun = 710, /* DRELPROJECTEXTEND_fun */ YYSYMBOL_DRELPROJECTEXTEND_fun_1 = 711, /* DRELPROJECTEXTEND_fun_1 */ YYSYMBOL_712_121 = 712, /* $@121 */ YYSYMBOL_DRELPROJECTEXTEND_funlist = 713, /* DRELPROJECTEXTEND_funlist */ YYSYMBOL_DRELPROJECTEXTEND_funlist_1 = 714, /* DRELPROJECTEXTEND_funlist_1 */ YYSYMBOL_DRELLGROUPBY_fun = 715, /* DRELLGROUPBY_fun */ YYSYMBOL_DRELLGROUPBY_fun_1 = 716, /* DRELLGROUPBY_fun_1 */ YYSYMBOL_717_122 = 717, /* $@122 */ YYSYMBOL_DRELLGROUPBY_funlist = 718, /* DRELLGROUPBY_funlist */ YYSYMBOL_DRELLGROUPBY_funlist_1 = 719, /* DRELLGROUPBY_funlist_1 */ YYSYMBOL_DRELGROUPBY_fun = 720, /* DRELGROUPBY_fun */ YYSYMBOL_DRELGROUPBY_fun_1 = 721, /* DRELGROUPBY_fun_1 */ YYSYMBOL_722_123 = 722, /* $@123 */ YYSYMBOL_DRELGROUPBY_funlist = 723, /* DRELGROUPBY_funlist */ YYSYMBOL_DRELGROUPBY_funlist_1 = 724, /* DRELGROUPBY_funlist_1 */ YYSYMBOL_DRELUPDATE_fun = 725, /* DRELUPDATE_fun */ YYSYMBOL_DRELUPDATE_fun_1 = 726, /* DRELUPDATE_fun_1 */ YYSYMBOL_727_124 = 727, /* $@124 */ YYSYMBOL_DRELUPDATE_funlist = 728, /* DRELUPDATE_funlist */ YYSYMBOL_DRELUPDATE_funlist_1 = 729, /* DRELUPDATE_funlist_1 */ YYSYMBOL_DRELUPDATEBYID_fun = 730, /* DRELUPDATEBYID_fun */ YYSYMBOL_DRELUPDATEBYID_fun_1 = 731, /* DRELUPDATEBYID_fun_1 */ YYSYMBOL_732_125 = 732, /* $@125 */ YYSYMBOL_DRELUPDATEBYID_funlist = 733, /* DRELUPDATEBYID_funlist */ YYSYMBOL_DRELUPDATEBYID_funlist_1 = 734, /* DRELUPDATEBYID_funlist_1 */ YYSYMBOL_DRELFILTERADDID_fun = 735, /* DRELFILTERADDID_fun */ YYSYMBOL_736_126 = 736, /* $@126 */ YYSYMBOL_DRELFILTERDELETE_fun = 737, /* DRELFILTERDELETE_fun */ YYSYMBOL_738_127 = 738, /* $@127 */ YYSYMBOL_DRELFILTERUPDATE_fun = 739, /* DRELFILTERUPDATE_fun */ YYSYMBOL_DRELFILTERUPDATE_fun_1 = 740, /* DRELFILTERUPDATE_fun_1 */ YYSYMBOL_741_128 = 741, /* $@128 */ YYSYMBOL_DRELFILTERUPDATE_funlist = 742, /* DRELFILTERUPDATE_funlist */ YYSYMBOL_DRELFILTERUPDATE_funlist_1 = 743, /* DRELFILTERUPDATE_funlist_1 */ YYSYMBOL_DBSCANF_fun = 744, /* DBSCANF_fun */ YYSYMBOL_745_129 = 745, /* $@129 */ YYSYMBOL_DBSCANTF_fun = 746, /* DBSCANTF_fun */ YYSYMBOL_747_130 = 747, /* $@130 */ YYSYMBOL_PFILTERS_fun = 748, /* PFILTERS_fun */ YYSYMBOL_749_131 = 749, /* $@131 */ YYSYMBOL_PEXTEND_fun = 750, /* PEXTEND_fun */ YYSYMBOL_PEXTEND_fun_1 = 751, /* PEXTEND_fun_1 */ YYSYMBOL_752_132 = 752, /* $@132 */ YYSYMBOL_PEXTEND_funlist = 753, /* PEXTEND_funlist */ YYSYMBOL_PEXTEND_funlist_1 = 754, /* PEXTEND_funlist_1 */ YYSYMBOL_PEXTENDSTREAM_fun = 755, /* PEXTENDSTREAM_fun */ YYSYMBOL_PEXTENDSTREAM_fun_1 = 756, /* PEXTENDSTREAM_fun_1 */ YYSYMBOL_757_133 = 757, /* $@133 */ YYSYMBOL_PEXTENDSTREAM_funlist = 758, /* PEXTENDSTREAM_funlist */ YYSYMBOL_PEXTENDSTREAM_funlist_1 = 759, /* PEXTENDSTREAM_funlist_1 */ YYSYMBOL_PLOOPSEL_fun = 760, /* PLOOPSEL_fun */ YYSYMBOL_761_134 = 761, /* $@134 */ YYSYMBOL_PLOOPJOIN_fun = 762, /* PLOOPJOIN_fun */ YYSYMBOL_763_135 = 763, /* $@135 */ YYSYMBOL_PAGGREGATE_fun = 764, /* PAGGREGATE_fun */ YYSYMBOL_765_136 = 765, /* $@136 */ YYSYMBOL_PAGGREGATEB_fun = 766, /* PAGGREGATEB_fun */ YYSYMBOL_767_137 = 767, /* $@137 */ YYSYMBOL_AGGREGATES_fun = 768, /* AGGREGATES_fun */ YYSYMBOL_769_138 = 769, /* $@138 */ YYSYMBOL_USE_fun = 770, /* USE_fun */ YYSYMBOL_771_139 = 771, /* $@139 */ YYSYMBOL_USE2_fun = 772, /* USE2_fun */ YYSYMBOL_773_140 = 773, /* $@140 */ YYSYMBOL_TS_fun = 774, /* TS_fun */ YYSYMBOL_TS_fun_1 = 775, /* TS_fun_1 */ YYSYMBOL_776_141 = 776, /* $@141 */ YYSYMBOL_TS_funlist = 777, /* TS_funlist */ YYSYMBOL_TS_funlist_1 = 778, /* TS_funlist_1 */ YYSYMBOL_AS_fun = 779, /* AS_fun */ YYSYMBOL_780_142 = 780, /* $@142 */ YYSYMBOL_streamfun_fun = 781, /* streamfun_fun */ YYSYMBOL_782_143 = 782, /* $@143 */ YYSYMBOL_prog_fun = 783, /* prog_fun */ YYSYMBOL_784_144 = 784, /* $@144 */ YYSYMBOL_SYNC_fun = 785, /* SYNC_fun */ YYSYMBOL_786_145 = 786, /* $@145 */ YYSYMBOL_SideEffect_fun = 787, /* SideEffect_fun */ YYSYMBOL_788_146 = 788, /* $@146 */ YYSYMBOL_OSHORTESTPATHD_fun = 789, /* OSHORTESTPATHD_fun */ YYSYMBOL_790_147 = 790, /* $@147 */ YYSYMBOL_OSHORTESTPATHA_fun = 791, /* OSHORTESTPATHA_fun */ YYSYMBOL_792_148 = 792, /* $@148 */ YYSYMBOL_READ2_fun = 793, /* READ2_fun */ YYSYMBOL_794_149 = 794, /* $@149 */ YYSYMBOL_READ3_fun = 795, /* READ3_fun */ YYSYMBOL_796_150 = 796, /* $@150 */ YYSYMBOL_RDERIVE_fun = 797, /* RDERIVE_fun */ YYSYMBOL_798_151 = 798, /* $@151 */ YYSYMBOL_READ3_1_fun = 799, /* READ3_1_fun */ YYSYMBOL_800_152 = 800, /* $@152 */ YYSYMBOL_READ3_2_fun = 801, /* READ3_2_fun */ YYSYMBOL_802_153 = 802, /* $@153 */ YYSYMBOL_FILTERX_fun = 803, /* FILTERX_fun */ YYSYMBOL_804_154 = 804, /* $@154 */ YYSYMBOL_UPDATESEARCH_fun = 805, /* UPDATESEARCH_fun */ YYSYMBOL_UPDATESEARCH_fun_1 = 806, /* UPDATESEARCH_fun_1 */ YYSYMBOL_807_155 = 807, /* $@155 */ YYSYMBOL_UPDATESEARCH_funlist = 808, /* UPDATESEARCH_funlist */ YYSYMBOL_UPDATESEARCH_funlist_1 = 809, /* UPDATESEARCH_funlist_1 */ YYSYMBOL_UPDATEDIRECT_fun = 810, /* UPDATEDIRECT_fun */ YYSYMBOL_UPDATEDIRECT_fun_1 = 811, /* UPDATEDIRECT_fun_1 */ YYSYMBOL_812_156 = 812, /* $@156 */ YYSYMBOL_UPDATEDIRECT_funlist = 813, /* UPDATEDIRECT_funlist */ YYSYMBOL_UPDATEDIRECT_funlist_1 = 814, /* UPDATEDIRECT_funlist_1 */ YYSYMBOL_UPDATEDIRECT2_fun = 815, /* UPDATEDIRECT2_fun */ YYSYMBOL_UPDATEDIRECT2_fun_1 = 816, /* UPDATEDIRECT2_fun_1 */ YYSYMBOL_817_157 = 817, /* $@157 */ YYSYMBOL_UPDATEDIRECT2_funlist = 818, /* UPDATEDIRECT2_funlist */ YYSYMBOL_UPDATEDIRECT2_funlist_1 = 819, /* UPDATEDIRECT2_funlist_1 */ YYSYMBOL_UPDATEBYID2_fun = 820, /* UPDATEBYID2_fun */ YYSYMBOL_UPDATEBYID2_fun_1 = 821, /* UPDATEBYID2_fun_1 */ YYSYMBOL_822_158 = 822, /* $@158 */ YYSYMBOL_UPDATEBYID2_funlist = 823, /* UPDATEBYID2_funlist */ YYSYMBOL_UPDATEBYID2_funlist_1 = 824, /* UPDATEBYID2_funlist_1 */ YYSYMBOL_UPDATESEARCHSAVE_fun = 825, /* UPDATESEARCHSAVE_fun */ YYSYMBOL_UPDATESEARCHSAVE_fun_1 = 826, /* UPDATESEARCHSAVE_fun_1 */ YYSYMBOL_827_159 = 827, /* $@159 */ YYSYMBOL_UPDATESEARCHSAVE_funlist = 828, /* UPDATESEARCHSAVE_funlist */ YYSYMBOL_UPDATESEARCHSAVE_funlist_1 = 829, /* UPDATESEARCHSAVE_funlist_1 */ YYSYMBOL_UPDATEDIRECTSAVE_fun = 830, /* UPDATEDIRECTSAVE_fun */ YYSYMBOL_UPDATEDIRECTSAVE_fun_1 = 831, /* UPDATEDIRECTSAVE_fun_1 */ YYSYMBOL_832_160 = 832, /* $@160 */ YYSYMBOL_UPDATEDIRECTSAVE_funlist = 833, /* UPDATEDIRECTSAVE_funlist */ YYSYMBOL_UPDATEDIRECTSAVE_funlist_1 = 834, /* UPDATEDIRECTSAVE_funlist_1 */ YYSYMBOL_UPDATEBYID_fun = 835, /* UPDATEBYID_fun */ YYSYMBOL_UPDATEBYID_fun_1 = 836, /* UPDATEBYID_fun_1 */ YYSYMBOL_837_161 = 837, /* $@161 */ YYSYMBOL_UPDATEBYID_funlist = 838, /* UPDATEBYID_funlist */ YYSYMBOL_UPDATEBYID_funlist_1 = 839, /* UPDATEBYID_funlist_1 */ YYSYMBOL_FILTERINSERT_fun = 840, /* FILTERINSERT_fun */ YYSYMBOL_841_162 = 841, /* $@162 */ YYSYMBOL_CPROJECTEXTEND_fun = 842, /* CPROJECTEXTEND_fun */ YYSYMBOL_CPROJECTEXTEND_fun_1 = 843, /* CPROJECTEXTEND_fun_1 */ YYSYMBOL_844_163 = 844, /* $@163 */ YYSYMBOL_CPROJECTEXTEND_funlist = 845, /* CPROJECTEXTEND_funlist */ YYSYMBOL_CPROJECTEXTEND_funlist_1 = 846, /* CPROJECTEXTEND_funlist_1 */ YYSYMBOL_MAP_fun = 847, /* MAP_fun */ YYSYMBOL_848_164 = 848, /* $@164 */ YYSYMBOL_MAP2_fun = 849, /* MAP2_fun */ YYSYMBOL_850_165 = 850, /* $@165 */ YYSYMBOL_MATCHGRID_fun = 851, /* MATCHGRID_fun */ YYSYMBOL_852_166 = 852, /* $@166 */ YYSYMBOL_REPLACEELEM_fun = 853, /* REPLACEELEM_fun */ YYSYMBOL_854_167 = 854, /* $@167 */ YYSYMBOL_GROUPBY2_fun = 855, /* GROUPBY2_fun */ YYSYMBOL_GROUPBY2_fun_1 = 856, /* GROUPBY2_fun_1 */ YYSYMBOL_857_168 = 857, /* $@168 */ YYSYMBOL_GROUPBY2_funlist = 858, /* GROUPBY2_funlist */ YYSYMBOL_GROUPBY2_funlist_1 = 859, /* GROUPBY2_funlist_1 */ YYSYMBOL_HADOOPMAP_fun = 860, /* HADOOPMAP_fun */ YYSYMBOL_861_169 = 861, /* $@169 */ YYSYMBOL_HADOOPREDUCE_fun = 862, /* HADOOPREDUCE_fun */ YYSYMBOL_863_170 = 863, /* $@170 */ YYSYMBOL_HADOOPREDUCE2_fun = 864, /* HADOOPREDUCE2_fun */ YYSYMBOL_865_171 = 865, /* $@171 */ YYSYMBOL_HADOOPMAP2_fun = 866, /* HADOOPMAP2_fun */ YYSYMBOL_867_172 = 867, /* $@172 */ YYSYMBOL_GPATTERN_fun = 868, /* GPATTERN_fun */ YYSYMBOL_869_173 = 869, /* $@173 */ YYSYMBOL_CROSSPATTERN_fun = 870, /* CROSSPATTERN_fun */ YYSYMBOL_871_174 = 871, /* $@174 */ YYSYMBOL_MTHREADEDFILTER_fun = 872, /* MTHREADEDFILTER_fun */ YYSYMBOL_873_175 = 873, /* $@175 */ YYSYMBOL_CANCEL_fun = 874, /* CANCEL_fun */ YYSYMBOL_875_176 = 875, /* $@176 */ YYSYMBOL_PROJECTEXTEND_fun = 876, /* PROJECTEXTEND_fun */ YYSYMBOL_PROJECTEXTEND_fun_1 = 877, /* PROJECTEXTEND_fun_1 */ YYSYMBOL_878_177 = 878, /* $@177 */ YYSYMBOL_PROJECTEXTEND_funlist = 879, /* PROJECTEXTEND_funlist */ YYSYMBOL_PROJECTEXTEND_funlist_1 = 880, /* PROJECTEXTEND_funlist_1 */ YYSYMBOL_EXTENDSTREAM_fun = 881, /* EXTENDSTREAM_fun */ YYSYMBOL_EXTENDSTREAM_fun_1 = 882, /* EXTENDSTREAM_fun_1 */ YYSYMBOL_883_178 = 883, /* $@178 */ YYSYMBOL_EXTENDSTREAM_funlist = 884, /* EXTENDSTREAM_funlist */ YYSYMBOL_EXTENDSTREAM_funlist_1 = 885, /* EXTENDSTREAM_funlist_1 */ YYSYMBOL_PROJECTEXTENDSTREAM_fun = 886, /* PROJECTEXTENDSTREAM_fun */ YYSYMBOL_PROJECTEXTENDSTREAM_fun_1 = 887, /* PROJECTEXTENDSTREAM_fun_1 */ YYSYMBOL_888_179 = 888, /* $@179 */ YYSYMBOL_PROJECTEXTENDSTREAM_funlist = 889, /* PROJECTEXTENDSTREAM_funlist */ YYSYMBOL_PROJECTEXTENDSTREAM_funlist_1 = 890, /* PROJECTEXTENDSTREAM_funlist_1 */ YYSYMBOL_GROUPBY_fun = 891, /* GROUPBY_fun */ YYSYMBOL_GROUPBY_fun_1 = 892, /* GROUPBY_fun_1 */ YYSYMBOL_893_180 = 893, /* $@180 */ YYSYMBOL_GROUPBY_funlist = 894, /* GROUPBY_funlist */ YYSYMBOL_GROUPBY_funlist_1 = 895, /* GROUPBY_funlist_1 */ YYSYMBOL_SLIDINGWINDOW_fun = 896, /* SLIDINGWINDOW_fun */ YYSYMBOL_SLIDINGWINDOW_fun_1 = 897, /* SLIDINGWINDOW_fun_1 */ YYSYMBOL_898_181 = 898, /* $@181 */ YYSYMBOL_SLIDINGWINDOW_funlist = 899, /* SLIDINGWINDOW_funlist */ YYSYMBOL_SLIDINGWINDOW_funlist_1 = 900, /* SLIDINGWINDOW_funlist_1 */ YYSYMBOL_LOOPJOIN_fun = 901, /* LOOPJOIN_fun */ YYSYMBOL_902_182 = 902, /* $@182 */ YYSYMBOL_LOOPSEL_fun = 903, /* LOOPSEL_fun */ YYSYMBOL_904_183 = 904, /* $@183 */ YYSYMBOL_AGGREGATE_fun = 905, /* AGGREGATE_fun */ YYSYMBOL_906_184 = 906, /* $@184 */ YYSYMBOL_AGGREGATEB_fun = 907, /* AGGREGATEB_fun */ YYSYMBOL_908_185 = 908, /* $@185 */ YYSYMBOL_SYMMJOIN_fun = 909, /* SYMMJOIN_fun */ YYSYMBOL_910_186 = 910, /* $@186 */ YYSYMBOL_SYMMOUTERJOIN_fun = 911, /* SYMMOUTERJOIN_fun */ YYSYMBOL_912_187 = 912, /* $@187 */ YYSYMBOL_SYMMPRODUCTEXTEND_fun = 913, /* SYMMPRODUCTEXTEND_fun */ YYSYMBOL_SYMMPRODUCTEXTEND_fun_1 = 914, /* SYMMPRODUCTEXTEND_fun_1 */ YYSYMBOL_915_188 = 915, /* $@188 */ YYSYMBOL_SYMMPRODUCTEXTEND_funlist = 916, /* SYMMPRODUCTEXTEND_funlist */ YYSYMBOL_SYMMPRODUCTEXTEND_funlist_1 = 917, /* SYMMPRODUCTEXTEND_funlist_1 */ YYSYMBOL_EXTEND_LAST_fun = 918, /* EXTEND_LAST_fun */ YYSYMBOL_EXTEND_LAST_fun_1 = 919, /* EXTEND_LAST_fun_1 */ YYSYMBOL_920_189 = 920, /* $@189 */ YYSYMBOL_EXTEND_LAST_funlist = 921, /* EXTEND_LAST_funlist */ YYSYMBOL_EXTEND_LAST_funlist_1 = 922, /* EXTEND_LAST_funlist_1 */ YYSYMBOL_EXTEND_NEXT_fun = 923, /* EXTEND_NEXT_fun */ YYSYMBOL_EXTEND_NEXT_fun_1 = 924, /* EXTEND_NEXT_fun_1 */ YYSYMBOL_925_190 = 925, /* $@190 */ YYSYMBOL_EXTEND_NEXT_funlist = 926, /* EXTEND_NEXT_funlist */ YYSYMBOL_EXTEND_NEXT_funlist_1 = 927, /* EXTEND_NEXT_funlist_1 */ YYSYMBOL_REPLACEATTR_fun = 928, /* REPLACEATTR_fun */ YYSYMBOL_REPLACEATTR_fun_1 = 929, /* REPLACEATTR_fun_1 */ YYSYMBOL_930_191 = 930, /* $@191 */ YYSYMBOL_REPLACEATTR_funlist = 931, /* REPLACEATTR_funlist */ YYSYMBOL_REPLACEATTR_funlist_1 = 932, /* REPLACEATTR_funlist_1 */ YYSYMBOL_PFILTER_fun = 933, /* PFILTER_fun */ YYSYMBOL_934_192 = 934, /* $@192 */ YYSYMBOL_EXTENDX_fun = 935, /* EXTENDX_fun */ YYSYMBOL_936_193 = 936, /* $@193 */ YYSYMBOL_ADDMODCOUNTER_fun = 937, /* ADDMODCOUNTER_fun */ YYSYMBOL_938_194 = 938, /* $@194 */ YYSYMBOL_USEHISTOGRAM_fun = 939, /* USEHISTOGRAM_fun */ YYSYMBOL_940_195 = 940, /* $@195 */ YYSYMBOL_USEHISTOGRAM2_fun = 941, /* USEHISTOGRAM2_fun */ YYSYMBOL_942_196 = 942, /* $@196 */ YYSYMBOL_DMAPS_fun = 943, /* DMAPS_fun */ YYSYMBOL_944_197 = 944, /* $@197 */ YYSYMBOL_DMAPS2_fun = 945, /* DMAPS2_fun */ YYSYMBOL_946_198 = 946, /* $@198 */ YYSYMBOL_DMAPS3_fun = 947, /* DMAPS3_fun */ YYSYMBOL_948_199 = 948, /* $@199 */ YYSYMBOL_DMAPS4_fun = 949, /* DMAPS4_fun */ YYSYMBOL_950_200 = 950, /* $@200 */ YYSYMBOL_DMAPS5_fun = 951, /* DMAPS5_fun */ YYSYMBOL_952_201 = 952, /* $@201 */ YYSYMBOL_DPRODUCTS_fun = 953, /* DPRODUCTS_fun */ YYSYMBOL_954_202 = 954, /* $@202 */ YYSYMBOL_PARTITIONFS_fun = 955, /* PARTITIONFS_fun */ YYSYMBOL_956_203 = 956, /* $@203 */ YYSYMBOL_DBSCAN_fun = 957, /* DBSCAN_fun */ YYSYMBOL_958_204 = 958, /* $@204 */ YYSYMBOL_REGISTERFORSTREAM_fun = 959, /* REGISTERFORSTREAM_fun */ YYSYMBOL_960_205 = 960, /* $@205 */ YYSYMBOL_PREDCOUNTS_fun = 961, /* PREDCOUNTS_fun */ YYSYMBOL_PREDCOUNTS_fun_1 = 962, /* PREDCOUNTS_fun_1 */ YYSYMBOL_963_206 = 963, /* $@206 */ YYSYMBOL_PREDCOUNTS_funlist = 964, /* PREDCOUNTS_funlist */ YYSYMBOL_PREDCOUNTS_funlist_1 = 965, /* PREDCOUNTS_funlist_1 */ YYSYMBOL_STPATTERNEXTEND_fun = 966, /* STPATTERNEXTEND_fun */ YYSYMBOL_STPATTERNEXTEND_fun_1 = 967, /* STPATTERNEXTEND_fun_1 */ YYSYMBOL_968_207 = 968, /* $@207 */ YYSYMBOL_STPATTERNEXTEND_funlist = 969, /* STPATTERNEXTEND_funlist */ YYSYMBOL_STPATTERNEXTEND_funlist_1 = 970, /* STPATTERNEXTEND_funlist_1 */ YYSYMBOL_STPATTERNEXTEND2_fun = 971, /* STPATTERNEXTEND2_fun */ YYSYMBOL_STPATTERNEXTEND2_fun_1 = 972, /* STPATTERNEXTEND2_fun_1 */ YYSYMBOL_973_208 = 973, /* $@208 */ YYSYMBOL_STPATTERNEXTEND2_funlist = 974, /* STPATTERNEXTEND2_funlist */ YYSYMBOL_STPATTERNEXTEND2_funlist_1 = 975, /* STPATTERNEXTEND2_funlist_1 */ YYSYMBOL_STPATTERNEXEXTEND_fun = 976, /* STPATTERNEXEXTEND_fun */ YYSYMBOL_STPATTERNEXEXTEND_fun_1 = 977, /* STPATTERNEXEXTEND_fun_1 */ YYSYMBOL_978_209 = 978, /* $@209 */ YYSYMBOL_STPATTERNEXEXTEND_funlist = 979, /* STPATTERNEXEXTEND_funlist */ YYSYMBOL_STPATTERNEXEXTEND_funlist_1 = 980, /* STPATTERNEXEXTEND_funlist_1 */ YYSYMBOL_STPATTERNEXEXTEND2_fun = 981, /* STPATTERNEXEXTEND2_fun */ YYSYMBOL_STPATTERNEXEXTEND2_fun_1 = 982, /* STPATTERNEXEXTEND2_fun_1 */ YYSYMBOL_983_210 = 983, /* $@210 */ YYSYMBOL_STPATTERNEXEXTEND2_funlist = 984, /* STPATTERNEXEXTEND2_funlist */ YYSYMBOL_STPATTERNEXEXTEND2_funlist_1 = 985, /* STPATTERNEXEXTEND2_funlist_1 */ YYSYMBOL_STPATTERNEXTENDSTREAM_fun = 986, /* STPATTERNEXTENDSTREAM_fun */ YYSYMBOL_STPATTERNEXTENDSTREAM_fun_1 = 987, /* STPATTERNEXTENDSTREAM_fun_1 */ YYSYMBOL_988_211 = 988, /* $@211 */ YYSYMBOL_STPATTERNEXTENDSTREAM_funlist = 989, /* STPATTERNEXTENDSTREAM_funlist */ YYSYMBOL_STPATTERNEXTENDSTREAM_funlist_1 = 990, /* STPATTERNEXTENDSTREAM_funlist_1 */ YYSYMBOL_STPATTERNEXTENDSTREAM2_fun = 991, /* STPATTERNEXTENDSTREAM2_fun */ YYSYMBOL_STPATTERNEXTENDSTREAM2_fun_1 = 992, /* STPATTERNEXTENDSTREAM2_fun_1 */ YYSYMBOL_993_212 = 993, /* $@212 */ YYSYMBOL_STPATTERNEXTENDSTREAM2_funlist = 994, /* STPATTERNEXTENDSTREAM2_funlist */ YYSYMBOL_STPATTERNEXTENDSTREAM2_funlist_1 = 995, /* STPATTERNEXTENDSTREAM2_funlist_1 */ YYSYMBOL_STPATTERNEXEXTENDSTREAM_fun = 996, /* STPATTERNEXEXTENDSTREAM_fun */ YYSYMBOL_STPATTERNEXEXTENDSTREAM_fun_1 = 997, /* STPATTERNEXEXTENDSTREAM_fun_1 */ YYSYMBOL_998_213 = 998, /* $@213 */ YYSYMBOL_STPATTERNEXEXTENDSTREAM_funlist = 999, /* STPATTERNEXEXTENDSTREAM_funlist */ YYSYMBOL_STPATTERNEXEXTENDSTREAM_funlist_1 = 1000, /* STPATTERNEXEXTENDSTREAM_funlist_1 */ YYSYMBOL_STPATTERNEXEXTENDSTREAM2_fun = 1001, /* STPATTERNEXEXTENDSTREAM2_fun */ YYSYMBOL_STPATTERNEXEXTENDSTREAM2_fun_1 = 1002, /* STPATTERNEXEXTENDSTREAM2_fun_1 */ YYSYMBOL_1003_214 = 1003, /* $@214 */ YYSYMBOL_STPATTERNEXEXTENDSTREAM2_funlist = 1004, /* STPATTERNEXEXTENDSTREAM2_funlist */ YYSYMBOL_STPATTERNEXEXTENDSTREAM2_funlist_1 = 1005, /* STPATTERNEXEXTENDSTREAM2_funlist_1 */ YYSYMBOL_REDUCE_fun = 1006, /* REDUCE_fun */ YYSYMBOL_1007_215 = 1007, /* $@215 */ YYSYMBOL_TSMOTIFBFFUN_fun = 1008, /* TSMOTIFBFFUN_fun */ YYSYMBOL_1009_216 = 1009, /* $@216 */ YYSYMBOL_TSDISTANCEFUN_fun = 1010, /* TSDISTANCEFUN_fun */ YYSYMBOL_1011_217 = 1011 /* $@217 */ }; typedef enum yysymbol_kind_t yysymbol_kind_t; #ifdef short # undef short #endif /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure and (if available) are included so that the code can choose integer types of a good width. */ #ifndef __PTRDIFF_MAX__ # include /* INFRINGES ON USER NAME SPACE */ # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YY_STDINT_H # endif #endif /* Narrow types that promote to a signed type and that can represent a signed or unsigned integer of at least N bits. In tables they can save space and decrease cache pressure. Promoting to a signed type helps avoid bugs in integer arithmetic. */ #ifdef __INT_LEAST8_MAX__ typedef __INT_LEAST8_TYPE__ yytype_int8; #elif defined YY_STDINT_H typedef int_least8_t yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef __INT_LEAST16_MAX__ typedef __INT_LEAST16_TYPE__ yytype_int16; #elif defined YY_STDINT_H typedef int_least16_t yytype_int16; #else typedef short yytype_int16; #endif /* Work around bug in HP-UX 11.23, which defines these macros incorrectly for preprocessor constants. This workaround can likely be removed in 2023, as HPE has promised support for HP-UX 11.23 (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of . */ #ifdef __hpux # undef UINT_LEAST8_MAX # undef UINT_LEAST16_MAX # define UINT_LEAST8_MAX 255 # define UINT_LEAST16_MAX 65535 #endif #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__ typedef __UINT_LEAST8_TYPE__ yytype_uint8; #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \ && UINT_LEAST8_MAX <= INT_MAX) typedef uint_least8_t yytype_uint8; #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX typedef unsigned char yytype_uint8; #else typedef short yytype_uint8; #endif #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__ typedef __UINT_LEAST16_TYPE__ yytype_uint16; #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \ && UINT_LEAST16_MAX <= INT_MAX) typedef uint_least16_t yytype_uint16; #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX typedef unsigned short yytype_uint16; #else typedef int yytype_uint16; #endif #ifndef YYPTRDIFF_T # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__ # define YYPTRDIFF_T __PTRDIFF_TYPE__ # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__ # elif defined PTRDIFF_MAX # ifndef ptrdiff_t # include /* INFRINGES ON USER NAME SPACE */ # endif # define YYPTRDIFF_T ptrdiff_t # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX # else # define YYPTRDIFF_T long # define YYPTRDIFF_MAXIMUM LONG_MAX # endif #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__ # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned # endif #endif #define YYSIZE_MAXIMUM \ YY_CAST (YYPTRDIFF_T, \ (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \ ? YYPTRDIFF_MAXIMUM \ : YY_CAST (YYSIZE_T, -1))) #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X)) /* Stored state numbers (used for stacks). */ typedef yytype_int16 yy_state_t; /* State numbers in computations. */ typedef int yy_state_fast_t; #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE_PURE # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__)) # else # define YY_ATTRIBUTE_PURE # endif #endif #ifndef YY_ATTRIBUTE_UNUSED # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__) # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__)) # else # define YY_ATTRIBUTE_UNUSED # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YY_USE(E) ((void) (E)) #else # define YY_USE(E) /* empty */ #endif /* Suppress an incorrect diagnostic about yylval being uninitialized. */ #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__ # if __GNUC__ * 100 + __GNUC_MINOR__ < 407 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") # else # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # endif # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__ # define YY_IGNORE_USELESS_CAST_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"") # define YY_IGNORE_USELESS_CAST_END \ _Pragma ("GCC diagnostic pop") #endif #ifndef YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_BEGIN # define YY_IGNORE_USELESS_CAST_END #endif #define YY_ASSERT(E) ((void) (0 && (E))) #if !defined yyoverflow /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* !defined yyoverflow */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \ && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yy_state_t yyss_alloc; YYSTYPE yyvs_alloc; YYLTYPE yyls_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \ + YYSIZEOF (YYLTYPE)) \ + 2 * YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYPTRDIFF_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / YYSIZEOF (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYPTRDIFF_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 100 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 112855 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 379 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 633 /* YYNRULES -- Number of rules. */ #define YYNRULES 1468 /* YYNSTATES -- Number of states. */ #define YYNSTATES 3399 /* YYMAXUTOK -- Last valid token kind. */ #define YYMAXUTOK 623 /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM as returned by yylex, with out-of-bounds checking. */ #define YYTRANSLATE(YYX) \ (0 <= (YYX) && (YYX) <= YYMAXUTOK \ ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \ : YYSYMBOL_YYUNDEF) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex. */ static const yytype_int16 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 373, 374, 2, 2, 377, 2, 378, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 369, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 375, 2, 376, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 370, 372, 371, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368 }; #if YYDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_int16 yyrline[] = { 0, 268, 268, 269, 270, 276, 277, 278, 279, 280, 281, 282, 283, 286, 297, 297, 300, 307, 314, 321, 328, 335, 340, 351, 362, 375, 381, 389, 389, 397, 402, 410, 410, 418, 418, 427, 427, 435, 435, 444, 444, 458, 458, 467, 467, 483, 492, 498, 504, 512, 519, 526, 533, 539, 546, 554, 561, 570, 571, 574, 580, 586, 593, 599, 605, 611, 617, 625, 650, 651, 657, 661, 665, 667, 670, 677, 678, 683, 685, 691, 692, 693, 694, 697, 698, 705, 713, 718, 722, 725, 735, 745, 752, 753, 758, 766, 775, 775, 775, 775, 775, 778, 779, 782, 783, 785, 789, 790, 791, 792, 793, 796, 801, 802, 803, 807, 808, 814, 817, 820, 822, 827, 829, 830, 836, 837, 838, 839, 845, 846, 847, 848, 854, 860, 862, 863, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 876, 884, 892, 901, 910, 919, 928, 937, 946, 958, 965, 975, 980, 998, 1012, 1029, 1049, 1068, 1085, 1101, 1126, 1142, 1180, 1214, 1251, 1288, 1314, 1340, 1362, 1380, 1398, 1419, 1437, 1467, 1501, 1531, 1561, 1586, 1602, 1618, 1648, 1674, 1696, 1714, 1732, 1754, 1772, 1794, 1810, 1829, 1847, 1863, 1881, 1911, 1933, 1955, 1973, 1994, 2020, 2038, 2060, 2086, 2116, 2150, 2188, 2218, 2248, 2270, 2295, 2317, 2342, 2371, 2400, 2432, 2467, 2505, 2546, 2590, 2637, 2669, 2704, 2742, 2783, 2827, 2874, 2924, 2954, 2980, 3010, 3036, 3065, 3098, 3127, 3165, 3203, 3245, 3283, 3301, 3327, 3361, 3377, 3400, 3418, 3436, 3456, 3480, 3502, 3524, 3565, 3590, 3612, 3634, 3656, 3672, 3697, 3713, 3729, 3745, 3764, 3786, 3812, 3834, 3859, 3878, 3894, 3910, 3940, 3974, 3990, 4020, 4054, 4079, 4101, 4119, 4141, 4167, 4193, 4223, 4245, 4270, 4288, 4309, 4334, 4353, 4371, 4389, 4407, 4425, 4446, 4467, 4485, 4506, 4527, 4553, 4582, 4611, 4632, 4653, 4682, 4700, 4729, 4747, 4765, 4787, 4803, 4819, 4841, 4863, 4882, 4907, 4936, 4954, 4972, 4994, 5010, 5026, 5060, 5090, 5120, 5150, 5180, 5210, 5240, 5274, 5308, 5330, 5356, 5388, 5410, 5428, 5449, 5467, 5485, 5503, 5525, 5551, 5569, 5585, 5601, 5617, 5636, 5666, 5700, 5718, 5736, 5758, 5779, 5803, 5821, 5837, 5856, 5877, 5898, 5923, 5948, 5972, 5996, 6018, 6040, 6062, 6080, 6101, 6127, 6145, 6167, 6189, 6205, 6227, 6249, 6274, 6293, 6312, 6331, 6356, 6375, 6409, 6447, 6463, 6481, 6499, 6515, 6537, 6555, 6577, 6599, 6625, 6641, 6661, 6679, 6697, 6723, 6749, 6770, 6791, 6812, 6831, 6850, 6869, 6887, 6905, 6923, 6941, 6967, 6986, 7002, 7032, 7054, 7079, 7101, 7126, 7154, 7185, 7219, 7244, 7274, 7300, 7325, 7344, 7362, 7381, 7400, 7422, 7444, 7466, 7488, 7514, 7540, 7562, 7584, 7610, 7636, 7655, 7671, 7687, 7709, 7725, 7751, 7774, 7774, 7797, 7804, 7804, 7827, 7834, 7834, 7857, 7864, 7864, 7887, 7894, 7894, 7917, 7924, 7924, 7947, 7954, 7954, 7977, 7984, 7984, 8007, 8014, 8014, 8037, 8044, 8044, 8079, 8086, 8086, 8121, 8128, 8128, 8151, 8158, 8158, 8181, 8188, 8188, 8211, 8218, 8218, 8241, 8248, 8248, 8283, 8290, 8290, 8325, 8332, 8332, 8355, 8362, 8362, 8385, 8392, 8398, 8404, 8405, 8413, 8413, 8436, 8443, 8454, 8455, 8465, 8471, 8477, 8478, 8486, 8486, 8509, 8516, 8527, 8528, 8538, 8544, 8550, 8551, 8559, 8559, 8582, 8589, 8600, 8601, 8611, 8617, 8623, 8624, 8632, 8632, 8655, 8662, 8673, 8674, 8684, 8684, 8707, 8714, 8714, 8737, 8744, 8744, 8767, 8774, 8774, 8797, 8804, 8804, 8827, 8834, 8834, 8857, 8864, 8864, 8899, 8906, 8906, 8929, 8936, 8936, 8959, 8966, 8966, 9001, 9008, 9008, 9055, 9062, 9062, 9121, 9128, 9128, 9199, 9206, 9206, 9289, 9296, 9296, 9319, 9326, 9326, 9349, 9356, 9356, 9379, 9386, 9386, 9421, 9428, 9428, 9463, 9470, 9470, 9505, 9512, 9512, 9559, 9566, 9566, 9613, 9620, 9620, 9679, 9686, 9686, 9757, 9764, 9764, 9847, 9854, 9854, 9949, 9956, 9956, 10063, 10070, 10070, 10189, 10196, 10196, 10243, 10250, 10250, 10309, 10316, 10316, 10387, 10394, 10394, 10477, 10484, 10484, 10579, 10586, 10586, 10693, 10700, 10700, 10819, 10826, 10826, 10849, 10856, 10856, 10879, 10886, 10886, 10921, 10928, 10928, 10951, 10958, 10958, 10993, 11000, 11000, 11035, 11042, 11042, 11077, 11084, 11084, 11107, 11114, 11114, 11137, 11144, 11144, 11167, 11174, 11174, 11197, 11204, 11204, 11227, 11234, 11234, 11257, 11264, 11264, 11287, 11294, 11294, 11317, 11324, 11324, 11347, 11354, 11354, 11389, 11396, 11396, 11431, 11438, 11444, 11450, 11451, 11459, 11459, 11482, 11489, 11500, 11501, 11511, 11517, 11523, 11524, 11532, 11532, 11555, 11562, 11573, 11574, 11584, 11590, 11596, 11597, 11605, 11605, 11628, 11635, 11646, 11647, 11657, 11663, 11669, 11670, 11678, 11678, 11713, 11720, 11731, 11732, 11742, 11742, 11765, 11772, 11772, 11795, 11802, 11802, 11825, 11832, 11832, 11855, 11862, 11862, 11885, 11892, 11892, 11915, 11922, 11922, 11945, 11952, 11952, 11975, 11982, 11982, 12005, 12012, 12018, 12024, 12025, 12033, 12033, 12056, 12063, 12074, 12075, 12085, 12085, 12108, 12115, 12121, 12127, 12128, 12136, 12136, 12171, 12178, 12189, 12190, 12200, 12206, 12212, 12213, 12221, 12221, 12256, 12263, 12274, 12275, 12285, 12285, 12308, 12315, 12315, 12350, 12357, 12357, 12392, 12399, 12399, 12422, 12429, 12429, 12464, 12471, 12471, 12506, 12513, 12519, 12525, 12526, 12534, 12534, 12557, 12564, 12575, 12576, 12586, 12592, 12598, 12599, 12607, 12607, 12642, 12649, 12660, 12661, 12671, 12677, 12683, 12684, 12692, 12692, 12727, 12734, 12745, 12746, 12756, 12762, 12768, 12769, 12777, 12777, 12800, 12807, 12818, 12819, 12829, 12835, 12841, 12842, 12850, 12850, 12885, 12892, 12903, 12904, 12914, 12920, 12926, 12927, 12935, 12935, 12970, 12977, 12988, 12989, 12999, 12999, 13034, 13041, 13047, 13053, 13054, 13062, 13062, 13097, 13104, 13115, 13116, 13126, 13132, 13138, 13139, 13147, 13147, 13182, 13189, 13200, 13201, 13211, 13217, 13223, 13224, 13232, 13232, 13255, 13262, 13273, 13274, 13284, 13284, 13319, 13326, 13326, 13349, 13356, 13362, 13368, 13369, 13377, 13377, 13400, 13407, 13418, 13419, 13429, 13435, 13441, 13442, 13450, 13450, 13473, 13480, 13491, 13492, 13502, 13508, 13514, 13515, 13523, 13523, 13546, 13553, 13564, 13565, 13575, 13581, 13587, 13588, 13596, 13596, 13619, 13626, 13637, 13638, 13648, 13654, 13660, 13661, 13669, 13669, 13692, 13699, 13710, 13711, 13721, 13727, 13733, 13734, 13742, 13742, 13777, 13784, 13795, 13796, 13806, 13806, 13829, 13836, 13836, 13859, 13866, 13872, 13878, 13879, 13887, 13887, 13910, 13917, 13928, 13929, 13939, 13939, 13974, 13981, 13981, 14016, 14023, 14023, 14046, 14053, 14059, 14065, 14066, 14074, 14074, 14097, 14104, 14115, 14116, 14126, 14132, 14138, 14139, 14147, 14147, 14170, 14177, 14188, 14189, 14199, 14199, 14222, 14229, 14229, 14252, 14259, 14259, 14294, 14301, 14301, 14336, 14343, 14343, 14378, 14385, 14385, 14408, 14415, 14415, 14450, 14457, 14463, 14469, 14470, 14478, 14478, 14501, 14508, 14519, 14520, 14530, 14530, 14553, 14560, 14560, 14583, 14590, 14590, 14613, 14620, 14620, 14643, 14650, 14650, 14685, 14692, 14692, 14715, 14722, 14722, 14745, 14752, 14752, 14775, 14782, 14782, 14805, 14812, 14812, 14835, 14842, 14842, 14877, 14884, 14884, 14931, 14938, 14938, 14961, 14968, 14974, 14980, 14981, 14989, 14989, 15012, 15019, 15030, 15031, 15041, 15047, 15053, 15054, 15062, 15062, 15085, 15092, 15103, 15104, 15114, 15120, 15126, 15127, 15135, 15135, 15170, 15177, 15188, 15189, 15199, 15205, 15211, 15212, 15220, 15220, 15255, 15262, 15273, 15274, 15284, 15290, 15296, 15297, 15305, 15305, 15328, 15335, 15346, 15347, 15357, 15363, 15369, 15370, 15378, 15378, 15401, 15408, 15419, 15420, 15430, 15436, 15442, 15443, 15451, 15451, 15474, 15481, 15492, 15493, 15503, 15503, 15526, 15533, 15539, 15545, 15546, 15554, 15554, 15577, 15584, 15595, 15596, 15606, 15606, 15629, 15636, 15636, 15671, 15678, 15678, 15701, 15708, 15708, 15731, 15738, 15744, 15750, 15751, 15759, 15759, 15782, 15789, 15800, 15801, 15811, 15811, 15834, 15841, 15841, 15864, 15871, 15871, 15906, 15913, 15913, 15948, 15955, 15955, 15978, 15985, 15985, 16008, 16015, 16015, 16038, 16045, 16045, 16068, 16075, 16081, 16087, 16088, 16096, 16096, 16119, 16126, 16137, 16138, 16148, 16154, 16160, 16161, 16169, 16169, 16192, 16199, 16210, 16211, 16221, 16227, 16233, 16234, 16242, 16242, 16265, 16272, 16283, 16284, 16294, 16300, 16306, 16307, 16315, 16315, 16338, 16345, 16356, 16357, 16367, 16373, 16379, 16380, 16388, 16388, 16411, 16418, 16429, 16430, 16440, 16440, 16463, 16470, 16470, 16493, 16500, 16500, 16535, 16542, 16542, 16577, 16584, 16584, 16619, 16626, 16626, 16661, 16668, 16674, 16680, 16681, 16689, 16689, 16724, 16731, 16742, 16743, 16753, 16759, 16765, 16766, 16774, 16774, 16809, 16816, 16827, 16828, 16838, 16844, 16850, 16851, 16859, 16859, 16894, 16901, 16912, 16913, 16923, 16929, 16935, 16936, 16944, 16944, 16967, 16974, 16985, 16986, 16996, 16996, 17031, 17038, 17038, 17061, 17068, 17068, 17103, 17110, 17110, 17133, 17140, 17140, 17175, 17182, 17182, 17205, 17212, 17212, 17247, 17254, 17254, 17301, 17308, 17308, 17367, 17374, 17374, 17445, 17452, 17452, 17487, 17494, 17494, 17529, 17536, 17536, 17559, 17566, 17566, 17589, 17596, 17602, 17608, 17609, 17617, 17617, 17640, 17647, 17658, 17659, 17669, 17675, 17681, 17682, 17690, 17690, 17713, 17720, 17731, 17732, 17742, 17748, 17754, 17755, 17763, 17763, 17786, 17793, 17804, 17805, 17815, 17821, 17827, 17828, 17836, 17836, 17859, 17866, 17877, 17878, 17888, 17894, 17900, 17901, 17909, 17909, 17932, 17939, 17950, 17951, 17961, 17967, 17973, 17974, 17982, 17982, 18005, 18012, 18023, 18024, 18034, 18040, 18046, 18047, 18055, 18055, 18078, 18085, 18096, 18097, 18107, 18113, 18119, 18120, 18128, 18128, 18151, 18158, 18169, 18170, 18180, 18186, 18192, 18193, 18201, 18201, 18224, 18231, 18242, 18243, 18253, 18253, 18276, 18283, 18283, 18318, 18325, 18325, 18360 }; #endif /** Accessing symbol of state STATE. */ #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State]) #if YYDEBUG || 0 /* The user-facing name of the symbol whose (internal) number is YYSYMBOL. No bounds checking. */ static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED; /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "\"end of file\"", "error", "\"invalid token\"", "ZZATTRABBR", "ZZATTRABBR2", "ZZIDENTIFIER", "ZZFUN", "ZZINTEGER", "ZZREAL", "ZZSTRING", "ZZBOOLEAN", "ZZCONST", "ZZTUPLE", "ZZGROUP", "ZZTYPE", "ZZDELETE", "ZZCREATE", "ZZUPDATE", "ZZKILL", "ZZQUERY", "ZZQUERYNT", "ZZPQUERY", "ZZPCOMPILE", "ZZLET", "ZZDERIVE", "ZZPERSISTENT", "ZZBEGIN1", "ZZTRANSACTION", "ZZCOMMIT", "ZZABORT", "ZZDATABASE", "ZZOPEN", "ZZCLOSE", "ZZSAVE", "ZZTO", "ZZRESTORE", "ZZFROM", "ZZLIST", "ZZDATABASES", "ZZCONSTRUCTORS", "ZZOPERATORS", "ZZTYPES", "ZZOBJECTS", "ZZASSIGN", "ZZDOUBLE", "ZZVALUE", "ZZPOINTER", "ZZCOUNTERS", "ZZALGEBRAS", "ZZALGEBRA", "ZZTEXT", "ZZFILE", "ZZINFIXOP", "ZZPREFIXOP", "ZZINFIXOP_BUF", "ZZPREFIXOP_BUF", "ZZIF", "ZZTHEN", "ZZELSE", "ZZENDIF", "ZZWHILE", "ZZDO", "ZZENDWHILE", "ZZNAMING", "ZZMEMORY", "ZZDEFAULTSEP", "OPENDOUBLEBRACE", "CLOSEDOUBLEBRACE", "ZZSINGLE", "ZZARG3", "ZZARG4", "ZZARG5", "ZZARG6", "ZZARG7", "ZZARG8", "ZZARG9", "ZZATTRABBR3", "ZZATTRABBR4", "ZZATTRABBR5", "ZZATTRABBR6", "ZZATTRABBR7", "ZZATTRABBR8", "ZZATTRABBR9", "ZZCHANGENAME", "ZZTYPEOF", "ZZPOSTFIXOP1", "ZZPOSTFIXOP1_a", "ZZPOSTFIXOP2_a", "ZZNEST", "ZZPOSTFIXOP2", "ZZSORTBY", "ZZSORTBYPARAM", "ZZSORTBYH", "ZZGDIJKSTRA", "ZZMINPATHCOST2", "ZZGBIDIJKSTRA", "ZZMTMINPATHCOSTS2", "ZZD_SEND_SHUFFLE", "ZZDSHUFFLE", "ZZDSHUFFLE2", "ZZDSHUFFLE1", "ZZDLOOP_OLD", "ZZDLOOPA_OLD", "ZZDTIE", "ZZPARTITIONDMAP", "ZZDMAPPDMAP", "ZZFDISTRIBUTE2TES", "ZZDISTRIBUTE2TES", "ZZCOLLECTPC2", "ZZOPTICSR", "ZZOPTICSM", "ZZOPTICSF", "ZZOPTICSTF", "ZZFILTERV", "ZZFILTERNP", "ZZEXTENDV", "ZZPROJECTEXTENDV", "ZZEXTENDNP", "ZZPROJECTEXTENDNP", "ZZDBDACSCAN", "ZZDISTSAMP", "ZZAPPLYPREDICATE", "ZZFEEDPROJECT", "ZZFILTER", "ZZCFILTER", "ZZCAND", "ZZCOR", "ZZWITHIN", "ZZWITHIN2", "ZZWHILEDO", "ZZFUNSEQ1", "ZZFUNSEQ2", "ZZFUNSEQ3", "ZZFUNSEQ4", "ZZFUNSEQ5", "ZZFUNSEQ6", "ZZDDISTRIBUTE4", "ZZFDISTRIBUTE7", "ZZDLOOP", "ZZDLOOP2", "ZZDMAP", "ZZPDMAP", "ZZDMAP2n", "ZZDMAP2", "ZZDMAP3", "ZZDMAP4", "ZZDMAP5", "ZZDMAP6", "ZZDMAP7", "ZZDMAP8", "ZZPDMAP2", "ZZPDMAP3", "ZZPDMAP4", "ZZPDMAP5", "ZZPDMAP6", "ZZPDMAP7", "ZZPDMAP8", "ZZDFDISTRIBUTE4", "ZZPARTITION", "ZZPARTITIONF", "ZZAREDUCE", "ZZAREDUCE2", "ZZAREDUCE2F", "ZZDPRODUCT", "ZZDDISTRIBUTE", "ZZDFDISTRIBUTE", "ZZPARTITION8LOCAL", "ZZPARTITIONF8", "ZZLOOPJOINREL", "ZZCONSTGRAPH", "ZZCONSTGRAPHPOINTS", "ZZTRANSLATE", "ZZPOSTFIXOP3_a", "ZZEXISTS", "ZZFORALL", "ZZPOSTFIXOP3", "ZZPARAJOIN", "ZZFCONSUME", "ZZFFEED", "ZZHADOOPJOIN", "ZZFDISTRIBUTE", "ZZFFEED2", "ZZFCONSUME3", "ZZFFEED3", "ZZFETCHFLOB", "ZZFDISTRIBUTE3", "ZZMOCONSUME", "ZZMOCONSUMEFLOB", "ZZMINSERTTUPLE", "ZZMINSERTTUPLESAVE", "ZZMUPDATE", "ZZMUPDATESAVE", "ZZMUPDATEBYID", "ZZMUPDATEDIRECT2", "ZZMORANGE", "ZZMOLEFTRANGE", "ZZMORIGHTRANGE", "ZZMOSHORTESTPATHD", "ZZMOSHORTESTPATHA", "ZZMQUICKSORTBY", "ZZMGSHORTESTPATHD", "ZZMGSHORTESTPATHA", "ZZMINSERTTUPLEPQPROJECTU", "ZZMINSERTTUPLEPQPROJECT", "ZZMPQREORDER", "ZZMPQREORDERUPDATE", "ZZCREATEMGRAPH2", "ZZCREATEMGRAPH2FLOB", "ZZMG2INSERTORIG", "ZZMEMGROUPBY", "ZZMMERGEJOINPROJECT", "ZZPUSE", "ZZPJOIN2", "ZZPJOIN1", "ZZEXTENDITEMNAMES", "ZZSORTARRAY", "ZZTIE", "ZZCUMULATE", "ZZLOOP", "ZZLOOPA", "ZZLOOPB", "ZZLOOPSWITCH", "ZZLOOPSWITCHA", "ZZLOOPSWITCHB", "ZZLOOPSELECT", "ZZLOOPSELECTA", "ZZLOOPSELECTB", "ZZPARTJOIN", "ZZPARTJOINSWITCH", "ZZPARTJOINSELECT", "ZZEXTEND", "ZZPARAJOIN2", "ZZDRELFILTER", "ZZDRELEXTEND", "ZZDRELPROJECTEXTEND", "ZZPROJECT", "ZZLSORTBY", "ZZDRELLGROUPBY", "ZZDRELGROUPBY", "ZZDRELINSERTTUPLE", "ZZDRELUPDATE", "ZZDRELUPDATEBYID", "ZZDRELFILTERADDID", "ZZDRELFILTERDELETE", "ZZDRELFILTERUPDATE", "ZZDBSCANR", "ZZDBSCANM", "ZZDBSCANF", "ZZDBSCANTF", "ZZPFILTERS", "ZZPEXTEND", "ZZPEXTENDSTREAM", "ZZPLOOPSEL", "ZZPLOOPJOIN", "ZZPAGGREGATE", "ZZPAGGREGATEB", "ZZPSORTBY", "ZZPOSTFIXOP4_a", "ZZPOSTFIXOP6_a", "ZZAGGREGATES", "ZZUSE", "ZZUSE2", "ZZTS", "ZZAS", "ZZstreamfun", "ZZprog", "ZZSYNC", "ZZSideEffect", "ZZTRANSLATE_GROOM", "ZZOLEFTRANGE", "ZZORIGHTRANGE", "ZZORANGE", "ZZOSHORTESTPATHD", "ZZOSHORTESTPATHA", "ZZREAD2", "ZZREAD3", "ZZRDERIVE", "ZZREAD3_1", "ZZREAD3_2", "ZZFILTERX", "ZZINSERTTUPLE", "ZZINSERTTUPLESAVE", "ZZUPDATESEARCH", "ZZUPDATEDIRECT", "ZZUPDATEDIRECT2", "ZZUPDATEBYID2", "ZZUPDATESEARCHSAVE", "ZZUPDATEDIRECTSAVE", "ZZUPDATEBYID", "ZZFILTERINSERT", "ZZCPROJECTEXTEND", "ZZMAP", "ZZMAP2", "ZZMATCHGRID", "ZZREPLACEELEM", "ZZGROUPBY2", "ZZSPREAD", "ZZCOLLECT", "ZZHADOOPMAP", "ZZHADOOPREDUCE", "ZZHADOOPREDUCE2", "ZZPFFEED", "ZZPFFEED2", "ZZPFFEED3", "ZZHADOOPMAP2", "ZZREPORTPATTERN", "ZZGPATTERN", "ZZCROSSPATTERN", "ZZMTHREADEDMERGESORT", "ZZMTHREADEDFILTER", "ZZCANCEL", "ZZKRDUP", "ZZPROJECTEXTEND", "ZZEXTENDSTREAM", "ZZPROJECTEXTENDSTREAM", "ZZGROUPBY", "ZZSLIDINGWINDOW", "ZZSORTBYOLD", "ZZPOSTFIXOP2_a_autobuffer", "ZZLOOPJOIN", "ZZLOOPSEL", "ZZAGGREGATE", "ZZAGGREGATEB", "ZZSYMMJOIN", "ZZSYMMOUTERJOIN", "ZZSYMMPRODUCTEXTEND", "ZZKSMALLEST", "ZZKBIGGEST", "ZZEXTEND_AGGR", "ZZEXTEND_LAST", "ZZEXTEND_NEXT", "ZZREPLACEATTR", "ZZPFILTER", "ZZEXTENDX", "ZZOBOJOIND", "ZZISORDEREDBY", "ZZADDMODCOUNTER", "ZZUSEHISTOGRAM", "ZZUSEHISTOGRAM2", "ZZDMAPS", "ZZDMAPS2", "ZZDMAPS3", "ZZDMAPS4", "ZZDMAPS5", "ZZDPRODUCTS", "ZZPARTITIONFS", "ZZDBSCAN", "ZZREGISTERFORSTREAM", "ZZNEST2", "ZZPREDCOUNTS", "ZZSTPATTERN", "ZZSTPATTERN2", "ZZSTPATTERNEX", "ZZSTPATTERNEX2", "ZZSTPATTERNEXTEND", "ZZSTPATTERNEXTEND2", "ZZSTPATTERNEXEXTEND", "ZZSTPATTERNEXEXTEND2", "ZZSTPATTERNEXTENDSTREAM", "ZZSTPATTERNEXTENDSTREAM2", "ZZSTPATTERNEXEXTENDSTREAM", "ZZSTPATTERNEXEXTENDSTREAM2", "ZZCOMPUTECLOSURE", "ZZOCONSUME", "ZZREMOVE", "ZZREDUCE", "ZZRENAMEATTR", "ZZTSMOTIFBFFUN", "ZZTSDISTANCEFUN", "';'", "'{'", "'}'", "'|'", "'('", "')'", "'['", "']'", "','", "'.'", "$accept", "commands", "command", "whilecommand", "commandblock", "commandblock1", "commandblock2", "commandseq", "conditionalcommand", "basic", "$@1", "$@2", "$@3", "$@4", "$@5", "$@6", "$@7", "$@8", "transaction", "database", "filename", "inquiries", "set", "typeexpr", "typeexpr2", "constructor", "typeexprs", "namedfunction", "function", "arg", "args", "attribute", "attribute2", "constant", "nestedlist", "rest", "atom", "list", "elems", "elem", "naming", "valueexprlistcomma", "simplearguments", "valueexpr", "GDIJKSTRA_fun", "$@9", "MINPATHCOST2_fun", "$@10", "GBIDIJKSTRA_fun", "$@11", "MTMINPATHCOSTS2_fun", "$@12", "D_SEND_SHUFFLE_fun", "$@13", "DSHUFFLE_fun", "$@14", "DSHUFFLE2_fun", "$@15", "DSHUFFLE1_fun", "$@16", "DLOOP_OLD_fun", "$@17", "DLOOPA_OLD_fun", "$@18", "DTIE_fun", "$@19", "PARTITIONDMAP_fun", "$@20", "DMAPPDMAP_fun", "$@21", "FDISTRIBUTE2TES_fun", "$@22", "DISTRIBUTE2TES_fun", "$@23", "OPTICSF_fun", "$@24", "OPTICSTF_fun", "$@25", "FILTERV_fun", "$@26", "FILTERNP_fun", "$@27", "EXTENDV_fun", "EXTENDV_fun_1", "$@28", "EXTENDV_funlist", "EXTENDV_funlist_1", "PROJECTEXTENDV_fun", "PROJECTEXTENDV_fun_1", "$@29", "PROJECTEXTENDV_funlist", "PROJECTEXTENDV_funlist_1", "EXTENDNP_fun", "EXTENDNP_fun_1", "$@30", "EXTENDNP_funlist", "EXTENDNP_funlist_1", "PROJECTEXTENDNP_fun", "PROJECTEXTENDNP_fun_1", "$@31", "PROJECTEXTENDNP_funlist", "PROJECTEXTENDNP_funlist_1", "APPLYPREDICATE_fun", "$@32", "FILTER_fun", "$@33", "CFILTER_fun", "$@34", "CAND_fun", "$@35", "COR_fun", "$@36", "WITHIN_fun", "$@37", "WITHIN2_fun", "$@38", "WHILEDO_fun", "$@39", "FUNSEQ1_fun", "$@40", "FUNSEQ2_fun", "$@41", "FUNSEQ3_fun", "$@42", "FUNSEQ4_fun", "$@43", "FUNSEQ5_fun", "$@44", "FUNSEQ6_fun", "$@45", "DDISTRIBUTE4_fun", "$@46", "FDISTRIBUTE7_fun", "$@47", "DLOOP_fun", "$@48", "DLOOP2_fun", "$@49", "DMAP_fun", "$@50", "PDMAP_fun", "$@51", "DMAP2n_fun", "$@52", "DMAP2_fun", "$@53", "DMAP3_fun", "$@54", "DMAP4_fun", "$@55", "DMAP5_fun", "$@56", "DMAP6_fun", "$@57", "DMAP7_fun", "$@58", "DMAP8_fun", "$@59", "PDMAP2_fun", "$@60", "PDMAP3_fun", "$@61", "PDMAP4_fun", "$@62", "PDMAP5_fun", "$@63", "PDMAP6_fun", "$@64", "PDMAP7_fun", "$@65", "PDMAP8_fun", "$@66", "DFDISTRIBUTE4_fun", "$@67", "PARTITION_fun", "$@68", "PARTITIONF_fun", "$@69", "AREDUCE_fun", "$@70", "AREDUCE2_fun", "$@71", "AREDUCE2F_fun", "$@72", "DPRODUCT_fun", "$@73", "DDISTRIBUTE_fun", "$@74", "DFDISTRIBUTE_fun", "$@75", "PARTITION8LOCAL_fun", "$@76", "PARTITIONF8_fun", "$@77", "LOOPJOINREL_fun", "$@78", "CONSTGRAPH_fun", "$@79", "CONSTGRAPHPOINTS_fun", "$@80", "EXISTS_fun", "$@81", "FORALL_fun", "$@82", "PARAJOIN_fun", "$@83", "HADOOPJOIN_fun", "$@84", "MUPDATE_fun", "MUPDATE_fun_1", "$@85", "MUPDATE_funlist", "MUPDATE_funlist_1", "MUPDATESAVE_fun", "MUPDATESAVE_fun_1", "$@86", "MUPDATESAVE_funlist", "MUPDATESAVE_funlist_1", "MUPDATEBYID_fun", "MUPDATEBYID_fun_1", "$@87", "MUPDATEBYID_funlist", "MUPDATEBYID_funlist_1", "MUPDATEDIRECT2_fun", "MUPDATEDIRECT2_fun_1", "$@88", "MUPDATEDIRECT2_funlist", "MUPDATEDIRECT2_funlist_1", "MOSHORTESTPATHD_fun", "$@89", "MOSHORTESTPATHA_fun", "$@90", "MGSHORTESTPATHD_fun", "$@91", "MGSHORTESTPATHA_fun", "$@92", "MPQREORDER_fun", "$@93", "MPQREORDERUPDATE_fun", "$@94", "CREATEMGRAPH2_fun", "$@95", "CREATEMGRAPH2FLOB_fun", "$@96", "MG2INSERTORIG_fun", "$@97", "MEMGROUPBY_fun", "MEMGROUPBY_fun_1", "$@98", "MEMGROUPBY_funlist", "MEMGROUPBY_funlist_1", "PUSE_fun", "$@99", "PJOIN2_fun", "PJOIN2_fun_1", "$@100", "PJOIN2_funlist", "PJOIN2_funlist_1", "PJOIN1_fun", "PJOIN1_fun_1", "$@101", "PJOIN1_funlist", "PJOIN1_funlist_1", "SORTARRAY_fun", "$@102", "TIE_fun", "$@103", "CUMULATE_fun", "$@104", "LOOP_fun", "$@105", "LOOPA_fun", "$@106", "LOOPB_fun", "$@107", "LOOPSWITCH_fun", "LOOPSWITCH_fun_1", "$@108", "LOOPSWITCH_funlist", "LOOPSWITCH_funlist_1", "LOOPSWITCHA_fun", "LOOPSWITCHA_fun_1", "$@109", "LOOPSWITCHA_funlist", "LOOPSWITCHA_funlist_1", "LOOPSWITCHB_fun", "LOOPSWITCHB_fun_1", "$@110", "LOOPSWITCHB_funlist", "LOOPSWITCHB_funlist_1", "LOOPSELECT_fun", "LOOPSELECT_fun_1", "$@111", "LOOPSELECT_funlist", "LOOPSELECT_funlist_1", "LOOPSELECTA_fun", "LOOPSELECTA_fun_1", "$@112", "LOOPSELECTA_funlist", "LOOPSELECTA_funlist_1", "LOOPSELECTB_fun", "LOOPSELECTB_fun_1", "$@113", "LOOPSELECTB_funlist", "LOOPSELECTB_funlist_1", "PARTJOIN_fun", "$@114", "PARTJOINSWITCH_fun", "PARTJOINSWITCH_fun_1", "$@115", "PARTJOINSWITCH_funlist", "PARTJOINSWITCH_funlist_1", "PARTJOINSELECT_fun", "PARTJOINSELECT_fun_1", "$@116", "PARTJOINSELECT_funlist", "PARTJOINSELECT_funlist_1", "EXTEND_fun", "EXTEND_fun_1", "$@117", "EXTEND_funlist", "EXTEND_funlist_1", "PARAJOIN2_fun", "$@118", "DRELFILTER_fun", "$@119", "DRELEXTEND_fun", "DRELEXTEND_fun_1", "$@120", "DRELEXTEND_funlist", "DRELEXTEND_funlist_1", "DRELPROJECTEXTEND_fun", "DRELPROJECTEXTEND_fun_1", "$@121", "DRELPROJECTEXTEND_funlist", "DRELPROJECTEXTEND_funlist_1", "DRELLGROUPBY_fun", "DRELLGROUPBY_fun_1", "$@122", "DRELLGROUPBY_funlist", "DRELLGROUPBY_funlist_1", "DRELGROUPBY_fun", "DRELGROUPBY_fun_1", "$@123", "DRELGROUPBY_funlist", "DRELGROUPBY_funlist_1", "DRELUPDATE_fun", "DRELUPDATE_fun_1", "$@124", "DRELUPDATE_funlist", "DRELUPDATE_funlist_1", "DRELUPDATEBYID_fun", "DRELUPDATEBYID_fun_1", "$@125", "DRELUPDATEBYID_funlist", "DRELUPDATEBYID_funlist_1", "DRELFILTERADDID_fun", "$@126", "DRELFILTERDELETE_fun", "$@127", "DRELFILTERUPDATE_fun", "DRELFILTERUPDATE_fun_1", "$@128", "DRELFILTERUPDATE_funlist", "DRELFILTERUPDATE_funlist_1", "DBSCANF_fun", "$@129", "DBSCANTF_fun", "$@130", "PFILTERS_fun", "$@131", "PEXTEND_fun", "PEXTEND_fun_1", "$@132", "PEXTEND_funlist", "PEXTEND_funlist_1", "PEXTENDSTREAM_fun", "PEXTENDSTREAM_fun_1", "$@133", "PEXTENDSTREAM_funlist", "PEXTENDSTREAM_funlist_1", "PLOOPSEL_fun", "$@134", "PLOOPJOIN_fun", "$@135", "PAGGREGATE_fun", "$@136", "PAGGREGATEB_fun", "$@137", "AGGREGATES_fun", "$@138", "USE_fun", "$@139", "USE2_fun", "$@140", "TS_fun", "TS_fun_1", "$@141", "TS_funlist", "TS_funlist_1", "AS_fun", "$@142", "streamfun_fun", "$@143", "prog_fun", "$@144", "SYNC_fun", "$@145", "SideEffect_fun", "$@146", "OSHORTESTPATHD_fun", "$@147", "OSHORTESTPATHA_fun", "$@148", "READ2_fun", "$@149", "READ3_fun", "$@150", "RDERIVE_fun", "$@151", "READ3_1_fun", "$@152", "READ3_2_fun", "$@153", "FILTERX_fun", "$@154", "UPDATESEARCH_fun", "UPDATESEARCH_fun_1", "$@155", "UPDATESEARCH_funlist", "UPDATESEARCH_funlist_1", "UPDATEDIRECT_fun", "UPDATEDIRECT_fun_1", "$@156", "UPDATEDIRECT_funlist", "UPDATEDIRECT_funlist_1", "UPDATEDIRECT2_fun", "UPDATEDIRECT2_fun_1", "$@157", "UPDATEDIRECT2_funlist", "UPDATEDIRECT2_funlist_1", "UPDATEBYID2_fun", "UPDATEBYID2_fun_1", "$@158", "UPDATEBYID2_funlist", "UPDATEBYID2_funlist_1", "UPDATESEARCHSAVE_fun", "UPDATESEARCHSAVE_fun_1", "$@159", "UPDATESEARCHSAVE_funlist", "UPDATESEARCHSAVE_funlist_1", "UPDATEDIRECTSAVE_fun", "UPDATEDIRECTSAVE_fun_1", "$@160", "UPDATEDIRECTSAVE_funlist", "UPDATEDIRECTSAVE_funlist_1", "UPDATEBYID_fun", "UPDATEBYID_fun_1", "$@161", "UPDATEBYID_funlist", "UPDATEBYID_funlist_1", "FILTERINSERT_fun", "$@162", "CPROJECTEXTEND_fun", "CPROJECTEXTEND_fun_1", "$@163", "CPROJECTEXTEND_funlist", "CPROJECTEXTEND_funlist_1", "MAP_fun", "$@164", "MAP2_fun", "$@165", "MATCHGRID_fun", "$@166", "REPLACEELEM_fun", "$@167", "GROUPBY2_fun", "GROUPBY2_fun_1", "$@168", "GROUPBY2_funlist", "GROUPBY2_funlist_1", "HADOOPMAP_fun", "$@169", "HADOOPREDUCE_fun", "$@170", "HADOOPREDUCE2_fun", "$@171", "HADOOPMAP2_fun", "$@172", "GPATTERN_fun", "$@173", "CROSSPATTERN_fun", "$@174", "MTHREADEDFILTER_fun", "$@175", "CANCEL_fun", "$@176", "PROJECTEXTEND_fun", "PROJECTEXTEND_fun_1", "$@177", "PROJECTEXTEND_funlist", "PROJECTEXTEND_funlist_1", "EXTENDSTREAM_fun", "EXTENDSTREAM_fun_1", "$@178", "EXTENDSTREAM_funlist", "EXTENDSTREAM_funlist_1", "PROJECTEXTENDSTREAM_fun", "PROJECTEXTENDSTREAM_fun_1", "$@179", "PROJECTEXTENDSTREAM_funlist", "PROJECTEXTENDSTREAM_funlist_1", "GROUPBY_fun", "GROUPBY_fun_1", "$@180", "GROUPBY_funlist", "GROUPBY_funlist_1", "SLIDINGWINDOW_fun", "SLIDINGWINDOW_fun_1", "$@181", "SLIDINGWINDOW_funlist", "SLIDINGWINDOW_funlist_1", "LOOPJOIN_fun", "$@182", "LOOPSEL_fun", "$@183", "AGGREGATE_fun", "$@184", "AGGREGATEB_fun", "$@185", "SYMMJOIN_fun", "$@186", "SYMMOUTERJOIN_fun", "$@187", "SYMMPRODUCTEXTEND_fun", "SYMMPRODUCTEXTEND_fun_1", "$@188", "SYMMPRODUCTEXTEND_funlist", "SYMMPRODUCTEXTEND_funlist_1", "EXTEND_LAST_fun", "EXTEND_LAST_fun_1", "$@189", "EXTEND_LAST_funlist", "EXTEND_LAST_funlist_1", "EXTEND_NEXT_fun", "EXTEND_NEXT_fun_1", "$@190", "EXTEND_NEXT_funlist", "EXTEND_NEXT_funlist_1", "REPLACEATTR_fun", "REPLACEATTR_fun_1", "$@191", "REPLACEATTR_funlist", "REPLACEATTR_funlist_1", "PFILTER_fun", "$@192", "EXTENDX_fun", "$@193", "ADDMODCOUNTER_fun", "$@194", "USEHISTOGRAM_fun", "$@195", "USEHISTOGRAM2_fun", "$@196", "DMAPS_fun", "$@197", "DMAPS2_fun", "$@198", "DMAPS3_fun", "$@199", "DMAPS4_fun", "$@200", "DMAPS5_fun", "$@201", "DPRODUCTS_fun", "$@202", "PARTITIONFS_fun", "$@203", "DBSCAN_fun", "$@204", "REGISTERFORSTREAM_fun", "$@205", "PREDCOUNTS_fun", "PREDCOUNTS_fun_1", "$@206", "PREDCOUNTS_funlist", "PREDCOUNTS_funlist_1", "STPATTERNEXTEND_fun", "STPATTERNEXTEND_fun_1", "$@207", "STPATTERNEXTEND_funlist", "STPATTERNEXTEND_funlist_1", "STPATTERNEXTEND2_fun", "STPATTERNEXTEND2_fun_1", "$@208", "STPATTERNEXTEND2_funlist", "STPATTERNEXTEND2_funlist_1", "STPATTERNEXEXTEND_fun", "STPATTERNEXEXTEND_fun_1", "$@209", "STPATTERNEXEXTEND_funlist", "STPATTERNEXEXTEND_funlist_1", "STPATTERNEXEXTEND2_fun", "STPATTERNEXEXTEND2_fun_1", "$@210", "STPATTERNEXEXTEND2_funlist", "STPATTERNEXEXTEND2_funlist_1", "STPATTERNEXTENDSTREAM_fun", "STPATTERNEXTENDSTREAM_fun_1", "$@211", "STPATTERNEXTENDSTREAM_funlist", "STPATTERNEXTENDSTREAM_funlist_1", "STPATTERNEXTENDSTREAM2_fun", "STPATTERNEXTENDSTREAM2_fun_1", "$@212", "STPATTERNEXTENDSTREAM2_funlist", "STPATTERNEXTENDSTREAM2_funlist_1", "STPATTERNEXEXTENDSTREAM_fun", "STPATTERNEXEXTENDSTREAM_fun_1", "$@213", "STPATTERNEXEXTENDSTREAM_funlist", "STPATTERNEXEXTENDSTREAM_funlist_1", "STPATTERNEXEXTENDSTREAM2_fun", "STPATTERNEXEXTENDSTREAM2_fun_1", "$@214", "STPATTERNEXEXTENDSTREAM2_funlist", "STPATTERNEXEXTENDSTREAM2_funlist_1", "REDUCE_fun", "$@215", "TSMOTIFBFFUN_fun", "$@216", "TSDISTANCEFUN_fun", "$@217", YY_NULLPTR }; static const char * yysymbol_name (yysymbol_kind_t yysymbol) { return yytname[yysymbol]; } #endif #define YYPACT_NINF (-2280) #define yypact_value_is_default(Yyn) \ ((Yyn) == YYPACT_NINF) #define YYTABLE_NINF (-44) #define yytable_value_is_error(Yyn) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const int yypact[] = { 3614, 62, 92, 24, 3, 94, 105, 85, 118, 143, 89, 141, 39, 51, 66, 1242, 1242, 3614, 620, 172, -196, -2280, -2280, -2280, -2280, -2280, -2280, 157, 156, 158, 155, 160, 161, 96, 153, -2280, -2280, -2280, -2280, 131, 133, -2280, 181, 182, 183, 38, -2280, -2280, -2280, -2280, -2280, 184, -2280, 159, 162, 163, 185, 152, -2280, -2280, -2280, -2280, -2280, -2280, 187, -2280, -2280, -179, 17, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -178, -176, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 1242, 154, -2280, -2280, -2280, -2280, -2280, 10957, 11333, -2280, -40, -2280, -238, -2280, 3565, 195, 1242, 1242, 1242, 1242, 196, 197, 198, 200, 38, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 38, -168, 38, 12, -2280, -167, -2280, 18, 18, 18, 175, -2280, -2280, 241, -2280, -43, 253, 1788, 11709, 52, -2280, -2280, -164, -169, -2280, 1242,112477, 1242, 1242, 3614, -2280, -162, -161, -160, -159, -157, -156, -155, -154, -145, -144, -143, -142, -141, -140, -139, -138, -137, -136, -135, -134, -133, -132, -123, -120, -111, -107, -106, -105, -104, -103, -102, -100, -99, -98, -97, -96, -94, -93, -92, -91, -89, -88, -87, -85, -83, -82, -77, -76, -75, -73, -70, -68, -58, -57, -56, -55, -46, -45, -41, -39, -38, -37, -36, -35, -34, -33, -32, -30, -29, -28, -26, -25, -24, -23, -22, -21, -20, -19, -18, -16, -12, -11, -10, -9, -8, -7, -6, -5, -4, -3, -1, 1, 2, 4, 5, 6, 7, 8, 9, 11, 14, 16, 19, 21, 23, 35, 37, 40, 54, 57, 59, 60, 61, 63, 64, 65, 67, 68, 69, 70, 81, 83, 87, 88, 114, 115, 120, 122, 123, 124, 125, 126, 127, 129, 137, 138, 139, 166, 167, 169, 174, 176, 186, 189, 190, 193, 199, 206, 207, 208, 215, 217, 223, 229, 233, 238, 240, 242, 243, 245, 246, 247, 248, 249, 254, 255, 257, 258, 262, 272, 275, 279, 281, 283, 284, 285, 286, 287, 289, 290, 292, 293, 296, 298, 299, 300, 302, 303, 304, 306, 308, 309, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 329, 41, 10581, 3614, -2280, 3614, -2280, -2280, 224,112477,112477,112477,112477, 222, 339, 237, -2280, -2280, -2280, 1242, -2280, -298, -2280, -229, 38, -2280, -2280, -2280, -2280, -2280, 18, -292, 38, 1242, -2280, -279, -2280, -251,112477, -2280, -250, -2280, -2280, -2280, -2280, -2280, -2280, 22, 27, 104, 29, -2280, -2280, -2280, -2280, 241,112477, 10581,112477,112477, 93, 1242, 241, 241, 241, 241, 1242, 1242, 342, 342, 342, 342, 342, 342, 1242, 1242, 1242, 1242, 1242, 241, 241, 1242, 1242, 342, 342, 20, 241, 20, 241, 241, 342, 241, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 342, 1242, 342, 1242, 1242, 241, 342, 342, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 241, 1242, 1242, 1242, 241, 241, 241, 1242, 1242, 241, 1242, 1242, 1242, 1242, 342, 342, 1242, 1242, 1242, 241, 342, 1242, 342, 342, 342, 342, 20, 20, 20, 342, 20, 241, 241, 241, 241, 241, 241, 342, 342, 20, 241, 241, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 342, 342, 20, 342, 342, 342, 342, 342, 241, 241, 241, 241, 1242, 1242, 342, 342, 1242, 342, 241, 1242, 342, 241, 342, 1242, 342, 241, 241, 241, 241, 241, 241, 241, 241, 241, 342, 342, 241, 342, 342, 241, 241, 20, 241, 241, 1242, 241, 342, 342, 1242, 1242, 1242, 1242, 241, 20, 20, 20, 342, 241, 241, 1242, 241, 1242, 1242, 342, 241, 20, 241, 241, 241, 241, 20, 20, 20, 20, 20, 20, 20, 20, 241, 241, 241, 342, 241, 1242, 43, -319, 15, 371, 330, -2280, 331, 332, 333, 334, 335, 338, 340, 341, 343, 344, 346, 347, 349, 350, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 364, 365, 367, 368, 369, 370, 372, 373, 374, 375, 376, 377, 378, 380, 381, 382, 383, 384, 385, 387, 388, 389, 391, 392, 10205, 379, -2280, 1242, 1242, 421, 1242, 12085, -2280, 38, -2280, -249, -2280, -2280, -2280, 12461, 1242, 442, -2280, 1242, -2280, 1242, -2280, -2280, -2280, -2280, 27, -2280, 27, 130, 130, 38, -2280, 3614, -2280, 50, -306, 164, 171, 165, 393, 12837, 13213, -2280, 151, 1242, -2280, 395, 1242, -2280, 396, 1242, -2280, 394, 1242, -2280, 399, 1242, -2280, 400, 1242, 13589, 13965, 14341, 14717, 15093, 402, 403, 15469, 15845, -2280, 404, 1242, -2280, 406, 1242, -2280, 342, -2280, 328, 1242, 408, 410, 204, -2280, 342, -2280, 465, 1242, 409, 411, 422, 414, -2280, 417, 1242, 418, -2280, 420, 1242, -2280, 423, 1242, -2280, 424, 1242, -2280, 425, 1242, -2280, 427, 1242, -2280, 428, 1242, -2280, 429, 1242, -2280, 430, 1242, -2280, 431, 1242, -2280, 432, 1242, -2280, 433, 1242, -2280, 435, 1242, 16221, 16597, 16973, 17349, 17725, 18101, 18477, 18853, 19229, 19605, -2280, 436, 1242, 19981, -2280, 438, 1242, 20357, 20733, 440, -2280, 441, 1242, -2280, 443, 1242, 437, 449, 451, 453, 454, 456, 450, 458, 452, 455, 457, 460, 21109, 21485, 21861, 461, 459, 462, 22237, 22613, 463, 22989, 23365, 23741, 24117, -2280, 464, 1242, -2280, 466, 1242, 24493, 24869, 25245, 467, -2280, 468, 1242, 25621, -2280, 469, 1242, -2280, 470, 1242, -2280, 471, 1242, -2280, 472, 1242, -2280, 342, -2280, 497, 1242, 473, 474, -2280, 342, -2280, 734, 1242, 481, 476, -2280, 342, -2280, 739, 1242, 478, 479, -2280, 482, 1242, -2280, 342, -2280, 767, 1242, 483, 480, 491, 485, 487, 495, 496, 498, -2280, 492, 1242, -2280, 494, 1242, -2280, 342, 502, 769, 1242, 500, 501, 25997, 26373, 26749, 27125, 27501, 27877, 28253, 28629, 29005, 29381, -2280, 504, 1242, -2280, 503, 1242, -2280, 342, -2280, 772, 1242, 505, 506, -2280, 508, 1242, -2280, 509, 1242, -2280, 512, 1242, -2280, 514, 1242, -2280, 510, 1242, 516, 517, 519, 513, 29757, 30133, -2280, 520, 1242, -2280, 521, 1242, 30509, -2280, 525, 1242, 526, 30885, -2280, 528, 1242, 534, -2280, 530, 1242, 31261, -2280, 531, 1242, 539, 540, 535, 541, 543, 544, 545, 547, 548, -2280, 542, 1242, -2280, 550, 1242, 546, -2280, 549, 1242, -2280, 552, 1242, 553, 551, -2280, 342, -2280, 776, 1242, 554, 555, 562, 564, 31637, 558, -2280, 559, 1242, -2280, 560, 1242, 32013, 32389, 32765, 33141, 571, -2280, 342, -2280, 777, 1242, 566, 567, -2280, 342, -2280, 809, 1242, 569, 570, -2280, 342, -2280, 813, 1242, 572, 573, -2280, 576, 1242, 574, 577, 33517, 580, 33893, 34269, -2280, 578, 1242, 590, -2280, 342, -2280, 856, 1242, 586, 588, 597, 598, 599, 600, -2280, 342, -2280, 859, 1242, 601, 594, -2280, 342, -2280, 908, 1242, 605, 603, -2280, 342, -2280, 911, 1242, 608, 604, -2280, 342, -2280, 913, 1242, 613, 606, -2280, 342, -2280, 920, 1242, 617, 610, -2280, 342, -2280, 924, 1242, 624, 618, -2280, 342, -2280, 929, 1242, 627, 621, -2280, 342, -2280, 932, 1242, 630, 623, 632, 626, 629, -2280, 631, 1242, 633, 34645, -2280, -2280, 146, 148, 635, 1242, 1242, 1242, 342, 241, 342, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 20, 1242, 342, 342, 20, 20, 20, 20, 342, 20, 20, 1242, 20, 1242, 342, 342, 241, 20, 20, 1242, 1242, 342, 241, 241, 1242, 342, 342, 20, 241, 241, 1242, 1242, 1242, 342, 628, 637, 638, -2280, 640, 641, 642, 643, 644, 9829, -2280,112477, 112477, -2280,112477, -2280, -2280, -2280, 1242, 35021, -2280,112477, 35397, -2280, -2280, 634, 646, -233, 961, 1242, -2280, 1242, -2280, 1242, -2280, 1242, 1242, 1242,112477, 1242,112477, 1242, 112477, -2280,112477, -2280,112477, -2280,112477, 342, 342, 342, 342, 1242, -2280, -2280, 1242, 1242, 1242,112477, -2280,112477, 958, 1242,112477, -2280, 20, 20, 959, 1242,112477, -2280, 20, 20, -2280, -2280,112477, -2280, -2280,112477, 1242,112477, 342,112477, 342,112477, -2280,112477, 342,112477, -2280,112477, 342,112477, 342,112477, 342,112477, 342,112477, 342,112477, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342, 342,112477, 342, -2280,112477, 1242, 1242, -2280, -2280,112477, -2280,112477, 241, 241, 241, 241, 241, 241, -2280, 241, -2280, -2280, -2280, 1242, 20, 1242, 20, 241, -2280, -2280, 1242, 1242, -2280, 1242, 1242, 1242, 1242, -2280,112477, 1242, 112477, 1242, 1242, 1242, 20, -2280,112477, 241, -2280,112477, -2280,112477, -2280,112477, -2280,112477, 960, 1242,112477, -2280, 20, 962, 1242,112477, 1242, 20, 963, 1242,112477, -2280, 20, -2280,112477, 964, 1242,112477, -2280, 20, 20, -2280, -2280, 20, 20, 1242, -2280,112477, -2280,112477, 966, 20, 1242,112477, -2280, -2280, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242,112477, -2280,112477, 967, 1242, 112477, -2280, 20, -2280,112477, -2280,112477, 1242,112477, 1242, 112477, -2280,112477, -2280, -2280, -2280, 241, 1242, 1242, -2280, 112477, -2280,112477, 342, -2280,112477, -2280, 20, 1242,112477, 20, -2280,112477, 342, -2280,112477, 20, 241, -2280, 342, 342, 241, 241, 241, 241, 342,112477, 342,112477, -2280, -2280,112477, -2280,112477, -2280, 20, 969, 1242,112477, -2280, 20, 20, 20, 1242, -2280, -2280,112477, -2280,112477, 342, 342, 241, 241, 241, 970, 1242,112477, -2280, 20, 971, 1242,112477, -2280, 20, 972, 1242,112477, -2280, 20, -2280, 112477, 342, -2280, 1242, 342, 342, 342, 1242,112477, 1242, 973, 1242,112477, -2280, 20, 241, 241, 241, 241, 974, 1242,112477, 241, 20, 975, 1242,112477, 241, 20, 976, 1242,112477, 241, 20, 977, 1242,112477, 241, 20, 979, 1242,112477, 241, 20, 980, 1242,112477, 241, 20, 981, 1242,112477, 241, 20, 982, 1242,112477, 241, 20, 241, -2280, -2280, 1242,112477, -2280, 1242, 655, 677, 678, 680, -2280, -302, 35773, 36149, -2280, 676, 1242, 679, -2280, 682, 1242, 36525, 36901, 37277, 37653, 38029, 38405, 38781, 39157, 39533, 39909, -2280, 342, -2280, 988, 1242, 683, 684, 40285, -2280, 687, 1242, -2280, 689, 1242, -2280, 342, -2280, 989, 1242, 690, 691, -2280, 342, -2280, 991, 1242, 693, 695, -2280, 342, -2280, 995, 1242, 698, 696, -2280, 342, -2280, 1005, 1242, 705, 699, -2280, 702, 1242, -2280, 342, -2280, 1010, 1242, 703, 704, -2280, 342, -2280, 1015, 1242, 713, 706, 40661, -2280, 342, -2280, 1019, 1242, 716, 709, 41037, -2280, 711, 1242, -2280, 714, 1242, 715, -2280, 342, -2280, 1024, 1242, 717, 719, -2280, 342, -2280, 1027, 1242, 718, 720, 41413, 41789, -2280, 722, 1242, 730, 731, -282, -2280, 725, 1242, -2280, 727, 1242, -2280, 342, -2280, 1039, 1242, 729, 733, 732, 737, 42165, 42541, 42917, -2280, 735, 1242, 1242, 1242, 1242, 342, 342, 20, 20, 1242, 738, 740, 742, 743, 9453,112477, 1242, -2280, -2280, -2280, -2280, -2280, 745, 43293, 43669, 44045, 44421, 44797, 45173, 45549, -2280, 744, 1242, -2280, 747, 1242, -2280, 748, 1242, -2280, 749, 1242, 45925, 46301, 46677, 47053, 1242,112477, -2280, -2280, 342, -2280, 1042, 1242, 736, 750, 1242,112477, -2280, -2280, 342, -2280, 1054, 1242, 746, 751, 47429, 753, 755, 763, 757, 758, 759, 761, 762, -2280, 764, 1242, -2280, 765, 1242, -2280, 768, 1242, -2280, 770, 1242, -2280, 766, 1242, -2280, 771, 1242, -2280, 773, 1242, -2280, 774, 1242, -2280, 775, 1242, -2280, 779, 1242, 781, -2280, 792, 1242, 47805, 48181, 778, 780, 802, 803, 804, 805, 806, 48557, -2280, 342, -2280, 1055, 1242, 800, 801, 48933, -2280, 342, -2280, 1069, 1242, 807, 810, 808, 49309, 49685, 50061, 50437, 50813, 51189, 51565, 51941, 52317, 52693, -2280, 342, -2280, 1075, 1242, 814, 817, 819, 1242,112477, -2280, 1242,112477, 53069, -2280, 1242,112477, -2280, 1242,112477, -2280, -2280, 342, -2280, 1112, 1242, 820, 825, -2280, 342, -2280, 1114, 1242, 827, 828, -2280, 342, -2280, 1116, 1242, 830, 831, 53445, 1242, -2280, 833, 834,112477, 53821, 54197, 54573, 54949, 55325, 55701, 56077, 56453, 56829, 57205, 57581, 1242,112477, -2280, 57957, 58333, 837, 58709, 59085, -2280, 838, 1242, -2280, 342, -2280, 1121, 1242, 839, 840, 59461, -2280, 342, -2280, 1139, 1242, 842, 843, -2280, 845, 1242, -2280, 342, -2280, 1142, 1242, 847, 848, 841, -2280, 850, 1242, -2280, 851, 1242, 852, 853, 854, 855, 858, 860, -2280, 342, -2280, 1151, 1242, 857, 864, 1242,112477, -2280, -2280, 342, -2280, 1154, 1242, 867, 876, -2280, 342, -2280, 1159, 1242, 881, 885, 59837, -2280, 889, 1242, -2280, 894, 1242, 888, 891, 892, 1242,112477, -2280, 1242,112477, -2280, 1242,112477, -2280, -2280, 896, 1242, 60213, -2280, 893, 1242, -2280, 895, 1242, -2280, 897, 1242, 60589, 60965, 1242,112477, -2280, 899, 900, 901, 904, 1242,112477, 902, -2280, 1242, 112477, 903, -2280, 1242,112477, 912, -2280, 1242,112477, 915, -2280, 1242,112477, 906, -2280, 1242,112477, 909, -2280, 1242, 112477, 918, -2280, 1242,112477, 919, -2280, 914, 61341, 61717, -2280, -2280, -2280, -2280, -2280, 1242, 1242, -2280,112477, -2280, -2280,112477, 342, 342, 342, 342, 342, 342, 342, 1242, 20, 1242, 1212, 1242,112477, -2280, 20, 20, -2280,112477, -2280,112477, 1215, 1242,112477, -2280, 20, 1224, 1242,112477, -2280, 20, 1226, 1242,112477, 1242, 20, 1228, 1242,112477, 1242, 20, -2280,112477, 1229, 1242,112477, -2280, 20, 1231, 1242,112477, 1242, 20, 1242, 1233, 1242,112477, 1242, 20, 20, -2280,112477, -2280,112477, -2280, 1234, 1242,112477, -2280, 20, 1235, 1242,112477, -2280, 20, 20, 20, -2280,112477, 342, 342, -2280, -2280,112477, -2280,112477, 1236, 1242,112477, -2280, 20, -2280, 342, 342, 342, 342, -2280,112477, 62093, 62469, -276, -2280, 926, 1242, -2280, 927, 1242, -2280, 342, -2280, 1239, 1242, 930, 928, -2280, 342, -2280, 1243, 1242, 931, 941, 62845, 1242, 1242, 1242, 1242, 934, 944, 947, 9077,112477, -2280, 1242, 1242, 1242, 1242, 1242, -2280, 1242, 112477, 342,112477, 1242,112477, 1242,112477, 1242, 1242, 342, -2280,112477, 1258, 1242,112477, -2280, 20,112477, 1259, 1242, 112477, -2280, 20, 1242, -2280, -2280, 1242, -2280, 342, 342, 342, 342, 1242,112477, 1242,112477, -2280,112477, -2280,112477, 1242,112477, 1242,112477, 342,112477, 1242,112477, 342,112477, 342,112477, 1242, 342,112477, 342, 342, 241, 241, 241, 241, 241, 241, 241, -2280, 1260, 1242,112477, -2280, 20, 20, 1261, 1242,112477, -2280, 20, -2280, 1242, 1242, 1242, 1242, 1242, 241, -2280, 342, 342, 342, 1268, 1242,112477, -2280, 20, -2280,112477,112477, 1242,112477,112477, 1270, 1242, 112477, -2280, 20, 1271, 1242,112477, -2280, 20, 1272, 1242, 112477, -2280, 20, -2280,112477, -2280, 20, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 1242, 241, -2280,112477, -2280, 1242, -2280, 1242, 1242, -2280,112477, 1274, 1242,112477, -2280, 20, -2280, 1276, 1242,112477, -2280, 20, 1242,112477, 1278, 1242,112477, -2280, 20, 241, -2280,112477, -2280,112477, -2280, -2280, -2280, -2280, 1242, 342, 1279, 1242,112477, -2280, 20, 112477, 1282, 1242,112477, -2280, 20, 1287, 1242,112477, -2280, 20, 20, 1242,112477, 1242,112477, -2280, -2280, -2280,112477, 112477,112477, 1242,112477, 342, -2280,112477, -2280,112477, 342, 112477, 1242, -2280,112477, -2280, -2280, 1242, 1242,112477, -2280, 112477, -2280,112477, 20,112477, 20,112477, -2280,112477, -2280, 112477, 20,112477, 20, -2280, -2280, 342, 63221, 63597, -2280, 983, 1242, -2280, 984, 1242, -2280, 978, 1242, -2280, 986, 1242, -2280, 987, 1242, -2280, 990, 1242, -2280, 992, 1242, 63973, -2280, 342, -2280, 1288, 1242, 985, 993, 64349, 1242, 112477, -2280, -2280, 342, -2280, 1300, 1242, 997, 994, 1242, 112477, -2280, 1242,112477, -2280, 1242,112477, 64725, -2280, 1242, 112477, 65101, -2280, 1242,112477, -2280, 1242,112477, 65477, -2280, 65853, 1242,112477, 66229, -2280, -2280, 342, -2280, 1301, 1242, 999, 998, 1242,112477, -2280, 1242,112477, -2280, -2280, 342, -2280, 1309, 1242, 1000, 1001, -2280, 342, -2280, 1315, 1242, 1007, 1004, -2280, 1008, 1242, -2280, 1009, 1242, 1242,112477, -2280, -2280, 1011, 1242, -2280, 1012, 1242, -2280, 1014, 1242, -2280, 1016, 1242, 342, 342, -2280, -2280,112477, -2280,112477, 1321, 1242,112477, -2280, 20, 1326, 1242,112477, -2280, 20, 342, 66605, 66981, -260, 67357, 1242, 1242, 1242, 1018, 1020, 1021, 8701, 67733, 68109, 68485, 68861, 69237, 69613, 1017, 69989, 70365, 70741, 71117, -2280, 1023, 1242, 1242,112477, -2280, 1242, 112477, -2280, 71493, 71869, 1025, 1026, 1029, 1030, 72245, 72621, 72997, 73373, 1031, 73749, 1043, 1044, 74125, 1045, -2280, 1028, 1242, -2280, 1046, 1242, 1049, 1050, 1033, 1051, 1052, 1053, 1061, 1242,112477, -2280, -2280, 342, -2280, 1332, 1242, 1057, 1058, 1242,112477, -2280, 74501, 74877, 75253, 75629, 76005, 1060, -2280, 1062, 1242, -2280, 1063, 1242, -2280, 1067, 1242, 1242, 112477, -2280, 76381, 1242,112477, -2280, 1242,112477, -2280, 1242, 112477, -2280, -2280, 76757, 77133, 77509, 77885, 78261, 78637, 79013, 79389, 79765, 1064, 80141, 80517, 80893, 1242,112477, -2280, 1242, 112477, -2280, 81269, 1242,112477, -2280, 1070, 81645, 1068, 1242, 112477, -2280, 1242,112477, -2280, 1242,112477, -2280, -2280, 342, -2280, 1335, 1242, 1071, 1072, 82021, 82397, 82773, -2280, 1073, 1242, 1074, 83149, 83525, 83901, 1076, 1078, 1079, 1080, -2280, 1081, 1242, 1242, 1242, -2280,112477, -2280,112477, 1242,112477, 1242,112477, 1242,112477, 1242,112477, 1242,112477, 1242, 1366, 1242,112477, -2280, 20, 241,112477, 1372, 1242,112477, -2280, 20,112477,112477,112477, 1242,112477, 1242,112477,112477, 1242, 342,112477, -2280, 1383, 1242,112477, 1242, 20,112477,112477, 1393, 1242,112477, -2280, 20, 1394, 1242,112477, -2280, 20, -2280,112477, -2280,112477,112477, -2280,112477, -2280,112477, -2280, 112477, -2280,112477, -2280, 1083, 1242, -2280, 1084, 1242, 1242, 112477, -2280, 1242,112477, -2280, -2280, 1087, 1242, 342, 342, -2280, 342, 84277, 84653, 85029, 1242, 1242, 1242, 1089, 1090, 8325, 1242, 342, 342, -2280, -2280, 342, 1242, 1242, 1242, 241, 342, -2280,112477,112477,112477, 1242, -2280, -2280, 342, 342, 342, 1242, 1242, 1242, -2280, 1242, -2280, 1242, 1242, 1242, 342, -2280,112477, 1242,112477, -2280, -2280, 241, -2280, -2280, -2280, 241,112477, 1405, 1242,112477, -2280, 20,112477, 342, 342, 342, 342, 241, -2280, -2280,112477, -2280,112477, 1242,112477,112477, -2280,112477,112477,112477, 1242, 342, 342, 20, 20, 342, 342, 342, 342, -2280, -2280, 342, 342, 112477,112477, -2280,112477, -2280, 1242, 1242,112477,112477,112477, 1406, 1242,112477, -2280, 20, -2280, -2280, -2280, 342,112477, 1242, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280,112477, 85405, 85781, 86157, 86533, 86909, 87285, 87661, 88037, 1242,112477, -2280, 1096, 1242,112477, -2280, 88413, 88789, 89165, -2280, 1097, 1242, 1242,112477, 89541, -2280, 1242,112477, -2280, 1242,112477, -2280, 1242,112477, 1242,112477,112477,112477, -2280,112477, -2280, 1098, 1242, -2280, 1099, 1242, -2280, 1101, 1242, 342, 342, 342, 89917, 90293, -258, 1242, 1242, 1103, 1104, 6851, 90669, -2280, 1106, 1242, -2280, 1107, 1242, 1105, 91045, 91421, 91797, 1109, -2280, 1110, 1242, 92173, 1111, 1113, 1115, 92549, 92925, 93301, 93677, 94053, 94429, 94805, 1117, 95181, 1119, 1123, 1242, 112477, -2280, -2280, 1125, 1242, -2280, 1126, 1242, -2280, 1128, 1242, -2280, 1129, 1242, 1131, 95557, 95933, -2280, 1132, 1242, -2280, 1133, 1242, -2280, 342, -2280, 1409, 1242, 1135, 1136, -2280, 342, -2280, 1415, 1242, 1138, 1140, -2280, 1143, 1242, -2280, 1144, 1242, -2280, 1120, 1242, -2280, 1122, 1242, -2280, 1145, 1242, -2280, 1146, 1242, 96309, 96685, 1242,112477, -2280, 1149, 97061, 1242, 342, -2280, -2280, -2280, 1242, -2280, 1242, 112477, -2280,112477, -2280, -2280, -2280, -2280,112477,112477, -2280, 112477,112477, 97437, 97813, 1242,112477, 1242,112477, -2280,112477, -2280, 1150, 1242, -2280, 1152, 1242, -2280, 1158, 1242, 342, 342, -2280, 98189, 98565, 1242, 1242, 1118, -2280, 1242,112477, 1242,112477, -2280, 342, -2280, -2280, -2280, -2280,112477, -2280, -2280, 342, 342, -2280, -2280, -2280, -2280, 1242, 1242, 1242, 1242, 1242, -2280, -2280,112477, -2280,112477, 342,112477, -2280, 112477, 342,112477, -2280, -2280, 342, -2280,112477, -2280,112477, 1437, 1242,112477, -2280, 20, 1447, 1242,112477, -2280, 20, -2280,112477, -2280,112477, 1242,112477, 1242,112477, -2280,112477, 342,112477, 1242, 1242,112477, -2280, -2280, 98941, -2280, 1161, 1242, 99317, 99693, -2280, -2280,100069,100445, 1242,112477, 1242, 112477, -2280,112477, -2280, 1162, 1242, -2280, 1164, 1242, 342, 342,100821,101197, 1242,101573,101949, 1160, 1167, 1169,102325, 102701,103077,103453,103829, 1168, 1172, -2280, 1173, 1242, 1242, 112477, -2280, 1242,112477, -2280,104205,104581, 1175,104957,105333, 342, 1242,112477, -2280, 241, -2280, -2280,105709,106085, 1242, 112477, 1242,112477, -2280, 1176, 1242, -2280, 1177, 1242, 342, 342,106461, 1242, -2280, -2280, -2280, 342, 1242, 1242, 1242, 1242, -2280, -2280, -2280, -2280,112477,112477,112477, -2280, -2280, -2280, -2280, 1242, -2280, 1180, 1242,106837, 1147, -2280, -2280, 107213,107589, 1242,112477, 1242,112477, -2280, 1181, 1242, -2280, 1182, 1242, 342,107965, 1185,108341,108717,109093,109469,109845, -2280,112477, -2280, 342, -2280, -2280,110221,110597, 1242,112477, 1242,112477, -2280, 1186, 1242, -2280, -2280, -2280, -2280, 1242, -2280, -2280, -2280, 1188, 1242, -2280, -2280,110973,111349, 1242, 112477,111725, -2280,112477, -2280, -2280,112101, -2280, -2280 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_int16 yydefact[] = { 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 27, 0, 2, 12, 11, 14, 15, 10, 5, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 8, 9, 0, 0, 30, 0, 0, 0, 0, 29, 45, 46, 47, 48, 0, 52, 0, 0, 0, 0, 0, 59, 63, 64, 65, 66, 60, 0, 94, 95, 124, 0, 96, 97, 98, 100, 144, 145, 136, 99, 0, 0, 135, 137, 138, 139, 140, 141, 142, 143, 0, 112, 134, 126, 128, 129, 125, 0, 0, 21, 0, 17, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 50, 49, 79, 82, 80, 81, 0, 0, 0, 0, 26, 68, 51, 0, 0, 0, 0, 62, 61, 112, 88, 0, 0, 0, 0, 0, 118, 117, 0, 111, 113, 0, 115, 0, 0, 27, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 27, 18, 27, 16, 4, 0, 32, 34, 36, 38, 0, 0, 0, 67, 24, 73, 0, 83, 0, 72, 0, 0, 57, 58, 54, 53, 56, 0, 0, 0, 0, 92, 0, 157, 0, 119, 158, 0, 130, 79, 82, 80, 81, 108, 0, 0, 0, 75, 106, 77, 101, 133, 0, 85, 116, 153, 154, 0, 122, 112, 112, 112, 112, 0, 0, 455, 458, 461, 464, 467, 473, 0, 0, 0, 0, 0, 112, 112, 0, 0, 494, 497, 504, 112, 524, 112, 112, 540, 112, 543, 546, 549, 552, 555, 561, 564, 567, 570, 573, 576, 579, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 672, 0, 678, 0, 0, 112, 687, 690, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 112, 0, 0, 0, 112, 112, 112, 0, 0, 112, 0, 0, 0, 0, 751, 754, 0, 0, 0, 112, 776, 0, 799, 802, 805, 808, 821, 851, 904, 913, 920, 112, 112, 112, 112, 112, 112, 976, 979, 986, 112, 112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1033, 1036, 1046, 1052, 1055, 1058, 1061, 1064, 112, 112, 112, 112, 0, 0, 1073, 1076, 0, 1088, 112, 0, 1161, 112, 1174, 0, 1183, 112, 112, 112, 112, 112, 112, 112, 112, 112, 1208, 1211, 112, 1214, 1217, 112, 112, 1234, 112, 112, 0, 112, 1270, 1273, 0, 0, 0, 0, 112, 1302, 1312, 1322, 1328, 112, 112, 0, 112, 0, 0, 1364, 112, 1374, 112, 112, 112, 112, 1384, 1394, 1404, 1414, 1424, 1434, 1444, 1454, 112, 112, 112, 1460, 112, 0, 0, 0, 0, 0, 0, 163, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 70, 0, 71, 0, 55, 127, 91, 87, 0, 0, 155, 0, 156, 0, 107, 109, 110, 103, 0, 102, 0, 0, 0, 0, 114, 27, 23, 121, 0, 0, 0, 0, 0, 0, 0, 457, 0, 0, 460, 0, 0, 463, 0, 0, 466, 0, 0, 469, 0, 0, 475, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 496, 0, 0, 499, 0, 0, 506, 504, 508, 502, 0, 0, 507, 0, 526, 524, 528, 522, 0, 0, 527, 0, 0, 542, 0, 0, 0, 545, 0, 0, 548, 0, 0, 551, 0, 0, 554, 0, 0, 557, 0, 0, 563, 0, 0, 566, 0, 0, 569, 0, 0, 572, 0, 0, 575, 0, 0, 578, 0, 0, 581, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 674, 0, 0, 0, 680, 0, 0, 0, 0, 0, 689, 0, 0, 692, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 753, 0, 0, 756, 0, 0, 0, 0, 0, 0, 778, 0, 0, 0, 801, 0, 0, 804, 0, 0, 807, 0, 0, 810, 0, 0, 823, 821, 825, 819, 0, 0, 824, 853, 851, 855, 849, 0, 0, 854, 906, 904, 908, 902, 0, 0, 907, 915, 0, 0, 922, 920, 924, 918, 0, 0, 923, 0, 0, 0, 0, 0, 0, 978, 0, 0, 981, 0, 0, 988, 986, 0, 984, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1035, 0, 0, 1038, 0, 0, 1048, 1046, 1050, 1044, 0, 0, 1049, 1054, 0, 0, 1057, 0, 0, 1060, 0, 0, 1063, 0, 0, 1066, 0, 0, 0, 0, 0, 0, 0, 0, 1075, 0, 0, 1078, 0, 0, 0, 1090, 0, 0, 0, 0, 1163, 0, 0, 0, 1176, 0, 0, 0, 1185, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1210, 0, 0, 1213, 0, 0, 0, 1216, 0, 0, 1219, 0, 0, 0, 0, 1236, 1234, 1238, 1232, 0, 0, 1237, 0, 0, 0, 0, 1272, 0, 0, 1275, 0, 0, 0, 0, 0, 0, 0, 1304, 1302, 1306, 1300, 0, 0, 1305, 1314, 1312, 1316, 1310, 0, 0, 1315, 1324, 1322, 1326, 1320, 0, 0, 1325, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 1366, 0, 0, 0, 1376, 1374, 1378, 1372, 0, 0, 1377, 0, 0, 0, 0, 1386, 1384, 1388, 1382, 0, 0, 1387, 1396, 1394, 1398, 1392, 0, 0, 1397, 1406, 1404, 1408, 1402, 0, 0, 1407, 1416, 1414, 1418, 1412, 0, 0, 1417, 1426, 1424, 1428, 1422, 0, 0, 1427, 1436, 1434, 1438, 1432, 0, 0, 1437, 1446, 1444, 1448, 1442, 0, 0, 1447, 1456, 1454, 1458, 1452, 0, 0, 1457, 0, 0, 0, 1462, 0, 0, 0, 0, 146, 147, 0, 0, 0, 122, 0, 0, 470, 112, 558, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 783, 0, 811, 814, 831, 841, 861, 871, 877, 884, 894, 0, 960, 0, 1039, 1082, 112, 1095, 1105, 0, 0, 1177, 112, 112, 122, 1282, 1285, 1292, 112, 112, 0, 0, 0, 1466, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 13, 28, 40, 42, 44, 74, 84, 69, 0, 86, 93, 120, 0, 105, 104, 0, 0, 0, 0, 122, 160, 0, 164, 0, 166, 0, 0, 0, 456, 0, 459, 0, 462, 174, 465, 175, 468, 177, 474, 476, 479, 482, 485, 0, 183, 184, 0, 0, 0, 495, 188, 498, 500, 0, 505, 189, 504, 514, 520, 0, 525, 191, 524, 534, 193, 195, 541, 196, 197, 544, 0, 547, 549, 550, 552, 553, 201, 556, 561, 562, 204, 565, 567, 568, 570, 571, 573, 574, 576, 577, 579, 580, 582, 585, 588, 594, 645, 648, 651, 654, 666, 669, 672, 673, 675, 242, 679, 0, 0, 245, 247, 688, 248, 691, 112, 112, 112, 112, 112, 112, 258, 112, 260, 261, 262, 0, 703, 0, 723, 112, 269, 270, 0, 0, 273, 0, 0, 0, 0, 278, 752, 0, 755, 0, 0, 0, 770, 285, 777, 112, 289, 800, 290, 803, 291, 806, 292, 809, 817, 0, 822, 295, 821, 847, 0, 852, 0, 851, 900, 0, 905, 304, 904, 306, 914, 916, 0, 921, 307, 920, 930, 309, 310, 940, 950, 0, 316, 977, 317, 980, 982, 986, 0, 987, 319, 320, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1034, 334, 1037, 1042, 0, 1047, 336, 1046, 337, 1053, 338, 1056, 0, 1059, 0, 1062, 341, 1065, 342, 343, 344, 112, 0, 0, 348, 1074, 349, 1077, 1079, 353, 1089, 354, 1155, 0, 1162, 1168, 365, 1175, 1180, 368, 1184, 1190, 112, 371, 1196, 1199, 112, 112, 112, 112, 1208, 1209, 1211, 1212, 382, 383, 1215, 384, 1218, 385, 1224, 1230, 0, 1235, 387, 1234, 1244, 1254, 0, 391, 393, 1271, 394, 1274, 1276, 1279, 112, 112, 112, 1298, 0, 1303, 403, 1302, 1308, 0, 1313, 404, 1312, 1318, 0, 1323, 405, 1322, 406, 1329, 1331, 409, 0, 1337, 1343, 1361, 0, 1365, 0, 1370, 0, 1375, 423, 1374, 112, 112, 112, 112, 1380, 0, 1385, 112, 1384, 1390, 0, 1395, 112, 1394, 1400, 0, 1405, 112, 1404, 1410, 0, 1415, 112, 1414, 1420, 0, 1425, 112, 1424, 1430, 0, 1435, 112, 1434, 1440, 0, 1445, 112, 1444, 1450, 0, 1455, 112, 1454, 112, 437, 438, 0, 1461, 440, 0, 0, 0, 0, 0, 152, 0, 0, 0, 472, 0, 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 785, 783, 787, 781, 0, 0, 786, 0, 813, 0, 0, 816, 0, 0, 833, 831, 835, 829, 0, 0, 834, 843, 841, 845, 839, 0, 0, 844, 863, 861, 865, 859, 0, 0, 864, 873, 871, 875, 869, 0, 0, 874, 879, 0, 0, 886, 884, 888, 882, 0, 0, 887, 896, 894, 898, 892, 0, 0, 897, 0, 962, 960, 964, 958, 0, 0, 963, 0, 1041, 0, 0, 1084, 0, 0, 0, 1097, 1095, 1099, 1093, 0, 0, 1098, 1107, 1105, 1109, 1103, 0, 0, 1108, 0, 0, 1179, 0, 0, 0, 0, 0, 1284, 0, 0, 1287, 0, 0, 1294, 1292, 1296, 1290, 0, 0, 1295, 0, 0, 0, 0, 0, 1468, 0, 0, 0, 0, 122, 693, 1085, 1135, 1145, 0, 0, 0, 0, 0, 0, 90, 0, 78, 131, 132, 76, 22, 123, 0, 0, 0, 0, 0, 0, 0, 478, 0, 0, 481, 0, 0, 484, 0, 0, 487, 0, 0, 0, 0, 0, 0, 0, 503, 509, 516, 514, 518, 512, 0, 0, 517, 0, 523, 529, 536, 534, 538, 532, 0, 0, 537, 0, 0, 0, 0, 0, 0, 0, 0, 0, 584, 0, 0, 587, 0, 0, 590, 0, 0, 596, 0, 0, 647, 0, 0, 650, 0, 0, 653, 0, 0, 656, 0, 0, 668, 0, 0, 671, 0, 0, 0, 677, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 705, 703, 707, 701, 0, 0, 706, 0, 725, 723, 727, 721, 0, 0, 726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 772, 770, 774, 768, 0, 0, 773, 0, 0, 820, 826, 0, 850, 0, 856, 0, 903, 909, 0, 919, 925, 932, 930, 934, 928, 0, 0, 933, 942, 940, 944, 938, 0, 0, 943, 952, 950, 954, 948, 0, 0, 953, 0, 0, 990, 0, 989, 985, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1045, 1051, 0, 0, 0, 0, 0, 1081, 0, 0, 1157, 1155, 1159, 1153, 0, 0, 1158, 0, 1170, 1168, 1172, 1166, 0, 0, 1171, 1182, 0, 0, 1192, 1190, 1194, 1188, 0, 0, 1193, 0, 1198, 0, 0, 1201, 0, 0, 0, 0, 0, 0, 0, 0, 1226, 1224, 1228, 1222, 0, 0, 1227, 0, 1233, 1239, 1246, 1244, 1248, 1242, 0, 0, 1247, 1256, 1254, 1258, 1252, 0, 0, 1257, 0, 1278, 0, 0, 1281, 0, 0, 0, 0, 0, 0, 1301, 1307, 0, 1311, 1317, 0, 1321, 1327, 1333, 0, 0, 0, 1339, 0, 0, 1345, 0, 0, 1363, 0, 0, 0, 0, 0, 1373, 1379, 0, 0, 0, 0, 0, 1383, 0, 1389, 0, 1393, 0, 1399, 0, 1403, 0, 1409, 0, 1413, 0, 1419, 0, 1423, 0, 1429, 0, 1433, 0, 1439, 0, 1443, 0, 1449, 0, 1453, 0, 1459, 0, 0, 0, 151, 150, 149, 148, 161, 0, 0, 176, 471, 194, 202, 559, 591, 597, 600, 603, 657, 660, 663, 0, 733, 0, 779, 0, 784, 286, 783, 793, 293, 812, 294, 815, 827, 0, 832, 296, 831, 837, 0, 842, 297, 841, 857, 0, 862, 0, 861, 867, 0, 872, 0, 871, 301, 878, 880, 0, 885, 302, 884, 890, 0, 895, 0, 894, 0, 956, 0, 961, 0, 960, 970, 335, 1040, 351, 1083, 355, 1091, 0, 1096, 356, 1095, 1101, 0, 1106, 357, 1105, 1115, 1125, 366, 1178, 1202, 1205, 392, 397, 1283, 398, 1286, 1288, 0, 1293, 399, 1292, 408, 1340, 1346, 1358, 1367, 442, 1467, 0, 0, 0, 695, 0, 0, 1087, 0, 0, 1137, 1135, 1139, 1133, 0, 0, 1138, 1147, 1145, 1149, 1143, 0, 0, 1148, 0, 0, 0, 122, 0, 0, 0, 0, 0, 89, 162, 0, 0, 0, 0, 0, 173, 0, 477, 479, 480, 0, 483, 0, 486, 0, 0, 491, 187, 501, 510, 0, 515, 190, 514, 521, 530, 0, 535, 192, 534, 0, 199, 200, 0, 205, 570, 573, 576, 579, 0, 583, 0, 586, 212, 589, 214, 595, 0, 646, 0, 649, 651, 652, 0, 655, 666, 667, 669, 670, 0, 675, 676, 681, 684, 112, 112, 112, 112, 112, 112, 112, 263, 699, 0, 704, 264, 703, 713, 719, 0, 724, 266, 723, 268, 0, 0, 0, 0, 0, 112, 279, 757, 760, 763, 766, 0, 771, 283, 770, 288, 818, 848, 0, 901, 917, 926, 0, 931, 308, 930, 936, 0, 941, 311, 940, 946, 0, 951, 312, 950, 313, 983, 318, 986, 0, 0, 0, 0, 0, 0, 0, 0, 0, 112, 333, 1043, 339, 0, 345, 0, 0, 350, 1080, 1151, 0, 1156, 362, 1155, 363, 1164, 0, 1169, 364, 1168, 0, 1181, 1186, 0, 1191, 369, 1190, 112, 372, 1197, 373, 1200, 375, 376, 377, 379, 0, 1211, 1220, 0, 1225, 386, 1224, 1231, 1240, 0, 1245, 388, 1244, 1250, 0, 1255, 389, 1254, 1264, 0, 1277, 0, 1280, 400, 401, 402, 1299, 1309, 1319, 0, 1332, 1334, 411, 1338, 413, 1344, 1361, 1362, 0, 422, 1371, 424, 425, 0, 0, 1381, 428, 1391, 429, 1401, 1404, 1411, 1414, 1421, 432, 1431, 433, 1441, 1444, 1451, 1454, 436, 439, 1463, 0, 0, 593, 0, 0, 599, 0, 0, 602, 0, 0, 605, 0, 0, 659, 0, 0, 662, 0, 0, 665, 0, 0, 0, 735, 733, 737, 731, 0, 0, 736, 0, 0, 782, 788, 795, 793, 797, 791, 0, 0, 796, 0, 830, 836, 0, 840, 846, 0, 860, 0, 866, 0, 870, 0, 876, 0, 883, 889, 0, 893, 0, 899, 0, 0, 959, 0, 965, 972, 970, 974, 968, 0, 0, 973, 0, 1094, 1100, 0, 1104, 1110, 1117, 1115, 1119, 1113, 0, 0, 1118, 1127, 1125, 1129, 1123, 0, 0, 1128, 1204, 0, 0, 1207, 0, 0, 0, 1291, 1297, 1342, 0, 0, 1348, 0, 0, 1360, 0, 0, 1369, 0, 0, 606, 624, 246, 250, 694, 352, 1086, 1131, 0, 1136, 360, 1135, 1141, 0, 1146, 361, 1145, 1349, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, 0, 0, 0, 513, 519, 0, 533, 539, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 683, 0, 0, 686, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, 708, 715, 713, 717, 711, 0, 0, 716, 0, 722, 728, 0, 0, 0, 0, 0, 0, 759, 0, 0, 762, 0, 0, 765, 0, 0, 0, 769, 775, 0, 0, 929, 935, 0, 939, 945, 0, 949, 955, 991, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1154, 1160, 0, 1167, 1173, 0, 0, 1189, 1195, 0, 0, 0, 0, 1223, 1229, 0, 1243, 1249, 0, 1253, 1259, 1266, 1264, 1268, 1262, 0, 0, 1267, 0, 0, 0, 1336, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1465, 0, 0, 0, 0, 213, 592, 215, 598, 0, 601, 0, 604, 0, 658, 0, 661, 0, 664, 0, 729, 0, 734, 267, 733, 112, 780, 789, 0, 794, 287, 793, 828, 838, 858, 0, 868, 0, 881, 891, 0, 910, 957, 314, 966, 0, 971, 0, 970, 1092, 1102, 1111, 0, 1116, 358, 1115, 1121, 0, 1126, 359, 1125, 374, 1203, 378, 1206, 1289, 412, 1341, 414, 1347, 418, 1359, 421, 1368, 608, 0, 0, 626, 0, 0, 0, 1134, 1140, 0, 1144, 1150, 1351, 0, 0, 609, 627, 331, 1352, 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, 443, 446, 171, 172, 476, 0, 0, 0, 112, 488, 186, 492, 511, 531, 0, 203, 206, 573, 576, 579, 0, 0, 0, 232, 0, 234, 0, 0, 0, 675, 243, 682, 0, 685, 251, 252, 112, 255, 256, 257, 112, 700, 709, 0, 714, 265, 713, 720, 739, 742, 745, 748, 112, 277, 280, 758, 281, 761, 0, 764, 767, 298, 927, 937, 947, 0, 995, 998, 1005, 1015, 1021, 1024, 1027, 1030, 330, 340, 1067, 1070, 1152, 1165, 367, 1187, 370, 0, 0, 1221, 1241, 1251, 1260, 0, 1265, 390, 1264, 395, 396, 407, 1334, 1335, 0, 420, 426, 427, 430, 431, 434, 435, 441, 1464, 0, 0, 0, 0, 0, 0, 0, 0, 0, 732, 738, 0, 0, 792, 798, 0, 0, 0, 912, 0, 0, 0, 969, 0, 975, 0, 1114, 1120, 0, 1124, 1130, 0, 607, 0, 625, 1132, 1142, 415, 1350, 611, 0, 0, 629, 0, 0, 1354, 0, 0, 612, 630, 1355, 0, 0, 0, 0, 0, 0, 0, 0, 0, 445, 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 712, 718, 741, 0, 0, 744, 0, 0, 747, 0, 0, 750, 0, 0, 0, 0, 0, 997, 0, 0, 1000, 0, 0, 1007, 1005, 1009, 1003, 0, 0, 1008, 1017, 1015, 1019, 1013, 0, 0, 1018, 1023, 0, 0, 1026, 0, 0, 1029, 0, 0, 1032, 0, 0, 1069, 0, 0, 1072, 0, 0, 0, 0, 0, 1263, 1269, 0, 0, 0, 452, 216, 217, 235, 0, 237, 0, 730, 284, 790, 299, 300, 303, 305, 911, 967, 315, 1112, 1122, 0, 0, 0, 610, 0, 628, 416, 1353, 614, 0, 0, 632, 0, 0, 1357, 0, 0, 615, 633, 332, 0, 0, 0, 0, 0, 165, 0, 444, 0, 447, 178, 479, 180, 181, 182, 185, 489, 198, 207, 576, 579, 210, 211, 231, 233, 0, 0, 0, 0, 0, 254, 259, 710, 271, 740, 742, 743, 274, 746, 748, 749, 276, 282, 992, 322, 996, 323, 999, 1001, 0, 1006, 324, 1005, 1011, 0, 1016, 325, 1015, 326, 1022, 327, 1025, 0, 1028, 0, 1031, 346, 1068, 1070, 1071, 0, 0, 1261, 410, 419, 0, 454, 0, 0, 0, 0, 218, 224, 0, 0, 0, 613, 0, 631, 417, 1356, 617, 0, 0, 635, 0, 0, 618, 636, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 994, 0, 0, 0, 1004, 1010, 0, 1014, 1020, 0, 0, 0, 0, 0, 449, 0, 453, 236, 112, 219, 225, 0, 0, 0, 616, 0, 634, 620, 0, 0, 638, 0, 0, 621, 639, 0, 0, 168, 179, 208, 579, 0, 0, 0, 0, 244, 272, 275, 321, 993, 1002, 1012, 328, 329, 347, 380, 0, 451, 0, 0, 0, 0, 220, 226, 0, 0, 0, 619, 0, 637, 623, 0, 0, 641, 0, 0, 642, 0, 0, 0, 0, 0, 0, 0, 169, 450, 170, 696, 221, 227, 0, 0, 0, 622, 0, 640, 644, 0, 0, 167, 209, 238, 239, 0, 241, 381, 698, 0, 0, 222, 228, 0, 0, 0, 643, 0, 253, 697, 223, 229, 0, 240, 230 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { -2280, 336, -2, -2280, -2280, -2280, -2280, 1497, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -86, -2280, -2280, -27, -2280, 1390, -101, -2280, 2950, 871, -2280, -2280, -2280, -110, -108, -654, -374, 4988, 1441, 119, 5190, 33, -1161, -15, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -1291, -2280, -2236, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 294, 818, -2280, -2280, -2280, -677, -206, -2280, -2280, -2280, 295, 816, -2280, -2280, -2280, -679, -213, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 288, -2280, 291, -2280, -2280, -2280, -2280, -2280, 280, -2280, -2280, -2280, 277, -2280, -1304, -2280, -1308, -2280, -1312, -2280, -1315, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -695, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -698, -2280, -696, -2280, 266, -2280, -2279, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -717, -259, -2280, -2280, -2280, -1311, -1066, -2280, -2280, -2280, -715, -264, -2280, -2280, -2280, -1181, -889, -2280, -2280, -2280, -2280, -2280, -1593, -2280, -2280, -2280, -1596, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -725, -275, -2280, -2280, -2280, -2280, -2280, -509, -13, -2280, -2280, -2280, -1179, -891, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 228, 721, -2280, -2280, -2280, -512, -14, -2280, -2280, -2280, -510, -17, -2280, -2280, -2280, 230, 724, -2280, -2280, -2280, -508, 10, -2280, -2280, -2280, -514, 0, -2280, -2280, -2280, -2280, -2280, -519, -31, -2280, -2280, -2280, -523, -42, -2280, -2280, -2280, 234, 741, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 226, 723, -2280, -2280, -2280, -707, -267, -2280, -2280, -2280, -706, -271, -2280, -2280, -2280, -710, -274, -2280, -2280, -2280, -516, 13, -2280, -2280, -2280, -1159, -890, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -1417, 726, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -1565, -1433, -2280, -2280, -2280, -1567, -1438, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 212, 700, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -1574, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -511, 25, -2280, -2280, -2280, -507, 26, -2280, -2280, -2280, -1151, -885, -2280, -2280, -2280, -1154, -887, -2280, -2280, -2280, -928, -542, -2280, -2280, -2280, -927, -545, -2280, -2280, -2280, -705, -280, -2280, -2280, -2280, -2280, -2280, -712, -284, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -713, -293, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, 201, -2280, -1478, -2280, -2280, -2280, -2280, -2280, -728, -309, -2280, -2280, -2280, 188, 650, -2280, -2280, -2280, -731, -314, -2280, -2280, -2280, -730, -317, -2280, -2280, -2280, -1265, -1046, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -497, 28, -2280, -2280, -2280, 179, 645, -2280, -2280, -2280, 178, 636, -2280, -2280, -2280, 191, 647, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -1256, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -736, -2280, -2280, -2280, -2280, -2280, 168, 615, -2280, -2280, -2280, 180, 607, -2280, -2280, -2280, 170, 602, -2280, -2280, -2280, -1553, 592, -2280, -2280, -2280, -1557, 589, -2280, -2280, -2280, 142, 583, -2280, -2280, -2280, 136, 582, -2280, -2280, -2280, -1571, 579, -2280, -2280, -2280, -1575, 585, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280, -2280 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { 0, 19, 20, 21, 22, 23, 24, 97, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 384, 37, 38, 377, 406, 124, 378, 140, 90, 391, 392, 91, 92, 93, 707, 708, 410, 141, 142, 143, 144, 716, 717, 359, 3031, 3032, 3034, 3035, 3334, 3335, 3239, 3240, 725, 726, 728, 729, 731, 732, 734, 735, 737, 738, 1605, 1606, 740, 741, 1768, 1769, 1771, 1772, 1774, 1775, 1777, 1778, 3042, 3043, 2624, 2625, 752, 753, 755, 756, 759, 760, 761, 762, 763, 1788, 1789, 1790, 1791, 1792, 767, 768, 769, 770, 771, 1798, 1799, 1800, 1801, 1802, 775, 776, 779, 780, 782, 783, 785, 786, 788, 789, 791, 792, 1609, 1610, 794, 795, 797, 798, 800, 801, 803, 804, 806, 807, 809, 810, 812, 813, 1813, 1814, 1816, 1817, 1819, 1820, 2470, 2471, 1822, 1823, 2473, 2474, 2476, 2477, 2479, 2480, 2834, 2835, 3010, 3011, 3151, 3152, 3254, 3255, 3304, 3305, 3347, 3348, 2837, 2838, 3013, 3014, 3154, 3155, 3257, 3258, 3307, 3308, 3350, 3351, 3373, 3374, 1825, 1826, 1828, 1829, 1831, 1832, 1834, 1835, 2482, 2483, 2485, 2486, 2488, 2489, 1837, 1838, 1840, 1841, 825, 826, 1844, 1845, 829, 830, 2649, 2650, 2652, 2653, 835, 836, 838, 839, 2203, 2204, 3383, 3384, 1858, 1859, 1860, 1861, 1862, 2666, 2667, 2668, 2669, 2670, 1866, 1867, 1868, 1869, 1870, 2493, 2494, 2495, 2496, 2497, 3063, 3064, 3066, 3067, 3069, 3070, 3072, 3073, 866, 867, 869, 870, 2681, 2682, 2684, 2685, 2687, 2688, 1884, 1885, 1886, 1887, 1888, 876, 877, 1623, 1624, 1625, 1626, 1627, 2504, 2505, 2506, 2507, 2508, 880, 881, 883, 884, 886, 887, 889, 890, 1630, 1631, 1633, 1634, 893, 894, 895, 896, 897, 1637, 1638, 1639, 1640, 1641, 1644, 1645, 1646, 1647, 1648, 900, 901, 902, 903, 904, 1651, 1652, 1653, 1654, 1655, 1658, 1659, 1660, 1661, 1662, 1664, 1665, 1668, 1669, 1670, 1671, 1672, 1675, 1676, 1677, 1678, 1679, 907, 908, 909, 910, 911, 2989, 2990, 913, 914, 917, 918, 919, 920, 921, 1905, 1906, 1907, 1908, 1909, 1912, 1913, 1914, 1915, 1916, 1919, 1920, 1921, 1922, 1923, 1683, 1684, 1685, 1686, 1687, 2537, 2538, 2539, 2540, 2541, 929, 930, 932, 933, 936, 937, 938, 1927, 1928, 3277, 3278, 3078, 3079, 3081, 3082, 3085, 3086, 3087, 3088, 3089, 3092, 3093, 3094, 3095, 3096, 3098, 3099, 3101, 3102, 3104, 3105, 3107, 3108, 952, 953, 955, 956, 1690, 1691, 959, 960, 961, 962, 963, 965, 966, 968, 969, 971, 972, 974, 975, 977, 978, 3110, 3111, 3113, 3114, 986, 987, 989, 990, 1950, 1951, 1693, 1694, 2206, 2207, 993, 994, 1698, 1699, 1700, 1701, 1702, 1705, 1706, 1707, 1708, 1709, 2550, 2551, 2552, 2553, 2554, 2557, 2558, 2559, 2560, 2561, 2210, 2211, 2212, 2213, 2214, 2217, 2218, 2219, 2220, 2221, 1954, 1955, 1956, 1957, 1958, 998, 999, 1962, 1963, 1964, 1965, 1966, 1002, 1003, 1713, 1714, 1968, 1969, 1006, 1007, 1972, 1973, 1974, 1975, 1976, 1979, 1980, 1982, 1983, 2563, 2564, 2566, 2567, 1018, 1019, 1021, 1022, 1025, 1026, 1028, 1029, 1992, 1993, 1994, 1995, 1996, 1034, 1035, 1036, 1037, 1038, 2002, 2003, 2004, 2005, 2006, 2009, 2010, 2011, 2012, 2013, 2740, 2741, 2742, 2743, 2744, 1044, 1045, 1047, 1048, 2016, 2017, 2019, 2020, 1719, 1720, 1722, 1723, 1726, 1727, 1728, 1729, 1730, 1056, 1057, 1058, 1059, 1060, 1063, 1064, 1065, 1066, 1067, 1070, 1071, 1072, 1073, 1074, 1076, 1077, 2034, 2035, 2749, 2750, 2038, 2039, 2572, 2573, 2041, 2042, 2575, 2576, 2846, 2847, 3016, 3017, 3157, 3158, 2578, 2579, 2044, 2045, 1085, 1086, 2581, 2582, 1090, 1091, 1092, 1093, 1094, 1101, 1102, 1103, 1104, 1105, 1108, 1109, 1110, 1111, 1112, 1115, 1116, 1117, 1118, 1119, 1122, 1123, 1124, 1125, 1126, 1129, 1130, 1131, 1132, 1133, 1136, 1137, 1138, 1139, 1140, 1143, 1144, 1145, 1146, 1147, 1150, 1151, 1152, 1153, 1154, 1159, 1160, 2760, 2761, 1737, 1738 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_int16 yytable[] = { 94, 95, 1926, 1811, 1810, 2618, 1809, 1601, 1808, 1989, 2066, 2070, 2082, 2086, 2647, 96, 96, 115, 123, 116, 389, 380, 133, 382, 117, 118, 68, 361, 408, 41, 409, 709, 703, 44, 69, 70, 71, 72, 42, 704, 705, 385, 386, 115, 53, 116, 626, 1717, 627, 628, 117, 118, 1164, 1241, 43, 1242, 55, 399, 1165, 400, 70, 71, 72, 1247, 401, 402, 45, 1247, 383, 54, 1248, 39, 137, 145, 2094, 119, 689, 76, 403, 690, 57, 56, 694, 139, 374, 412, 1759, 1247, 366, 367, 368, 369, 375, 1247, 2182, 697, 120, 40, 698, 46, 2585, 119, 76, 403, 58, 629, 59, 60, 61, 1247, 47, 1247, 48, 62, 63, 64, 2850, 145, 3161, 51, 395, 395, 120, 699, 701, 1235, 700, 700, 690, 413, 414, 415, 416, 363, 362, 703, 404, 69, 70, 71, 72, 1757, 704, 705, 690, 49, 417, 691, 690, 710, 711, 714, 715, 1596, 1597, 1598, 1599, 65, 66, 67, 68, 69, 70, 71, 72, 138, 73, 74, 394, 397, 50, 52, 100, 101, 102, 103, 105, 109, 104, 108, 76, 403, 106, 110, 107, 111, 112, 113, 114, 125, 129, 130, 131, 126, 132, 135, 127, 136, 75, 128, 365, 370, 371, 372, 76, 376, 381, 77, 412, 78, 373, 387, 411, 418, 419, 420, 421, 139, 422, 423, 424, 425, 79, 80, 81, 82, 83, 84, 85, 86, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 65, 66, 67, 68, 69, 70, 71, 72, 440, 73, 74, 441, 65, 66, 67, 68, 69, 70, 71, 72, 442, 73, 74, 684, 443, 444, 445, 446, 447, 448, 685, 449, 450, 451, 452, 453, 692, 454, 455, 456, 457, 75, 458, 459, 460, 687, 461, 76, 462, 463, 77, 408, 78, 75, 464, 465, 466, 693, 467, 76, 139, 468, 77, 469, 78, 79, 80, 81, 82, 83, 84, 85, 86, 470, 471, 472, 473, 79, 80, 81, 82, 83, 84, 85, 86, 474, 475, 390, 362, 709, 476, 709, 477, 478, 479, 480, 481, 482, 483, 484, 681, 485, 486, 487, 68, 488, 489, 490, 491, 492, 493, 494, 495, 496, 682, 497, 683, 688, 695, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 686, 508, 696, 509, 510, 1167, 511, 512, 513, 514, 515, 516, 121, 517, 122, 379, 518, 134, 519, 1166, 1281, 520, 702, 521, 145, 522, 681, 405, 706, 712, 395, 145, 145, 145, 145, 722, 723, 523, 121, 524, 122, 1163, 525, 742, 743, 744, 745, 746, 145, 145, 749, 750, 405, 1231, 700, 145, 526, 145, 145, 527, 145, 528, 529, 530, 364, 531, 532, 533, 1228, 534, 535, 536, 537, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 538, 827, 539, 831, 832, 145, 540, 541, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 852, 853, 854, 145, 145, 145, 858, 859, 145, 861, 862, 863, 864, 542, 543, 871, 872, 873, 145, 544, 878, 545, 546, 547, 548, 549, 550, 405, 551, 389, 145, 145, 145, 145, 145, 145, 552, 553, 554, 145, 145, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 87, 1255, 88, 1287, 713, 89, 1249, 1251, 145, 145, 145, 145, 983, 984, 555, 556, 991, 557, 145, 996, 1250, 145, 558, 1004, 559, 145, 145, 145, 145, 145, 145, 145, 145, 145, 560, 1387, 145, 561, 562, 145, 145, 563, 145, 145, 1041, 145, 1285, 564, 1049, 1050, 1051, 1052, 145, 2201, 565, 566, 567, 145, 145, 1080, 145, 1082, 1083, 568, 145, 569, 145, 145, 145, 145, 408, 570, 408, 408, 408, 1243, 1244, 571, 145, 145, 145, 572, 145, 1162, 1245, 3055, 573, 87, 574, 88, 575, 576, 89, 577, 578, 579, 580, 581, 1, 87, 393, 88, 582, 583, 89, 584, 585, 2, 3, 4, 586, 5, -31, -33, -35, -37, -39, -43, 6, 7, 587, 8, 9, 588, 10, 11, 12, 589, 13, 590, 14, 591, 592, 593, 594, 595, 1234, 596, 597, 1227, 598, 599, 1229, 1230, 600, 1232, 601, 602, 603, 15, 604, 605, 606, 16, 607, 1237, 608, 609, 1239, 17, 1240, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, -41, 625, 1168, 1169, 1170, 1171, 1172, 1173, 1256, 1246, 1174, 1258, 1175, 1176, 1260, 1177, 1178, 1262, 1179, 1180, 1264, 1181, 1182, 1266, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1277, 1194, 1195, 1279, 1196, 1197, 1198, 1199, 1282, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1288, 1207, 1208, 1209, 1210, 1211, 1212, 1294, 1213, 1214, 1215, 1297, 1216, 1217, 1299, 1252, 1261, 1301, 1257, 1259, 1303, 1263, 1265, 1305, 1272, 1273, 1307, 1276, 1278, 1309, 1283, 1289, 1311, 1284, 1290, 1313, 1292, 1291, 1315, 1293, 1295, 1317, 1296, 1306, 1319, 1392, 1298, 1300, 1302, 1304, 1397, 1308, 1342, 1310, 1312, 1314, 1316, 1331, 1318, 1330, 1333, 1334, 1337, 1338, 1343, 1340, 1344, 1339, 1345, 1346, 1341, 1347, 1348, 1349, 1350, 1353, 1357, 1351, 1404, 1352, 1420, 1358, 1374, 1439, 1359, 1362, 1367, 1497, 1515, 1369, 1375, 1378, 1380, 1382, 1384, 1389, 1394, 1390, 1368, 1395, 1399, 1370, 1400, 1407, 1401, 1406, 1408, 1409, 1376, 1410, 1411, 1412, 1379, 1413, 1414, 1381, 1416, 1419, 1383, 1434, 1520, 1385, 1422, 1423, 1525, 1436, 1388, 1441, 1456, 1442, 1443, 1445, 1451, 1393, 2758, 1447, 2757, 1449, 1453, 1454, 1398, 1455, 1459, 1461, 2756, 1402, 2755, 1464, 1466, 1470, 1405, 1468, 1471, 1474, 1476, 1477, 1479, 1478, 1480, 1481, 1482, 1415, 1483, 1484, 1417, 1485, 1495, 1541, 1489, 1421, 1550, 1490, 2728, 1487, 1492, 1494, 1499, 1501, 1500, 1502, 1504, 1505, 1507, 3266, 1435, 2702, 1513, 1437, 1517, 1531, 1518, 1522, 1440, 1523, 1527, 1534, 1528, 1444, 1529, 1532, 1446, 1537, 2637, 1448, 2636, 1539, 1450, 2635, 1543, 1452, 2634, 1544, 1545, 1546, 1547, 1548, 1552, 1553, 1460, 1555, 1557, 1462, 1560, 1562, 1565, 1465, 1558, 1563, 1567, 1568, 1469, 1570, 1572, 1573, 1472, 1575, 18, 98, 1475, 1577, 1580, 1578, 1582, 1585, 1583, 1587, 1588, 1589, 1590, 1739, 1486, 1591, 1600, 1488, 1592, 1594, 1755, 1491, 1740, 1741, 1493, 1742, 1743, 1744, 1745, 1746, 1758, 1498, 1756, 1783, 1793, 1890, 2090, 1893, 1897, 1900, 1506, 1925, 1941, 1508, 1997, 2024, 2027, 2030, 2048, 2055, 2059, 2063, 2067, 1516, 2071, 2075, 2079, 2083, 2091, 2092, 1521, 2093, 2097, 2113, 2123, 2099, 2128, 1526, 2100, 2115, 2133, 2116, 1530, 2118, 2603, 2120, 2125, 2135, 2126, 2130, 2138, 1538, 2131, 2136, 2140, 2145, 2141, 1542, 2142, 2147, 2150, 2148, 2152, 2153, 2156, 2158, 2159, 2161, 1551, 2167, 2163, 2165, 2172, 2169, 2174, 1556, 2170, 2175, 2178, 2180, 2181, 2183, 1561, 2185, 2188, 2190, 2193, 2253, 2192, 1566, 2191, 2197, 2255, 2223, 1247, 2224, 1571, 2225, 2226, 2259, 2306, 2239, 2261, 1576, 2241, 2243, 2245, 2256, 2262, 2264, 1581, 2265, 2266, 2267, 2312, 2268, 2269, 1586, 2270, 2271, 2328, 2272, 2274, 2280, 2276, 1593, 2278, 2297, 2282, 2298, 2284, 2286, 2288, 395, 1602, 1603, 2290, 145, 2292, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 2293, 1628, 2299, 2300, 2301, 2302, 2303, 2308, 2339, 2309, 2344, 1680, 2349, 1688, 2314, 2316, 145, 2377, 2315, 1710, 1711, 2330, 145, 145, 395, 2331, 2332, 2341, 145, 145, 1733, 1734, 1735, 2342, 2346, 2383, 2347, 2351, 2390, 2352, 2355, 2394, 2356, 1751, 2371, 2374, 2379, 2406, 2380, 2385, 2412, 2386, 1752, 2387, 2392, 2417, 2393, 2395, 2397, 2399, 2400, 2401, 2402, 395, 2408, 1760, 2403, 1761, 2404, 1762, 1763, 1764, 2409, 1765, 2414, 1766, 65, 66, 67, 68, 69, 70, 71, 72, 2415, 73, 74, 1779, 2419, 2422, 1780, 1781, 1782, 2420, 2424, 2426, 2432, 1784, 2427, 2428, 2435, 2446, 2437, 1794, 2447, 2439, 2444, 2445, 2499, 2449, 2451, 2509, 2453, 2457, 1803, 2455, 2459, 75, 2461, 2463, 2512, 2464, 2515, 76, 2519, 2523, 77, 2526, 78, 2531, 2542, 2545, 2568, 2586, 2588, 2591, 2594, 2593, 2598, 2596, 2605, 79, 80, 81, 82, 83, 84, 85, 86, 2599, 2606, 1846, 1847, 2607, 2626, 2629, 2661, 2671, 145, 145, 145, 145, 145, 145, 2689, 145, 2693, 2696, 2699, 1855, 2716, 1863, 2719, 145, 2723, 2729, 1872, 1873, 2732, 1874, 1875, 1876, 1877, 2735, 2780, 1878, 2768, 1879, 1880, 1881, 2764, 2766, 2782, 145, 2770, 2772, 2787, 2804, 2774, 2806, 2776, 2783, 2790, 1891, 2789, 2811, 2807, 2813, 1894, 2814, 1895, 2816, 2819, 1898, 2818, 2820, 2822, 2839, 2825, 2827, 1901, 2829, 2842, 2831, 2855, 2867, 2856, 2857, 2905, 1924, 2872, 2951, 2878, 2898, 2879, 2892, 1929, 2880, 2881, 2886, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 2888, 2889, 2891, 2894, 1942, 2896, 2897, 2899, 2900, 2901, 2902, 2978, 1944, 2907, 1945, 2908, 2915, 2982, 2916, 2918, 2936, 145, 1947, 1948, 2920, 2946, 2944, 2953, 2991, 2954, 2958, 2960, 2964, 1959, 2965, 2966, 2967, 2968, 2995, 2998, 3001, 3003, 145, 3007, 3024, 3025, 145, 145, 145, 145, 3059, 3117, 3131, 3136, 3211, 3144, 3146, 3148, 3164, 3165, 3216, 3172, 1998, 3168, 3170, 3176, 3177, 3180, 2014, 3224, 3181, 3226, 3182, 3263, 3190, 3192, 145, 145, 145, 3193, 2025, 3195, 3279, 3197, 3199, 2028, 3201, 3203, 3206, 3208, 2031, 3213, 3282, 3214, 3218, 99, 3363, 3219, 2036, 3220, 3222, 3228, 2046, 3230, 2047, 3235, 2049, 3247, 407, 3249, 145, 145, 145, 145, 3251, 2056, 3314, 145, 3291, 3299, 2060, 3301, 145, 3315, 3322, 2064, 3316, 145, 3323, 3324, 2068, 3330, 145, 3342, 3344, 2072, 3360, 145, 3368, 3370, 2076, 3376, 145, 3389, 3392, 2080, 3047, 145, 3046, 1238, 2084, 3045, 145, 388, 145, 3036, 1280, 2088, 1785, 2628, 2089, 2252, 1286, 2631, 2258, 1795, 1806, 1807, 1804, 2642, 2644, 2098, 2663, 1805, 2645, 2101, 1842, 3061, 2305, 2904, 2673, 2311, 2980, 2779, 3274, 3275, 2691, 2501, 2327, 2112, 2114, 2984, 2786, 1386, 2511, 87, 2119, 88, 1892, 2121, 89, 2514, 2122, 1391, 2124, 1896, 2127, 2522, 2518, 2525, 2529, 2129, 2149, 1902, 1899, 2695, 2144, 2338, 2134, 1403, 2343, 2698, 2701, 2534, 2348, 2139, 2803, 1396, 2994, 3281, 2143, 3210, 3284, 3215, 1943, 2146, 3287, 2137, 1438, 2544, 2132, 1418, 2151, 2997, 2810, 3000, 2841, 2590, 2547, 2815, 2157, 2595, 2844, 2376, 2721, 2718, 2162, 2382, 2389, 2164, 2725, 2731, 2405, 1496, 2734, 2168, 1988, 2411, 1999, 3119, 2737, 2416, 2173, 2950, 2570, 2155, 3023, 2026, 1519, 2179, 1514, 2029, 3120, 2751, 1540, 2184, 1559, 1549, 2186, 1554, 1564, 1569, 2050, 2189, 2078, 2074, 1524, 1574, 0, 2032, 0, 1579, 2166, 2198, 2199, 2200, 395, 0, 2062, 0, 2171, 2222, 0, 2058, 1584, 0, 2230, 0, 2231, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2187, 2240, 0, 0, 2242, 0, 0, 2244, 0, 0, 2246, 0, 0, 0, 0, 2251, 0, 0, 0, 0, 0, 0, 2254, 0, 0, 2257, 0, 0, 0, 0, 0, 0, 2260, 0, 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, 2273, 73, 74, 2275, 0, 0, 2277, 0, 0, 2279, 0, 0, 2281, 0, 0, 2283, 0, 0, 2285, 0, 0, 2287, 0, 0, 2289, 0, 0, 2291, 0, 0, 0, 2294, 0, 75, 0, 0, 0, 0, 0, 76, 0, 0, 77, 0, 78, 0, 2307, 0, 0, 0, 0, 0, 0, 0, 2313, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 3268, 0, 3267, 0, 2329, 0, 0, 0, 2333, 0, 0, 2334, 0, 0, 0, 2336, 0, 0, 2337, 0, 0, 0, 0, 0, 0, 2340, 0, 0, 0, 0, 0, 0, 2345, 0, 0, 0, 0, 0, 0, 2350, 0, 0, 0, 2354, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2368, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2375, 0, 0, 0, 0, 2378, 0, 0, 0, 0, 0, 0, 0, 2384, 0, 0, 0, 0, 2388, 0, 0, 0, 0, 2391, 0, 0, 0, 0, 0, 2396, 0, 0, 2398, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2407, 0, 0, 2410, 0, 0, 0, 0, 0, 0, 2413, 0, 0, 0, 0, 0, 0, 2418, 0, 0, 0, 0, 3354, 2423, 0, 0, 2425, 0, 0, 0, 2429, 0, 0, 2430, 0, 0, 2431, 0, 0, 0, 0, 2433, 0, 0, 0, 2436, 0, 0, 2438, 0, 0, 2440, 0, 0, 2443, 0, 0, 0, 0, 0, 0, 2448, 0, 0, 0, 2450, 0, 0, 0, 2452, 0, 0, 0, 2454, 0, 0, 0, 2456, 0, 0, 0, 2458, 0, 0, 0, 2460, 0, 0, 0, 2462, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2467, 2468, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2490, 0, 2498, 0, 2500, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2510, 0, 0, 0, 0, 2513, 0, 0, 0, 0, 2516, 0, 2517, 0, 0, 2520, 0, 2521, 0, 0, 0, 0, 2524, 0, 0, 0, 0, 2527, 0, 2528, 0, 2530, 0, 2532, 0, 2533, 0, 0, 0, 0, 0, 0, 0, 0, 2543, 0, 0, 0, 0, 2546, 0, 0, 0, 87, 396, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 2569, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2587, 0, 0, 2589, 0, 0, 0, 0, 2592, 0, 0, 0, 0, 0, 0, 2597, 0, 0, 0, 2601, 2602, 395, 2604, 0, 0, 0, 2611, 0, 0, 2612, 2613, 2614, 2615, 2616, 0, 2617, 0, 0, 0, 2619, 0, 2620, 0, 2621, 2622, 0, 0, 0, 0, 2627, 0, 0, 0, 0, 0, 2630, 0, 0, 0, 2632, 0, 0, 2633, 0, 0, 0, 0, 0, 2638, 0, 2639, 0, 0, 0, 0, 0, 2640, 0, 2641, 0, 0, 0, 2643, 0, 0, 0, 0, 0, 2646, 0, 0, 0, 0, 145, 145, 145, 145, 145, 145, 145, 0, 0, 2662, 0, 0, 0, 0, 0, 2672, 0, 0, 0, 0, 2674, 2675, 2676, 2677, 2678, 145, 0, 0, 0, 0, 0, 2690, 0, 0, 0, 0, 0, 0, 2692, 0, 0, 0, 2694, 0, 0, 0, 0, 2697, 0, 0, 0, 0, 2700, 0, 0, 0, 0, 0, 0, 0, 2703, 2704, 2705, 2706, 2707, 2708, 2709, 2710, 2711, 145, 0, 0, 0, 2713, 0, 2714, 2715, 0, 0, 0, 2717, 0, 0, 0, 0, 0, 2720, 0, 0, 0, 2722, 0, 0, 2724, 0, 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, 0, 2727, 0, 0, 2730, 0, 0, 0, 0, 0, 2733, 0, 0, 0, 0, 2736, 0, 0, 0, 0, 2745, 0, 2746, 0, 0, 0, 0, 0, 0, 0, 2747, 0, 0, 0, 0, 0, 0, 0, 0, 2752, 0, 0, 0, 0, 2753, 2754, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2765, 0, 0, 2767, 0, 0, 2769, 0, 0, 2771, 0, 0, 2773, 0, 0, 2775, 0, 0, 2777, 0, 0, 0, 0, 0, 2781, 0, 0, 0, 2785, 0, 0, 0, 0, 0, 0, 2788, 0, 0, 2791, 0, 0, 2792, 0, 0, 2793, 0, 0, 0, 2795, 0, 0, 0, 2797, 0, 0, 2798, 0, 0, 0, 0, 2801, 0, 0, 0, 0, 0, 0, 0, 2805, 0, 0, 2808, 0, 0, 2809, 0, 0, 0, 0, 0, 0, 2812, 0, 0, 0, 0, 0, 0, 2817, 0, 0, 0, 0, 2821, 0, 0, 2823, 2824, 0, 0, 0, 0, 2826, 0, 0, 2828, 0, 0, 2830, 0, 0, 2832, 0, 0, 0, 0, 0, 0, 0, 0, 2840, 0, 0, 0, 0, 2843, 0, 0, 0, 0, 0, 0, 0, 0, 2852, 2853, 2854, 0, 0, 0, 2860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2873, 2874, 0, 0, 2875, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2893, 0, 0, 2895, 0, 0, 0, 0, 0, 0, 0, 2903, 0, 0, 0, 0, 0, 0, 2906, 0, 0, 2909, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2917, 0, 0, 2919, 0, 0, 2921, 2922, 0, 0, 0, 2924, 0, 0, 2925, 0, 0, 2926, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2940, 0, 0, 2941, 0, 0, 0, 2943, 0, 0, 0, 0, 0, 2947, 0, 0, 2948, 0, 0, 2949, 0, 0, 0, 0, 0, 0, 2952, 0, 0, 0, 0, 0, 0, 0, 2959, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2969, 2970, 2971, 0, 0, 0, 0, 2972, 0, 2973, 0, 2974, 0, 2975, 0, 2976, 0, 2977, 0, 2979, 0, 0, 0, 145, 0, 0, 2983, 0, 0, 0, 0, 0, 0, 2985, 0, 2986, 0, 0, 2987, 0, 0, 0, 0, 2992, 0, 2993, 0, 0, 0, 0, 2996, 0, 0, 0, 0, 2999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3002, 0, 0, 3004, 3005, 0, 0, 3006, 0, 0, 0, 0, 3008, 0, 0, 0, 0, 0, 0, 0, 3021, 3022, 395, 0, 0, 3028, 3029, 0, 0, 0, 0, 0, 3037, 3038, 3039, 145, 0, 0, 0, 0, 0, 3044, 0, 0, 0, 0, 0, 3048, 3049, 3050, 0, 3051, 0, 3052, 3053, 3054, 0, 0, 0, 3056, 0, 0, 0, 145, 0, 0, 0, 145, 0, 0, 3060, 0, 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, 0, 3075, 0, 0, 0, 0, 0, 0, 3076, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3115, 3116, 0, 0, 0, 0, 3118, 0, 0, 0, 0, 0, 0, 0, 0, 3121, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3130, 0, 0, 0, 3132, 0, 0, 0, 0, 0, 0, 0, 3137, 3138, 0, 0, 0, 3140, 0, 0, 3141, 0, 0, 3142, 0, 3143, 0, 0, 0, 0, 0, 0, 0, 3145, 0, 0, 3147, 0, 0, 3149, 0, 0, 0, 0, 0, 0, 3162, 3163, 0, 0, 3028, 0, 0, 0, 3169, 0, 0, 3171, 0, 0, 0, 0, 0, 0, 0, 3178, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3194, 0, 0, 0, 0, 3196, 0, 0, 3198, 0, 0, 3200, 0, 0, 3202, 0, 0, 0, 0, 0, 3207, 0, 0, 3209, 0, 0, 0, 0, 3212, 0, 0, 0, 0, 0, 0, 3217, 0, 0, 0, 0, 3221, 0, 0, 3223, 0, 0, 3225, 0, 0, 3227, 0, 0, 3229, 0, 0, 3231, 0, 0, 3234, 0, 0, 0, 0, 3237, 0, 0, 0, 0, 3241, 0, 3242, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3245, 0, 3246, 0, 0, 0, 0, 0, 3248, 0, 0, 3250, 0, 0, 3252, 0, 0, 0, 0, 0, 3261, 3262, 0, 0, 3264, 0, 3265, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3269, 3270, 3271, 3272, 3273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3280, 0, 0, 0, 0, 3283, 0, 0, 0, 0, 0, 0, 0, 3285, 0, 3286, 0, 0, 0, 0, 0, 3288, 3289, 0, 0, 0, 0, 0, 0, 3292, 0, 0, 0, 0, 0, 0, 3297, 0, 3298, 0, 0, 0, 0, 0, 3300, 0, 0, 3302, 0, 0, 0, 0, 3311, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3325, 3326, 0, 0, 3327, 0, 0, 0, 0, 0, 0, 0, 0, 3336, 0, 0, 145, 0, 0, 0, 0, 3340, 0, 3341, 0, 0, 0, 3343, 0, 0, 3345, 0, 0, 0, 3353, 0, 0, 0, 0, 3355, 3356, 3357, 3358, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3359, 0, 0, 3361, 0, 0, 0, 0, 0, 0, 3366, 0, 3367, 0, 0, 0, 3369, 0, 0, 3371, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3387, 0, 3388, 0, 0, 0, 3390, 0, 0, 0, 0, 3391, 0, 0, 0, 0, 3393, 0, 0, 0, 0, 3396, 724, 727, 730, 733, 736, 739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 751, 754, 757, 0, 765, 0, 0, 774, 0, 778, 781, 784, 787, 790, 793, 796, 799, 802, 805, 808, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 824, 0, 828, 0, 0, 0, 834, 837, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 865, 868, 0, 0, 0, 0, 875, 0, 879, 882, 885, 888, 891, 898, 905, 912, 915, 0, 0, 0, 0, 0, 0, 928, 931, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 951, 954, 957, 964, 967, 970, 973, 976, 0, 0, 0, 0, 0, 0, 985, 988, 0, 992, 0, 0, 997, 0, 1001, 0, 1005, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1017, 1020, 0, 1024, 1027, 0, 0, 1032, 0, 0, 0, 0, 1043, 1046, 0, 0, 0, 0, 0, 1054, 1061, 1068, 1075, 0, 0, 0, 0, 0, 0, 1084, 0, 1088, 0, 0, 0, 0, 1099, 1106, 1113, 1120, 1127, 1134, 1141, 1148, 1, 0, 0, 1158, 0, 0, 0, 0, 0, 2, 3, 4, -27, 5, -31, -33, -35, -37, -39, -43, 6, 7, 0, 8, 9, 0, 10, 11, 12, 0, 13, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 15, 0, 0, 0, 16, 0, 0, 2, 3, 4, 17, 5, -31, -33, -35, -37, -39, -43, 6, 7, 0, 8, 9, 0, 10, 11, 12, -41, 13, 0, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0, 16, 0, 0, 0, 0, 0, 17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -41, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 757, 0, 0, 0, 0, 0, 0, 0, 765, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 891, 0, 0, 0, 0, 0, 0, 898, 0, 0, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 0, 0, 0, 915, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1032, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1054, 0, 0, 0, 0, 0, 0, 1061, 0, 0, 0, 0, 0, 0, 1068, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, 1113, 0, 0, 0, 0, 0, 0, 1120, 0, 0, 0, 0, 0, 0, 1127, 0, 0, 0, 0, 0, 0, 1134, 0, 0, 0, 0, 0, 0, 1141, 0, 0, 0, 0, 0, 0, 1148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1604, 0, 1608, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1621, 0, 1629, 1632, 1635, 1642, 1649, 1656, 1663, 1666, 1673, 0, 1681, 0, 1689, 1692, 0, 1696, 1703, 0, 0, 1712, 0, 0, 0, 1718, 1721, 1724, 0, 0, 0, 0, 0, 1736, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1767, 1770, 1773, 1776, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 757, 1786, 0, 0, 0, 0, 765, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 787, 0, 0, 0, 793, 0, 0, 0, 799, 0, 802, 0, 805, 0, 808, 0, 811, 0, 1812, 1815, 1818, 1821, 1824, 1827, 1830, 1833, 1836, 1839, 824, 0, 1843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1856, 0, 1864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 891, 0, 0, 0, 0, 898, 0, 0, 0, 0, 905, 0, 0, 0, 0, 0, 0, 915, 1903, 0, 0, 1910, 1917, 0, 0, 0, 0, 0, 0, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 957, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1949, 0, 0, 0, 1952, 0, 0, 1960, 0, 0, 1967, 0, 0, 1970, 0, 0, 1978, 1981, 0, 0, 0, 0, 1017, 0, 1020, 0, 0, 0, 0, 0, 0, 0, 1990, 0, 0, 0, 0, 1032, 2000, 2007, 0, 0, 0, 0, 0, 0, 2015, 2018, 0, 0, 0, 0, 0, 0, 0, 1054, 0, 0, 0, 0, 1061, 0, 0, 0, 0, 1068, 0, 0, 2033, 0, 0, 2037, 2040, 2043, 0, 0, 0, 0, 0, 0, 0, 1088, 0, 0, 0, 0, 0, 0, 0, 0, 1099, 0, 0, 0, 0, 1106, 0, 0, 0, 0, 1113, 0, 0, 0, 0, 1120, 0, 0, 0, 0, 1127, 0, 0, 0, 0, 1134, 0, 0, 0, 0, 1141, 0, 0, 0, 0, 1148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1621, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1635, 0, 0, 0, 0, 0, 0, 1642, 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0, 0, 0, 0, 1656, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1666, 0, 0, 0, 0, 0, 0, 1673, 0, 0, 0, 0, 0, 0, 0, 1681, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1696, 0, 0, 0, 0, 0, 0, 1703, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1724, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2202, 2205, 2208, 2215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1856, 0, 0, 0, 0, 0, 0, 0, 1864, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1903, 0, 0, 0, 0, 0, 0, 1910, 0, 0, 0, 0, 0, 0, 1917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1952, 0, 0, 0, 0, 0, 0, 0, 1960, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1990, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2000, 0, 0, 0, 0, 0, 0, 2007, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2469, 2472, 2475, 2478, 2481, 2484, 2487, 0, 2491, 0, 0, 0, 0, 0, 1621, 2502, 0, 0, 0, 0, 0, 0, 0, 0, 1635, 0, 0, 0, 0, 1642, 0, 0, 0, 0, 1649, 0, 0, 0, 0, 1656, 0, 0, 0, 0, 0, 0, 1666, 0, 0, 0, 0, 1673, 0, 0, 0, 0, 0, 1681, 2535, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1696, 0, 0, 0, 0, 1703, 2548, 2555, 0, 0, 2562, 2565, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1724, 0, 2571, 2574, 2577, 2580, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2208, 0, 0, 0, 0, 0, 0, 2215, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1770, 0, 0, 0, 0, 0, 0, 0, 2623, 0, 0, 0, 0, 0, 0, 1786, 0, 0, 0, 0, 0, 1796, 0, 0, 0, 0, 0, 802, 805, 808, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1830, 0, 0, 0, 1836, 0, 1839, 0, 0, 1843, 0, 2648, 2651, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1856, 2664, 0, 0, 0, 0, 1864, 0, 0, 0, 0, 0, 0, 0, 0, 2680, 2683, 2686, 0, 0, 0, 0, 1882, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1903, 0, 0, 0, 0, 1910, 0, 0, 0, 0, 1917, 0, 0, 0, 934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1952, 0, 0, 0, 0, 0, 1960, 0, 0, 0, 0, 0, 0, 1970, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1020, 0, 0, 0, 0, 1990, 0, 0, 0, 0, 0, 2000, 0, 0, 0, 0, 2007, 2738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2748, 0, 0, 0, 0, 2043, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1113, 0, 1120, 0, 718, 719, 720, 721, 1141, 0, 1148, 0, 0, 2759, 0, 0, 0, 0, 0, 0, 0, 747, 748, 0, 0, 0, 0, 0, 764, 0, 772, 773, 0, 777, 0, 0, 0, 0, 0, 2491, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 833, 0, 0, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 0, 0, 0, 855, 856, 857, 0, 2535, 860, 0, 0, 0, 0, 0, 0, 0, 0, 0, 874, 0, 2548, 0, 0, 0, 0, 0, 0, 2555, 0, 0, 922, 923, 924, 925, 926, 927, 0, 0, 0, 939, 940, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2833, 2836, 0, 0, 0, 979, 980, 981, 982, 0, 0, 2208, 0, 0, 0, 995, 2215, 2845, 1000, 0, 0, 0, 1008, 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 0, 0, 1023, 0, 0, 1030, 1031, 0, 1039, 1040, 0, 1042, 0, 0, 0, 0, 0, 0, 1053, 0, 0, 0, 0, 1078, 1079, 0, 1081, 0, 0, 0, 1087, 0, 1095, 1096, 1097, 1098, 0, 0, 0, 0, 0, 0, 0, 0, 1155, 1156, 1157, 0, 1161, 0, 0, 2664, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 758, 0, 766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 892, 899, 906, 0, 916, 0, 0, 0, 0, 0, 0, 0, 0, 935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2491, 958, 0, 0, 0, 0, 0, 2502, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2988, 0, 0, 0, 0, 0, 0, 2535, 0, 0, 0, 0, 0, 0, 2548, 0, 0, 0, 0, 2555, 0, 0, 0, 1033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1055, 1062, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 3009, 3012, 0, 3015, 1100, 1107, 1114, 1121, 1128, 1135, 1142, 1149, 0, 0, 3030, 3033, 0, 0, 1767, 0, 0, 0, 0, 3041, 0, 0, 0, 0, 0, 0, 0, 805, 808, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1843, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2664, 0, 3062, 3065, 3068, 3071, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3077, 3080, 3083, 3090, 3097, 3100, 3103, 3106, 0, 0, 3109, 3112, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2738, 0, 0, 0, 2748, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3150, 3153, 3156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3083, 0, 0, 0, 0, 0, 0, 3090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3238, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3253, 3256, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1770, 0, 0, 0, 0, 0, 0, 0, 808, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3065, 0, 0, 0, 3071, 0, 0, 0, 3276, 0, 0, 0, 0, 1607, 0, 0, 0, 3083, 0, 0, 0, 0, 3090, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3112, 0, 0, 0, 0, 0, 0, 0, 1695, 0, 0, 0, 0, 0, 1715, 1716, 0, 0, 0, 0, 1731, 1732, 0, 0, 0, 0, 0, 0, 0, 3303, 3306, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3333, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3346, 3349, 0, 0, 0, 0, 0, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3372, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3382, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1848, 1849, 1850, 1851, 1852, 1853, 0, 1854, 0, 0, 0, 0, 0, 0, 0, 1871, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1889, 0, 0, 0, 0, 0, 0, 0, 0, 1622, 0, 0, 0, 1636, 1643, 1650, 1657, 0, 1667, 1674, 0, 1682, 0, 0, 0, 0, 1697, 1704, 0, 0, 0, 0, 0, 0, 0, 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1946, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1977, 0, 0, 0, 1984, 1985, 1986, 1987, 0, 758, 1787, 0, 0, 0, 0, 766, 1797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2021, 2022, 2023, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2051, 2052, 2053, 2054, 0, 0, 0, 2057, 0, 0, 0, 1857, 2061, 1865, 0, 0, 0, 2065, 0, 0, 0, 0, 2069, 0, 0, 0, 0, 2073, 0, 0, 0, 1883, 2077, 0, 0, 0, 0, 2081, 0, 0, 0, 0, 2085, 0, 2087, 0, 0, 892, 0, 0, 0, 0, 899, 0, 0, 0, 0, 906, 0, 0, 0, 0, 0, 0, 916, 1904, 0, 0, 1911, 1918, 0, 0, 0, 0, 0, 0, 935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 958, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1953, 0, 0, 1961, 0, 0, 0, 0, 0, 1971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1991, 0, 0, 0, 0, 1033, 2001, 2008, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1055, 0, 0, 0, 0, 1062, 0, 0, 0, 0, 1069, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1089, 0, 0, 0, 0, 0, 0, 0, 0, 1100, 0, 0, 0, 0, 1107, 0, 0, 0, 0, 1114, 0, 0, 0, 0, 1121, 0, 0, 0, 0, 1128, 0, 0, 0, 0, 1135, 0, 0, 0, 0, 1142, 0, 0, 0, 0, 1149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 2209, 2216, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 1218, 1747, 2227, 2608, 2858, 3026, 1219, 1748, 2228, 2609, 2859, 3027, 3166, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 1220, 209, 210, 1221, 1222, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 1749, 2610, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 1223, 291, 292, 663, 664, 665, 666, 667, 1224, 1225, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 1226, 1750, 2229, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2654, 2655, 2656, 2657, 2658, 2659, 2660, 0, 0, 0, 0, 0, 0, 0, 0, 2492, 0, 0, 0, 0, 0, 1622, 2503, 0, 0, 2679, 0, 0, 0, 0, 0, 1636, 0, 0, 0, 0, 1643, 0, 0, 0, 0, 1650, 0, 0, 0, 0, 1657, 0, 0, 0, 0, 0, 0, 1667, 0, 0, 0, 0, 1674, 0, 0, 0, 0, 0, 1682, 2536, 0, 0, 0, 2712, 0, 0, 0, 0, 0, 1697, 0, 0, 0, 0, 1704, 2549, 2556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1725, 2726, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1787, 0, 0, 0, 0, 0, 1797, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1857, 2665, 0, 0, 0, 0, 1865, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1883, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1904, 0, 0, 0, 0, 1911, 0, 0, 0, 0, 1918, 0, 0, 0, 935, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1953, 0, 0, 0, 0, 0, 1961, 0, 0, 0, 0, 0, 0, 1971, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1991, 0, 0, 0, 0, 0, 2001, 0, 0, 0, 0, 2008, 2739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1114, 0, 1121, 0, 0, 0, 0, 0, 1142, 0, 1149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2981, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2209, 0, 0, 0, 0, 2216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3040, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3057, 0, 0, 0, 3058, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3074, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2492, 0, 0, 0, 0, 0, 0, 2503, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2536, 0, 0, 0, 0, 0, 0, 2549, 0, 0, 0, 0, 2556, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2665, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3084, 3091, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2739, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3337, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 3084, 0, 0, 0, 0, 3091, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 1218, 1747, 2227, 2608, 2858, 3026, 1219, 1748, 2228, 2609, 2859, 3027, 0, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 1220, 209, 210, 1221, 1222, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 1749, 2610, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 1223, 291, 292, 663, 664, 665, 666, 667, 1224, 1225, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 1226, 1750, 2229, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 1218, 1747, 2227, 2608, 2858, 0, 1219, 1748, 2228, 2609, 2859, 0, 0, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 1220, 209, 210, 1221, 1222, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 1749, 2610, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 1223, 291, 292, 663, 664, 665, 666, 667, 1224, 1225, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 1226, 1750, 2229, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 1218, 1747, 2227, 2608, 0, 0, 1219, 1748, 2228, 2609, 0, 0, 0, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 1220, 209, 210, 1221, 1222, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 1749, 2610, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 1223, 291, 292, 663, 664, 665, 666, 667, 1224, 1225, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 1226, 1750, 2229, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 1218, 1747, 2227, 0, 0, 0, 1219, 1748, 2228, 0, 0, 0, 0, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 1220, 209, 210, 1221, 1222, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 1749, 0, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 1223, 291, 292, 663, 664, 665, 666, 667, 1224, 1225, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 1226, 1750, 2229, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 1218, 1747, 0, 0, 0, 0, 1219, 1748, 0, 0, 0, 0, 0, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 1220, 209, 210, 1221, 1222, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 1749, 0, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 1223, 291, 292, 663, 664, 665, 666, 667, 1224, 1225, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 1226, 1750, 0, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 1218, 0, 0, 0, 0, 0, 1219, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 1220, 209, 210, 1221, 1222, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 1223, 291, 292, 663, 664, 665, 666, 667, 1224, 1225, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 1226, 0, 0, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 630, 151, 631, 152, 153, 154, 155, 156, 632, 633, 157, 158, 159, 160, 161, 634, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 635, 179, 180, 181, 182, 183, 184, 185, 636, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 637, 196, 638, 639, 640, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 641, 642, 643, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 644, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 645, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 646, 242, 647, 648, 243, 244, 245, 246, 247, 649, 650, 248, 651, 652, 249, 653, 654, 655, 656, 657, 250, 658, 251, 252, 253, 254, 255, 256, 257, 258, 659, 660, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 661, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 662, 0, 291, 292, 663, 664, 665, 666, 667, 0, 0, 293, 294, 295, 296, 668, 297, 298, 299, 300, 301, 302, 303, 669, 304, 305, 306, 670, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 671, 320, 321, 322, 323, 672, 673, 674, 324, 325, 326, 327, 328, 329, 330, 331, 675, 332, 333, 334, 676, 335, 677, 0, 0, 0, 678, 336, 337, 679, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 680, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 360, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 398, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 1233, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1236, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1253, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1254, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1267, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1268, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1269, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1270, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1271, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1274, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1275, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1320, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1321, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1322, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1323, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1324, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1325, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1326, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1327, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1328, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1329, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1332, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1335, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1336, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1354, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1355, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1356, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1360, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1361, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1363, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1364, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1365, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1366, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1371, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1372, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1373, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1377, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1424, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1425, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1426, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1427, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1428, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1429, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1430, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1431, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1432, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1433, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1457, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1458, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1463, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1467, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1473, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1503, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1509, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1510, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1511, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 1512, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1533, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1535, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1536, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 1595, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1753, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 1754, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2095, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2096, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2102, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2103, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2104, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2105, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2106, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2107, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2108, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2109, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2110, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2111, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2117, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2154, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2160, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2176, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2177, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2194, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2195, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2196, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2232, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2233, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2234, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2235, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2236, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2237, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2238, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2247, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2248, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2249, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2250, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2263, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2295, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2296, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2304, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2310, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2317, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2318, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2319, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2320, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2321, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2322, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2323, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2324, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2325, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2326, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2335, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2353, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2357, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2358, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2359, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2360, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2361, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2362, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2363, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2364, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2365, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2366, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2367, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2369, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2370, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2372, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2373, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2381, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2421, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2434, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2441, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2442, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2465, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2466, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2583, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2584, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2600, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2762, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2763, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2778, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2784, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2794, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2796, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2799, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2800, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2802, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2848, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2849, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2851, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2861, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2862, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2863, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2864, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2865, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2866, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2868, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2869, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2870, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2871, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2876, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2877, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2882, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2883, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2884, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2885, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2887, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2890, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2910, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2911, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2912, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2913, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2914, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2923, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2927, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2928, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2929, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2930, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2931, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2932, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2933, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2934, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2935, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2937, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2938, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 2939, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2942, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 2945, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2955, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2956, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2957, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2961, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2962, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 2963, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3018, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3019, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3020, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3122, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3123, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3124, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3125, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3126, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3127, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3128, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3129, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3133, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3134, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3135, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3139, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3159, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3160, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3167, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3173, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3174, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3175, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3179, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3183, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3184, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3185, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3186, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3187, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3188, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3189, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3191, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3204, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3205, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3232, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3233, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3236, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3243, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3244, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3259, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3260, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3290, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3293, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 3294, 358, 0, 0, 87, 0, 88, 0, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3295, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3296, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3309, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3310, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3312, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3313, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3317, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3318, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3319, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3320, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3321, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3328, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3329, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3331, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3332, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3338, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3339, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3352, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3362, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3364, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3365, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3375, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3377, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3378, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 3379, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3380, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3381, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3385, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3386, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3394, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3395, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3397, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 3398, 0, 89, 65, 66, 67, 68, 69, 70, 71, 72, 0, 73, 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, 76, 0, 146, 77, 147, 78, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 79, 80, 81, 82, 83, 84, 85, 86, 0, 0, 0, 0, 0, 0, 0, 0, 0, 149, 150, 0, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 0, 179, 180, 181, 182, 183, 184, 185, 0, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 0, 196, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 197, 198, 199, 200, 0, 0, 0, 201, 202, 203, 204, 205, 206, 207, 208, 0, 209, 210, 0, 0, 211, 212, 0, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 0, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 0, 242, 0, 0, 243, 244, 245, 246, 247, 0, 0, 248, 0, 0, 249, 0, 0, 0, 0, 0, 250, 0, 251, 252, 253, 254, 255, 256, 257, 258, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 0, 0, 274, 275, 0, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 0, 0, 291, 292, 0, 0, 0, 0, 0, 0, 0, 293, 294, 295, 296, 0, 297, 298, 299, 300, 301, 302, 303, 0, 304, 305, 306, 0, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 0, 320, 321, 322, 323, 0, 0, 0, 324, 325, 326, 327, 328, 329, 330, 331, 0, 332, 333, 334, 0, 335, 0, 0, 0, 0, 0, 336, 337, 0, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 0, 0, 358, 0, 0, 87, 0, 88, 0, 0, 89 }; static const yytype_int16 yycheck[] = { 15, 16, 1419, 1318, 1316, 2241, 1314, 1168, 1312, 1487, 1563, 1568, 1583, 1588, 2293, 17, 18, 5, 45, 7, 63, 122, 5, 5, 12, 13, 6, 67, 138, 5, 138, 405, 5, 30, 7, 8, 9, 10, 14, 12, 13, 127, 128, 5, 5, 7, 5, 1208, 7, 8, 12, 13, 371, 707, 30, 709, 5, 5, 377, 7, 8, 9, 10, 369, 12, 13, 63, 369, 50, 30, 376, 9, 87, 88, 376, 63, 374, 50, 51, 377, 14, 30, 374, 63, 111, 377, 1247, 369, 103, 104, 105, 106, 119, 369, 376, 374, 84, 5, 377, 5, 376, 63, 50, 51, 38, 64, 40, 41, 42, 369, 5, 369, 27, 47, 48, 49, 376, 132, 376, 30, 135, 136, 84, 374, 374, 374, 377, 377, 377, 144, 145, 146, 147, 371, 372, 5, 84, 7, 8, 9, 10, 374, 12, 13, 377, 27, 148, 376, 377, 45, 46, 58, 59, 7, 8, 7, 8, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 135, 136, 27, 30, 0, 369, 17, 19, 21, 24, 20, 83, 50, 51, 22, 52, 23, 52, 5, 5, 5, 5, 5, 39, 5, 34, 373, 373, 34, 373, 44, 36, 5, 5, 5, 5, 50, 373, 373, 53, 377, 55, 10, 36, 376, 375, 375, 375, 375, 63, 375, 375, 375, 375, 68, 69, 70, 71, 72, 73, 74, 75, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 3, 4, 5, 6, 7, 8, 9, 10, 375, 12, 13, 375, 3, 4, 5, 6, 7, 8, 9, 10, 375, 12, 13, 43, 375, 375, 375, 375, 375, 375, 52, 375, 375, 375, 375, 375, 381, 375, 375, 375, 375, 44, 375, 375, 375, 52, 375, 50, 375, 375, 53, 405, 55, 44, 375, 375, 375, 387, 375, 50, 63, 375, 53, 375, 55, 68, 69, 70, 71, 72, 73, 74, 75, 375, 375, 375, 375, 68, 69, 70, 71, 72, 73, 74, 75, 375, 375, 374, 372, 707, 375, 709, 375, 375, 375, 375, 375, 375, 375, 375, 359, 375, 375, 375, 6, 375, 375, 375, 375, 375, 375, 375, 375, 375, 360, 375, 362, 376, 389, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 34, 375, 390, 375, 375, 7, 375, 375, 375, 375, 375, 375, 373, 375, 375, 376, 375, 373, 375, 377, 65, 375, 373, 375, 412, 375, 414, 373, 374, 373, 418, 419, 420, 421, 422, 423, 424, 375, 373, 375, 375, 371, 375, 431, 432, 433, 434, 435, 436, 437, 438, 439, 373, 5, 377, 443, 375, 445, 446, 375, 448, 375, 375, 375, 101, 375, 375, 375, 62, 375, 375, 375, 375, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 375, 472, 375, 474, 475, 476, 375, 375, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 375, 375, 506, 507, 508, 509, 375, 511, 375, 375, 375, 375, 375, 375, 373, 375, 63, 521, 522, 523, 524, 525, 526, 375, 375, 375, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 373, 377, 375, 65, 412, 378, 369, 369, 550, 551, 552, 553, 554, 555, 375, 375, 558, 375, 560, 561, 376, 563, 375, 565, 375, 567, 568, 569, 570, 571, 572, 573, 574, 575, 375, 65, 578, 375, 375, 581, 582, 375, 584, 585, 586, 587, 369, 375, 590, 591, 592, 593, 594, 1741, 375, 375, 375, 599, 600, 601, 602, 603, 604, 375, 606, 375, 608, 609, 610, 611, 707, 375, 709, 710, 711, 710, 711, 375, 620, 621, 622, 375, 624, 625, 712, 2891, 375, 373, 375, 375, 375, 375, 378, 375, 375, 375, 375, 375, 5, 373, 374, 375, 375, 375, 378, 375, 375, 14, 15, 16, 375, 18, 19, 20, 21, 22, 23, 24, 25, 26, 375, 28, 29, 375, 31, 32, 33, 375, 35, 375, 37, 375, 375, 375, 375, 375, 690, 375, 375, 681, 375, 375, 684, 685, 375, 687, 375, 375, 375, 56, 375, 375, 375, 60, 375, 697, 375, 375, 700, 66, 702, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 83, 375, 375, 375, 375, 375, 375, 375, 726, 714, 375, 729, 375, 375, 732, 375, 375, 735, 375, 375, 738, 375, 375, 741, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 753, 375, 375, 756, 375, 375, 375, 375, 761, 375, 375, 375, 375, 375, 375, 375, 769, 375, 375, 375, 375, 375, 375, 776, 375, 375, 375, 780, 375, 375, 783, 376, 376, 786, 377, 377, 789, 376, 376, 792, 376, 376, 795, 377, 376, 798, 376, 376, 801, 377, 377, 804, 376, 369, 807, 376, 376, 810, 376, 369, 813, 65, 377, 377, 377, 376, 65, 376, 369, 377, 377, 377, 377, 826, 377, 377, 376, 830, 376, 376, 369, 376, 369, 836, 369, 369, 839, 369, 376, 369, 376, 369, 369, 376, 65, 376, 65, 376, 369, 65, 376, 376, 376, 65, 65, 377, 376, 376, 376, 376, 376, 376, 369, 377, 867, 377, 376, 870, 377, 377, 376, 376, 369, 376, 877, 376, 369, 369, 881, 369, 376, 884, 376, 369, 887, 369, 65, 890, 376, 376, 65, 376, 895, 376, 369, 377, 376, 376, 376, 902, 2463, 377, 2461, 377, 376, 376, 909, 376, 376, 376, 2455, 914, 2453, 376, 376, 369, 919, 377, 376, 376, 369, 369, 369, 376, 369, 369, 369, 930, 369, 369, 933, 377, 369, 65, 376, 938, 65, 376, 2404, 377, 376, 376, 376, 369, 377, 369, 376, 376, 376, 3173, 953, 2356, 369, 956, 376, 369, 377, 376, 961, 377, 376, 369, 377, 966, 376, 376, 969, 377, 2271, 972, 2270, 369, 975, 2269, 376, 978, 2268, 377, 369, 369, 369, 369, 369, 377, 987, 65, 369, 990, 65, 369, 65, 994, 377, 377, 369, 377, 999, 65, 369, 377, 1003, 65, 370, 371, 1007, 369, 65, 377, 369, 65, 377, 369, 377, 369, 376, 375, 1019, 376, 371, 1022, 377, 376, 376, 1026, 375, 375, 1029, 375, 375, 375, 375, 375, 59, 1036, 376, 65, 65, 65, 371, 65, 65, 65, 1045, 65, 65, 1048, 65, 65, 65, 65, 65, 65, 65, 65, 65, 1058, 65, 65, 65, 65, 371, 371, 1065, 371, 376, 65, 65, 376, 65, 1072, 376, 376, 65, 377, 1077, 376, 2225, 376, 376, 369, 377, 376, 65, 1086, 377, 377, 369, 65, 377, 1092, 376, 376, 65, 377, 369, 377, 65, 369, 377, 376, 1103, 65, 376, 376, 65, 376, 376, 1110, 377, 377, 376, 369, 369, 376, 1117, 376, 65, 376, 369, 65, 376, 1124, 377, 376, 376, 375, 369, 375, 1131, 375, 375, 65, 65, 377, 376, 1138, 377, 377, 377, 377, 377, 376, 1145, 376, 369, 376, 65, 377, 377, 1152, 377, 377, 65, 377, 377, 377, 376, 1160, 376, 369, 377, 369, 377, 377, 377, 1168, 1169, 1170, 377, 1172, 377, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 377, 1185, 369, 369, 369, 369, 369, 376, 65, 377, 65, 1195, 65, 1197, 376, 376, 1200, 65, 377, 1203, 1204, 376, 1206, 1207, 1208, 377, 376, 376, 1212, 1213, 1214, 1215, 1216, 377, 376, 65, 377, 376, 65, 377, 376, 369, 377, 1227, 376, 376, 376, 65, 377, 376, 65, 377, 1236, 377, 376, 65, 377, 376, 376, 376, 376, 376, 376, 1247, 376, 1249, 377, 1251, 377, 1253, 1254, 1255, 377, 1257, 376, 1259, 3, 4, 5, 6, 7, 8, 9, 10, 377, 12, 13, 1271, 376, 369, 1274, 1275, 1276, 377, 369, 376, 369, 1281, 376, 376, 376, 369, 376, 1287, 369, 377, 376, 376, 65, 376, 376, 65, 369, 376, 1298, 369, 376, 44, 369, 369, 65, 376, 65, 50, 65, 65, 53, 65, 55, 65, 65, 65, 65, 376, 376, 65, 377, 376, 376, 65, 375, 68, 69, 70, 71, 72, 73, 74, 75, 377, 375, 1335, 1336, 375, 65, 65, 65, 65, 1342, 1343, 1344, 1345, 1346, 1347, 65, 1349, 65, 65, 65, 1353, 65, 1355, 65, 1357, 65, 65, 1360, 1361, 65, 1363, 1364, 1365, 1366, 65, 65, 1369, 377, 1371, 1372, 1373, 376, 376, 376, 1377, 377, 377, 65, 65, 377, 369, 377, 377, 377, 1387, 376, 65, 377, 376, 1392, 377, 1394, 65, 377, 1397, 376, 376, 376, 65, 376, 376, 1404, 376, 65, 376, 375, 377, 375, 375, 65, 1413, 376, 65, 376, 369, 377, 376, 1420, 377, 377, 377, 1424, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 377, 377, 377, 377, 1439, 376, 376, 376, 376, 376, 369, 65, 1447, 376, 1449, 377, 376, 65, 376, 376, 376, 1456, 1457, 1458, 377, 377, 376, 376, 65, 377, 377, 377, 376, 1468, 376, 376, 376, 376, 65, 65, 377, 377, 1477, 376, 375, 375, 1481, 1482, 1483, 1484, 65, 65, 376, 376, 65, 377, 377, 376, 375, 375, 65, 376, 1497, 377, 377, 376, 376, 376, 1503, 369, 377, 369, 377, 375, 377, 376, 1511, 1512, 1513, 376, 1515, 376, 65, 377, 376, 1520, 377, 376, 376, 376, 1525, 376, 65, 377, 376, 18, 369, 377, 1533, 376, 376, 376, 1537, 377, 1539, 376, 1541, 377, 138, 377, 1545, 1546, 1547, 1548, 376, 1550, 376, 1552, 377, 377, 1555, 377, 1557, 376, 376, 1560, 377, 1562, 376, 376, 1565, 376, 1567, 377, 377, 1570, 376, 1572, 377, 377, 1575, 376, 1577, 377, 376, 1580, 2881, 1582, 2880, 698, 1585, 2879, 1587, 132, 1589, 2866, 758, 1592, 1284, 2256, 1595, 1787, 766, 2262, 1797, 1290, 1306, 1310, 1300, 2284, 2288, 1606, 2309, 1302, 2290, 1610, 1330, 2908, 1857, 2665, 2315, 1865, 2783, 2492, 3197, 3201, 2331, 2116, 1883, 1622, 1625, 2790, 2503, 892, 2126, 373, 1631, 375, 1390, 1634, 378, 2131, 1636, 899, 1639, 1395, 1643, 2141, 2136, 2148, 2153, 1646, 1674, 1407, 1400, 2342, 1667, 1904, 1653, 916, 1911, 2347, 2352, 2159, 1918, 1660, 2536, 906, 2807, 3214, 1665, 3084, 3219, 3091, 1442, 1670, 3230, 1657, 958, 2170, 1650, 935, 1677, 2814, 2549, 2819, 2594, 2209, 2175, 2556, 1685, 2216, 2599, 1953, 2386, 2380, 1691, 1961, 1971, 1694, 2393, 2409, 1991, 1033, 2415, 1700, 1485, 2001, 1500, 2954, 2420, 2008, 1707, 2739, 2191, 1682, 2857, 1518, 1062, 1714, 1055, 1523, 2958, 2439, 1089, 1720, 1114, 1100, 1723, 1107, 1121, 1128, 1544, 1728, 1578, 1573, 1069, 1135, -1, 1528, -1, 1142, 1697, 1738, 1739, 1740, 1741, -1, 1558, -1, 1704, 1746, -1, 1553, 1149, -1, 1751, -1, 1753, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1725, 1769, -1, -1, 1772, -1, -1, 1775, -1, -1, 1778, -1, -1, -1, -1, 1783, -1, -1, -1, -1, -1, -1, 1790, -1, -1, 1793, -1, -1, -1, -1, -1, -1, 1800, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, 1814, 12, 13, 1817, -1, -1, 1820, -1, -1, 1823, -1, -1, 1826, -1, -1, 1829, -1, -1, 1832, -1, -1, 1835, -1, -1, 1838, -1, -1, 1841, -1, -1, -1, 1845, -1, 44, -1, -1, -1, -1, -1, 50, -1, -1, 53, -1, 55, -1, 1860, -1, -1, -1, -1, -1, -1, -1, 1868, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, 3182, -1, 3181, -1, 1886, -1, -1, -1, 1890, -1, -1, 1893, -1, -1, -1, 1897, -1, -1, 1900, -1, -1, -1, -1, -1, -1, 1907, -1, -1, -1, -1, -1, -1, 1914, -1, -1, -1, -1, -1, -1, 1921, -1, -1, -1, 1925, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1941, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1951, -1, -1, -1, -1, 1956, -1, -1, -1, -1, -1, -1, -1, 1964, -1, -1, -1, -1, 1969, -1, -1, -1, -1, 1974, -1, -1, -1, -1, -1, 1980, -1, -1, 1983, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1994, -1, -1, 1997, -1, -1, -1, -1, -1, -1, 2004, -1, -1, -1, -1, -1, -1, 2011, -1, -1, -1, -1, 3316, 2017, -1, -1, 2020, -1, -1, -1, 2024, -1, -1, 2027, -1, -1, 2030, -1, -1, -1, -1, 2035, -1, -1, -1, 2039, -1, -1, 2042, -1, -1, 2045, -1, -1, 2048, -1, -1, -1, -1, -1, -1, 2055, -1, -1, -1, 2059, -1, -1, -1, 2063, -1, -1, -1, 2067, -1, -1, -1, 2071, -1, -1, -1, 2075, -1, -1, -1, 2079, -1, -1, -1, 2083, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2095, 2096, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2109, -1, 2111, -1, 2113, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2123, -1, -1, -1, -1, 2128, -1, -1, -1, -1, 2133, -1, 2135, -1, -1, 2138, -1, 2140, -1, -1, -1, -1, 2145, -1, -1, -1, -1, 2150, -1, 2152, -1, 2154, -1, 2156, -1, 2158, -1, -1, -1, -1, -1, -1, -1, -1, 2167, -1, -1, -1, -1, 2172, -1, -1, -1, 373, 374, 375, -1, -1, 378, -1, -1, -1, -1, -1, -1, 2188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2204, -1, -1, 2207, -1, -1, -1, -1, 2212, -1, -1, -1, -1, -1, -1, 2219, -1, -1, -1, 2223, 2224, 2225, 2226, -1, -1, -1, 2230, -1, -1, 2233, 2234, 2235, 2236, 2237, -1, 2239, -1, -1, -1, 2243, -1, 2245, -1, 2247, 2248, -1, -1, -1, -1, 2253, -1, -1, -1, -1, -1, 2259, -1, -1, -1, 2263, -1, -1, 2266, -1, -1, -1, -1, -1, 2272, -1, 2274, -1, -1, -1, -1, -1, 2280, -1, 2282, -1, -1, -1, 2286, -1, -1, -1, -1, -1, 2292, -1, -1, -1, -1, 2297, 2298, 2299, 2300, 2301, 2302, 2303, -1, -1, 2306, -1, -1, -1, -1, -1, 2312, -1, -1, -1, -1, 2317, 2318, 2319, 2320, 2321, 2322, -1, -1, -1, -1, -1, 2328, -1, -1, -1, -1, -1, -1, 2335, -1, -1, -1, 2339, -1, -1, -1, -1, 2344, -1, -1, -1, -1, 2349, -1, -1, -1, -1, -1, -1, -1, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365, 2366, -1, -1, -1, 2370, -1, 2372, 2373, -1, -1, -1, 2377, -1, -1, -1, -1, -1, 2383, -1, -1, -1, 2387, -1, -1, 2390, -1, -1, -1, 2394, -1, -1, -1, -1, -1, -1, -1, -1, 2403, -1, -1, 2406, -1, -1, -1, -1, -1, 2412, -1, -1, -1, -1, 2417, -1, -1, -1, -1, 2422, -1, 2424, -1, -1, -1, -1, -1, -1, -1, 2432, -1, -1, -1, -1, -1, -1, -1, -1, 2441, -1, -1, -1, -1, 2446, 2447, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2471, -1, -1, 2474, -1, -1, 2477, -1, -1, 2480, -1, -1, 2483, -1, -1, 2486, -1, -1, 2489, -1, -1, -1, -1, -1, 2495, -1, -1, -1, 2499, -1, -1, -1, -1, -1, -1, 2506, -1, -1, 2509, -1, -1, 2512, -1, -1, 2515, -1, -1, -1, 2519, -1, -1, -1, 2523, -1, -1, 2526, -1, -1, -1, -1, 2531, -1, -1, -1, -1, -1, -1, -1, 2539, -1, -1, 2542, -1, -1, 2545, -1, -1, -1, -1, -1, -1, 2552, -1, -1, -1, -1, -1, -1, 2559, -1, -1, -1, -1, 2564, -1, -1, 2567, 2568, -1, -1, -1, -1, 2573, -1, -1, 2576, -1, -1, 2579, -1, -1, 2582, -1, -1, -1, -1, -1, -1, -1, -1, 2591, -1, -1, -1, -1, 2596, -1, -1, -1, -1, -1, -1, -1, -1, 2605, 2606, 2607, -1, -1, -1, 2611, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2625, 2626, -1, -1, 2629, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2650, -1, -1, 2653, -1, -1, -1, -1, -1, -1, -1, 2661, -1, -1, -1, -1, -1, -1, 2668, -1, -1, 2671, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2682, -1, -1, 2685, -1, -1, 2688, 2689, -1, -1, -1, 2693, -1, -1, 2696, -1, -1, 2699, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2716, -1, -1, 2719, -1, -1, -1, 2723, -1, -1, -1, -1, -1, 2729, -1, -1, 2732, -1, -1, 2735, -1, -1, -1, -1, -1, -1, 2742, -1, -1, -1, -1, -1, -1, -1, 2750, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2761, 2762, 2763, -1, -1, -1, -1, 2768, -1, 2770, -1, 2772, -1, 2774, -1, 2776, -1, 2778, -1, 2780, -1, -1, -1, 2784, -1, -1, 2787, -1, -1, -1, -1, -1, -1, 2794, -1, 2796, -1, -1, 2799, -1, -1, -1, -1, 2804, -1, 2806, -1, -1, -1, -1, 2811, -1, -1, -1, -1, 2816, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2835, -1, -1, 2838, 2839, -1, -1, 2842, -1, -1, -1, -1, 2847, -1, -1, -1, -1, -1, -1, -1, 2855, 2856, 2857, -1, -1, 2860, 2861, -1, -1, -1, -1, -1, 2867, 2868, 2869, 2870, -1, -1, -1, -1, -1, 2876, -1, -1, -1, -1, -1, 2882, 2883, 2884, -1, 2886, -1, 2888, 2889, 2890, -1, -1, -1, 2894, -1, -1, -1, 2898, -1, -1, -1, 2902, -1, -1, 2905, -1, -1, -1, -1, -1, -1, -1, -1, 2914, -1, -1, -1, -1, -1, 2920, -1, -1, -1, -1, -1, -1, 2927, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2945, 2946, -1, -1, -1, -1, 2951, -1, -1, -1, -1, -1, -1, -1, -1, 2960, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2978, -1, -1, -1, 2982, -1, -1, -1, -1, -1, -1, -1, 2990, 2991, -1, -1, -1, 2995, -1, -1, 2998, -1, -1, 3001, -1, 3003, -1, -1, -1, -1, -1, -1, -1, 3011, -1, -1, 3014, -1, -1, 3017, -1, -1, -1, -1, -1, -1, 3024, 3025, -1, -1, 3028, -1, -1, -1, 3032, -1, -1, 3035, -1, -1, -1, -1, -1, -1, -1, 3043, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3059, -1, -1, -1, -1, 3064, -1, -1, 3067, -1, -1, 3070, -1, -1, 3073, -1, -1, -1, -1, -1, 3079, -1, -1, 3082, -1, -1, -1, -1, 3087, -1, -1, -1, -1, -1, -1, 3094, -1, -1, -1, -1, 3099, -1, -1, 3102, -1, -1, 3105, -1, -1, 3108, -1, -1, 3111, -1, -1, 3114, -1, -1, 3117, -1, -1, -1, -1, 3122, -1, -1, -1, -1, 3127, -1, 3129, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3144, -1, 3146, -1, -1, -1, -1, -1, 3152, -1, -1, 3155, -1, -1, 3158, -1, -1, -1, -1, -1, 3164, 3165, -1, -1, 3168, -1, 3170, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3187, 3188, 3189, 3190, 3191, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3211, -1, -1, -1, -1, 3216, -1, -1, -1, -1, -1, -1, -1, 3224, -1, 3226, -1, -1, -1, -1, -1, 3232, 3233, -1, -1, -1, -1, -1, -1, 3240, -1, -1, -1, -1, -1, -1, 3247, -1, 3249, -1, -1, -1, -1, -1, 3255, -1, -1, 3258, -1, -1, -1, -1, 3263, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3278, 3279, -1, -1, 3282, -1, -1, -1, -1, -1, -1, -1, -1, 3291, -1, -1, 3294, -1, -1, -1, -1, 3299, -1, 3301, -1, -1, -1, 3305, -1, -1, 3308, -1, -1, -1, 3312, -1, -1, -1, -1, 3317, 3318, 3319, 3320, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3332, -1, -1, 3335, -1, -1, -1, -1, -1, -1, 3342, -1, 3344, -1, -1, -1, 3348, -1, -1, 3351, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3368, -1, 3370, -1, -1, -1, 3374, -1, -1, -1, -1, 3379, -1, -1, -1, -1, 3384, -1, -1, -1, -1, 3389, 425, 426, 427, 428, 429, 430, -1, -1, -1, -1, -1, -1, -1, -1, -1, 440, 441, 442, -1, 444, -1, -1, 447, -1, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 471, -1, 473, -1, -1, -1, 477, 478, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 504, 505, -1, -1, -1, -1, 510, -1, 512, 513, 514, 515, 516, 517, 518, 519, 520, -1, -1, -1, -1, -1, -1, 527, 528, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 542, 543, 544, 545, 546, 547, 548, 549, -1, -1, -1, -1, -1, -1, 556, 557, -1, 559, -1, -1, 562, -1, 564, -1, 566, -1, -1, -1, -1, -1, -1, -1, -1, -1, 576, 577, -1, 579, 580, -1, -1, 583, -1, -1, -1, -1, 588, 589, -1, -1, -1, -1, -1, 595, 596, 597, 598, -1, -1, -1, -1, -1, -1, 605, -1, 607, -1, -1, -1, -1, 612, 613, 614, 615, 616, 617, 618, 619, 5, -1, -1, 623, -1, -1, -1, -1, -1, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, -1, 31, 32, 33, -1, 35, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 5, -1, 56, -1, -1, -1, 60, -1, -1, 14, 15, 16, 66, 18, 19, 20, 21, 22, 23, 24, 25, 26, -1, 28, 29, -1, 31, 32, 33, 83, 35, -1, 37, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 56, -1, -1, -1, 60, -1, -1, -1, -1, -1, 66, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 758, -1, -1, -1, -1, -1, -1, -1, 766, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 892, -1, -1, -1, -1, -1, -1, 899, -1, -1, -1, -1, -1, -1, 906, -1, -1, -1, -1, -1, -1, -1, -1, -1, 916, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 958, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1033, 370, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1055, -1, -1, -1, -1, -1, -1, 1062, -1, -1, -1, -1, -1, -1, 1069, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1089, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1100, -1, -1, -1, -1, -1, -1, 1107, -1, -1, -1, -1, -1, -1, 1114, -1, -1, -1, -1, -1, -1, 1121, -1, -1, -1, -1, -1, -1, 1128, -1, -1, -1, -1, -1, -1, 1135, -1, -1, -1, -1, -1, -1, 1142, -1, -1, -1, -1, -1, -1, 1149, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1171, -1, 1173, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, -1, 1196, -1, 1198, 1199, -1, 1201, 1202, -1, -1, 1205, -1, -1, -1, 1209, 1210, 1211, -1, -1, -1, -1, -1, 1217, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1267, 1268, 1269, 1270, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1284, 1285, -1, -1, -1, -1, 1290, 1291, -1, -1, -1, -1, -1, -1, -1, -1, 1300, -1, 1302, -1, -1, -1, 1306, -1, -1, -1, 1310, -1, 1312, -1, 1314, -1, 1316, -1, 1318, -1, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, -1, 1332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1354, -1, 1356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1374, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1390, -1, -1, -1, -1, 1395, -1, -1, -1, -1, 1400, -1, -1, -1, -1, -1, -1, 1407, 1408, -1, -1, 1411, 1412, -1, -1, -1, -1, -1, -1, 1419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1442, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1463, -1, -1, -1, 1467, -1, -1, 1470, -1, -1, 1473, -1, -1, 1476, -1, -1, 1479, 1480, -1, -1, -1, -1, 1485, -1, 1487, -1, -1, -1, -1, -1, -1, -1, 1495, -1, -1, -1, -1, 1500, 1501, 1502, -1, -1, -1, -1, -1, -1, 1509, 1510, -1, -1, -1, -1, -1, -1, -1, 1518, -1, -1, -1, -1, 1523, -1, -1, -1, -1, 1528, -1, -1, 1531, -1, -1, 1534, 1535, 1536, -1, -1, -1, -1, -1, -1, -1, 1544, -1, -1, -1, -1, -1, -1, -1, -1, 1553, -1, -1, -1, -1, 1558, -1, -1, -1, -1, 1563, -1, -1, -1, -1, 1568, -1, -1, -1, -1, 1573, -1, -1, -1, -1, 1578, -1, -1, -1, -1, 1583, -1, -1, -1, -1, 1588, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1622, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1636, -1, -1, -1, -1, -1, -1, 1643, -1, -1, -1, -1, -1, -1, 1650, -1, -1, -1, -1, -1, -1, 1657, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1667, -1, -1, -1, -1, -1, -1, 1674, -1, -1, -1, -1, -1, -1, -1, 1682, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1697, -1, -1, -1, -1, -1, -1, 1704, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1725, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1742, 1743, 1744, 1745, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1787, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1797, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1857, -1, -1, -1, -1, -1, -1, -1, 1865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1883, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1904, -1, -1, -1, -1, -1, -1, 1911, -1, -1, -1, -1, -1, -1, 1918, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1953, -1, -1, -1, -1, -1, -1, -1, 1961, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1971, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1991, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2001, -1, -1, -1, -1, -1, -1, 2008, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2102, 2103, 2104, 2105, 2106, 2107, 2108, -1, 2110, -1, -1, -1, -1, -1, 2116, 2117, -1, -1, -1, -1, -1, -1, -1, -1, 2126, -1, -1, -1, -1, 2131, -1, -1, -1, -1, 2136, -1, -1, -1, -1, 2141, -1, -1, -1, -1, -1, -1, 2148, -1, -1, -1, -1, 2153, -1, -1, -1, -1, -1, 2159, 2160, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2170, -1, -1, -1, -1, 2175, 2176, 2177, -1, -1, 2180, 2181, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2191, -1, 2193, 2194, 2195, 2196, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2209, -1, -1, -1, -1, -1, -1, 2216, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2241, -1, -1, -1, -1, -1, -1, -1, 2249, -1, -1, -1, -1, -1, -1, 2256, -1, -1, -1, -1, -1, 2262, -1, -1, -1, -1, -1, 2268, 2269, 2270, 2271, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2284, -1, -1, -1, 2288, -1, 2290, -1, -1, 2293, -1, 2295, 2296, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2309, 2310, -1, -1, -1, -1, 2315, -1, -1, -1, -1, -1, -1, -1, -1, 2324, 2325, 2326, -1, -1, -1, -1, 2331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2342, -1, -1, -1, -1, 2347, -1, -1, -1, -1, 2352, -1, -1, -1, 2356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2380, -1, -1, -1, -1, -1, 2386, -1, -1, -1, -1, -1, -1, 2393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2404, -1, -1, -1, -1, 2409, -1, -1, -1, -1, -1, 2415, -1, -1, -1, -1, 2420, 2421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2434, -1, -1, -1, -1, 2439, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2453, -1, 2455, -1, 419, 420, 421, 422, 2461, -1, 2463, -1, -1, 2466, -1, -1, -1, -1, -1, -1, -1, 436, 437, -1, -1, -1, -1, -1, 443, -1, 445, 446, -1, 448, -1, -1, -1, -1, -1, 2492, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2503, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 476, -1, -1, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, -1, -1, -1, 494, 495, 496, -1, 2536, 499, -1, -1, -1, -1, -1, -1, -1, -1, -1, 509, -1, 2549, -1, -1, -1, -1, -1, -1, 2556, -1, -1, 521, 522, 523, 524, 525, 526, -1, -1, -1, 530, 531, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2583, 2584, -1, -1, -1, 550, 551, 552, 553, -1, -1, 2594, -1, -1, -1, 560, 2599, 2600, 563, -1, -1, -1, 567, 568, 569, 570, 571, 572, 573, 574, 575, -1, -1, 578, -1, -1, 581, 582, -1, 584, 585, -1, 587, -1, -1, -1, -1, -1, -1, 594, -1, -1, -1, -1, 599, 600, -1, 602, -1, -1, -1, 606, -1, 608, 609, 610, 611, -1, -1, -1, -1, -1, -1, -1, -1, 620, 621, 622, -1, 624, -1, -1, 2665, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 442, -1, 444, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2739, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 516, 517, 518, -1, 520, -1, -1, -1, -1, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2783, 544, -1, -1, -1, -1, -1, 2790, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2800, -1, -1, -1, -1, -1, -1, 2807, -1, -1, -1, -1, -1, -1, 2814, -1, -1, -1, -1, 2819, -1, -1, -1, 583, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 595, 596, 597, -1, -1, -1, -1, -1, -1, -1, -1, -1, 607, 2848, 2849, -1, 2851, 612, 613, 614, 615, 616, 617, 618, 619, -1, -1, 2862, 2863, -1, -1, 2866, -1, -1, -1, -1, 2871, -1, -1, -1, -1, -1, -1, -1, 2879, 2880, 2881, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2891, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2908, -1, 2910, 2911, 2912, 2913, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2928, 2929, 2930, 2931, 2932, 2933, 2934, 2935, -1, -1, 2938, 2939, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2954, -1, -1, -1, 2958, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3018, 3019, 3020, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3084, -1, -1, -1, -1, -1, -1, 3091, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3123, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3159, 3160, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3173, -1, -1, -1, -1, -1, -1, -1, 3181, 3182, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3197, -1, -1, -1, 3201, -1, -1, -1, 3205, -1, -1, -1, -1, 1172, -1, -1, -1, 3214, -1, -1, -1, -1, 3219, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3230, -1, -1, -1, -1, -1, -1, -1, 1200, -1, -1, -1, -1, -1, 1206, 1207, -1, -1, -1, -1, 1212, 1213, -1, -1, -1, -1, -1, -1, -1, 3259, 3260, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3290, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3309, 3310, -1, -1, -1, -1, -1, 3316, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3352, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3363, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1342, 1343, 1344, 1345, 1346, 1347, -1, 1349, -1, -1, -1, -1, -1, -1, -1, 1357, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1377, -1, -1, -1, -1, -1, -1, -1, -1, 1184, -1, -1, -1, 1188, 1189, 1190, 1191, -1, 1193, 1194, -1, 1196, -1, -1, -1, -1, 1201, 1202, -1, -1, -1, -1, -1, -1, -1, -1, 1211, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1456, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1477, -1, -1, -1, 1481, 1482, 1483, 1484, -1, 1284, 1285, -1, -1, -1, -1, 1290, 1291, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1511, 1512, 1513, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1545, 1546, 1547, 1548, -1, -1, -1, 1552, -1, -1, -1, 1354, 1557, 1356, -1, -1, -1, 1562, -1, -1, -1, -1, 1567, -1, -1, -1, -1, 1572, -1, -1, -1, 1374, 1577, -1, -1, -1, -1, 1582, -1, -1, -1, -1, 1587, -1, 1589, -1, -1, 1390, -1, -1, -1, -1, 1395, -1, -1, -1, -1, 1400, -1, -1, -1, -1, -1, -1, 1407, 1408, -1, -1, 1411, 1412, -1, -1, -1, -1, -1, -1, 1419, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1442, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1467, -1, -1, 1470, -1, -1, -1, -1, -1, 1476, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1495, -1, -1, -1, -1, 1500, 1501, 1502, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1518, -1, -1, -1, -1, 1523, -1, -1, -1, -1, 1528, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1544, -1, -1, -1, -1, -1, -1, -1, -1, 1553, -1, -1, -1, -1, 1558, -1, -1, -1, -1, 1563, -1, -1, -1, -1, 1568, -1, -1, -1, -1, 1573, -1, -1, -1, -1, 1578, -1, -1, -1, -1, 1583, -1, -1, -1, -1, 1588, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, 1744, 1745, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2297, 2298, 2299, 2300, 2301, 2302, 2303, -1, -1, -1, -1, -1, -1, -1, -1, 2110, -1, -1, -1, -1, -1, 2116, 2117, -1, -1, 2322, -1, -1, -1, -1, -1, 2126, -1, -1, -1, -1, 2131, -1, -1, -1, -1, 2136, -1, -1, -1, -1, 2141, -1, -1, -1, -1, -1, -1, 2148, -1, -1, -1, -1, 2153, -1, -1, -1, -1, -1, 2159, 2160, -1, -1, -1, 2366, -1, -1, -1, -1, -1, 2170, -1, -1, -1, -1, 2175, 2176, 2177, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2191, 2394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2256, -1, -1, -1, -1, -1, 2262, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2309, 2310, -1, -1, -1, -1, 2315, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2331, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2342, -1, -1, -1, -1, 2347, -1, -1, -1, -1, 2352, -1, -1, -1, 2356, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2380, -1, -1, -1, -1, -1, 2386, -1, -1, -1, -1, -1, -1, 2393, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2409, -1, -1, -1, -1, -1, 2415, -1, -1, -1, -1, 2420, 2421, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2453, -1, 2455, -1, -1, -1, -1, -1, 2461, -1, 2463, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2784, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2594, -1, -1, -1, -1, 2599, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2870, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2898, -1, -1, -1, 2902, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2914, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2783, -1, -1, -1, -1, -1, -1, 2790, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2807, -1, -1, -1, -1, -1, -1, 2814, -1, -1, -1, -1, 2819, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2908, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2930, 2931, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2954, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3294, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, 3214, -1, -1, -1, -1, 3219, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, -1, 150, 151, 152, 153, 154, -1, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, -1, -1, 150, 151, 152, 153, -1, -1, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, -1, -1, -1, 150, 151, 152, -1, -1, -1, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, -1, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, -1, -1, -1, -1, 150, 151, -1, -1, -1, -1, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, -1, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, -1, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, -1, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, -1, 279, 280, 281, 282, 283, 284, 285, -1, -1, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, -1, -1, -1, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, 374, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, 374, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, 65, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, 374, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, 369, 370, -1, -1, 373, -1, 375, -1, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, 377, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, 376, -1, 378, 3, 4, 5, 6, 7, 8, 9, 10, -1, 12, 13, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 44, -1, -1, -1, -1, -1, 50, -1, 52, 53, 54, 55, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 68, 69, 70, 71, 72, 73, 74, 75, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 86, -1, 88, -1, 90, 91, 92, 93, 94, -1, -1, 97, 98, 99, 100, 101, -1, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, -1, 121, 122, 123, 124, 125, 126, 127, -1, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, -1, 140, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 157, 158, 159, 160, -1, -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, -1, 173, 174, -1, -1, 177, 178, -1, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, -1, 211, -1, -1, 214, 215, 216, 217, 218, -1, -1, 221, -1, -1, 224, -1, -1, -1, -1, -1, 230, -1, 232, 233, 234, 235, 236, 237, 238, 239, -1, -1, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, -1, -1, 259, 260, -1, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, -1, -1, 279, 280, -1, -1, -1, -1, -1, -1, -1, 288, 289, 290, 291, -1, 293, 294, 295, 296, 297, 298, 299, -1, 301, 302, 303, -1, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, -1, 319, 320, 321, 322, -1, -1, -1, 326, 327, 328, 329, 330, 331, 332, 333, -1, 335, 336, 337, -1, 339, -1, -1, -1, -1, -1, 345, 346, -1, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, -1, -1, 370, -1, -1, 373, -1, 375, -1, -1, 378 }; /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of state STATE-NUM. */ static const yytype_int16 yystos[] = { 0, 5, 14, 15, 16, 18, 25, 26, 28, 29, 31, 32, 33, 35, 37, 56, 60, 66, 370, 380, 381, 382, 383, 384, 385, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 400, 401, 9, 5, 5, 14, 30, 30, 63, 5, 5, 27, 27, 27, 30, 30, 5, 30, 5, 30, 14, 38, 40, 41, 42, 47, 48, 49, 3, 4, 5, 6, 7, 8, 9, 10, 12, 13, 44, 50, 53, 55, 68, 69, 70, 71, 72, 73, 74, 75, 373, 375, 378, 407, 410, 411, 412, 422, 422, 381, 386, 371, 386, 0, 369, 17, 19, 20, 21, 22, 23, 83, 24, 52, 52, 5, 5, 5, 5, 7, 12, 13, 63, 84, 373, 375, 402, 404, 5, 34, 34, 36, 5, 39, 5, 373, 5, 373, 373, 373, 422, 11, 63, 406, 416, 417, 418, 419, 422, 52, 54, 57, 85, 86, 88, 90, 91, 92, 93, 94, 97, 98, 99, 100, 101, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 121, 122, 123, 124, 125, 126, 127, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 140, 157, 158, 159, 160, 164, 165, 166, 167, 168, 169, 170, 171, 173, 174, 177, 178, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 211, 214, 215, 216, 217, 218, 221, 224, 230, 232, 233, 234, 235, 236, 237, 238, 239, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 259, 260, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 279, 280, 288, 289, 290, 291, 293, 294, 295, 296, 297, 298, 299, 301, 302, 303, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 319, 320, 321, 322, 326, 327, 328, 329, 330, 331, 332, 333, 335, 336, 337, 339, 345, 346, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 370, 422, 61, 67, 372, 371, 380, 5, 422, 422, 422, 422, 5, 5, 5, 10, 402, 402, 373, 402, 405, 376, 405, 373, 5, 50, 399, 399, 399, 36, 417, 63, 374, 408, 409, 374, 420, 422, 374, 420, 374, 5, 7, 12, 13, 51, 84, 373, 403, 404, 412, 413, 415, 376, 377, 422, 422, 422, 422, 381, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 5, 7, 8, 64, 87, 89, 95, 96, 102, 120, 128, 139, 141, 142, 143, 161, 162, 163, 179, 193, 210, 212, 213, 219, 220, 222, 223, 225, 226, 227, 228, 229, 231, 240, 241, 261, 277, 281, 282, 283, 284, 285, 292, 300, 304, 318, 323, 324, 325, 334, 338, 340, 344, 347, 368, 422, 381, 381, 43, 52, 34, 52, 422, 374, 377, 376, 405, 399, 374, 402, 422, 374, 377, 374, 377, 374, 373, 5, 12, 13, 374, 413, 414, 415, 45, 46, 373, 418, 58, 59, 420, 421, 416, 416, 416, 416, 422, 422, 407, 431, 432, 407, 433, 434, 407, 435, 436, 407, 437, 438, 407, 439, 440, 407, 443, 444, 422, 422, 422, 422, 422, 416, 416, 422, 422, 407, 457, 458, 407, 459, 460, 407, 419, 461, 462, 463, 464, 465, 416, 407, 419, 471, 472, 473, 474, 475, 416, 416, 407, 481, 482, 416, 407, 483, 484, 407, 485, 486, 407, 487, 488, 407, 489, 490, 407, 491, 492, 407, 495, 496, 407, 497, 498, 407, 499, 500, 407, 501, 502, 407, 503, 504, 407, 505, 506, 407, 507, 508, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 407, 569, 570, 422, 407, 573, 574, 422, 422, 416, 407, 579, 580, 407, 581, 582, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 416, 422, 422, 422, 416, 416, 416, 422, 422, 416, 422, 422, 422, 422, 407, 615, 616, 407, 617, 618, 422, 422, 422, 416, 407, 630, 631, 422, 407, 642, 643, 407, 644, 645, 407, 646, 647, 407, 648, 649, 407, 419, 654, 655, 656, 657, 658, 407, 419, 669, 670, 671, 672, 673, 407, 419, 696, 697, 698, 699, 700, 407, 703, 704, 407, 419, 705, 706, 707, 708, 709, 416, 416, 416, 416, 416, 416, 407, 735, 736, 407, 737, 738, 407, 419, 739, 740, 741, 416, 416, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 407, 768, 769, 407, 770, 771, 407, 419, 774, 775, 776, 777, 778, 407, 779, 780, 407, 781, 782, 407, 783, 784, 407, 785, 786, 407, 787, 788, 416, 416, 416, 416, 422, 422, 407, 793, 794, 407, 795, 796, 422, 407, 803, 804, 416, 422, 407, 840, 841, 416, 407, 847, 848, 422, 407, 853, 854, 416, 416, 416, 416, 416, 416, 416, 416, 416, 407, 868, 869, 407, 870, 871, 416, 407, 872, 873, 407, 874, 875, 416, 416, 407, 419, 881, 882, 883, 884, 885, 416, 416, 422, 416, 407, 901, 902, 407, 903, 904, 422, 422, 422, 422, 416, 407, 419, 918, 919, 920, 921, 922, 407, 419, 923, 924, 925, 926, 927, 407, 419, 928, 929, 930, 931, 932, 407, 933, 934, 416, 416, 422, 416, 422, 422, 407, 957, 958, 416, 407, 419, 961, 962, 963, 964, 965, 416, 416, 416, 416, 407, 419, 966, 967, 968, 969, 970, 407, 419, 971, 972, 973, 974, 975, 407, 419, 976, 977, 978, 979, 980, 407, 419, 981, 982, 983, 984, 985, 407, 419, 986, 987, 988, 989, 990, 407, 419, 991, 992, 993, 994, 995, 407, 419, 996, 997, 998, 999, 1000, 407, 419, 1001, 1002, 1003, 1004, 1005, 416, 416, 416, 407, 1006, 1007, 416, 422, 371, 371, 377, 377, 7, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 375, 144, 150, 172, 175, 176, 278, 286, 287, 341, 422, 62, 422, 422, 5, 422, 374, 402, 374, 65, 422, 408, 422, 422, 414, 414, 413, 413, 405, 381, 369, 376, 369, 376, 369, 376, 377, 377, 377, 422, 377, 422, 377, 422, 376, 422, 376, 422, 376, 422, 377, 377, 377, 377, 377, 376, 376, 377, 377, 377, 422, 376, 422, 462, 65, 422, 376, 377, 369, 472, 65, 422, 376, 377, 369, 376, 376, 422, 376, 376, 422, 377, 422, 377, 422, 377, 422, 376, 422, 369, 422, 376, 422, 377, 422, 377, 422, 377, 422, 377, 422, 377, 422, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 422, 377, 376, 422, 377, 377, 376, 376, 422, 376, 422, 369, 369, 369, 369, 369, 369, 376, 369, 376, 376, 376, 369, 369, 377, 369, 369, 376, 376, 377, 377, 376, 377, 377, 377, 377, 376, 422, 377, 422, 377, 377, 377, 369, 376, 422, 369, 376, 422, 376, 422, 376, 422, 376, 422, 655, 65, 422, 376, 377, 670, 65, 422, 369, 377, 697, 65, 422, 376, 377, 376, 422, 706, 65, 422, 376, 377, 369, 376, 376, 369, 369, 369, 376, 422, 376, 422, 740, 369, 65, 422, 376, 376, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 369, 422, 376, 422, 775, 65, 422, 376, 377, 376, 422, 376, 422, 377, 422, 377, 422, 376, 422, 376, 376, 376, 369, 377, 377, 376, 422, 376, 422, 377, 376, 422, 376, 369, 377, 422, 369, 376, 422, 377, 376, 422, 369, 369, 376, 369, 369, 369, 369, 369, 369, 377, 422, 377, 422, 376, 376, 422, 376, 422, 376, 369, 882, 65, 422, 376, 377, 369, 369, 377, 376, 376, 422, 376, 422, 369, 369, 369, 369, 369, 919, 65, 422, 376, 377, 924, 65, 422, 376, 377, 929, 65, 422, 376, 377, 376, 422, 369, 376, 377, 369, 377, 377, 377, 422, 369, 962, 65, 422, 376, 377, 369, 369, 369, 369, 967, 65, 422, 369, 377, 972, 65, 422, 369, 377, 977, 65, 422, 369, 377, 982, 65, 422, 369, 377, 987, 65, 422, 369, 377, 992, 65, 422, 369, 377, 997, 65, 422, 369, 377, 1002, 65, 422, 369, 377, 369, 376, 376, 377, 422, 376, 377, 7, 8, 7, 8, 371, 421, 422, 422, 407, 441, 442, 416, 407, 493, 494, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 407, 419, 632, 633, 634, 635, 636, 422, 407, 650, 651, 407, 652, 653, 407, 419, 659, 660, 661, 662, 663, 407, 419, 664, 665, 666, 667, 668, 407, 419, 674, 675, 676, 677, 678, 407, 419, 679, 680, 681, 682, 683, 407, 684, 685, 407, 419, 686, 687, 688, 689, 690, 407, 419, 691, 692, 693, 694, 695, 422, 407, 419, 725, 726, 727, 728, 729, 422, 407, 772, 773, 407, 799, 800, 416, 407, 419, 805, 806, 807, 808, 809, 407, 419, 810, 811, 812, 813, 814, 422, 422, 407, 849, 850, 416, 416, 421, 407, 909, 910, 407, 911, 912, 407, 419, 913, 914, 915, 916, 917, 416, 416, 422, 422, 422, 407, 1010, 1011, 375, 375, 375, 375, 375, 375, 375, 375, 145, 151, 257, 342, 422, 422, 65, 374, 376, 376, 374, 59, 421, 422, 422, 422, 422, 422, 422, 422, 407, 445, 446, 407, 447, 448, 407, 449, 450, 407, 451, 452, 422, 422, 422, 422, 65, 422, 461, 407, 419, 466, 467, 468, 469, 470, 65, 422, 471, 407, 419, 476, 477, 478, 479, 480, 422, 487, 489, 495, 499, 501, 503, 505, 507, 407, 509, 510, 407, 511, 512, 407, 513, 514, 407, 517, 518, 407, 551, 552, 407, 553, 554, 407, 555, 556, 407, 557, 558, 407, 565, 566, 407, 567, 568, 569, 407, 571, 572, 422, 422, 416, 416, 416, 416, 416, 416, 416, 422, 407, 419, 587, 588, 589, 590, 591, 422, 407, 419, 597, 598, 599, 600, 601, 416, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 407, 419, 625, 626, 627, 628, 629, 416, 65, 422, 654, 65, 422, 422, 669, 65, 422, 696, 65, 422, 705, 407, 419, 710, 711, 712, 713, 714, 407, 419, 715, 716, 717, 718, 719, 407, 419, 720, 721, 722, 723, 724, 422, 65, 739, 742, 743, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 65, 422, 774, 422, 422, 416, 422, 422, 407, 797, 798, 407, 419, 835, 836, 837, 838, 839, 422, 407, 419, 842, 843, 844, 845, 846, 407, 851, 852, 407, 419, 855, 856, 857, 858, 859, 416, 407, 860, 861, 407, 862, 863, 416, 416, 416, 416, 868, 870, 407, 419, 876, 877, 878, 879, 880, 65, 422, 881, 407, 419, 886, 887, 888, 889, 890, 407, 419, 891, 892, 893, 894, 895, 422, 407, 905, 906, 407, 907, 908, 416, 416, 416, 65, 422, 918, 65, 422, 923, 65, 422, 928, 407, 935, 936, 422, 407, 939, 940, 407, 943, 944, 407, 955, 956, 422, 422, 65, 422, 961, 416, 416, 416, 416, 65, 422, 416, 966, 65, 422, 416, 971, 65, 422, 416, 976, 65, 422, 416, 981, 65, 422, 416, 986, 65, 422, 416, 991, 65, 422, 416, 996, 65, 422, 416, 1001, 416, 422, 422, 371, 371, 371, 371, 376, 377, 377, 376, 422, 376, 376, 422, 377, 377, 377, 377, 377, 377, 377, 377, 369, 377, 633, 65, 422, 376, 377, 369, 376, 422, 376, 422, 660, 65, 422, 376, 377, 665, 65, 422, 376, 377, 675, 65, 422, 369, 377, 680, 65, 422, 369, 377, 376, 422, 687, 65, 422, 376, 377, 692, 65, 422, 369, 377, 377, 726, 65, 422, 369, 377, 369, 376, 422, 376, 422, 376, 806, 65, 422, 376, 377, 811, 65, 422, 376, 377, 369, 369, 376, 422, 369, 369, 376, 376, 422, 376, 422, 914, 65, 422, 376, 377, 376, 369, 377, 377, 377, 376, 422, 422, 422, 421, 407, 583, 584, 407, 801, 802, 407, 419, 825, 826, 827, 828, 829, 407, 419, 830, 831, 832, 833, 834, 422, 375, 375, 375, 375, 146, 152, 343, 422, 422, 376, 377, 377, 377, 377, 377, 376, 377, 422, 377, 422, 377, 422, 377, 422, 377, 377, 377, 376, 422, 467, 65, 422, 376, 377, 422, 477, 65, 422, 376, 377, 377, 376, 376, 369, 376, 377, 377, 377, 377, 377, 422, 377, 422, 376, 422, 376, 422, 377, 422, 377, 422, 377, 422, 377, 422, 377, 422, 377, 422, 377, 377, 422, 377, 377, 369, 369, 369, 369, 369, 369, 369, 376, 588, 65, 422, 376, 377, 369, 598, 65, 422, 376, 377, 376, 377, 377, 377, 377, 377, 369, 376, 377, 377, 377, 626, 65, 422, 376, 377, 376, 422, 422, 377, 422, 422, 711, 65, 422, 376, 377, 716, 65, 422, 376, 377, 721, 65, 422, 376, 377, 376, 422, 376, 377, 377, 377, 377, 377, 377, 377, 377, 377, 377, 369, 376, 422, 376, 377, 376, 377, 377, 376, 422, 836, 65, 422, 376, 377, 376, 843, 65, 422, 376, 377, 377, 422, 856, 65, 422, 376, 377, 369, 376, 422, 376, 422, 376, 376, 376, 376, 377, 377, 877, 65, 422, 376, 377, 422, 887, 65, 422, 376, 377, 892, 65, 422, 376, 377, 369, 369, 422, 369, 422, 376, 376, 376, 422, 422, 422, 369, 422, 377, 376, 422, 376, 422, 377, 422, 377, 376, 422, 376, 376, 369, 369, 422, 376, 422, 376, 422, 369, 422, 369, 422, 376, 422, 376, 422, 369, 422, 369, 376, 376, 377, 422, 422, 407, 515, 516, 407, 519, 520, 407, 521, 522, 407, 523, 524, 407, 559, 560, 407, 561, 562, 407, 563, 564, 422, 407, 419, 602, 603, 604, 605, 606, 422, 65, 422, 632, 407, 419, 637, 638, 639, 640, 641, 65, 422, 659, 65, 422, 664, 65, 422, 422, 674, 65, 422, 422, 679, 65, 422, 686, 65, 422, 422, 691, 422, 65, 422, 422, 725, 407, 419, 730, 731, 732, 733, 734, 65, 422, 805, 65, 422, 810, 407, 419, 815, 816, 817, 818, 819, 407, 419, 820, 821, 822, 823, 824, 407, 864, 865, 407, 866, 867, 65, 422, 913, 407, 941, 942, 407, 945, 946, 407, 953, 954, 407, 959, 960, 377, 377, 376, 376, 422, 376, 422, 826, 65, 422, 376, 377, 831, 65, 422, 376, 377, 377, 422, 422, 421, 422, 375, 375, 375, 147, 153, 258, 422, 422, 422, 422, 422, 422, 422, 447, 422, 422, 422, 422, 407, 455, 456, 65, 422, 466, 65, 422, 476, 422, 422, 501, 503, 505, 507, 422, 422, 422, 422, 555, 422, 565, 567, 422, 571, 407, 575, 576, 407, 577, 578, 416, 416, 416, 416, 416, 416, 416, 65, 422, 587, 407, 419, 592, 593, 594, 595, 596, 65, 422, 597, 422, 422, 422, 422, 422, 416, 407, 619, 620, 407, 621, 622, 407, 623, 624, 65, 422, 625, 422, 65, 422, 710, 65, 422, 715, 65, 422, 720, 739, 422, 422, 422, 422, 422, 422, 422, 422, 422, 416, 422, 422, 422, 65, 422, 835, 65, 422, 842, 422, 65, 422, 855, 416, 422, 870, 65, 422, 876, 65, 422, 886, 65, 422, 891, 407, 419, 896, 897, 898, 899, 900, 422, 422, 422, 407, 937, 938, 955, 422, 422, 422, 976, 981, 996, 1001, 407, 1008, 1009, 377, 377, 376, 422, 376, 422, 377, 422, 377, 422, 377, 422, 377, 422, 377, 422, 377, 603, 65, 422, 376, 377, 369, 422, 638, 65, 422, 376, 377, 422, 422, 422, 377, 422, 377, 422, 422, 377, 369, 422, 376, 731, 65, 422, 369, 377, 422, 422, 816, 65, 422, 376, 377, 821, 65, 422, 376, 377, 376, 422, 376, 422, 422, 376, 422, 376, 422, 376, 422, 376, 422, 407, 525, 526, 407, 537, 538, 65, 422, 825, 65, 422, 830, 407, 947, 948, 377, 377, 376, 377, 422, 422, 422, 375, 375, 375, 148, 154, 422, 377, 377, 377, 376, 376, 377, 377, 377, 377, 369, 377, 376, 422, 422, 422, 377, 376, 376, 377, 377, 377, 377, 377, 377, 376, 377, 376, 377, 377, 377, 377, 376, 422, 377, 422, 376, 376, 369, 376, 376, 376, 369, 422, 593, 65, 422, 376, 377, 422, 369, 369, 369, 369, 369, 376, 376, 422, 376, 422, 377, 422, 422, 376, 422, 422, 422, 377, 377, 377, 369, 369, 377, 377, 369, 369, 376, 376, 369, 369, 422, 422, 376, 422, 376, 377, 377, 422, 422, 422, 897, 65, 422, 376, 377, 376, 376, 376, 377, 422, 377, 376, 376, 376, 376, 376, 376, 376, 376, 422, 422, 422, 422, 422, 422, 422, 422, 422, 65, 422, 602, 416, 65, 422, 637, 422, 422, 422, 407, 701, 702, 65, 422, 422, 730, 65, 422, 815, 65, 422, 820, 377, 422, 377, 422, 422, 422, 376, 422, 407, 527, 528, 407, 539, 540, 407, 949, 950, 377, 377, 377, 422, 422, 421, 375, 375, 149, 155, 422, 422, 407, 423, 424, 407, 425, 426, 445, 422, 422, 422, 416, 407, 453, 454, 422, 503, 505, 507, 422, 422, 422, 422, 422, 422, 422, 571, 422, 416, 416, 65, 422, 592, 407, 607, 608, 407, 609, 610, 407, 611, 612, 407, 613, 614, 416, 422, 422, 407, 746, 747, 407, 748, 749, 407, 419, 750, 751, 752, 753, 754, 407, 419, 755, 756, 757, 758, 759, 407, 760, 761, 407, 762, 763, 407, 764, 765, 407, 766, 767, 407, 789, 790, 407, 791, 792, 422, 422, 65, 422, 896, 937, 422, 377, 377, 376, 376, 376, 377, 376, 377, 422, 376, 422, 376, 376, 376, 376, 422, 422, 376, 422, 422, 422, 422, 377, 422, 377, 422, 376, 422, 407, 529, 530, 407, 541, 542, 407, 951, 952, 377, 377, 376, 422, 422, 375, 375, 156, 376, 377, 422, 377, 422, 376, 377, 376, 376, 376, 376, 422, 376, 376, 377, 377, 376, 376, 376, 376, 377, 377, 377, 377, 377, 376, 376, 422, 376, 422, 377, 422, 376, 422, 377, 422, 376, 376, 377, 376, 422, 376, 422, 751, 65, 422, 376, 377, 756, 65, 422, 376, 377, 376, 422, 376, 422, 369, 422, 369, 422, 376, 422, 377, 422, 377, 377, 422, 376, 376, 422, 407, 429, 430, 422, 422, 376, 376, 422, 422, 377, 422, 377, 422, 376, 422, 407, 531, 532, 407, 543, 544, 377, 377, 422, 422, 375, 422, 422, 447, 505, 507, 422, 422, 422, 422, 422, 609, 613, 407, 744, 745, 65, 422, 750, 65, 422, 755, 422, 422, 791, 422, 422, 377, 377, 422, 376, 369, 376, 376, 422, 422, 377, 422, 377, 422, 407, 533, 534, 407, 545, 546, 377, 377, 422, 377, 376, 376, 376, 377, 377, 377, 377, 377, 376, 376, 376, 376, 422, 422, 422, 376, 376, 376, 376, 377, 407, 427, 428, 422, 416, 376, 376, 422, 422, 377, 422, 377, 422, 407, 535, 536, 407, 547, 548, 377, 422, 507, 422, 422, 422, 422, 422, 376, 422, 376, 369, 376, 376, 422, 422, 377, 422, 377, 422, 407, 549, 550, 376, 376, 376, 376, 377, 376, 376, 407, 585, 586, 376, 376, 422, 422, 377, 422, 422, 376, 422, 376, 376, 422, 376, 376 }; /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */ static const yytype_int16 yyr1[] = { 0, 379, 380, 380, 380, 381, 381, 381, 381, 381, 381, 381, 381, 382, 383, 383, 384, 384, 385, 385, 386, 386, 387, 387, 388, 388, 388, 389, 388, 388, 388, 390, 388, 391, 388, 392, 388, 393, 388, 394, 388, 395, 388, 396, 388, 388, 397, 397, 397, 398, 398, 398, 398, 398, 398, 398, 398, 399, 399, 400, 400, 400, 400, 400, 400, 400, 400, 401, 402, 402, 402, 402, 402, 402, 402, 403, 403, 403, 403, 404, 404, 404, 404, 405, 405, 406, 407, 407, 407, 407, 407, 408, 409, 409, 410, 411, 412, 412, 412, 412, 412, 413, 413, 414, 414, 414, 415, 415, 415, 415, 415, 416, 417, 417, 417, 418, 418, 418, 419, 420, 420, 421, 421, 421, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 422, 424, 423, 423, 426, 425, 425, 428, 427, 427, 430, 429, 429, 432, 431, 431, 434, 433, 433, 436, 435, 435, 438, 437, 437, 440, 439, 439, 442, 441, 441, 444, 443, 443, 446, 445, 445, 448, 447, 447, 450, 449, 449, 452, 451, 451, 454, 453, 453, 456, 455, 455, 458, 457, 457, 460, 459, 459, 461, 461, 461, 461, 463, 462, 462, 464, 465, 465, 466, 466, 466, 466, 468, 467, 467, 469, 470, 470, 471, 471, 471, 471, 473, 472, 472, 474, 475, 475, 476, 476, 476, 476, 478, 477, 477, 479, 480, 480, 482, 481, 481, 484, 483, 483, 486, 485, 485, 488, 487, 487, 490, 489, 489, 492, 491, 491, 494, 493, 493, 496, 495, 495, 498, 497, 497, 500, 499, 499, 502, 501, 501, 504, 503, 503, 506, 505, 505, 508, 507, 507, 510, 509, 509, 512, 511, 511, 514, 513, 513, 516, 515, 515, 518, 517, 517, 520, 519, 519, 522, 521, 521, 524, 523, 523, 526, 525, 525, 528, 527, 527, 530, 529, 529, 532, 531, 531, 534, 533, 533, 536, 535, 535, 538, 537, 537, 540, 539, 539, 542, 541, 541, 544, 543, 543, 546, 545, 545, 548, 547, 547, 550, 549, 549, 552, 551, 551, 554, 553, 553, 556, 555, 555, 558, 557, 557, 560, 559, 559, 562, 561, 561, 564, 563, 563, 566, 565, 565, 568, 567, 567, 570, 569, 569, 572, 571, 571, 574, 573, 573, 576, 575, 575, 578, 577, 577, 580, 579, 579, 582, 581, 581, 584, 583, 583, 586, 585, 585, 587, 587, 587, 587, 589, 588, 588, 590, 591, 591, 592, 592, 592, 592, 594, 593, 593, 595, 596, 596, 597, 597, 597, 597, 599, 598, 598, 600, 601, 601, 602, 602, 602, 602, 604, 603, 603, 605, 606, 606, 608, 607, 607, 610, 609, 609, 612, 611, 611, 614, 613, 613, 616, 615, 615, 618, 617, 617, 620, 619, 619, 622, 621, 621, 624, 623, 623, 625, 625, 625, 625, 627, 626, 626, 628, 629, 629, 631, 630, 630, 632, 632, 632, 632, 634, 633, 633, 635, 636, 636, 637, 637, 637, 637, 639, 638, 638, 640, 641, 641, 643, 642, 642, 645, 644, 644, 647, 646, 646, 649, 648, 648, 651, 650, 650, 653, 652, 652, 654, 654, 654, 654, 656, 655, 655, 657, 658, 658, 659, 659, 659, 659, 661, 660, 660, 662, 663, 663, 664, 664, 664, 664, 666, 665, 665, 667, 668, 668, 669, 669, 669, 669, 671, 670, 670, 672, 673, 673, 674, 674, 674, 674, 676, 675, 675, 677, 678, 678, 679, 679, 679, 679, 681, 680, 680, 682, 683, 683, 685, 684, 684, 686, 686, 686, 686, 688, 687, 687, 689, 690, 690, 691, 691, 691, 691, 693, 692, 692, 694, 695, 695, 696, 696, 696, 696, 698, 697, 697, 699, 700, 700, 702, 701, 701, 704, 703, 703, 705, 705, 705, 705, 707, 706, 706, 708, 709, 709, 710, 710, 710, 710, 712, 711, 711, 713, 714, 714, 715, 715, 715, 715, 717, 716, 716, 718, 719, 719, 720, 720, 720, 720, 722, 721, 721, 723, 724, 724, 725, 725, 725, 725, 727, 726, 726, 728, 729, 729, 730, 730, 730, 730, 732, 731, 731, 733, 734, 734, 736, 735, 735, 738, 737, 737, 739, 739, 739, 739, 741, 740, 740, 742, 743, 743, 745, 744, 744, 747, 746, 746, 749, 748, 748, 750, 750, 750, 750, 752, 751, 751, 753, 754, 754, 755, 755, 755, 755, 757, 756, 756, 758, 759, 759, 761, 760, 760, 763, 762, 762, 765, 764, 764, 767, 766, 766, 769, 768, 768, 771, 770, 770, 773, 772, 772, 774, 774, 774, 774, 776, 775, 775, 777, 778, 778, 780, 779, 779, 782, 781, 781, 784, 783, 783, 786, 785, 785, 788, 787, 787, 790, 789, 789, 792, 791, 791, 794, 793, 793, 796, 795, 795, 798, 797, 797, 800, 799, 799, 802, 801, 801, 804, 803, 803, 805, 805, 805, 805, 807, 806, 806, 808, 809, 809, 810, 810, 810, 810, 812, 811, 811, 813, 814, 814, 815, 815, 815, 815, 817, 816, 816, 818, 819, 819, 820, 820, 820, 820, 822, 821, 821, 823, 824, 824, 825, 825, 825, 825, 827, 826, 826, 828, 829, 829, 830, 830, 830, 830, 832, 831, 831, 833, 834, 834, 835, 835, 835, 835, 837, 836, 836, 838, 839, 839, 841, 840, 840, 842, 842, 842, 842, 844, 843, 843, 845, 846, 846, 848, 847, 847, 850, 849, 849, 852, 851, 851, 854, 853, 853, 855, 855, 855, 855, 857, 856, 856, 858, 859, 859, 861, 860, 860, 863, 862, 862, 865, 864, 864, 867, 866, 866, 869, 868, 868, 871, 870, 870, 873, 872, 872, 875, 874, 874, 876, 876, 876, 876, 878, 877, 877, 879, 880, 880, 881, 881, 881, 881, 883, 882, 882, 884, 885, 885, 886, 886, 886, 886, 888, 887, 887, 889, 890, 890, 891, 891, 891, 891, 893, 892, 892, 894, 895, 895, 896, 896, 896, 896, 898, 897, 897, 899, 900, 900, 902, 901, 901, 904, 903, 903, 906, 905, 905, 908, 907, 907, 910, 909, 909, 912, 911, 911, 913, 913, 913, 913, 915, 914, 914, 916, 917, 917, 918, 918, 918, 918, 920, 919, 919, 921, 922, 922, 923, 923, 923, 923, 925, 924, 924, 926, 927, 927, 928, 928, 928, 928, 930, 929, 929, 931, 932, 932, 934, 933, 933, 936, 935, 935, 938, 937, 937, 940, 939, 939, 942, 941, 941, 944, 943, 943, 946, 945, 945, 948, 947, 947, 950, 949, 949, 952, 951, 951, 954, 953, 953, 956, 955, 955, 958, 957, 957, 960, 959, 959, 961, 961, 961, 961, 963, 962, 962, 964, 965, 965, 966, 966, 966, 966, 968, 967, 967, 969, 970, 970, 971, 971, 971, 971, 973, 972, 972, 974, 975, 975, 976, 976, 976, 976, 978, 977, 977, 979, 980, 980, 981, 981, 981, 981, 983, 982, 982, 984, 985, 985, 986, 986, 986, 986, 988, 987, 987, 989, 990, 990, 991, 991, 991, 991, 993, 992, 992, 994, 995, 995, 996, 996, 996, 996, 998, 997, 997, 999, 1000, 1000, 1001, 1001, 1001, 1001, 1003, 1002, 1002, 1004, 1005, 1005, 1007, 1006, 1006, 1009, 1008, 1008, 1011, 1010, 1010 }; /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */ static const yytype_int8 yyr2[] = { 0, 2, 1, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 5, 1, 1, 3, 2, 3, 2, 3, 1, 7, 5, 4, 3, 3, 0, 5, 2, 2, 0, 3, 0, 3, 0, 3, 0, 3, 0, 5, 0, 5, 0, 5, 2, 2, 2, 2, 3, 3, 3, 2, 4, 4, 5, 4, 1, 1, 2, 2, 3, 3, 2, 2, 2, 2, 4, 1, 4, 3, 3, 2, 2, 4, 1, 4, 1, 4, 1, 1, 1, 1, 1, 3, 2, 5, 4, 2, 7, 6, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 0, 1, 3, 1, 2, 1, 1, 1, 3, 1, 0, 3, 1, 1, 1, 4, 1, 1, 3, 6, 6, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 6, 6, 6, 6, 5, 3, 3, 4, 4, 3, 3, 2, 5, 6, 7, 3, 5, 11, 5, 15, 13, 14, 14, 9, 9, 7, 5, 5, 6, 5, 11, 13, 11, 11, 11, 5, 5, 11, 9, 7, 5, 5, 7, 5, 7, 5, 6, 5, 5, 5, 11, 7, 7, 5, 6, 9, 5, 7, 9, 11, 13, 15, 11, 11, 7, 8, 7, 8, 10, 10, 11, 12, 13, 14, 15, 16, 11, 12, 13, 14, 15, 16, 17, 11, 9, 11, 9, 10, 12, 10, 15, 15, 17, 15, 5, 9, 13, 5, 7, 5, 5, 4, 7, 9, 9, 16, 11, 9, 9, 9, 5, 11, 5, 5, 5, 7, 7, 9, 7, 8, 7, 5, 5, 11, 13, 5, 11, 13, 11, 9, 5, 7, 9, 9, 11, 7, 10, 5, 6, 8, 7, 5, 5, 5, 5, 6, 6, 5, 6, 6, 9, 10, 10, 6, 6, 10, 5, 10, 5, 5, 7, 5, 5, 7, 7, 7, 8, 10, 5, 5, 7, 5, 5, 13, 11, 11, 11, 11, 11, 11, 13, 13, 9, 8, 10, 7, 5, 6, 5, 5, 5, 7, 9, 5, 5, 5, 5, 7, 11, 13, 5, 5, 7, 6, 7, 5, 5, 6, 6, 6, 8, 8, 7, 7, 7, 7, 7, 5, 6, 9, 5, 7, 9, 5, 7, 7, 8, 7, 7, 7, 8, 7, 13, 15, 5, 5, 5, 5, 7, 5, 7, 7, 9, 5, 6, 5, 5, 9, 9, 6, 6, 6, 7, 7, 7, 5, 5, 5, 5, 9, 6, 5, 11, 7, 8, 7, 8, 9, 10, 11, 8, 11, 9, 8, 7, 5, 7, 7, 9, 9, 7, 7, 9, 9, 7, 7, 9, 9, 7, 5, 5, 7, 5, 9, 6, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 0, 2, 1, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 2, 4, 1, 3, 0, 2, 1, 1, 1, 3, 0, 2, 1, 0, 2, 1, 0, 2, 1 }; enum { YYENOMEM = -2 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYNOMEM goto yyexhaustedlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Backward compatibility with an undocumented macro. Use YYerror or YYUNDEF. */ #define YYERRCODE YYUNDEF /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N]. If N is 0, then set CURRENT to the empty location which ends the previous symbol: RHS[0] (always defined). */ #ifndef YYLLOC_DEFAULT # define YYLLOC_DEFAULT(Current, Rhs, N) \ do \ if (N) \ { \ (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \ (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \ (Current).last_line = YYRHSLOC (Rhs, N).last_line; \ (Current).last_column = YYRHSLOC (Rhs, N).last_column; \ } \ else \ { \ (Current).first_line = (Current).last_line = \ YYRHSLOC (Rhs, 0).last_line; \ (Current).first_column = (Current).last_column = \ YYRHSLOC (Rhs, 0).last_column; \ } \ while (0) #endif #define YYRHSLOC(Rhs, K) ((Rhs)[K]) /* Enable debugging if requested. */ #if YYDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* YYLOCATION_PRINT -- Print the location on the stream. This macro was not mandated originally: define only if we know we won't break user code: when these are the locations we know. */ # ifndef YYLOCATION_PRINT # if defined YY_LOCATION_PRINT /* Temporary convenience wrapper in case some people defined the undocumented and private YY_LOCATION_PRINT macros. */ # define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc)) # elif defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL /* Print *YYLOCP on YYO. Private, do not rely on its existence. */ YY_ATTRIBUTE_UNUSED static int yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp) { int res = 0; int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0; if (0 <= yylocp->first_line) { res += YYFPRINTF (yyo, "%d", yylocp->first_line); if (0 <= yylocp->first_column) res += YYFPRINTF (yyo, ".%d", yylocp->first_column); } if (0 <= yylocp->last_line) { if (yylocp->first_line < yylocp->last_line) { res += YYFPRINTF (yyo, "-%d", yylocp->last_line); if (0 <= end_col) res += YYFPRINTF (yyo, ".%d", end_col); } else if (0 <= end_col && yylocp->first_column < end_col) res += YYFPRINTF (yyo, "-%d", end_col); } return res; } # define YYLOCATION_PRINT yy_location_print_ /* Temporary convenience wrapper in case some people defined the undocumented and private YY_LOCATION_PRINT macros. */ # define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc)) # else # define YYLOCATION_PRINT(File, Loc) ((void) 0) /* Temporary convenience wrapper in case some people defined the undocumented and private YY_LOCATION_PRINT macros. */ # define YY_LOCATION_PRINT YYLOCATION_PRINT # endif # endif /* !defined YYLOCATION_PRINT */ # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Kind, Value, Location); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*-----------------------------------. | Print this symbol's value on YYO. | `-----------------------------------*/ static void yy_symbol_value_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { FILE *yyoutput = yyo; YY_USE (yyoutput); YY_USE (yylocationp); if (!yyvaluep) return; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /*---------------------------. | Print this symbol on YYO. | `---------------------------*/ static void yy_symbol_print (FILE *yyo, yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp) { YYFPRINTF (yyo, "%s %s (", yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind)); YYLOCATION_PRINT (yyo, yylocationp); YYFPRINTF (yyo, ": "); yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp); YYFPRINTF (yyo, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp, int yyrule) { int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]), &yyvsp[(yyi + 1) - (yynrhs)], &(yylsp[(yyi + 1) - (yynrhs)])); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, yylsp, Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) ((void) 0) # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !YYDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp) { YY_USE (yyvaluep); YY_USE (yylocationp); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN YY_USE (yykind); YY_IGNORE_MAYBE_UNINITIALIZED_END } /* Lookahead token kind. */ int yychar; /* The semantic value of the lookahead symbol. */ YYSTYPE yylval; /* Location data for the lookahead symbol. */ YYLTYPE yylloc # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL = { 1, 1, 1, 1 } # endif ; /* Number of syntax errors so far. */ int yynerrs; /*----------. | yyparse. | `----------*/ int yyparse (void) { yy_state_fast_t yystate = 0; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus = 0; /* Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* Their size. */ YYPTRDIFF_T yystacksize = YYINITDEPTH; /* The state stack: array, bottom, top. */ yy_state_t yyssa[YYINITDEPTH]; yy_state_t *yyss = yyssa; yy_state_t *yyssp = yyss; /* The semantic value stack: array, bottom, top. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; YYSTYPE *yyvsp = yyvs; /* The location stack: array, bottom, top. */ YYLTYPE yylsa[YYINITDEPTH]; YYLTYPE *yyls = yylsa; YYLTYPE *yylsp = yyls; int yyn; /* The return value of yyparse. */ int yyresult; /* Lookahead symbol kind. */ yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; YYLTYPE yyloc; /* The locations where the error started and ended. */ YYLTYPE yyerror_range[3]; #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; YYDPRINTF ((stderr, "Starting parse\n")); yychar = YYEMPTY; /* Cause a token to be read. */ yylsp[0] = yylloc; goto yysetstate; /*------------------------------------------------------------. | yynewstate -- push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; /*--------------------------------------------------------------------. | yysetstate -- set current state (the top of the stack) to yystate. | `--------------------------------------------------------------------*/ yysetstate: YYDPRINTF ((stderr, "Entering state %d\n", yystate)); YY_ASSERT (0 <= yystate && yystate < YYNSTATES); YY_IGNORE_USELESS_CAST_BEGIN *yyssp = YY_CAST (yy_state_t, yystate); YY_IGNORE_USELESS_CAST_END YY_STACK_PRINT (yyss, yyssp); if (yyss + yystacksize - 1 <= yyssp) #if !defined yyoverflow && !defined YYSTACK_RELOCATE YYNOMEM; #else { /* Get the current used size of the three stacks, in elements. */ YYPTRDIFF_T yysize = yyssp - yyss + 1; # if defined yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ yy_state_t *yyss1 = yyss; YYSTYPE *yyvs1 = yyvs; YYLTYPE *yyls1 = yyls; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * YYSIZEOF (*yyssp), &yyvs1, yysize * YYSIZEOF (*yyvsp), &yyls1, yysize * YYSIZEOF (*yylsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; yyls = yyls1; } # else /* defined YYSTACK_RELOCATE */ /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) YYNOMEM; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yy_state_t *yyss1 = yyss; union yyalloc *yyptr = YY_CAST (union yyalloc *, YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize)))); if (! yyptr) YYNOMEM; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); YYSTACK_RELOCATE (yyls_alloc, yyls); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; yylsp = yyls + yysize - 1; YY_IGNORE_USELESS_CAST_BEGIN YYDPRINTF ((stderr, "Stack size increased to %ld\n", YY_CAST (long, yystacksize))); YY_IGNORE_USELESS_CAST_END if (yyss + yystacksize - 1 <= yyssp) YYABORT; } #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */ if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token\n")); yychar = yylex (); } if (yychar <= YYEOF) { yychar = YYEOF; yytoken = YYSYMBOL_YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else if (yychar == YYerror) { /* The scanner already issued an error message, process directly to error recovery. But do not keep the error token as lookahead, it is too special and may lead us to an endless loop in error recovery. */ yychar = YYUNDEF; yytoken = YYSYMBOL_YYerror; yyerror_range[1] = yylloc; goto yyerrlab1; } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END *++yylsp = yylloc; /* Discard the shifted token. */ yychar = YYEMPTY; goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; /* Default location. */ YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen); yyerror_range[1] = yyloc; YY_REDUCE_PRINT (yyn); switch (yyn) { case 13: /* whilecommand: ZZWHILE valueexpr ZZDO command ZZENDWHILE */ #line 287 "SecParser.y" { CLEAR(); PRINTF("(while "); PRINT(yyvsp[-3]); PRINTF(" do "); PRINT(yyvsp[-1]); PRINTF(" endwhile)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26699 "SecParser.tab.cpp" break; case 16: /* commandblock1: '{' commandseq '}' */ #line 301 "SecParser.y" { CLEAR(); PRINTF("(beginseq ("); PRINT(yyvsp[-1]); PRINTF(") endseq)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26710 "SecParser.tab.cpp" break; case 17: /* commandblock1: '{' '}' */ #line 308 "SecParser.y" { CLEAR(); PRINTF("(beginseq () endseq)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26719 "SecParser.tab.cpp" break; case 18: /* commandblock2: OPENDOUBLEBRACE commandseq CLOSEDOUBLEBRACE */ #line 315 "SecParser.y" { CLEAR(); PRINTF("(beginseq2 ("); PRINT(yyvsp[-1]); PRINTF(") endseq2)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26730 "SecParser.tab.cpp" break; case 19: /* commandblock2: '{' '}' */ #line 322 "SecParser.y" { CLEAR(); PRINTF("(beginseq2 () endseq2)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26739 "SecParser.tab.cpp" break; case 20: /* commandseq: commandseq '|' command */ #line 329 "SecParser.y" { CLEAR(); PRINT(yyvsp[-2]); PRINTF(" "); PRINT(yyvsp[0]); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26750 "SecParser.tab.cpp" break; case 21: /* commandseq: command */ #line 336 "SecParser.y" { yyval = yyvsp[0]; } #line 26757 "SecParser.tab.cpp" break; case 22: /* conditionalcommand: ZZIF valueexpr ZZTHEN command ZZELSE command ZZENDIF */ #line 341 "SecParser.y" { CLEAR(); PRINTF("(if "); PRINT(yyvsp[-5]); PRINTF(" then "); PRINT(yyvsp[-3]); PRINTF(" else "); PRINT(yyvsp[-1]); PRINTF(" endif)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26772 "SecParser.tab.cpp" break; case 23: /* conditionalcommand: ZZIF valueexpr ZZTHEN command ZZENDIF */ #line 352 "SecParser.y" { CLEAR(); PRINTF("(if "); PRINT(yyvsp[-3]); PRINTF(" then "); PRINT(yyvsp[-1]); PRINTF(" endif)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26785 "SecParser.tab.cpp" break; case 24: /* basic: ZZTYPE ZZIDENTIFIER ZZINFIXOP typeexpr */ #line 363 "SecParser.y" { CLEAR(); string equalstr; NestedText::CopyOut( yyvsp[-1], equalstr ); if(equalstr!="=") { yyerror("type declataion expects a '=' at the third position"); return -1; } PRINTF("(type "); PRINT(yyvsp[-2]); PRINTF(" = "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26802 "SecParser.tab.cpp" break; case 25: /* basic: ZZDELETE ZZTYPE ZZIDENTIFIER */ #line 376 "SecParser.y" {CLEAR(); PRINTF("(delete type "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26812 "SecParser.tab.cpp" break; case 26: /* basic: ZZCREATE ZZNAMING typeexpr */ #line 382 "SecParser.y" { CLEAR(); PRINTF("(create "); PRINT(yyvsp[-1]); PRINTF(" : "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26823 "SecParser.tab.cpp" break; case 27: /* $@1: %empty */ #line 389 "SecParser.y" {paramno=0; emptystack();} #line 26829 "SecParser.tab.cpp" break; case 28: /* basic: $@1 ZZUPDATE ZZIDENTIFIER ZZASSIGN valueexpr */ #line 391 "SecParser.y" { CLEAR(); PRINTF("(update "); PRINT(yyvsp[-2]); PRINTF(" := "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26840 "SecParser.tab.cpp" break; case 29: /* basic: ZZKILL ZZIDENTIFIER */ #line 398 "SecParser.y" {PRINTF("(kill "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26849 "SecParser.tab.cpp" break; case 30: /* basic: ZZDELETE ZZIDENTIFIER */ #line 403 "SecParser.y" { CLEAR(); PRINTF("(delete "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26860 "SecParser.tab.cpp" break; case 31: /* $@2: %empty */ #line 410 "SecParser.y" {paramno=0; emptystack();} #line 26866 "SecParser.tab.cpp" break; case 32: /* basic: $@2 ZZQUERY valueexpr */ #line 412 "SecParser.y" { CLEAR(); PRINTF("(query "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26877 "SecParser.tab.cpp" break; case 33: /* $@3: %empty */ #line 418 "SecParser.y" {paramno=0; emptystack();} #line 26883 "SecParser.tab.cpp" break; case 34: /* basic: $@3 ZZQUERYNT valueexpr */ #line 420 "SecParser.y" { CLEAR(); PRINTF("(querynt "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26894 "SecParser.tab.cpp" break; case 35: /* $@4: %empty */ #line 427 "SecParser.y" {paramno=0; emptystack();} #line 26900 "SecParser.tab.cpp" break; case 36: /* basic: $@4 ZZPQUERY valueexpr */ #line 429 "SecParser.y" { CLEAR(); PRINTF("(pquery "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26911 "SecParser.tab.cpp" break; case 37: /* $@5: %empty */ #line 435 "SecParser.y" {paramno=0; emptystack();} #line 26917 "SecParser.tab.cpp" break; case 38: /* basic: $@5 ZZPCOMPILE valueexpr */ #line 437 "SecParser.y" { CLEAR(); PRINTF("(pcompile "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26928 "SecParser.tab.cpp" break; case 39: /* $@6: %empty */ #line 444 "SecParser.y" {paramno=0; emptystack();} #line 26934 "SecParser.tab.cpp" break; case 40: /* basic: $@6 ZZLET ZZIDENTIFIER ZZINFIXOP valueexpr */ #line 446 "SecParser.y" { CLEAR(); string equalstr; NestedText::CopyOut( yyvsp[-1], equalstr ); if(equalstr!="=") { yyerror("let command expects a '=' at the third position"); return -1; } PRINTF("(let "); PRINT(yyvsp[-2]); PRINTF(" = "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26951 "SecParser.tab.cpp" break; case 41: /* $@7: %empty */ #line 458 "SecParser.y" {paramno=0; emptystack();} #line 26957 "SecParser.tab.cpp" break; case 42: /* basic: $@7 ZZCHANGENAME ZZIDENTIFIER ZZTO ZZIDENTIFIER */ #line 460 "SecParser.y" { CLEAR(); PRINTF("(changename "); PRINT(yyvsp[-2]); PRINTF(" to " ); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26968 "SecParser.tab.cpp" break; case 43: /* $@8: %empty */ #line 467 "SecParser.y" {paramno=0; emptystack();} #line 26974 "SecParser.tab.cpp" break; case 44: /* basic: $@8 ZZDERIVE ZZIDENTIFIER ZZINFIXOP valueexpr */ #line 469 "SecParser.y" { CLEAR(); string equalstr; NestedText::CopyOut( yyvsp[-1], equalstr ); if(equalstr!="=") { yyerror("derive command expects a '=' at the third position"); return -1; } PRINTF("(derive "); PRINT(yyvsp[-2]); PRINTF(" = "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 26992 "SecParser.tab.cpp" break; case 45: /* basic: ZZPERSISTENT ZZIDENTIFIER */ #line 484 "SecParser.y" { CLEAR(); PRINTF("(persistent "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27003 "SecParser.tab.cpp" break; case 46: /* transaction: ZZBEGIN1 ZZTRANSACTION */ #line 493 "SecParser.y" { CLEAR(); PRINTF("(begin transaction)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27013 "SecParser.tab.cpp" break; case 47: /* transaction: ZZCOMMIT ZZTRANSACTION */ #line 499 "SecParser.y" { CLEAR(); PRINTF("(commit transaction)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27023 "SecParser.tab.cpp" break; case 48: /* transaction: ZZABORT ZZTRANSACTION */ #line 505 "SecParser.y" { CLEAR(); PRINTF("(abort transaction)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27033 "SecParser.tab.cpp" break; case 49: /* database: ZZCREATE ZZDATABASE ZZIDENTIFIER */ #line 513 "SecParser.y" { CLEAR(); PRINTF("(create database "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27044 "SecParser.tab.cpp" break; case 50: /* database: ZZDELETE ZZDATABASE ZZIDENTIFIER */ #line 520 "SecParser.y" { CLEAR(); PRINTF("(delete database "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27055 "SecParser.tab.cpp" break; case 51: /* database: ZZOPEN ZZDATABASE ZZIDENTIFIER */ #line 527 "SecParser.y" { CLEAR(); PRINTF("(open database "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27066 "SecParser.tab.cpp" break; case 52: /* database: ZZCLOSE ZZDATABASE */ #line 534 "SecParser.y" { CLEAR(); PRINTF("(close database)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27076 "SecParser.tab.cpp" break; case 53: /* database: ZZSAVE ZZDATABASE ZZTO filename */ #line 540 "SecParser.y" { CLEAR(); PRINTF("(save database to "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27087 "SecParser.tab.cpp" break; case 54: /* database: ZZSAVE ZZIDENTIFIER ZZTO filename */ #line 547 "SecParser.y" { CLEAR(); PRINTF("(save "); PRINT(yyvsp[-2]); PRINTF(" to "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27099 "SecParser.tab.cpp" break; case 55: /* database: ZZRESTORE ZZDATABASE ZZIDENTIFIER ZZFROM filename */ #line 555 "SecParser.y" { CLEAR(); PRINTF("(restore database "); PRINT(yyvsp[-2]); PRINTF(" from "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27110 "SecParser.tab.cpp" break; case 56: /* database: ZZRESTORE ZZIDENTIFIER ZZFROM filename */ #line 562 "SecParser.y" { CLEAR(); PRINTF("(restore "); PRINT(yyvsp[-2]); PRINTF(" from "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27121 "SecParser.tab.cpp" break; case 59: /* inquiries: ZZLIST ZZDATABASES */ #line 575 "SecParser.y" { CLEAR(); PRINTF("(list databases)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27131 "SecParser.tab.cpp" break; case 60: /* inquiries: ZZLIST ZZALGEBRAS */ #line 581 "SecParser.y" { CLEAR(); PRINTF("(list algebras)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27141 "SecParser.tab.cpp" break; case 61: /* inquiries: ZZLIST ZZALGEBRA ZZIDENTIFIER */ #line 587 "SecParser.y" { CLEAR(); PRINTF("(list algebra "); PRINT(yyvsp[0]); PRINTF(")\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27152 "SecParser.tab.cpp" break; case 62: /* inquiries: ZZLIST ZZTYPE ZZCONSTRUCTORS */ #line 594 "SecParser.y" { CLEAR(); PRINTF("(list type constructors)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27162 "SecParser.tab.cpp" break; case 63: /* inquiries: ZZLIST ZZOPERATORS */ #line 600 "SecParser.y" { CLEAR(); PRINTF("(list operators)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27172 "SecParser.tab.cpp" break; case 64: /* inquiries: ZZLIST ZZTYPES */ #line 606 "SecParser.y" { CLEAR(); PRINTF("(list types)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27182 "SecParser.tab.cpp" break; case 65: /* inquiries: ZZLIST ZZOBJECTS */ #line 612 "SecParser.y" { CLEAR(); PRINTF("(list objects)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27192 "SecParser.tab.cpp" break; case 66: /* inquiries: ZZLIST ZZCOUNTERS */ #line 618 "SecParser.y" { CLEAR(); PRINTF("(list counters)\n"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27202 "SecParser.tab.cpp" break; case 67: /* set: ZZIDENTIFIER ZZSTRING ZZINFIXOP ZZBOOLEAN */ #line 625 "SecParser.y" { CLEAR(); string setstr; NestedText::CopyOut( yyvsp[-3], setstr ); string equalstr; NestedText::CopyOut( yyvsp[-1], equalstr ); if(setstr!="set"){ yyerror("expected set but got ZZIDENTIFIER"); return -1; } if(equalstr!="="){ yyerror("'=' expected in set command"); return -1; } PRINTF("( set "); PRINT(yyvsp[-2]); PRINTF(" = "); PRINT(yyvsp[0]); PRINTF(" )"); yyval = NestedText::AtomC(yacc_outtext->c_str()); } #line 27228 "SecParser.tab.cpp" break; case 68: /* typeexpr: constructor */ #line 650 "SecParser.y" {yyval = yyvsp[0];} #line 27234 "SecParser.tab.cpp" break; case 69: /* typeexpr: constructor '(' typeexprs ')' */ #line 652 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")")))));} #line 27243 "SecParser.tab.cpp" break; case 70: /* typeexpr: '(' typeexprs ')' */ #line 658 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")")));} #line 27250 "SecParser.tab.cpp" break; case 71: /* typeexpr: '[' typeexprs ']' */ #line 662 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")")));} #line 27257 "SecParser.tab.cpp" break; case 72: /* typeexpr: '[' ']' */ #line 665 "SecParser.y" {yyval = NestedText::AtomC("()");} #line 27263 "SecParser.tab.cpp" break; case 73: /* typeexpr: ZZNAMING typeexpr */ #line 667 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")")))));} #line 27271 "SecParser.tab.cpp" break; case 74: /* typeexpr: ZZTYPEOF '(' valueexpr ')' */ #line 670 "SecParser.y" { yyval = NestedText::Concat(NestedText::AtomC("(typeOf "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")"))); } #line 27280 "SecParser.tab.cpp" break; case 75: /* typeexpr2: constructor */ #line 677 "SecParser.y" {yyval = yyvsp[0];} #line 27286 "SecParser.tab.cpp" break; case 76: /* typeexpr2: constructor '(' typeexprs ')' */ #line 679 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")")))));} #line 27295 "SecParser.tab.cpp" break; case 77: /* typeexpr2: nestedlist */ #line 684 "SecParser.y" {yyval = yyvsp[0];} #line 27301 "SecParser.tab.cpp" break; case 78: /* typeexpr2: ZZTYPEOF '(' valueexpr ')' */ #line 685 "SecParser.y" { yyval = NestedText::Concat(NestedText::AtomC("(typeOf "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")"))); } #line 27310 "SecParser.tab.cpp" break; case 79: /* constructor: ZZIDENTIFIER */ #line 691 "SecParser.y" {yyval = yyvsp[0];} #line 27316 "SecParser.tab.cpp" break; case 80: /* constructor: ZZTUPLE */ #line 692 "SecParser.y" {yyval = yyvsp[0];} #line 27322 "SecParser.tab.cpp" break; case 81: /* constructor: ZZGROUP */ #line 693 "SecParser.y" {yyval = yyvsp[0];} #line 27328 "SecParser.tab.cpp" break; case 82: /* constructor: ZZINTEGER */ #line 694 "SecParser.y" {yyval = yyvsp[0];} #line 27334 "SecParser.tab.cpp" break; case 83: /* typeexprs: typeexpr */ #line 697 "SecParser.y" {yyval = yyvsp[0];} #line 27340 "SecParser.tab.cpp" break; case 84: /* typeexprs: typeexprs ',' typeexpr */ #line 699 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0]));} #line 27347 "SecParser.tab.cpp" break; case 85: /* namedfunction: naming valueexpr */ #line 706 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")")))));} #line 27357 "SecParser.tab.cpp" break; case 86: /* function: ZZFUN '(' args ')' valueexpr */ #line 714 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(fun "), NestedText::Concat(yyvsp[-2], NestedText::Concat (NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 27366 "SecParser.tab.cpp" break; case 87: /* function: ZZFUN '(' ')' valueexpr */ #line 719 "SecParser.y" {yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")")) );} #line 27374 "SecParser.tab.cpp" break; case 88: /* function: ZZFUN ZZIDENTIFIER */ #line 723 "SecParser.y" {yyval = yyvsp[0];} #line 27380 "SecParser.tab.cpp" break; case 89: /* function: ZZFUN '(' args ')' valueexpr ZZDEFAULTSEP valueexpr */ #line 726 "SecParser.y" { yyval = NestedText::Concat(NestedText::AtomC("(fun "), NestedText::Concat(yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" ) "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ") )))))); } #line 27394 "SecParser.tab.cpp" break; case 90: /* function: ZZFUN '(' ')' valueexpr ZZDEFAULTSEP valueexpr */ #line 736 "SecParser.y" { yyval = NestedText::Concat(NestedText::AtomC(" (fun "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" ) "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ") )))); } #line 27406 "SecParser.tab.cpp" break; case 91: /* arg: ZZNAMING typeexpr */ #line 746 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 27415 "SecParser.tab.cpp" break; case 92: /* args: arg */ #line 752 "SecParser.y" {yyval = yyvsp[0];} #line 27421 "SecParser.tab.cpp" break; case 93: /* args: args ',' arg */ #line 753 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0]));} #line 27428 "SecParser.tab.cpp" break; case 94: /* attribute: ZZATTRABBR */ #line 759 "SecParser.y" { yyval = NestedText::Concat(NestedText::AtomC("(attr "), NestedText::Concat(NestedText::AtomC(params[1]), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 27438 "SecParser.tab.cpp" break; case 95: /* attribute2: ZZATTRABBR2 */ #line 767 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(attr "), NestedText::Concat(NestedText::AtomC(params[2]), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 27448 "SecParser.tab.cpp" break; case 101: /* nestedlist: atom */ #line 778 "SecParser.y" {yyval = yyvsp[0];} #line 27454 "SecParser.tab.cpp" break; case 102: /* nestedlist: '(' rest */ #line 779 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-1], yyvsp[0]);} #line 27460 "SecParser.tab.cpp" break; case 103: /* rest: ')' */ #line 782 "SecParser.y" {yyval = yyvsp[0];} #line 27466 "SecParser.tab.cpp" break; case 104: /* rest: atom rest */ #line 783 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0]));} #line 27473 "SecParser.tab.cpp" break; case 105: /* rest: nestedlist rest */ #line 785 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0]));} #line 27480 "SecParser.tab.cpp" break; case 106: /* atom: constant */ #line 789 "SecParser.y" {yyval = yyvsp[0];} #line 27486 "SecParser.tab.cpp" break; case 107: /* atom: ZZIDENTIFIER */ #line 790 "SecParser.y" {yyval = yyvsp[0];} #line 27492 "SecParser.tab.cpp" break; case 108: /* atom: ZZFILE */ #line 791 "SecParser.y" {yyval = yyvsp[0];} #line 27498 "SecParser.tab.cpp" break; case 109: /* atom: ZZTUPLE */ #line 792 "SecParser.y" {yyval = yyvsp[0];} #line 27504 "SecParser.tab.cpp" break; case 110: /* atom: ZZGROUP */ #line 793 "SecParser.y" {yyval = yyvsp[0];} #line 27510 "SecParser.tab.cpp" break; case 111: /* list: elems */ #line 796 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ));} #line 27518 "SecParser.tab.cpp" break; case 112: /* elems: %empty */ #line 801 "SecParser.y" {yyval = NestedText::AtomC("");} #line 27524 "SecParser.tab.cpp" break; case 113: /* elems: elem */ #line 802 "SecParser.y" {yyval = yyvsp[0];} #line 27530 "SecParser.tab.cpp" break; case 114: /* elems: elems ',' elem */ #line 803 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0]));} #line 27537 "SecParser.tab.cpp" break; case 115: /* elem: valueexpr */ #line 807 "SecParser.y" {yyval = yyvsp[0];} #line 27543 "SecParser.tab.cpp" break; case 116: /* elem: valueexpr valueexpr */ #line 809 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 27553 "SecParser.tab.cpp" break; case 117: /* elem: namedfunction */ #line 814 "SecParser.y" {yyval = yyvsp[0];} #line 27559 "SecParser.tab.cpp" break; case 118: /* naming: ZZNAMING */ #line 817 "SecParser.y" {yyval = yyvsp[0];} #line 27565 "SecParser.tab.cpp" break; case 119: /* valueexprlistcomma: valueexpr */ #line 821 "SecParser.y" { yyval = yyvsp[0]; } #line 27571 "SecParser.tab.cpp" break; case 120: /* valueexprlistcomma: valueexprlistcomma ',' valueexpr */ #line 823 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "),yyvsp[0])); } #line 27579 "SecParser.tab.cpp" break; case 121: /* simplearguments: valueexprlistcomma */ #line 828 "SecParser.y" { yyval = yyvsp[0]; } #line 27585 "SecParser.tab.cpp" break; case 122: /* simplearguments: %empty */ #line 829 "SecParser.y" { yyval = NestedText::AtomC(" "); } #line 27591 "SecParser.tab.cpp" break; case 123: /* simplearguments: simplearguments ';' simplearguments */ #line 831 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "),yyvsp[0])); } #line 27599 "SecParser.tab.cpp" break; case 124: /* valueexpr: ZZIDENTIFIER */ #line 836 "SecParser.y" {yyval = yyvsp[0];} #line 27605 "SecParser.tab.cpp" break; case 125: /* valueexpr: constant */ #line 837 "SecParser.y" {yyval = yyvsp[0];} #line 27611 "SecParser.tab.cpp" break; case 126: /* valueexpr: function */ #line 838 "SecParser.y" {yyval = yyvsp[0];} #line 27617 "SecParser.tab.cpp" break; case 127: /* valueexpr: ZZIDENTIFIER '(' elems ')' */ #line 840 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")") ))));} #line 27627 "SecParser.tab.cpp" break; case 128: /* valueexpr: attribute */ #line 845 "SecParser.y" {yyval = yyvsp[0];} #line 27633 "SecParser.tab.cpp" break; case 129: /* valueexpr: attribute2 */ #line 846 "SecParser.y" {yyval = yyvsp[0];} #line 27639 "SecParser.tab.cpp" break; case 130: /* valueexpr: '(' valueexpr ')' */ #line 847 "SecParser.y" {yyval = yyvsp[-1];} #line 27645 "SecParser.tab.cpp" break; case 131: /* valueexpr: '[' ZZCONST typeexpr2 ZZVALUE nestedlist ']' */ #line 849 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")") ))));} #line 27655 "SecParser.tab.cpp" break; case 132: /* valueexpr: '[' ZZCONST typeexpr2 ZZPOINTER nestedlist ']' */ #line 855 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" ( ptr"), NestedText::Concat(yyvsp[-1], NestedText::AtomC("))") ))));} #line 27665 "SecParser.tab.cpp" break; case 133: /* valueexpr: '[' list ']' */ #line 860 "SecParser.y" {yyval = yyvsp[-1];} #line 27671 "SecParser.tab.cpp" break; case 134: /* valueexpr: '.' */ #line 862 "SecParser.y" {yyval = NestedText::AtomC(params[1]);} #line 27677 "SecParser.tab.cpp" break; case 135: /* valueexpr: ZZSINGLE */ #line 863 "SecParser.y" {yyval = NestedText::AtomC(params[1]);} #line 27683 "SecParser.tab.cpp" break; case 136: /* valueexpr: ZZDOUBLE */ #line 865 "SecParser.y" {yyval = NestedText::AtomC(params[2]);} #line 27689 "SecParser.tab.cpp" break; case 137: /* valueexpr: ZZARG3 */ #line 866 "SecParser.y" {yyval = NestedText::AtomC(params[3]);} #line 27695 "SecParser.tab.cpp" break; case 138: /* valueexpr: ZZARG4 */ #line 867 "SecParser.y" {yyval = NestedText::AtomC(params[4]);} #line 27701 "SecParser.tab.cpp" break; case 139: /* valueexpr: ZZARG5 */ #line 868 "SecParser.y" {yyval = NestedText::AtomC(params[5]);} #line 27707 "SecParser.tab.cpp" break; case 140: /* valueexpr: ZZARG6 */ #line 869 "SecParser.y" {yyval = NestedText::AtomC(params[6]);} #line 27713 "SecParser.tab.cpp" break; case 141: /* valueexpr: ZZARG7 */ #line 870 "SecParser.y" {yyval = NestedText::AtomC(params[7]);} #line 27719 "SecParser.tab.cpp" break; case 142: /* valueexpr: ZZARG8 */ #line 871 "SecParser.y" {yyval = NestedText::AtomC(params[8]);} #line 27725 "SecParser.tab.cpp" break; case 143: /* valueexpr: ZZARG9 */ #line 872 "SecParser.y" {yyval = NestedText::AtomC(params[9]);} #line 27731 "SecParser.tab.cpp" break; case 144: /* valueexpr: ZZTUPLE */ #line 873 "SecParser.y" {yyval = NestedText::AtomC(params[1]);} #line 27737 "SecParser.tab.cpp" break; case 145: /* valueexpr: ZZGROUP */ #line 874 "SecParser.y" {yyval = NestedText::AtomC(params[1]);} #line 27743 "SecParser.tab.cpp" break; case 146: /* valueexpr: valueexpr '{' ZZIDENTIFIER '}' */ #line 877 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(rename"), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")") )))));} #line 27754 "SecParser.tab.cpp" break; case 147: /* valueexpr: valueexpr '{' ZZINTEGER '}' */ #line 885 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(counter"), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-3], NestedText::AtomC(")") )))));} #line 27765 "SecParser.tab.cpp" break; case 148: /* valueexpr: valueexpr '{' ZZREAL ',' ZZREAL '}' */ #line 893 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-5], NestedText::AtomC(")") ))))));} #line 27777 "SecParser.tab.cpp" break; case 149: /* valueexpr: valueexpr '{' ZZREAL ',' ZZINTEGER '}' */ #line 902 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat(yyvsp[-5], NestedText::AtomC(")") ))))));} #line 27789 "SecParser.tab.cpp" break; case 150: /* valueexpr: valueexpr '{' ZZINTEGER ',' ZZREAL '}' */ #line 911 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-5], NestedText::AtomC(")") ))))));} #line 27801 "SecParser.tab.cpp" break; case 151: /* valueexpr: valueexpr '{' ZZINTEGER ',' ZZINTEGER '}' */ #line 920 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(predinfo "), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(".0 "), NestedText::Concat(yyvsp[-5], NestedText::AtomC(")") ))))));} #line 27813 "SecParser.tab.cpp" break; case 152: /* valueexpr: valueexpr '{' ZZMEMORY ZZINTEGER '}' */ #line 929 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("(memory "), NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-4], NestedText::AtomC(")") )))));} #line 27824 "SecParser.tab.cpp" break; case 153: /* valueexpr: valueexpr ZZINFIXOP valueexpr */ #line 938 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") )))))); } #line 27837 "SecParser.tab.cpp" break; case 154: /* valueexpr: valueexpr ZZINFIXOP_BUF valueexpr */ #line 947 "SecParser.y" {yyval = NestedText::Concat( USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")") )))))); } #line 27853 "SecParser.tab.cpp" break; case 155: /* valueexpr: ZZPREFIXOP '(' valueexprlistcomma ')' */ #line 959 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], NestedText::AtomC(")") )))); } #line 27864 "SecParser.tab.cpp" break; case 156: /* valueexpr: ZZPREFIXOP_BUF '(' valueexprlistcomma ')' */ #line 966 "SecParser.y" {yyval = NestedText::Concat( USE_AUTO_BUFFER? NestedText::AtomC("( ! (") : NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-1], USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")") )))); } #line 27878 "SecParser.tab.cpp" break; case 157: /* valueexpr: ZZPREFIXOP '(' ')' */ #line 976 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-2], NestedText::AtomC(")") )); } #line 27887 "SecParser.tab.cpp" break; case 158: /* valueexpr: ZZPREFIXOP_BUF '(' ')' */ #line 981 "SecParser.y" {yyval = NestedText::Concat( USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("("), NestedText::Concat(yyvsp[-2], USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")") )); } #line 27899 "SecParser.tab.cpp" break; case 159: /* valueexpr: valueexpr ZZPOSTFIXOP1 */ #line 999 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[0], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))); } #line 27911 "SecParser.tab.cpp" break; case 160: /* valueexpr: valueexpr ZZPOSTFIXOP1_a '[' simplearguments ']' */ #line 1014 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 27925 "SecParser.tab.cpp" break; case 161: /* valueexpr: valueexpr valueexpr ZZPOSTFIXOP2_a '[' simplearguments ']' */ #line 1032 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 27941 "SecParser.tab.cpp" break; case 162: /* valueexpr: valueexpr ZZNEST '[' list ';' valueexpr ']' */ #line 1054 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 27954 "SecParser.tab.cpp" break; case 163: /* valueexpr: valueexpr valueexpr ZZPOSTFIXOP2 */ #line 1070 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[0], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 27968 "SecParser.tab.cpp" break; case 164: /* valueexpr: valueexpr ZZSORTBY '[' list ']' */ #line 1088 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 27980 "SecParser.tab.cpp" break; case 165: /* valueexpr: valueexpr ZZSORTBYPARAM '[' list ';' valueexpr ',' valueexpr ',' valueexpr ']' */ #line 1110 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))); } #line 27995 "SecParser.tab.cpp" break; case 166: /* valueexpr: valueexpr ZZSORTBYH '[' list ']' */ #line 1129 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 28007 "SecParser.tab.cpp" break; case 167: /* valueexpr: valueexpr ZZGDIJKSTRA '[' valueexpr ',' valueexpr ',' valueexpr ',' GDIJKSTRA_fun ',' valueexpr ',' valueexpr ']' */ #line 1155 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 28031 "SecParser.tab.cpp" break; case 168: /* valueexpr: valueexpr ZZMINPATHCOST2 '[' valueexpr ',' valueexpr ',' valueexpr ',' MINPATHCOST2_fun ',' valueexpr ']' */ #line 1191 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 28053 "SecParser.tab.cpp" break; case 169: /* valueexpr: valueexpr valueexpr ZZGBIDIJKSTRA '[' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ',' GBIDIJKSTRA_fun ']' */ #line 1226 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 28077 "SecParser.tab.cpp" break; case 170: /* valueexpr: valueexpr valueexpr ZZMTMINPATHCOSTS2 '[' valueexpr ',' valueexpr ',' valueexpr ',' MTMINPATHCOSTS2_fun ',' valueexpr ']' */ #line 1263 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 28101 "SecParser.tab.cpp" break; case 171: /* valueexpr: valueexpr ZZD_SEND_SHUFFLE '[' D_SEND_SHUFFLE_fun ',' valueexpr ',' valueexpr ']' */ #line 1295 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 28119 "SecParser.tab.cpp" break; case 172: /* valueexpr: valueexpr ZZDSHUFFLE '[' DSHUFFLE_fun ',' valueexpr ',' valueexpr ']' */ #line 1321 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 28137 "SecParser.tab.cpp" break; case 173: /* valueexpr: valueexpr ZZDSHUFFLE2 '[' DSHUFFLE2_fun ',' valueexpr ']' */ #line 1345 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28153 "SecParser.tab.cpp" break; case 174: /* valueexpr: valueexpr ZZDSHUFFLE1 '[' DSHUFFLE1_fun ']' */ #line 1365 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28167 "SecParser.tab.cpp" break; case 175: /* valueexpr: valueexpr ZZDLOOP_OLD '[' DLOOP_OLD_fun ']' */ #line 1383 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28181 "SecParser.tab.cpp" break; case 176: /* valueexpr: valueexpr valueexpr ZZDLOOPA_OLD '[' DLOOPA_OLD_fun ']' */ #line 1402 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28197 "SecParser.tab.cpp" break; case 177: /* valueexpr: valueexpr ZZDTIE '[' DTIE_fun ']' */ #line 1422 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28211 "SecParser.tab.cpp" break; case 178: /* valueexpr: valueexpr ZZPARTITIONDMAP '[' valueexpr ',' PARTITIONDMAP_fun ',' valueexpr ',' PARTITIONDMAP_fun ']' */ #line 1446 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28231 "SecParser.tab.cpp" break; case 179: /* valueexpr: valueexpr ZZDMAPPDMAP '[' valueexpr ',' DMAPPDMAP_fun ',' DMAPPDMAP_fun ',' valueexpr ',' DMAPPDMAP_fun ']' */ #line 1478 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 28253 "SecParser.tab.cpp" break; case 180: /* valueexpr: valueexpr ZZFDISTRIBUTE2TES '[' valueexpr ',' FDISTRIBUTE2TES_fun ',' valueexpr ',' valueexpr ']' */ #line 1510 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28273 "SecParser.tab.cpp" break; case 181: /* valueexpr: valueexpr ZZDISTRIBUTE2TES '[' valueexpr ',' DISTRIBUTE2TES_fun ',' valueexpr ',' valueexpr ']' */ #line 1540 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28293 "SecParser.tab.cpp" break; case 182: /* valueexpr: valueexpr ZZCOLLECTPC2 '[' valueexpr ',' valueexpr ',' valueexpr ';' list ']' */ #line 1570 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))); } #line 28308 "SecParser.tab.cpp" break; case 183: /* valueexpr: valueexpr ZZOPTICSR '[' list ']' */ #line 1589 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 28320 "SecParser.tab.cpp" break; case 184: /* valueexpr: valueexpr ZZOPTICSM '[' list ']' */ #line 1605 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 28332 "SecParser.tab.cpp" break; case 185: /* valueexpr: valueexpr ZZOPTICSF '[' valueexpr ',' valueexpr ',' valueexpr ',' OPTICSF_fun ']' */ #line 1627 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28352 "SecParser.tab.cpp" break; case 186: /* valueexpr: valueexpr ZZOPTICSTF '[' valueexpr ',' valueexpr ',' OPTICSTF_fun ']' */ #line 1655 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 28370 "SecParser.tab.cpp" break; case 187: /* valueexpr: valueexpr ZZFILTERV '[' FILTERV_fun ',' valueexpr ']' */ #line 1679 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28386 "SecParser.tab.cpp" break; case 188: /* valueexpr: valueexpr ZZFILTERNP '[' FILTERNP_fun ']' */ #line 1699 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28400 "SecParser.tab.cpp" break; case 189: /* valueexpr: valueexpr ZZEXTENDV '[' EXTENDV_funlist ']' */ #line 1717 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28414 "SecParser.tab.cpp" break; case 190: /* valueexpr: valueexpr ZZPROJECTEXTENDV '[' list ';' PROJECTEXTENDV_funlist ']' */ #line 1737 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28430 "SecParser.tab.cpp" break; case 191: /* valueexpr: valueexpr ZZEXTENDNP '[' EXTENDNP_funlist ']' */ #line 1757 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28444 "SecParser.tab.cpp" break; case 192: /* valueexpr: valueexpr ZZPROJECTEXTENDNP '[' list ';' PROJECTEXTENDNP_funlist ']' */ #line 1777 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28460 "SecParser.tab.cpp" break; case 193: /* valueexpr: valueexpr ZZDBDACSCAN '[' list ']' */ #line 1797 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 28472 "SecParser.tab.cpp" break; case 194: /* valueexpr: valueexpr valueexpr ZZDISTSAMP '[' list ']' */ #line 1814 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 28486 "SecParser.tab.cpp" break; case 195: /* valueexpr: valueexpr ZZAPPLYPREDICATE '[' APPLYPREDICATE_fun ']' */ #line 1832 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28500 "SecParser.tab.cpp" break; case 196: /* valueexpr: valueexpr ZZFEEDPROJECT '[' list ']' */ #line 1850 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 28512 "SecParser.tab.cpp" break; case 197: /* valueexpr: valueexpr ZZFILTER '[' FILTER_fun ']' */ #line 1866 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))); } #line 28526 "SecParser.tab.cpp" break; case 198: /* valueexpr: valueexpr ZZCFILTER '[' CFILTER_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' */ #line 1890 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))))))); } #line 28546 "SecParser.tab.cpp" break; case 199: /* valueexpr: valueexpr ZZCAND '[' CAND_fun ',' CAND_fun ']' */ #line 1916 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28562 "SecParser.tab.cpp" break; case 200: /* valueexpr: valueexpr ZZCOR '[' COR_fun ',' COR_fun ']' */ #line 1938 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28578 "SecParser.tab.cpp" break; case 201: /* valueexpr: valueexpr ZZWITHIN '[' WITHIN_fun ']' */ #line 1958 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28592 "SecParser.tab.cpp" break; case 202: /* valueexpr: valueexpr valueexpr ZZWITHIN2 '[' WITHIN2_fun ']' */ #line 1977 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28608 "SecParser.tab.cpp" break; case 203: /* valueexpr: valueexpr ZZWHILEDO '[' WHILEDO_fun ';' WHILEDO_fun ';' valueexpr ']' */ #line 2001 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 28626 "SecParser.tab.cpp" break; case 204: /* valueexpr: valueexpr ZZFUNSEQ1 '[' FUNSEQ1_fun ']' */ #line 2023 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 28640 "SecParser.tab.cpp" break; case 205: /* valueexpr: valueexpr ZZFUNSEQ2 '[' FUNSEQ2_fun ',' FUNSEQ2_fun ']' */ #line 2043 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28656 "SecParser.tab.cpp" break; case 206: /* valueexpr: valueexpr ZZFUNSEQ3 '[' FUNSEQ3_fun ',' FUNSEQ3_fun ',' FUNSEQ3_fun ']' */ #line 2067 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 28674 "SecParser.tab.cpp" break; case 207: /* valueexpr: valueexpr ZZFUNSEQ4 '[' FUNSEQ4_fun ',' FUNSEQ4_fun ',' FUNSEQ4_fun ',' FUNSEQ4_fun ']' */ #line 2095 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28694 "SecParser.tab.cpp" break; case 208: /* valueexpr: valueexpr ZZFUNSEQ5 '[' FUNSEQ5_fun ',' FUNSEQ5_fun ',' FUNSEQ5_fun ',' FUNSEQ5_fun ',' FUNSEQ5_fun ']' */ #line 2127 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 28716 "SecParser.tab.cpp" break; case 209: /* valueexpr: valueexpr ZZFUNSEQ6 '[' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ',' FUNSEQ6_fun ']' */ #line 2163 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 28740 "SecParser.tab.cpp" break; case 210: /* valueexpr: valueexpr ZZDDISTRIBUTE4 '[' valueexpr ',' DDISTRIBUTE4_fun ',' valueexpr ',' valueexpr ']' */ #line 2197 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28760 "SecParser.tab.cpp" break; case 211: /* valueexpr: valueexpr ZZFDISTRIBUTE7 '[' valueexpr ',' FDISTRIBUTE7_fun ',' valueexpr ',' valueexpr ']' */ #line 2227 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28780 "SecParser.tab.cpp" break; case 212: /* valueexpr: valueexpr ZZDLOOP '[' valueexpr ',' DLOOP_fun ']' */ #line 2253 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28796 "SecParser.tab.cpp" break; case 213: /* valueexpr: valueexpr valueexpr ZZDLOOP2 '[' valueexpr ',' DLOOP2_fun ']' */ #line 2276 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 28814 "SecParser.tab.cpp" break; case 214: /* valueexpr: valueexpr ZZDMAP '[' valueexpr ',' DMAP_fun ']' */ #line 2300 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 28830 "SecParser.tab.cpp" break; case 215: /* valueexpr: valueexpr valueexpr ZZPDMAP '[' valueexpr ',' PDMAP_fun ']' */ #line 2323 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 28848 "SecParser.tab.cpp" break; case 216: /* valueexpr: valueexpr valueexpr ZZDMAP2n '[' valueexpr ',' DMAP2n_fun ',' valueexpr ']' */ #line 2350 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28868 "SecParser.tab.cpp" break; case 217: /* valueexpr: valueexpr valueexpr ZZDMAP2 '[' valueexpr ',' DMAP2_fun ',' valueexpr ']' */ #line 2379 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 28888 "SecParser.tab.cpp" break; case 218: /* valueexpr: valueexpr valueexpr valueexpr ZZDMAP3 '[' valueexpr ',' DMAP3_fun ',' valueexpr ']' */ #line 2409 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 28910 "SecParser.tab.cpp" break; case 219: /* valueexpr: valueexpr valueexpr valueexpr valueexpr ZZDMAP4 '[' valueexpr ',' DMAP4_fun ',' valueexpr ']' */ #line 2442 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 28934 "SecParser.tab.cpp" break; case 220: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP5 '[' valueexpr ',' DMAP5_fun ',' valueexpr ']' */ #line 2478 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))); } #line 28960 "SecParser.tab.cpp" break; case 221: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP6 '[' valueexpr ',' DMAP6_fun ',' valueexpr ']' */ #line 2517 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))))); } #line 28988 "SecParser.tab.cpp" break; case 222: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP7 '[' valueexpr ',' DMAP7_fun ',' valueexpr ']' */ #line 2559 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))))))); } #line 29018 "SecParser.tab.cpp" break; case 223: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAP8 '[' valueexpr ',' DMAP8_fun ',' valueexpr ']' */ #line 2604 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-15], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))))))))); } #line 29050 "SecParser.tab.cpp" break; case 224: /* valueexpr: valueexpr valueexpr valueexpr ZZPDMAP2 '[' valueexpr ',' PDMAP2_fun ',' valueexpr ']' */ #line 2646 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 29072 "SecParser.tab.cpp" break; case 225: /* valueexpr: valueexpr valueexpr valueexpr valueexpr ZZPDMAP3 '[' valueexpr ',' PDMAP3_fun ',' valueexpr ']' */ #line 2679 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 29096 "SecParser.tab.cpp" break; case 226: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP4 '[' valueexpr ',' PDMAP4_fun ',' valueexpr ']' */ #line 2715 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))); } #line 29122 "SecParser.tab.cpp" break; case 227: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP5 '[' valueexpr ',' PDMAP5_fun ',' valueexpr ']' */ #line 2754 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))))); } #line 29150 "SecParser.tab.cpp" break; case 228: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP6 '[' valueexpr ',' PDMAP6_fun ',' valueexpr ']' */ #line 2796 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))))))); } #line 29180 "SecParser.tab.cpp" break; case 229: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP7 '[' valueexpr ',' PDMAP7_fun ',' valueexpr ']' */ #line 2841 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-15], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))))))))); } #line 29212 "SecParser.tab.cpp" break; case 230: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPDMAP8 '[' valueexpr ',' PDMAP8_fun ',' valueexpr ']' */ #line 2889 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-16], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-15], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))))))))))); } #line 29246 "SecParser.tab.cpp" break; case 231: /* valueexpr: valueexpr ZZDFDISTRIBUTE4 '[' valueexpr ',' DFDISTRIBUTE4_fun ',' valueexpr ',' valueexpr ']' */ #line 2933 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 29266 "SecParser.tab.cpp" break; case 232: /* valueexpr: valueexpr ZZPARTITION '[' valueexpr ',' PARTITION_fun ',' valueexpr ']' */ #line 2961 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 29284 "SecParser.tab.cpp" break; case 233: /* valueexpr: valueexpr ZZPARTITIONF '[' valueexpr ',' PARTITIONF_fun ',' PARTITIONF_fun ',' valueexpr ']' */ #line 2989 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 29304 "SecParser.tab.cpp" break; case 234: /* valueexpr: valueexpr ZZAREDUCE '[' valueexpr ',' AREDUCE_fun ',' valueexpr ']' */ #line 3017 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 29322 "SecParser.tab.cpp" break; case 235: /* valueexpr: valueexpr valueexpr ZZAREDUCE2 '[' valueexpr ',' AREDUCE2_fun ',' valueexpr ']' */ #line 3044 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 29342 "SecParser.tab.cpp" break; case 236: /* valueexpr: valueexpr valueexpr ZZAREDUCE2F '[' valueexpr ',' AREDUCE2F_fun ',' valueexpr ',' valueexpr ']' */ #line 3075 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 29364 "SecParser.tab.cpp" break; case 237: /* valueexpr: valueexpr valueexpr ZZDPRODUCT '[' valueexpr ',' DPRODUCT_fun ',' valueexpr ']' */ #line 3106 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 29384 "SecParser.tab.cpp" break; case 238: /* valueexpr: valueexpr ZZDDISTRIBUTE '[' valueexpr ',' DDISTRIBUTE_fun ',' DDISTRIBUTE_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' */ #line 3140 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 29408 "SecParser.tab.cpp" break; case 239: /* valueexpr: valueexpr ZZDFDISTRIBUTE '[' valueexpr ',' DFDISTRIBUTE_fun ',' DFDISTRIBUTE_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' */ #line 3178 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 29432 "SecParser.tab.cpp" break; case 240: /* valueexpr: valueexpr ZZPARTITION8LOCAL '[' PARTITION8LOCAL_fun ',' PARTITION8LOCAL_fun ',' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ']' */ #line 3218 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-15], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-16], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))); } #line 29458 "SecParser.tab.cpp" break; case 241: /* valueexpr: valueexpr ZZPARTITIONF8 '[' valueexpr ',' PARTITIONF8_fun ',' PARTITIONF8_fun ',' PARTITIONF8_fun ',' valueexpr ',' valueexpr ']' */ #line 3258 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 29482 "SecParser.tab.cpp" break; case 242: /* valueexpr: valueexpr ZZLOOPJOINREL '[' LOOPJOINREL_fun ']' */ #line 3286 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 29496 "SecParser.tab.cpp" break; case 243: /* valueexpr: valueexpr ZZCONSTGRAPH '[' valueexpr ',' valueexpr ',' CONSTGRAPH_fun ']' */ #line 3308 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 29514 "SecParser.tab.cpp" break; case 244: /* valueexpr: valueexpr ZZCONSTGRAPHPOINTS '[' valueexpr ',' valueexpr ',' CONSTGRAPHPOINTS_fun ',' valueexpr ',' valueexpr ']' */ #line 3338 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 29536 "SecParser.tab.cpp" break; case 245: /* valueexpr: valueexpr ZZTRANSLATE '[' list ']' */ #line 3364 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29548 "SecParser.tab.cpp" break; case 246: /* valueexpr: valueexpr valueexpr valueexpr ZZPOSTFIXOP3_a '[' simplearguments ']' */ #line 3381 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 29566 "SecParser.tab.cpp" break; case 247: /* valueexpr: valueexpr ZZEXISTS '[' EXISTS_fun ']' */ #line 3403 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 29580 "SecParser.tab.cpp" break; case 248: /* valueexpr: valueexpr ZZFORALL '[' FORALL_fun ']' */ #line 3421 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 29594 "SecParser.tab.cpp" break; case 249: /* valueexpr: valueexpr valueexpr valueexpr ZZPOSTFIXOP3 */ #line 3439 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[0], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 29610 "SecParser.tab.cpp" break; case 250: /* valueexpr: valueexpr valueexpr valueexpr ZZPARAJOIN '[' PARAJOIN_fun ']' */ #line 3461 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 29628 "SecParser.tab.cpp" break; case 251: /* valueexpr: valueexpr ZZFCONSUME '[' list ';' list ';' list ']' */ #line 3487 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 29642 "SecParser.tab.cpp" break; case 252: /* valueexpr: valueexpr ZZFFEED '[' list ';' list ';' list ']' */ #line 3509 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 29656 "SecParser.tab.cpp" break; case 253: /* valueexpr: valueexpr valueexpr ZZHADOOPJOIN '[' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ';' list ';' HADOOPJOIN_fun ']' */ #line 3538 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-15], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))))); } #line 29682 "SecParser.tab.cpp" break; case 254: /* valueexpr: valueexpr ZZFDISTRIBUTE '[' list ';' list ';' list ';' list ']' */ #line 3574 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))); } #line 29697 "SecParser.tab.cpp" break; case 255: /* valueexpr: valueexpr ZZFFEED2 '[' list ';' list ';' list ']' */ #line 3597 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 29711 "SecParser.tab.cpp" break; case 256: /* valueexpr: valueexpr ZZFCONSUME3 '[' list ';' list ';' list ']' */ #line 3619 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 29725 "SecParser.tab.cpp" break; case 257: /* valueexpr: valueexpr ZZFFEED3 '[' list ';' list ';' list ']' */ #line 3641 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 29739 "SecParser.tab.cpp" break; case 258: /* valueexpr: valueexpr ZZFETCHFLOB '[' list ']' */ #line 3659 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29751 "SecParser.tab.cpp" break; case 259: /* valueexpr: valueexpr ZZFDISTRIBUTE3 '[' list ';' list ';' list ';' list ']' */ #line 3681 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))); } #line 29766 "SecParser.tab.cpp" break; case 260: /* valueexpr: valueexpr ZZMOCONSUME '[' list ']' */ #line 3700 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29778 "SecParser.tab.cpp" break; case 261: /* valueexpr: valueexpr ZZMOCONSUMEFLOB '[' list ']' */ #line 3716 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29790 "SecParser.tab.cpp" break; case 262: /* valueexpr: valueexpr ZZMINSERTTUPLE '[' list ']' */ #line 3732 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29802 "SecParser.tab.cpp" break; case 263: /* valueexpr: valueexpr ZZMINSERTTUPLESAVE '[' list ';' valueexpr ']' */ #line 3750 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 29815 "SecParser.tab.cpp" break; case 264: /* valueexpr: valueexpr ZZMUPDATE '[' valueexpr ';' MUPDATE_funlist ']' */ #line 3769 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 29831 "SecParser.tab.cpp" break; case 265: /* valueexpr: valueexpr ZZMUPDATESAVE '[' valueexpr ',' valueexpr ';' MUPDATESAVE_funlist ']' */ #line 3793 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 29849 "SecParser.tab.cpp" break; case 266: /* valueexpr: valueexpr ZZMUPDATEBYID '[' valueexpr ';' MUPDATEBYID_funlist ']' */ #line 3817 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 29865 "SecParser.tab.cpp" break; case 267: /* valueexpr: valueexpr valueexpr ZZMUPDATEDIRECT2 '[' valueexpr ';' MUPDATEDIRECT2_funlist ']' */ #line 3840 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 29883 "SecParser.tab.cpp" break; case 268: /* valueexpr: valueexpr ZZMORANGE '[' list ';' list ']' */ #line 3864 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 29896 "SecParser.tab.cpp" break; case 269: /* valueexpr: valueexpr ZZMOLEFTRANGE '[' list ']' */ #line 3881 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29908 "SecParser.tab.cpp" break; case 270: /* valueexpr: valueexpr ZZMORIGHTRANGE '[' list ']' */ #line 3897 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29920 "SecParser.tab.cpp" break; case 271: /* valueexpr: valueexpr ZZMOSHORTESTPATHD '[' valueexpr ',' valueexpr ',' valueexpr ';' MOSHORTESTPATHD_fun ']' */ #line 3919 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 29940 "SecParser.tab.cpp" break; case 272: /* valueexpr: valueexpr ZZMOSHORTESTPATHA '[' valueexpr ',' valueexpr ',' valueexpr ';' MOSHORTESTPATHA_fun ',' MOSHORTESTPATHA_fun ']' */ #line 3951 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 29962 "SecParser.tab.cpp" break; case 273: /* valueexpr: valueexpr ZZMQUICKSORTBY '[' list ']' */ #line 3977 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 29974 "SecParser.tab.cpp" break; case 274: /* valueexpr: valueexpr ZZMGSHORTESTPATHD '[' valueexpr ',' valueexpr ',' valueexpr ';' MGSHORTESTPATHD_fun ']' */ #line 3999 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 29994 "SecParser.tab.cpp" break; case 275: /* valueexpr: valueexpr ZZMGSHORTESTPATHA '[' valueexpr ',' valueexpr ',' valueexpr ';' MGSHORTESTPATHA_fun ',' MGSHORTESTPATHA_fun ']' */ #line 4031 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 30016 "SecParser.tab.cpp" break; case 276: /* valueexpr: valueexpr ZZMINSERTTUPLEPQPROJECTU '[' valueexpr ',' valueexpr ',' valueexpr ';' list ']' */ #line 4063 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))); } #line 30031 "SecParser.tab.cpp" break; case 277: /* valueexpr: valueexpr ZZMINSERTTUPLEPQPROJECT '[' valueexpr ',' valueexpr ';' list ']' */ #line 4086 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 30045 "SecParser.tab.cpp" break; case 278: /* valueexpr: valueexpr ZZMPQREORDER '[' MPQREORDER_fun ']' */ #line 4104 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30059 "SecParser.tab.cpp" break; case 279: /* valueexpr: valueexpr ZZMPQREORDERUPDATE '[' MPQREORDERUPDATE_fun ',' valueexpr ']' */ #line 4124 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30075 "SecParser.tab.cpp" break; case 280: /* valueexpr: valueexpr ZZCREATEMGRAPH2 '[' valueexpr ',' valueexpr ',' CREATEMGRAPH2_fun ']' */ #line 4148 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 30093 "SecParser.tab.cpp" break; case 281: /* valueexpr: valueexpr ZZCREATEMGRAPH2FLOB '[' valueexpr ',' valueexpr ',' CREATEMGRAPH2FLOB_fun ']' */ #line 4174 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 30111 "SecParser.tab.cpp" break; case 282: /* valueexpr: valueexpr ZZMG2INSERTORIG '[' valueexpr ',' valueexpr ',' MG2INSERTORIG_fun ',' valueexpr ']' */ #line 4202 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30131 "SecParser.tab.cpp" break; case 283: /* valueexpr: valueexpr ZZMEMGROUPBY '[' list ';' MEMGROUPBY_funlist ']' */ #line 4228 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30147 "SecParser.tab.cpp" break; case 284: /* valueexpr: valueexpr valueexpr ZZMMERGEJOINPROJECT '[' valueexpr ',' valueexpr ';' list ']' */ #line 4253 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))); } #line 30163 "SecParser.tab.cpp" break; case 285: /* valueexpr: valueexpr ZZPUSE '[' PUSE_fun ']' */ #line 4273 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30177 "SecParser.tab.cpp" break; case 286: /* valueexpr: valueexpr valueexpr ZZPJOIN2 '[' PJOIN2_funlist ']' */ #line 4292 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30193 "SecParser.tab.cpp" break; case 287: /* valueexpr: valueexpr valueexpr ZZPJOIN1 '[' valueexpr ';' PJOIN1_funlist ']' */ #line 4315 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 30211 "SecParser.tab.cpp" break; case 288: /* valueexpr: valueexpr ZZEXTENDITEMNAMES '[' valueexpr ';' list ']' */ #line 4339 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 30224 "SecParser.tab.cpp" break; case 289: /* valueexpr: valueexpr ZZSORTARRAY '[' SORTARRAY_fun ']' */ #line 4356 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30238 "SecParser.tab.cpp" break; case 290: /* valueexpr: valueexpr ZZTIE '[' TIE_fun ']' */ #line 4374 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30252 "SecParser.tab.cpp" break; case 291: /* valueexpr: valueexpr ZZCUMULATE '[' CUMULATE_fun ']' */ #line 4392 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30266 "SecParser.tab.cpp" break; case 292: /* valueexpr: valueexpr ZZLOOP '[' LOOP_fun ']' */ #line 4410 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30280 "SecParser.tab.cpp" break; case 293: /* valueexpr: valueexpr valueexpr ZZLOOPA '[' LOOPA_fun ']' */ #line 4429 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30296 "SecParser.tab.cpp" break; case 294: /* valueexpr: valueexpr valueexpr ZZLOOPB '[' LOOPB_fun ']' */ #line 4450 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30312 "SecParser.tab.cpp" break; case 295: /* valueexpr: valueexpr ZZLOOPSWITCH '[' LOOPSWITCH_funlist ']' */ #line 4470 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30326 "SecParser.tab.cpp" break; case 296: /* valueexpr: valueexpr valueexpr ZZLOOPSWITCHA '[' LOOPSWITCHA_funlist ']' */ #line 4489 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30342 "SecParser.tab.cpp" break; case 297: /* valueexpr: valueexpr valueexpr ZZLOOPSWITCHB '[' LOOPSWITCHB_funlist ']' */ #line 4510 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30358 "SecParser.tab.cpp" break; case 298: /* valueexpr: valueexpr ZZLOOPSELECT '[' LOOPSELECT_funlist ';' valueexpr ',' valueexpr ']' */ #line 4534 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 30376 "SecParser.tab.cpp" break; case 299: /* valueexpr: valueexpr valueexpr ZZLOOPSELECTA '[' LOOPSELECTA_funlist ';' valueexpr ',' valueexpr ']' */ #line 4561 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30396 "SecParser.tab.cpp" break; case 300: /* valueexpr: valueexpr valueexpr ZZLOOPSELECTB '[' LOOPSELECTB_funlist ';' valueexpr ',' valueexpr ']' */ #line 4590 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30416 "SecParser.tab.cpp" break; case 301: /* valueexpr: valueexpr valueexpr ZZPARTJOIN '[' PARTJOIN_fun ']' */ #line 4615 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30432 "SecParser.tab.cpp" break; case 302: /* valueexpr: valueexpr valueexpr ZZPARTJOINSWITCH '[' PARTJOINSWITCH_funlist ']' */ #line 4636 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30448 "SecParser.tab.cpp" break; case 303: /* valueexpr: valueexpr valueexpr ZZPARTJOINSELECT '[' PARTJOINSELECT_funlist ';' valueexpr ',' valueexpr ']' */ #line 4661 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30468 "SecParser.tab.cpp" break; case 304: /* valueexpr: valueexpr ZZEXTEND '[' EXTEND_funlist ']' */ #line 4685 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30482 "SecParser.tab.cpp" break; case 305: /* valueexpr: valueexpr valueexpr ZZPARAJOIN2 '[' valueexpr ',' valueexpr ';' PARAJOIN2_fun ']' */ #line 4708 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30502 "SecParser.tab.cpp" break; case 306: /* valueexpr: valueexpr ZZDRELFILTER '[' DRELFILTER_fun ']' */ #line 4732 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30516 "SecParser.tab.cpp" break; case 307: /* valueexpr: valueexpr ZZDRELEXTEND '[' DRELEXTEND_funlist ']' */ #line 4750 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30530 "SecParser.tab.cpp" break; case 308: /* valueexpr: valueexpr ZZDRELPROJECTEXTEND '[' list ';' DRELPROJECTEXTEND_funlist ']' */ #line 4770 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30546 "SecParser.tab.cpp" break; case 309: /* valueexpr: valueexpr ZZPROJECT '[' list ']' */ #line 4790 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 30558 "SecParser.tab.cpp" break; case 310: /* valueexpr: valueexpr ZZLSORTBY '[' list ']' */ #line 4806 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 30570 "SecParser.tab.cpp" break; case 311: /* valueexpr: valueexpr ZZDRELLGROUPBY '[' list ';' DRELLGROUPBY_funlist ']' */ #line 4824 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30586 "SecParser.tab.cpp" break; case 312: /* valueexpr: valueexpr ZZDRELGROUPBY '[' list ';' DRELGROUPBY_funlist ']' */ #line 4846 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30602 "SecParser.tab.cpp" break; case 313: /* valueexpr: valueexpr ZZDRELINSERTTUPLE '[' list ';' valueexpr ']' */ #line 4868 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 30615 "SecParser.tab.cpp" break; case 314: /* valueexpr: valueexpr valueexpr ZZDRELUPDATE '[' DRELUPDATE_funlist ';' valueexpr ']' */ #line 4888 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 30633 "SecParser.tab.cpp" break; case 315: /* valueexpr: valueexpr valueexpr ZZDRELUPDATEBYID '[' valueexpr ';' DRELUPDATEBYID_funlist ';' valueexpr ']' */ #line 4915 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30653 "SecParser.tab.cpp" break; case 316: /* valueexpr: valueexpr ZZDRELFILTERADDID '[' DRELFILTERADDID_fun ']' */ #line 4939 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30667 "SecParser.tab.cpp" break; case 317: /* valueexpr: valueexpr ZZDRELFILTERDELETE '[' DRELFILTERDELETE_fun ']' */ #line 4957 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30681 "SecParser.tab.cpp" break; case 318: /* valueexpr: valueexpr ZZDRELFILTERUPDATE '[' DRELFILTERUPDATE_fun ';' DRELFILTERUPDATE_funlist ']' */ #line 4977 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30697 "SecParser.tab.cpp" break; case 319: /* valueexpr: valueexpr ZZDBSCANR '[' list ']' */ #line 4997 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 30709 "SecParser.tab.cpp" break; case 320: /* valueexpr: valueexpr ZZDBSCANM '[' list ']' */ #line 5013 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 30721 "SecParser.tab.cpp" break; case 321: /* valueexpr: valueexpr ZZDBSCANF '[' valueexpr ',' valueexpr ',' valueexpr ',' valueexpr ',' DBSCANF_fun ']' */ #line 5037 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 30743 "SecParser.tab.cpp" break; case 322: /* valueexpr: valueexpr ZZDBSCANTF '[' valueexpr ',' valueexpr ',' valueexpr ',' DBSCANTF_fun ']' */ #line 5069 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30763 "SecParser.tab.cpp" break; case 323: /* valueexpr: valueexpr ZZPFILTERS '[' valueexpr ',' valueexpr ',' valueexpr ',' PFILTERS_fun ']' */ #line 5099 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30783 "SecParser.tab.cpp" break; case 324: /* valueexpr: valueexpr ZZPEXTEND '[' valueexpr ',' valueexpr ',' valueexpr ';' PEXTEND_funlist ']' */ #line 5129 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30803 "SecParser.tab.cpp" break; case 325: /* valueexpr: valueexpr ZZPEXTENDSTREAM '[' valueexpr ',' valueexpr ',' valueexpr ';' PEXTENDSTREAM_funlist ']' */ #line 5159 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30823 "SecParser.tab.cpp" break; case 326: /* valueexpr: valueexpr ZZPLOOPSEL '[' valueexpr ',' valueexpr ',' valueexpr ',' PLOOPSEL_fun ']' */ #line 5189 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30843 "SecParser.tab.cpp" break; case 327: /* valueexpr: valueexpr ZZPLOOPJOIN '[' valueexpr ',' valueexpr ',' valueexpr ',' PLOOPJOIN_fun ']' */ #line 5219 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 30863 "SecParser.tab.cpp" break; case 328: /* valueexpr: valueexpr ZZPAGGREGATE '[' valueexpr ',' valueexpr ',' valueexpr ';' PAGGREGATE_fun ';' valueexpr ']' */ #line 5251 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 30885 "SecParser.tab.cpp" break; case 329: /* valueexpr: valueexpr ZZPAGGREGATEB '[' valueexpr ',' valueexpr ',' valueexpr ';' PAGGREGATEB_fun ';' valueexpr ']' */ #line 5285 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 30907 "SecParser.tab.cpp" break; case 330: /* valueexpr: valueexpr ZZPSORTBY '[' valueexpr ',' valueexpr ';' list ']' */ #line 5315 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 30921 "SecParser.tab.cpp" break; case 331: /* valueexpr: valueexpr valueexpr valueexpr valueexpr ZZPOSTFIXOP4_a '[' simplearguments ']' */ #line 5335 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))); } #line 30941 "SecParser.tab.cpp" break; case 332: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr valueexpr ZZPOSTFIXOP6_a '[' simplearguments ']' */ #line 5363 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))))))))); } #line 30965 "SecParser.tab.cpp" break; case 333: /* valueexpr: valueexpr ZZAGGREGATES '[' AGGREGATES_fun ';' valueexpr ']' */ #line 5393 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 30981 "SecParser.tab.cpp" break; case 334: /* valueexpr: valueexpr ZZUSE '[' USE_fun ']' */ #line 5413 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 30995 "SecParser.tab.cpp" break; case 335: /* valueexpr: valueexpr valueexpr ZZUSE2 '[' USE2_fun ']' */ #line 5432 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31011 "SecParser.tab.cpp" break; case 336: /* valueexpr: valueexpr ZZTS '[' TS_funlist ']' */ #line 5452 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31025 "SecParser.tab.cpp" break; case 337: /* valueexpr: valueexpr ZZAS '[' AS_fun ']' */ #line 5470 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31039 "SecParser.tab.cpp" break; case 338: /* valueexpr: valueexpr ZZstreamfun '[' streamfun_fun ']' */ #line 5488 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31053 "SecParser.tab.cpp" break; case 339: /* valueexpr: valueexpr ZZprog '[' prog_fun ',' valueexpr ']' */ #line 5508 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31069 "SecParser.tab.cpp" break; case 340: /* valueexpr: valueexpr ZZSYNC '[' SYNC_fun ',' valueexpr ',' valueexpr ']' */ #line 5532 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31087 "SecParser.tab.cpp" break; case 341: /* valueexpr: valueexpr ZZSideEffect '[' SideEffect_fun ']' */ #line 5554 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31101 "SecParser.tab.cpp" break; case 342: /* valueexpr: valueexpr ZZTRANSLATE_GROOM '[' list ']' */ #line 5572 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31113 "SecParser.tab.cpp" break; case 343: /* valueexpr: valueexpr ZZOLEFTRANGE '[' list ']' */ #line 5588 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31125 "SecParser.tab.cpp" break; case 344: /* valueexpr: valueexpr ZZORIGHTRANGE '[' list ']' */ #line 5604 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31137 "SecParser.tab.cpp" break; case 345: /* valueexpr: valueexpr ZZORANGE '[' list ';' list ']' */ #line 5622 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 31150 "SecParser.tab.cpp" break; case 346: /* valueexpr: valueexpr ZZOSHORTESTPATHD '[' valueexpr ',' valueexpr ',' valueexpr ';' OSHORTESTPATHD_fun ']' */ #line 5645 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 31170 "SecParser.tab.cpp" break; case 347: /* valueexpr: valueexpr ZZOSHORTESTPATHA '[' valueexpr ',' valueexpr ',' valueexpr ';' OSHORTESTPATHA_fun ',' OSHORTESTPATHA_fun ']' */ #line 5677 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 31192 "SecParser.tab.cpp" break; case 348: /* valueexpr: valueexpr ZZREAD2 '[' READ2_fun ']' */ #line 5703 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31206 "SecParser.tab.cpp" break; case 349: /* valueexpr: valueexpr ZZREAD3 '[' READ3_fun ']' */ #line 5721 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31220 "SecParser.tab.cpp" break; case 350: /* valueexpr: valueexpr ZZRDERIVE '[' valueexpr ',' RDERIVE_fun ']' */ #line 5741 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31236 "SecParser.tab.cpp" break; case 351: /* valueexpr: valueexpr valueexpr ZZREAD3_1 '[' READ3_1_fun ']' */ #line 5762 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31252 "SecParser.tab.cpp" break; case 352: /* valueexpr: valueexpr valueexpr valueexpr ZZREAD3_2 '[' READ3_2_fun ']' */ #line 5784 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31270 "SecParser.tab.cpp" break; case 353: /* valueexpr: valueexpr ZZFILTERX '[' FILTERX_fun ']' */ #line 5806 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31284 "SecParser.tab.cpp" break; case 354: /* valueexpr: valueexpr ZZINSERTTUPLE '[' list ']' */ #line 5824 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31296 "SecParser.tab.cpp" break; case 355: /* valueexpr: valueexpr valueexpr ZZINSERTTUPLESAVE '[' list ']' */ #line 5841 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 31310 "SecParser.tab.cpp" break; case 356: /* valueexpr: valueexpr valueexpr ZZUPDATESEARCH '[' UPDATESEARCH_funlist ']' */ #line 5860 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31326 "SecParser.tab.cpp" break; case 357: /* valueexpr: valueexpr valueexpr ZZUPDATEDIRECT '[' UPDATEDIRECT_funlist ']' */ #line 5881 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31342 "SecParser.tab.cpp" break; case 358: /* valueexpr: valueexpr valueexpr ZZUPDATEDIRECT2 '[' valueexpr ';' UPDATEDIRECT2_funlist ']' */ #line 5904 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31360 "SecParser.tab.cpp" break; case 359: /* valueexpr: valueexpr valueexpr ZZUPDATEBYID2 '[' valueexpr ';' UPDATEBYID2_funlist ']' */ #line 5929 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31378 "SecParser.tab.cpp" break; case 360: /* valueexpr: valueexpr valueexpr valueexpr ZZUPDATESEARCHSAVE '[' UPDATESEARCHSAVE_funlist ']' */ #line 5953 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31396 "SecParser.tab.cpp" break; case 361: /* valueexpr: valueexpr valueexpr valueexpr ZZUPDATEDIRECTSAVE '[' UPDATEDIRECTSAVE_funlist ']' */ #line 5977 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31414 "SecParser.tab.cpp" break; case 362: /* valueexpr: valueexpr ZZUPDATEBYID '[' valueexpr ';' UPDATEBYID_funlist ']' */ #line 6001 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31430 "SecParser.tab.cpp" break; case 363: /* valueexpr: valueexpr ZZFILTERINSERT '[' FILTERINSERT_fun ',' valueexpr ']' */ #line 6023 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31446 "SecParser.tab.cpp" break; case 364: /* valueexpr: valueexpr ZZCPROJECTEXTEND '[' list ';' CPROJECTEXTEND_funlist ']' */ #line 6045 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } #line 31462 "SecParser.tab.cpp" break; case 365: /* valueexpr: valueexpr ZZMAP '[' MAP_fun ']' */ #line 6065 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31476 "SecParser.tab.cpp" break; case 366: /* valueexpr: valueexpr valueexpr ZZMAP2 '[' MAP2_fun ']' */ #line 6084 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31492 "SecParser.tab.cpp" break; case 367: /* valueexpr: valueexpr ZZMATCHGRID '[' valueexpr ',' MATCHGRID_fun ',' valueexpr ']' */ #line 6108 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31510 "SecParser.tab.cpp" break; case 368: /* valueexpr: valueexpr ZZREPLACEELEM '[' REPLACEELEM_fun ']' */ #line 6130 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31524 "SecParser.tab.cpp" break; case 369: /* valueexpr: valueexpr ZZGROUPBY2 '[' list ';' GROUPBY2_funlist ']' */ #line 6150 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31540 "SecParser.tab.cpp" break; case 370: /* valueexpr: valueexpr ZZSPREAD '[' list ';' list ';' list ']' */ #line 6174 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 31554 "SecParser.tab.cpp" break; case 371: /* valueexpr: valueexpr ZZCOLLECT '[' list ']' */ #line 6192 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31566 "SecParser.tab.cpp" break; case 372: /* valueexpr: valueexpr ZZHADOOPMAP '[' list ';' HADOOPMAP_fun ']' */ #line 6210 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31582 "SecParser.tab.cpp" break; case 373: /* valueexpr: valueexpr ZZHADOOPREDUCE '[' list ';' HADOOPREDUCE_fun ']' */ #line 6232 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31598 "SecParser.tab.cpp" break; case 374: /* valueexpr: valueexpr valueexpr ZZHADOOPREDUCE2 '[' list ';' HADOOPREDUCE2_fun ']' */ #line 6255 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31616 "SecParser.tab.cpp" break; case 375: /* valueexpr: valueexpr ZZPFFEED '[' list ';' list ']' */ #line 6279 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 31629 "SecParser.tab.cpp" break; case 376: /* valueexpr: valueexpr ZZPFFEED2 '[' list ';' list ']' */ #line 6298 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 31642 "SecParser.tab.cpp" break; case 377: /* valueexpr: valueexpr ZZPFFEED3 '[' list ';' list ']' */ #line 6317 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 31655 "SecParser.tab.cpp" break; case 378: /* valueexpr: valueexpr valueexpr ZZHADOOPMAP2 '[' list ';' HADOOPMAP2_fun ']' */ #line 6337 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31673 "SecParser.tab.cpp" break; case 379: /* valueexpr: valueexpr ZZREPORTPATTERN '[' list ';' list ']' */ #line 6361 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 31686 "SecParser.tab.cpp" break; case 380: /* valueexpr: valueexpr ZZGPATTERN '[' GPATTERN_fun ',' GPATTERN_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' */ #line 6386 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-12], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 31708 "SecParser.tab.cpp" break; case 381: /* valueexpr: valueexpr ZZCROSSPATTERN '[' CROSSPATTERN_fun ',' CROSSPATTERN_fun ',' CROSSPATTERN_fun ',' valueexpr ',' valueexpr ',' valueexpr ']' */ #line 6422 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-13], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-14], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-11], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 31732 "SecParser.tab.cpp" break; case 382: /* valueexpr: valueexpr ZZMTHREADEDMERGESORT '[' list ']' */ #line 6450 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31744 "SecParser.tab.cpp" break; case 383: /* valueexpr: valueexpr ZZMTHREADEDFILTER '[' MTHREADEDFILTER_fun ']' */ #line 6466 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))); } #line 31758 "SecParser.tab.cpp" break; case 384: /* valueexpr: valueexpr ZZCANCEL '[' CANCEL_fun ']' */ #line 6484 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31772 "SecParser.tab.cpp" break; case 385: /* valueexpr: valueexpr ZZKRDUP '[' list ']' */ #line 6502 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31784 "SecParser.tab.cpp" break; case 386: /* valueexpr: valueexpr ZZPROJECTEXTEND '[' list ';' PROJECTEXTEND_funlist ']' */ #line 6520 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31800 "SecParser.tab.cpp" break; case 387: /* valueexpr: valueexpr ZZEXTENDSTREAM '[' EXTENDSTREAM_funlist ']' */ #line 6540 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31814 "SecParser.tab.cpp" break; case 388: /* valueexpr: valueexpr ZZPROJECTEXTENDSTREAM '[' list ';' PROJECTEXTENDSTREAM_funlist ']' */ #line 6560 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31830 "SecParser.tab.cpp" break; case 389: /* valueexpr: valueexpr ZZGROUPBY '[' list ';' GROUPBY_funlist ']' */ #line 6582 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 31846 "SecParser.tab.cpp" break; case 390: /* valueexpr: valueexpr ZZSLIDINGWINDOW '[' valueexpr ',' valueexpr ';' SLIDINGWINDOW_funlist ']' */ #line 6606 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31864 "SecParser.tab.cpp" break; case 391: /* valueexpr: valueexpr ZZSORTBYOLD '[' list ']' */ #line 6628 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 31876 "SecParser.tab.cpp" break; case 392: /* valueexpr: valueexpr valueexpr ZZPOSTFIXOP2_a_autobuffer '[' simplearguments ']' */ #line 6644 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER? NestedText::AtomC("( ! (") : NestedText::AtomC("(")) , NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER? NestedText::AtomC("))") : NestedText::AtomC(")")))))))))); } #line 31892 "SecParser.tab.cpp" break; case 393: /* valueexpr: valueexpr ZZLOOPJOIN '[' LOOPJOIN_fun ']' */ #line 6664 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))); } #line 31906 "SecParser.tab.cpp" break; case 394: /* valueexpr: valueexpr ZZLOOPSEL '[' LOOPSEL_fun ']' */ #line 6682 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 31920 "SecParser.tab.cpp" break; case 395: /* valueexpr: valueexpr ZZAGGREGATE '[' valueexpr ';' AGGREGATE_fun ';' valueexpr ']' */ #line 6704 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31938 "SecParser.tab.cpp" break; case 396: /* valueexpr: valueexpr ZZAGGREGATEB '[' valueexpr ';' AGGREGATEB_fun ';' valueexpr ']' */ #line 6730 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 31956 "SecParser.tab.cpp" break; case 397: /* valueexpr: valueexpr valueexpr ZZSYMMJOIN '[' SYMMJOIN_fun ']' */ #line 6753 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } #line 31972 "SecParser.tab.cpp" break; case 398: /* valueexpr: valueexpr valueexpr ZZSYMMOUTERJOIN '[' SYMMOUTERJOIN_fun ']' */ #line 6774 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } #line 31988 "SecParser.tab.cpp" break; case 399: /* valueexpr: valueexpr valueexpr ZZSYMMPRODUCTEXTEND '[' SYMMPRODUCTEXTEND_funlist ']' */ #line 6795 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32004 "SecParser.tab.cpp" break; case 400: /* valueexpr: valueexpr ZZKSMALLEST '[' valueexpr ';' list ']' */ #line 6817 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32017 "SecParser.tab.cpp" break; case 401: /* valueexpr: valueexpr ZZKBIGGEST '[' valueexpr ';' list ']' */ #line 6836 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32030 "SecParser.tab.cpp" break; case 402: /* valueexpr: valueexpr ZZEXTEND_AGGR '[' list ';' list ']' */ #line 6855 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32043 "SecParser.tab.cpp" break; case 403: /* valueexpr: valueexpr ZZEXTEND_LAST '[' EXTEND_LAST_funlist ']' */ #line 6872 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 32057 "SecParser.tab.cpp" break; case 404: /* valueexpr: valueexpr ZZEXTEND_NEXT '[' EXTEND_NEXT_funlist ']' */ #line 6890 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 32071 "SecParser.tab.cpp" break; case 405: /* valueexpr: valueexpr ZZREPLACEATTR '[' REPLACEATTR_funlist ']' */ #line 6908 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 32085 "SecParser.tab.cpp" break; case 406: /* valueexpr: valueexpr ZZPFILTER '[' PFILTER_fun ']' */ #line 6926 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 32099 "SecParser.tab.cpp" break; case 407: /* valueexpr: valueexpr ZZEXTENDX '[' list ';' EXTENDX_fun ';' valueexpr ']' */ #line 6948 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32117 "SecParser.tab.cpp" break; case 408: /* valueexpr: valueexpr valueexpr ZZOBOJOIND '[' list ']' */ #line 6971 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32131 "SecParser.tab.cpp" break; case 409: /* valueexpr: valueexpr ZZISORDEREDBY '[' list ']' */ #line 6989 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 32143 "SecParser.tab.cpp" break; case 410: /* valueexpr: valueexpr ZZADDMODCOUNTER '[' valueexpr ',' valueexpr ',' ADDMODCOUNTER_fun ',' ADDMODCOUNTER_fun ']' */ #line 7011 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 32163 "SecParser.tab.cpp" break; case 411: /* valueexpr: valueexpr ZZUSEHISTOGRAM '[' list ';' USEHISTOGRAM_fun ']' */ #line 7037 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32179 "SecParser.tab.cpp" break; case 412: /* valueexpr: valueexpr valueexpr ZZUSEHISTOGRAM2 '[' list ';' USEHISTOGRAM2_fun ']' */ #line 7060 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32197 "SecParser.tab.cpp" break; case 413: /* valueexpr: valueexpr ZZDMAPS '[' valueexpr ',' DMAPS_fun ']' */ #line 7084 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32213 "SecParser.tab.cpp" break; case 414: /* valueexpr: valueexpr valueexpr ZZDMAPS2 '[' valueexpr ',' DMAPS2_fun ']' */ #line 7107 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32231 "SecParser.tab.cpp" break; case 415: /* valueexpr: valueexpr valueexpr valueexpr ZZDMAPS3 '[' valueexpr ',' DMAPS3_fun ']' */ #line 7133 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 32251 "SecParser.tab.cpp" break; case 416: /* valueexpr: valueexpr valueexpr valueexpr valueexpr ZZDMAPS4 '[' valueexpr ',' DMAPS4_fun ']' */ #line 7162 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))); } #line 32273 "SecParser.tab.cpp" break; case 417: /* valueexpr: valueexpr valueexpr valueexpr valueexpr valueexpr ZZDMAPS5 '[' valueexpr ',' DMAPS5_fun ']' */ #line 7194 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))))))); } #line 32297 "SecParser.tab.cpp" break; case 418: /* valueexpr: valueexpr valueexpr ZZDPRODUCTS '[' valueexpr ',' DPRODUCTS_fun ']' */ #line 7225 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32315 "SecParser.tab.cpp" break; case 419: /* valueexpr: valueexpr ZZPARTITIONFS '[' valueexpr ',' PARTITIONFS_fun ',' PARTITIONFS_fun ',' valueexpr ']' */ #line 7253 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-9], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-10], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))))); } #line 32335 "SecParser.tab.cpp" break; case 420: /* valueexpr: valueexpr ZZDBSCAN '[' DBSCAN_fun ',' valueexpr ',' valueexpr ']' */ #line 7281 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))))); } #line 32353 "SecParser.tab.cpp" break; case 421: /* valueexpr: valueexpr valueexpr ZZREGISTERFORSTREAM '[' valueexpr ',' REGISTERFORSTREAM_fun ']' */ #line 7306 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32371 "SecParser.tab.cpp" break; case 422: /* valueexpr: valueexpr ZZNEST2 '[' list ';' valueexpr ']' */ #line 7330 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32384 "SecParser.tab.cpp" break; case 423: /* valueexpr: valueexpr ZZPREDCOUNTS '[' PREDCOUNTS_funlist ']' */ #line 7347 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))); } #line 32398 "SecParser.tab.cpp" break; case 424: /* valueexpr: valueexpr ZZSTPATTERN '[' list ';' list ']' */ #line 7367 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32411 "SecParser.tab.cpp" break; case 425: /* valueexpr: valueexpr ZZSTPATTERN2 '[' list ';' list ']' */ #line 7386 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32424 "SecParser.tab.cpp" break; case 426: /* valueexpr: valueexpr ZZSTPATTERNEX '[' list ';' list ';' valueexpr ']' */ #line 7407 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 32438 "SecParser.tab.cpp" break; case 427: /* valueexpr: valueexpr ZZSTPATTERNEX2 '[' list ';' list ';' valueexpr ']' */ #line 7429 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))))); } #line 32452 "SecParser.tab.cpp" break; case 428: /* valueexpr: valueexpr ZZSTPATTERNEXTEND '[' STPATTERNEXTEND_funlist ';' list ']' */ #line 7449 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32468 "SecParser.tab.cpp" break; case 429: /* valueexpr: valueexpr ZZSTPATTERNEXTEND2 '[' STPATTERNEXTEND2_funlist ';' list ']' */ #line 7471 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32484 "SecParser.tab.cpp" break; case 430: /* valueexpr: valueexpr ZZSTPATTERNEXEXTEND '[' STPATTERNEXEXTEND_funlist ';' list ';' STPATTERNEXEXTEND_fun ']' */ #line 7495 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32502 "SecParser.tab.cpp" break; case 431: /* valueexpr: valueexpr ZZSTPATTERNEXEXTEND2 '[' STPATTERNEXEXTEND2_funlist ';' list ';' STPATTERNEXEXTEND2_fun ']' */ #line 7521 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32520 "SecParser.tab.cpp" break; case 432: /* valueexpr: valueexpr ZZSTPATTERNEXTENDSTREAM '[' STPATTERNEXTENDSTREAM_funlist ';' list ']' */ #line 7545 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32536 "SecParser.tab.cpp" break; case 433: /* valueexpr: valueexpr ZZSTPATTERNEXTENDSTREAM2 '[' STPATTERNEXTENDSTREAM2_funlist ';' list ']' */ #line 7567 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32552 "SecParser.tab.cpp" break; case 434: /* valueexpr: valueexpr ZZSTPATTERNEXEXTENDSTREAM '[' STPATTERNEXEXTENDSTREAM_funlist ';' list ';' STPATTERNEXEXTENDSTREAM_fun ']' */ #line 7591 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32570 "SecParser.tab.cpp" break; case 435: /* valueexpr: valueexpr ZZSTPATTERNEXEXTENDSTREAM2 '[' STPATTERNEXEXTENDSTREAM2_funlist ';' list ';' STPATTERNEXEXTENDSTREAM2_fun ']' */ #line 7617 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))))); } #line 32588 "SecParser.tab.cpp" break; case 436: /* valueexpr: valueexpr ZZCOMPUTECLOSURE '[' list ';' list ']' */ #line 7641 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))))); } #line 32601 "SecParser.tab.cpp" break; case 437: /* valueexpr: valueexpr ZZOCONSUME '[' list ']' */ #line 7658 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 32613 "SecParser.tab.cpp" break; case 438: /* valueexpr: valueexpr ZZREMOVE '[' list ']' */ #line 7674 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 32625 "SecParser.tab.cpp" break; case 439: /* valueexpr: valueexpr ZZREDUCE '[' REDUCE_fun ',' valueexpr ']' */ #line 7692 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-6], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")")) ))))))); } #line 32641 "SecParser.tab.cpp" break; case 440: /* valueexpr: valueexpr ZZRENAMEATTR '[' list ']' */ #line 7712 "SecParser.y" { yyval = NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], NestedText::AtomC(")"))))))); } #line 32653 "SecParser.tab.cpp" break; case 441: /* valueexpr: valueexpr ZZTSMOTIFBFFUN '[' valueexpr ',' valueexpr ',' TSMOTIFBFFUN_fun ']' */ #line 7732 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-7], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-8], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))))); } #line 32671 "SecParser.tab.cpp" break; case 442: /* valueexpr: valueexpr valueexpr ZZTSDISTANCEFUN '[' TSDISTANCEFUN_fun ']' */ #line 7755 "SecParser.y" { yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat( yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-5], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-4], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[-1], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")"))) ))))))); } #line 32687 "SecParser.tab.cpp" break; case 443: /* $@9: %empty */ #line 7774 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32700 "SecParser.tab.cpp" break; case 444: /* GDIJKSTRA_fun: $@9 valueexpr */ #line 7783 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32719 "SecParser.tab.cpp" break; case 445: /* GDIJKSTRA_fun: function */ #line 7797 "SecParser.y" { yyval = yyvsp[0]; } #line 32725 "SecParser.tab.cpp" break; case 446: /* $@10: %empty */ #line 7804 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32738 "SecParser.tab.cpp" break; case 447: /* MINPATHCOST2_fun: $@10 valueexpr */ #line 7813 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32757 "SecParser.tab.cpp" break; case 448: /* MINPATHCOST2_fun: function */ #line 7827 "SecParser.y" { yyval = yyvsp[0]; } #line 32763 "SecParser.tab.cpp" break; case 449: /* $@11: %empty */ #line 7834 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32776 "SecParser.tab.cpp" break; case 450: /* GBIDIJKSTRA_fun: $@11 valueexpr */ #line 7843 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32795 "SecParser.tab.cpp" break; case 451: /* GBIDIJKSTRA_fun: function */ #line 7857 "SecParser.y" { yyval = yyvsp[0]; } #line 32801 "SecParser.tab.cpp" break; case 452: /* $@12: %empty */ #line 7864 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32814 "SecParser.tab.cpp" break; case 453: /* MTMINPATHCOSTS2_fun: $@12 valueexpr */ #line 7873 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GD"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32833 "SecParser.tab.cpp" break; case 454: /* MTMINPATHCOSTS2_fun: function */ #line 7887 "SecParser.y" { yyval = yyvsp[0]; } #line 32839 "SecParser.tab.cpp" break; case 455: /* $@13: %empty */ #line 7894 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32852 "SecParser.tab.cpp" break; case 456: /* D_SEND_SHUFFLE_fun: $@13 valueexpr */ #line 7903 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32871 "SecParser.tab.cpp" break; case 457: /* D_SEND_SHUFFLE_fun: function */ #line 7917 "SecParser.y" { yyval = yyvsp[0]; } #line 32877 "SecParser.tab.cpp" break; case 458: /* $@14: %empty */ #line 7924 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32890 "SecParser.tab.cpp" break; case 459: /* DSHUFFLE_fun: $@14 valueexpr */ #line 7933 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELATION"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32909 "SecParser.tab.cpp" break; case 460: /* DSHUFFLE_fun: function */ #line 7947 "SecParser.y" { yyval = yyvsp[0]; } #line 32915 "SecParser.tab.cpp" break; case 461: /* $@15: %empty */ #line 7954 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32928 "SecParser.tab.cpp" break; case 462: /* DSHUFFLE2_fun: $@15 valueexpr */ #line 7963 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELATION"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32947 "SecParser.tab.cpp" break; case 463: /* DSHUFFLE2_fun: function */ #line 7977 "SecParser.y" { yyval = yyvsp[0]; } #line 32953 "SecParser.tab.cpp" break; case 464: /* $@16: %empty */ #line 7984 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 32966 "SecParser.tab.cpp" break; case 465: /* DSHUFFLE1_fun: $@16 valueexpr */ #line 7993 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELATION"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 32985 "SecParser.tab.cpp" break; case 466: /* DSHUFFLE1_fun: function */ #line 8007 "SecParser.y" { yyval = yyvsp[0]; } #line 32991 "SecParser.tab.cpp" break; case 467: /* $@17: %empty */ #line 8014 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33004 "SecParser.tab.cpp" break; case 468: /* DLOOP_OLD_fun: $@17 valueexpr */ #line 8023 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33023 "SecParser.tab.cpp" break; case 469: /* DLOOP_OLD_fun: function */ #line 8037 "SecParser.y" { yyval = yyvsp[0]; } #line 33029 "SecParser.tab.cpp" break; case 470: /* $@18: %empty */ #line 8044 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 33047 "SecParser.tab.cpp" break; case 471: /* DLOOPA_OLD_fun: $@18 valueexpr */ #line 8058 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 33073 "SecParser.tab.cpp" break; case 472: /* DLOOPA_OLD_fun: function */ #line 8079 "SecParser.y" { yyval = yyvsp[0]; } #line 33079 "SecParser.tab.cpp" break; case 473: /* $@19: %empty */ #line 8086 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 33097 "SecParser.tab.cpp" break; case 474: /* DTIE_fun: $@19 valueexpr */ #line 8100 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 33123 "SecParser.tab.cpp" break; case 475: /* DTIE_fun: function */ #line 8121 "SecParser.y" { yyval = yyvsp[0]; } #line 33129 "SecParser.tab.cpp" break; case 476: /* $@20: %empty */ #line 8128 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33142 "SecParser.tab.cpp" break; case 477: /* PARTITIONDMAP_fun: $@20 valueexpr */ #line 8137 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PDTS"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33161 "SecParser.tab.cpp" break; case 478: /* PARTITIONDMAP_fun: function */ #line 8151 "SecParser.y" { yyval = yyvsp[0]; } #line 33167 "SecParser.tab.cpp" break; case 479: /* $@21: %empty */ #line 8158 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33180 "SecParser.tab.cpp" break; case 480: /* DMAPPDMAP_fun: $@21 valueexpr */ #line 8167 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DPD4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33199 "SecParser.tab.cpp" break; case 481: /* DMAPPDMAP_fun: function */ #line 8181 "SecParser.y" { yyval = yyvsp[0]; } #line 33205 "SecParser.tab.cpp" break; case 482: /* $@22: %empty */ #line 8188 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33218 "SecParser.tab.cpp" break; case 483: /* FDISTRIBUTE2TES_fun: $@22 valueexpr */ #line 8197 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33237 "SecParser.tab.cpp" break; case 484: /* FDISTRIBUTE2TES_fun: function */ #line 8211 "SecParser.y" { yyval = yyvsp[0]; } #line 33243 "SecParser.tab.cpp" break; case 485: /* $@23: %empty */ #line 8218 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33256 "SecParser.tab.cpp" break; case 486: /* DISTRIBUTE2TES_fun: $@23 valueexpr */ #line 8227 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33275 "SecParser.tab.cpp" break; case 487: /* DISTRIBUTE2TES_fun: function */ #line 8241 "SecParser.y" { yyval = yyvsp[0]; } #line 33281 "SecParser.tab.cpp" break; case 488: /* $@24: %empty */ #line 8248 "SecParser.y" { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 33299 "SecParser.tab.cpp" break; case 489: /* OPTICSF_fun: $@24 valueexpr */ #line 8262 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 33325 "SecParser.tab.cpp" break; case 490: /* OPTICSF_fun: function */ #line 8283 "SecParser.y" { yyval = yyvsp[0]; } #line 33331 "SecParser.tab.cpp" break; case 491: /* $@25: %empty */ #line 8290 "SecParser.y" { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 33349 "SecParser.tab.cpp" break; case 492: /* OPTICSTF_fun: $@25 valueexpr */ #line 8304 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 33375 "SecParser.tab.cpp" break; case 493: /* OPTICSTF_fun: function */ #line 8325 "SecParser.y" { yyval = yyvsp[0]; } #line 33381 "SecParser.tab.cpp" break; case 494: /* $@26: %empty */ #line 8332 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33394 "SecParser.tab.cpp" break; case 495: /* FILTERV_fun: $@26 valueexpr */ #line 8341 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TVS2T"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33413 "SecParser.tab.cpp" break; case 496: /* FILTERV_fun: function */ #line 8355 "SecParser.y" { yyval = yyvsp[0]; } #line 33419 "SecParser.tab.cpp" break; case 497: /* $@27: %empty */ #line 8362 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33432 "SecParser.tab.cpp" break; case 498: /* FILTERNP_fun: $@27 valueexpr */ #line 8371 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33451 "SecParser.tab.cpp" break; case 499: /* FILTERNP_fun: function */ #line 8385 "SecParser.y" { yyval = yyvsp[0]; } #line 33457 "SecParser.tab.cpp" break; case 500: /* EXTENDV_fun: naming EXTENDV_fun_1 */ #line 8393 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 33467 "SecParser.tab.cpp" break; case 501: /* EXTENDV_fun: naming EXTENDV_fun_1 ZZDEFAULTSEP valueexpr */ #line 8399 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 33477 "SecParser.tab.cpp" break; case 502: /* EXTENDV_fun: EXTENDV_fun_1 */ #line 8404 "SecParser.y" {yyval = yyvsp[0];} #line 33483 "SecParser.tab.cpp" break; case 503: /* EXTENDV_fun: EXTENDV_fun_1 ZZDEFAULTSEP valueexpr */ #line 8406 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33489 "SecParser.tab.cpp" break; case 504: /* $@28: %empty */ #line 8413 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33502 "SecParser.tab.cpp" break; case 505: /* EXTENDV_fun_1: $@28 valueexpr */ #line 8422 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TVS2T"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33521 "SecParser.tab.cpp" break; case 506: /* EXTENDV_fun_1: function */ #line 8436 "SecParser.y" { yyval = yyvsp[0]; } #line 33527 "SecParser.tab.cpp" break; case 507: /* EXTENDV_funlist: EXTENDV_funlist_1 */ #line 8444 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 33536 "SecParser.tab.cpp" break; case 508: /* EXTENDV_funlist_1: EXTENDV_fun */ #line 8454 "SecParser.y" {yyval = yyvsp[0];} #line 33542 "SecParser.tab.cpp" break; case 509: /* EXTENDV_funlist_1: EXTENDV_funlist_1 ',' EXTENDV_fun */ #line 8456 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33550 "SecParser.tab.cpp" break; case 510: /* PROJECTEXTENDV_fun: naming PROJECTEXTENDV_fun_1 */ #line 8466 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 33560 "SecParser.tab.cpp" break; case 511: /* PROJECTEXTENDV_fun: naming PROJECTEXTENDV_fun_1 ZZDEFAULTSEP valueexpr */ #line 8472 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 33570 "SecParser.tab.cpp" break; case 512: /* PROJECTEXTENDV_fun: PROJECTEXTENDV_fun_1 */ #line 8477 "SecParser.y" {yyval = yyvsp[0];} #line 33576 "SecParser.tab.cpp" break; case 513: /* PROJECTEXTENDV_fun: PROJECTEXTENDV_fun_1 ZZDEFAULTSEP valueexpr */ #line 8479 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33582 "SecParser.tab.cpp" break; case 514: /* $@29: %empty */ #line 8486 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33595 "SecParser.tab.cpp" break; case 515: /* PROJECTEXTENDV_fun_1: $@29 valueexpr */ #line 8495 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TVS2T"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33614 "SecParser.tab.cpp" break; case 516: /* PROJECTEXTENDV_fun_1: function */ #line 8509 "SecParser.y" { yyval = yyvsp[0]; } #line 33620 "SecParser.tab.cpp" break; case 517: /* PROJECTEXTENDV_funlist: PROJECTEXTENDV_funlist_1 */ #line 8517 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 33629 "SecParser.tab.cpp" break; case 518: /* PROJECTEXTENDV_funlist_1: PROJECTEXTENDV_fun */ #line 8527 "SecParser.y" {yyval = yyvsp[0];} #line 33635 "SecParser.tab.cpp" break; case 519: /* PROJECTEXTENDV_funlist_1: PROJECTEXTENDV_funlist_1 ',' PROJECTEXTENDV_fun */ #line 8529 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33643 "SecParser.tab.cpp" break; case 520: /* EXTENDNP_fun: naming EXTENDNP_fun_1 */ #line 8539 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 33653 "SecParser.tab.cpp" break; case 521: /* EXTENDNP_fun: naming EXTENDNP_fun_1 ZZDEFAULTSEP valueexpr */ #line 8545 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 33663 "SecParser.tab.cpp" break; case 522: /* EXTENDNP_fun: EXTENDNP_fun_1 */ #line 8550 "SecParser.y" {yyval = yyvsp[0];} #line 33669 "SecParser.tab.cpp" break; case 523: /* EXTENDNP_fun: EXTENDNP_fun_1 ZZDEFAULTSEP valueexpr */ #line 8552 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33675 "SecParser.tab.cpp" break; case 524: /* $@30: %empty */ #line 8559 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33688 "SecParser.tab.cpp" break; case 525: /* EXTENDNP_fun_1: $@30 valueexpr */ #line 8568 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33707 "SecParser.tab.cpp" break; case 526: /* EXTENDNP_fun_1: function */ #line 8582 "SecParser.y" { yyval = yyvsp[0]; } #line 33713 "SecParser.tab.cpp" break; case 527: /* EXTENDNP_funlist: EXTENDNP_funlist_1 */ #line 8590 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 33722 "SecParser.tab.cpp" break; case 528: /* EXTENDNP_funlist_1: EXTENDNP_fun */ #line 8600 "SecParser.y" {yyval = yyvsp[0];} #line 33728 "SecParser.tab.cpp" break; case 529: /* EXTENDNP_funlist_1: EXTENDNP_funlist_1 ',' EXTENDNP_fun */ #line 8602 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33736 "SecParser.tab.cpp" break; case 530: /* PROJECTEXTENDNP_fun: naming PROJECTEXTENDNP_fun_1 */ #line 8612 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 33746 "SecParser.tab.cpp" break; case 531: /* PROJECTEXTENDNP_fun: naming PROJECTEXTENDNP_fun_1 ZZDEFAULTSEP valueexpr */ #line 8618 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 33756 "SecParser.tab.cpp" break; case 532: /* PROJECTEXTENDNP_fun: PROJECTEXTENDNP_fun_1 */ #line 8623 "SecParser.y" {yyval = yyvsp[0];} #line 33762 "SecParser.tab.cpp" break; case 533: /* PROJECTEXTENDNP_fun: PROJECTEXTENDNP_fun_1 ZZDEFAULTSEP valueexpr */ #line 8625 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33768 "SecParser.tab.cpp" break; case 534: /* $@31: %empty */ #line 8632 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33781 "SecParser.tab.cpp" break; case 535: /* PROJECTEXTENDNP_fun_1: $@31 valueexpr */ #line 8641 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33800 "SecParser.tab.cpp" break; case 536: /* PROJECTEXTENDNP_fun_1: function */ #line 8655 "SecParser.y" { yyval = yyvsp[0]; } #line 33806 "SecParser.tab.cpp" break; case 537: /* PROJECTEXTENDNP_funlist: PROJECTEXTENDNP_funlist_1 */ #line 8663 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 33815 "SecParser.tab.cpp" break; case 538: /* PROJECTEXTENDNP_funlist_1: PROJECTEXTENDNP_fun */ #line 8673 "SecParser.y" {yyval = yyvsp[0];} #line 33821 "SecParser.tab.cpp" break; case 539: /* PROJECTEXTENDNP_funlist_1: PROJECTEXTENDNP_funlist_1 ',' PROJECTEXTENDNP_fun */ #line 8675 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 33829 "SecParser.tab.cpp" break; case 540: /* $@32: %empty */ #line 8684 "SecParser.y" { pair p; paramno++; strcpy(paramname,"blockentry"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33842 "SecParser.tab.cpp" break; case 541: /* APPLYPREDICATE_fun: $@32 valueexpr */ #line 8693 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" BLOCKENTRY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33861 "SecParser.tab.cpp" break; case 542: /* APPLYPREDICATE_fun: function */ #line 8707 "SecParser.y" { yyval = yyvsp[0]; } #line 33867 "SecParser.tab.cpp" break; case 543: /* $@33: %empty */ #line 8714 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33880 "SecParser.tab.cpp" break; case 544: /* FILTER_fun: $@33 valueexpr */ #line 8723 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33899 "SecParser.tab.cpp" break; case 545: /* FILTER_fun: function */ #line 8737 "SecParser.y" { yyval = yyvsp[0]; } #line 33905 "SecParser.tab.cpp" break; case 546: /* $@34: %empty */ #line 8744 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33918 "SecParser.tab.cpp" break; case 547: /* CFILTER_fun: $@34 valueexpr */ #line 8753 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33937 "SecParser.tab.cpp" break; case 548: /* CFILTER_fun: function */ #line 8767 "SecParser.y" { yyval = yyvsp[0]; } #line 33943 "SecParser.tab.cpp" break; case 549: /* $@35: %empty */ #line 8774 "SecParser.y" { pair p; paramno++; strcpy(paramname,"block"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33956 "SecParser.tab.cpp" break; case 550: /* CAND_fun: $@35 valueexpr */ #line 8783 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 33975 "SecParser.tab.cpp" break; case 551: /* CAND_fun: function */ #line 8797 "SecParser.y" { yyval = yyvsp[0]; } #line 33981 "SecParser.tab.cpp" break; case 552: /* $@36: %empty */ #line 8804 "SecParser.y" { pair p; paramno++; strcpy(paramname,"block"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 33994 "SecParser.tab.cpp" break; case 553: /* COR_fun: $@36 valueexpr */ #line 8813 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 34013 "SecParser.tab.cpp" break; case 554: /* COR_fun: function */ #line 8827 "SecParser.y" { yyval = yyvsp[0]; } #line 34019 "SecParser.tab.cpp" break; case 555: /* $@37: %empty */ #line 8834 "SecParser.y" { pair p; paramno++; strcpy(paramname,"const1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 34032 "SecParser.tab.cpp" break; case 556: /* WITHIN_fun: $@37 valueexpr */ #line 8843 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 34051 "SecParser.tab.cpp" break; case 557: /* WITHIN_fun: function */ #line 8857 "SecParser.y" { yyval = yyvsp[0]; } #line 34057 "SecParser.tab.cpp" break; case 558: /* $@38: %empty */ #line 8864 "SecParser.y" { pair p; paramno++; strcpy(paramname,"const1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"const2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 34075 "SecParser.tab.cpp" break; case 559: /* WITHIN2_fun: $@38 valueexpr */ #line 8878 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 34101 "SecParser.tab.cpp" break; case 560: /* WITHIN2_fun: function */ #line 8899 "SecParser.y" { yyval = yyvsp[0]; } #line 34107 "SecParser.tab.cpp" break; case 561: /* $@39: %empty */ #line 8906 "SecParser.y" { pair p; paramno++; strcpy(paramname,"const1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 34120 "SecParser.tab.cpp" break; case 562: /* WHILEDO_fun: $@39 valueexpr */ #line 8915 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 34139 "SecParser.tab.cpp" break; case 563: /* WHILEDO_fun: function */ #line 8929 "SecParser.y" { yyval = yyvsp[0]; } #line 34145 "SecParser.tab.cpp" break; case 564: /* $@40: %empty */ #line 8936 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 34158 "SecParser.tab.cpp" break; case 565: /* FUNSEQ1_fun: $@40 valueexpr */ #line 8945 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 34177 "SecParser.tab.cpp" break; case 566: /* FUNSEQ1_fun: function */ #line 8959 "SecParser.y" { yyval = yyvsp[0]; } #line 34183 "SecParser.tab.cpp" break; case 567: /* $@41: %empty */ #line 8966 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 34201 "SecParser.tab.cpp" break; case 568: /* FUNSEQ2_fun: $@41 valueexpr */ #line 8980 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 34227 "SecParser.tab.cpp" break; case 569: /* FUNSEQ2_fun: function */ #line 9001 "SecParser.y" { yyval = yyvsp[0]; } #line 34233 "SecParser.tab.cpp" break; case 570: /* $@42: %empty */ #line 9008 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } #line 34256 "SecParser.tab.cpp" break; case 571: /* FUNSEQ3_fun: $@42 valueexpr */ #line 9027 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } #line 34289 "SecParser.tab.cpp" break; case 572: /* FUNSEQ3_fun: function */ #line 9055 "SecParser.y" { yyval = yyvsp[0]; } #line 34295 "SecParser.tab.cpp" break; case 573: /* $@43: %empty */ #line 9062 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } #line 34323 "SecParser.tab.cpp" break; case 574: /* FUNSEQ4_fun: $@43 valueexpr */ #line 9086 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARGEF4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } #line 34363 "SecParser.tab.cpp" break; case 575: /* FUNSEQ4_fun: function */ #line 9121 "SecParser.y" { yyval = yyvsp[0]; } #line 34369 "SecParser.tab.cpp" break; case 576: /* $@44: %empty */ #line 9128 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } #line 34402 "SecParser.tab.cpp" break; case 577: /* FUNSEQ5_fun: $@44 valueexpr */ #line 9157 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARGEF4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARGEF5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } #line 34449 "SecParser.tab.cpp" break; case 578: /* FUNSEQ5_fun: function */ #line 9199 "SecParser.y" { yyval = yyvsp[0]; } #line 34455 "SecParser.tab.cpp" break; case 579: /* $@45: %empty */ #line 9206 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); } #line 34493 "SecParser.tab.cpp" break; case 580: /* FUNSEQ6_fun: $@45 valueexpr */ #line 9240 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARGEF1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARGEF2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARGEF3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARGEF4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARGEF5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARGEF6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))); cleanVariables(6); restoreVariables(); } #line 34547 "SecParser.tab.cpp" break; case 581: /* FUNSEQ6_fun: function */ #line 9289 "SecParser.y" { yyval = yyvsp[0]; } #line 34553 "SecParser.tab.cpp" break; case 582: /* $@46: %empty */ #line 9296 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 34566 "SecParser.tab.cpp" break; case 583: /* DDISTRIBUTE4_fun: $@46 valueexpr */ #line 9305 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 34585 "SecParser.tab.cpp" break; case 584: /* DDISTRIBUTE4_fun: function */ #line 9319 "SecParser.y" { yyval = yyvsp[0]; } #line 34591 "SecParser.tab.cpp" break; case 585: /* $@47: %empty */ #line 9326 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 34604 "SecParser.tab.cpp" break; case 586: /* FDISTRIBUTE7_fun: $@47 valueexpr */ #line 9335 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 34623 "SecParser.tab.cpp" break; case 587: /* FDISTRIBUTE7_fun: function */ #line 9349 "SecParser.y" { yyval = yyvsp[0]; } #line 34629 "SecParser.tab.cpp" break; case 588: /* $@48: %empty */ #line 9356 "SecParser.y" { pair p; paramno++; strcpy(paramname,"darrayelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 34642 "SecParser.tab.cpp" break; case 589: /* DLOOP_fun: $@48 valueexpr */ #line 9365 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 34661 "SecParser.tab.cpp" break; case 590: /* DLOOP_fun: function */ #line 9379 "SecParser.y" { yyval = yyvsp[0]; } #line 34667 "SecParser.tab.cpp" break; case 591: /* $@49: %empty */ #line 9386 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 34685 "SecParser.tab.cpp" break; case 592: /* DLOOP2_fun: $@49 valueexpr */ #line 9400 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DARRAYELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DARRAYELEM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 34711 "SecParser.tab.cpp" break; case 593: /* DLOOP2_fun: function */ #line 9421 "SecParser.y" { yyval = yyvsp[0]; } #line 34717 "SecParser.tab.cpp" break; case 594: /* $@50: %empty */ #line 9428 "SecParser.y" { pair p; paramno++; strcpy(paramname,"dmapelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"dmapslotno"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 34735 "SecParser.tab.cpp" break; case 595: /* DMAP_fun: $@50 valueexpr */ #line 9442 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 34761 "SecParser.tab.cpp" break; case 596: /* DMAP_fun: function */ #line 9463 "SecParser.y" { yyval = yyvsp[0]; } #line 34767 "SecParser.tab.cpp" break; case 597: /* $@51: %empty */ #line 9470 "SecParser.y" { pair p; paramno++; strcpy(paramname,"dmapelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"dmapslotno"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 34785 "SecParser.tab.cpp" break; case 598: /* PDMAP_fun: $@51 valueexpr */ #line 9484 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 34811 "SecParser.tab.cpp" break; case 599: /* PDMAP_fun: function */ #line 9505 "SecParser.y" { yyval = yyvsp[0]; } #line 34817 "SecParser.tab.cpp" break; case 600: /* $@52: %empty */ #line 9512 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"dmapslotno"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } #line 34840 "SecParser.tab.cpp" break; case 601: /* DMAP2n_fun: $@52 valueexpr */ #line 9531 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } #line 34873 "SecParser.tab.cpp" break; case 602: /* DMAP2n_fun: function */ #line 9559 "SecParser.y" { yyval = yyvsp[0]; } #line 34879 "SecParser.tab.cpp" break; case 603: /* $@53: %empty */ #line 9566 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } #line 34902 "SecParser.tab.cpp" break; case 604: /* DMAP2_fun: $@53 valueexpr */ #line 9585 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } #line 34935 "SecParser.tab.cpp" break; case 605: /* DMAP2_fun: function */ #line 9613 "SecParser.y" { yyval = yyvsp[0]; } #line 34941 "SecParser.tab.cpp" break; case 606: /* $@54: %empty */ #line 9620 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } #line 34969 "SecParser.tab.cpp" break; case 607: /* DMAP3_fun: $@54 valueexpr */ #line 9644 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } #line 35009 "SecParser.tab.cpp" break; case 608: /* DMAP3_fun: function */ #line 9679 "SecParser.y" { yyval = yyvsp[0]; } #line 35015 "SecParser.tab.cpp" break; case 609: /* $@55: %empty */ #line 9686 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } #line 35048 "SecParser.tab.cpp" break; case 610: /* DMAP4_fun: $@55 valueexpr */ #line 9715 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } #line 35095 "SecParser.tab.cpp" break; case 611: /* DMAP4_fun: function */ #line 9757 "SecParser.y" { yyval = yyvsp[0]; } #line 35101 "SecParser.tab.cpp" break; case 612: /* $@56: %empty */ #line 9764 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5i"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); } #line 35139 "SecParser.tab.cpp" break; case 613: /* DMAP5_fun: $@56 valueexpr */ #line 9798 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))); cleanVariables(6); restoreVariables(); } #line 35193 "SecParser.tab.cpp" break; case 614: /* DMAP5_fun: function */ #line 9847 "SecParser.y" { yyval = yyvsp[0]; } #line 35199 "SecParser.tab.cpp" break; case 615: /* $@57: %empty */ #line 9854 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); } #line 35242 "SecParser.tab.cpp" break; case 616: /* DMAP6_fun: $@57 valueexpr */ #line 9893 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(7); restoreVariables(); } #line 35303 "SecParser.tab.cpp" break; case 617: /* DMAP6_fun: function */ #line 9949 "SecParser.y" { yyval = yyvsp[0]; } #line 35309 "SecParser.tab.cpp" break; case 618: /* $@58: %empty */ #line 9956 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); } #line 35357 "SecParser.tab.cpp" break; case 619: /* DMAP7_fun: $@58 valueexpr */ #line 10000 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(8); restoreVariables(); } #line 35425 "SecParser.tab.cpp" break; case 620: /* DMAP7_fun: function */ #line 10063 "SecParser.y" { yyval = yyvsp[0]; } #line 35431 "SecParser.tab.cpp" break; case 621: /* $@59: %empty */ #line 10070 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"elem8"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[9], "%s_%d",paramname,paramno); p = pair(9, params[9]); paramstack.push(p); } #line 35484 "SecParser.tab.cpp" break; case 622: /* DMAP8_fun: $@59 valueexpr */ #line 10119 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG8"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[9]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(9); restoreVariables(); } #line 35559 "SecParser.tab.cpp" break; case 623: /* DMAP8_fun: function */ #line 10189 "SecParser.y" { yyval = yyvsp[0]; } #line 35565 "SecParser.tab.cpp" break; case 624: /* $@60: %empty */ #line 10196 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } #line 35588 "SecParser.tab.cpp" break; case 625: /* PDMAP2_fun: $@60 valueexpr */ #line 10215 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } #line 35621 "SecParser.tab.cpp" break; case 626: /* PDMAP2_fun: function */ #line 10243 "SecParser.y" { yyval = yyvsp[0]; } #line 35627 "SecParser.tab.cpp" break; case 627: /* $@61: %empty */ #line 10250 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } #line 35655 "SecParser.tab.cpp" break; case 628: /* PDMAP3_fun: $@61 valueexpr */ #line 10274 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } #line 35695 "SecParser.tab.cpp" break; case 629: /* PDMAP3_fun: function */ #line 10309 "SecParser.y" { yyval = yyvsp[0]; } #line 35701 "SecParser.tab.cpp" break; case 630: /* $@62: %empty */ #line 10316 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4i"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } #line 35734 "SecParser.tab.cpp" break; case 631: /* PDMAP4_fun: $@62 valueexpr */ #line 10345 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } #line 35781 "SecParser.tab.cpp" break; case 632: /* PDMAP4_fun: function */ #line 10387 "SecParser.y" { yyval = yyvsp[0]; } #line 35787 "SecParser.tab.cpp" break; case 633: /* $@63: %empty */ #line 10394 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5i"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); } #line 35825 "SecParser.tab.cpp" break; case 634: /* PDMAP5_fun: $@63 valueexpr */ #line 10428 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))); cleanVariables(6); restoreVariables(); } #line 35879 "SecParser.tab.cpp" break; case 635: /* PDMAP5_fun: function */ #line 10477 "SecParser.y" { yyval = yyvsp[0]; } #line 35885 "SecParser.tab.cpp" break; case 636: /* $@64: %empty */ #line 10484 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); } #line 35928 "SecParser.tab.cpp" break; case 637: /* PDMAP6_fun: $@64 valueexpr */ #line 10523 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(7); restoreVariables(); } #line 35989 "SecParser.tab.cpp" break; case 638: /* PDMAP6_fun: function */ #line 10579 "SecParser.y" { yyval = yyvsp[0]; } #line 35995 "SecParser.tab.cpp" break; case 639: /* $@65: %empty */ #line 10586 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); } #line 36043 "SecParser.tab.cpp" break; case 640: /* PDMAP7_fun: $@65 valueexpr */ #line 10630 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG8"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(8); restoreVariables(); } #line 36111 "SecParser.tab.cpp" break; case 641: /* PDMAP7_fun: function */ #line 10693 "SecParser.y" { yyval = yyvsp[0]; } #line 36117 "SecParser.tab.cpp" break; case 642: /* $@66: %empty */ #line 10700 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); paramno++; strcpy(paramname,"elem6"); sprintf(params[6], "%s_%d",paramname,paramno); p = pair(6, params[6]); paramstack.push(p); paramno++; strcpy(paramname,"elem7"); sprintf(params[7], "%s_%d",paramname,paramno); p = pair(7, params[7]); paramstack.push(p); paramno++; strcpy(paramname,"elem8"); sprintf(params[8], "%s_%d",paramname,paramno); p = pair(8, params[8]); paramstack.push(p); paramno++; strcpy(paramname,"dmslotno"); sprintf(params[9], "%s_%d",paramname,paramno); p = pair(9, params[9]); paramstack.push(p); } #line 36170 "SecParser.tab.cpp" break; case 643: /* PDMAP8_fun: $@66 valueexpr */ #line 10749 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG6"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[6]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG7"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[7]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG8"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[8]), NestedText::Concat( NestedText::AtomC(" ARRAYFUNARG9"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[9]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))) )))) )))) )))) )))); cleanVariables(9); restoreVariables(); } #line 36245 "SecParser.tab.cpp" break; case 644: /* PDMAP8_fun: function */ #line 10819 "SecParser.y" { yyval = yyvsp[0]; } #line 36251 "SecParser.tab.cpp" break; case 645: /* $@67: %empty */ #line 10826 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36264 "SecParser.tab.cpp" break; case 646: /* DFDISTRIBUTE4_fun: $@67 valueexpr */ #line 10835 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36283 "SecParser.tab.cpp" break; case 647: /* DFDISTRIBUTE4_fun: function */ #line 10849 "SecParser.y" { yyval = yyvsp[0]; } #line 36289 "SecParser.tab.cpp" break; case 648: /* $@68: %empty */ #line 10856 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36302 "SecParser.tab.cpp" break; case 649: /* PARTITION_fun: $@68 valueexpr */ #line 10865 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" SUBSUBTYPE1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36321 "SecParser.tab.cpp" break; case 650: /* PARTITION_fun: function */ #line 10879 "SecParser.y" { yyval = yyvsp[0]; } #line 36327 "SecParser.tab.cpp" break; case 651: /* $@69: %empty */ #line 10886 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 36345 "SecParser.tab.cpp" break; case 652: /* PARTITIONF_fun: $@69 valueexpr */ #line 10900 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" FFR"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" FFR"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 36371 "SecParser.tab.cpp" break; case 653: /* PARTITIONF_fun: function */ #line 10921 "SecParser.y" { yyval = yyvsp[0]; } #line 36377 "SecParser.tab.cpp" break; case 654: /* $@70: %empty */ #line 10928 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36390 "SecParser.tab.cpp" break; case 655: /* AREDUCE_fun: $@70 valueexpr */ #line 10937 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36409 "SecParser.tab.cpp" break; case 656: /* AREDUCE_fun: function */ #line 10951 "SecParser.y" { yyval = yyvsp[0]; } #line 36415 "SecParser.tab.cpp" break; case 657: /* $@71: %empty */ #line 10958 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 36433 "SecParser.tab.cpp" break; case 658: /* AREDUCE2_fun: $@71 valueexpr */ #line 10972 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 36459 "SecParser.tab.cpp" break; case 659: /* AREDUCE2_fun: function */ #line 10993 "SecParser.y" { yyval = yyvsp[0]; } #line 36465 "SecParser.tab.cpp" break; case 660: /* $@72: %empty */ #line 11000 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 36483 "SecParser.tab.cpp" break; case 661: /* AREDUCE2F_fun: $@72 valueexpr */ #line 11014 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AREDUCEARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 36509 "SecParser.tab.cpp" break; case 662: /* AREDUCE2F_fun: function */ #line 11035 "SecParser.y" { yyval = yyvsp[0]; } #line 36515 "SecParser.tab.cpp" break; case 663: /* $@73: %empty */ #line 11042 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 36533 "SecParser.tab.cpp" break; case 664: /* DPRODUCT_fun: $@73 valueexpr */ #line 11056 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DPRODUCTARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DPRODUCTARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 36559 "SecParser.tab.cpp" break; case 665: /* DPRODUCT_fun: function */ #line 11077 "SecParser.y" { yyval = yyvsp[0]; } #line 36565 "SecParser.tab.cpp" break; case 666: /* $@74: %empty */ #line 11084 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36578 "SecParser.tab.cpp" break; case 667: /* DDISTRIBUTE_fun: $@74 valueexpr */ #line 11093 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36597 "SecParser.tab.cpp" break; case 668: /* DDISTRIBUTE_fun: function */ #line 11107 "SecParser.y" { yyval = yyvsp[0]; } #line 36603 "SecParser.tab.cpp" break; case 669: /* $@75: %empty */ #line 11114 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36616 "SecParser.tab.cpp" break; case 670: /* DFDISTRIBUTE_fun: $@75 valueexpr */ #line 11123 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36635 "SecParser.tab.cpp" break; case 671: /* DFDISTRIBUTE_fun: function */ #line 11137 "SecParser.y" { yyval = yyvsp[0]; } #line 36641 "SecParser.tab.cpp" break; case 672: /* $@76: %empty */ #line 11144 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36654 "SecParser.tab.cpp" break; case 673: /* PARTITION8LOCAL_fun: $@76 valueexpr */ #line 11153 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36673 "SecParser.tab.cpp" break; case 674: /* PARTITION8LOCAL_fun: function */ #line 11167 "SecParser.y" { yyval = yyvsp[0]; } #line 36679 "SecParser.tab.cpp" break; case 675: /* $@77: %empty */ #line 11174 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36692 "SecParser.tab.cpp" break; case 676: /* PARTITIONF8_fun: $@77 valueexpr */ #line 11183 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" P8TM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36711 "SecParser.tab.cpp" break; case 677: /* PARTITIONF8_fun: function */ #line 11197 "SecParser.y" { yyval = yyvsp[0]; } #line 36717 "SecParser.tab.cpp" break; case 678: /* $@78: %empty */ #line 11204 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36730 "SecParser.tab.cpp" break; case 679: /* LOOPJOINREL_fun: $@78 valueexpr */ #line 11213 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36749 "SecParser.tab.cpp" break; case 680: /* LOOPJOINREL_fun: function */ #line 11227 "SecParser.y" { yyval = yyvsp[0]; } #line 36755 "SecParser.tab.cpp" break; case 681: /* $@79: %empty */ #line 11234 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36768 "SecParser.tab.cpp" break; case 682: /* CONSTGRAPH_fun: $@79 valueexpr */ #line 11243 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36787 "SecParser.tab.cpp" break; case 683: /* CONSTGRAPH_fun: function */ #line 11257 "SecParser.y" { yyval = yyvsp[0]; } #line 36793 "SecParser.tab.cpp" break; case 684: /* $@80: %empty */ #line 11264 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36806 "SecParser.tab.cpp" break; case 685: /* CONSTGRAPHPOINTS_fun: $@80 valueexpr */ #line 11273 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36825 "SecParser.tab.cpp" break; case 686: /* CONSTGRAPHPOINTS_fun: function */ #line 11287 "SecParser.y" { yyval = yyvsp[0]; } #line 36831 "SecParser.tab.cpp" break; case 687: /* $@81: %empty */ #line 11294 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36844 "SecParser.tab.cpp" break; case 688: /* EXISTS_fun: $@81 valueexpr */ #line 11303 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36863 "SecParser.tab.cpp" break; case 689: /* EXISTS_fun: function */ #line 11317 "SecParser.y" { yyval = yyvsp[0]; } #line 36869 "SecParser.tab.cpp" break; case 690: /* $@82: %empty */ #line 11324 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 36882 "SecParser.tab.cpp" break; case 691: /* FORALL_fun: $@82 valueexpr */ #line 11333 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 36901 "SecParser.tab.cpp" break; case 692: /* FORALL_fun: function */ #line 11347 "SecParser.y" { yyval = yyvsp[0]; } #line 36907 "SecParser.tab.cpp" break; case 693: /* $@83: %empty */ #line 11354 "SecParser.y" { pair p; paramno++; strcpy(paramname,"stream1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"stream2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 36925 "SecParser.tab.cpp" break; case 694: /* PARAJOIN_fun: $@83 valueexpr */ #line 11368 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPSTREAM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPSTREAM3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 36951 "SecParser.tab.cpp" break; case 695: /* PARAJOIN_fun: function */ #line 11389 "SecParser.y" { yyval = yyvsp[0]; } #line 36957 "SecParser.tab.cpp" break; case 696: /* $@84: %empty */ #line 11396 "SecParser.y" { pair p; paramno++; strcpy(paramname,"stream1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"stream2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 36975 "SecParser.tab.cpp" break; case 697: /* HADOOPJOIN_fun: $@84 valueexpr */ #line 11410 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 37001 "SecParser.tab.cpp" break; case 698: /* HADOOPJOIN_fun: function */ #line 11431 "SecParser.y" { yyval = yyvsp[0]; } #line 37007 "SecParser.tab.cpp" break; case 699: /* MUPDATE_fun: naming MUPDATE_fun_1 */ #line 11439 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 37017 "SecParser.tab.cpp" break; case 700: /* MUPDATE_fun: naming MUPDATE_fun_1 ZZDEFAULTSEP valueexpr */ #line 11445 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 37027 "SecParser.tab.cpp" break; case 701: /* MUPDATE_fun: MUPDATE_fun_1 */ #line 11450 "SecParser.y" {yyval = yyvsp[0];} #line 37033 "SecParser.tab.cpp" break; case 702: /* MUPDATE_fun: MUPDATE_fun_1 ZZDEFAULTSEP valueexpr */ #line 11452 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37039 "SecParser.tab.cpp" break; case 703: /* $@85: %empty */ #line 11459 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37052 "SecParser.tab.cpp" break; case 704: /* MUPDATE_fun_1: $@85 valueexpr */ #line 11468 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37071 "SecParser.tab.cpp" break; case 705: /* MUPDATE_fun_1: function */ #line 11482 "SecParser.y" { yyval = yyvsp[0]; } #line 37077 "SecParser.tab.cpp" break; case 706: /* MUPDATE_funlist: MUPDATE_funlist_1 */ #line 11490 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 37086 "SecParser.tab.cpp" break; case 707: /* MUPDATE_funlist_1: MUPDATE_fun */ #line 11500 "SecParser.y" {yyval = yyvsp[0];} #line 37092 "SecParser.tab.cpp" break; case 708: /* MUPDATE_funlist_1: MUPDATE_funlist_1 ',' MUPDATE_fun */ #line 11502 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37100 "SecParser.tab.cpp" break; case 709: /* MUPDATESAVE_fun: naming MUPDATESAVE_fun_1 */ #line 11512 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 37110 "SecParser.tab.cpp" break; case 710: /* MUPDATESAVE_fun: naming MUPDATESAVE_fun_1 ZZDEFAULTSEP valueexpr */ #line 11518 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 37120 "SecParser.tab.cpp" break; case 711: /* MUPDATESAVE_fun: MUPDATESAVE_fun_1 */ #line 11523 "SecParser.y" {yyval = yyvsp[0];} #line 37126 "SecParser.tab.cpp" break; case 712: /* MUPDATESAVE_fun: MUPDATESAVE_fun_1 ZZDEFAULTSEP valueexpr */ #line 11525 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37132 "SecParser.tab.cpp" break; case 713: /* $@86: %empty */ #line 11532 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37145 "SecParser.tab.cpp" break; case 714: /* MUPDATESAVE_fun_1: $@86 valueexpr */ #line 11541 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37164 "SecParser.tab.cpp" break; case 715: /* MUPDATESAVE_fun_1: function */ #line 11555 "SecParser.y" { yyval = yyvsp[0]; } #line 37170 "SecParser.tab.cpp" break; case 716: /* MUPDATESAVE_funlist: MUPDATESAVE_funlist_1 */ #line 11563 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 37179 "SecParser.tab.cpp" break; case 717: /* MUPDATESAVE_funlist_1: MUPDATESAVE_fun */ #line 11573 "SecParser.y" {yyval = yyvsp[0];} #line 37185 "SecParser.tab.cpp" break; case 718: /* MUPDATESAVE_funlist_1: MUPDATESAVE_funlist_1 ',' MUPDATESAVE_fun */ #line 11575 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37193 "SecParser.tab.cpp" break; case 719: /* MUPDATEBYID_fun: naming MUPDATEBYID_fun_1 */ #line 11585 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 37203 "SecParser.tab.cpp" break; case 720: /* MUPDATEBYID_fun: naming MUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr */ #line 11591 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 37213 "SecParser.tab.cpp" break; case 721: /* MUPDATEBYID_fun: MUPDATEBYID_fun_1 */ #line 11596 "SecParser.y" {yyval = yyvsp[0];} #line 37219 "SecParser.tab.cpp" break; case 722: /* MUPDATEBYID_fun: MUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr */ #line 11598 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37225 "SecParser.tab.cpp" break; case 723: /* $@87: %empty */ #line 11605 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37238 "SecParser.tab.cpp" break; case 724: /* MUPDATEBYID_fun_1: $@87 valueexpr */ #line 11614 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37257 "SecParser.tab.cpp" break; case 725: /* MUPDATEBYID_fun_1: function */ #line 11628 "SecParser.y" { yyval = yyvsp[0]; } #line 37263 "SecParser.tab.cpp" break; case 726: /* MUPDATEBYID_funlist: MUPDATEBYID_funlist_1 */ #line 11636 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 37272 "SecParser.tab.cpp" break; case 727: /* MUPDATEBYID_funlist_1: MUPDATEBYID_fun */ #line 11646 "SecParser.y" {yyval = yyvsp[0];} #line 37278 "SecParser.tab.cpp" break; case 728: /* MUPDATEBYID_funlist_1: MUPDATEBYID_funlist_1 ',' MUPDATEBYID_fun */ #line 11648 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37286 "SecParser.tab.cpp" break; case 729: /* MUPDATEDIRECT2_fun: naming MUPDATEDIRECT2_fun_1 */ #line 11658 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 37296 "SecParser.tab.cpp" break; case 730: /* MUPDATEDIRECT2_fun: naming MUPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr */ #line 11664 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 37306 "SecParser.tab.cpp" break; case 731: /* MUPDATEDIRECT2_fun: MUPDATEDIRECT2_fun_1 */ #line 11669 "SecParser.y" {yyval = yyvsp[0];} #line 37312 "SecParser.tab.cpp" break; case 732: /* MUPDATEDIRECT2_fun: MUPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr */ #line 11671 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37318 "SecParser.tab.cpp" break; case 733: /* $@88: %empty */ #line 11678 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"tuple2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 37336 "SecParser.tab.cpp" break; case 734: /* MUPDATEDIRECT2_fun_1: $@88 valueexpr */ #line 11692 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" MTUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 37362 "SecParser.tab.cpp" break; case 735: /* MUPDATEDIRECT2_fun_1: function */ #line 11713 "SecParser.y" { yyval = yyvsp[0]; } #line 37368 "SecParser.tab.cpp" break; case 736: /* MUPDATEDIRECT2_funlist: MUPDATEDIRECT2_funlist_1 */ #line 11721 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 37377 "SecParser.tab.cpp" break; case 737: /* MUPDATEDIRECT2_funlist_1: MUPDATEDIRECT2_fun */ #line 11731 "SecParser.y" {yyval = yyvsp[0];} #line 37383 "SecParser.tab.cpp" break; case 738: /* MUPDATEDIRECT2_funlist_1: MUPDATEDIRECT2_funlist_1 ',' MUPDATEDIRECT2_fun */ #line 11733 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37391 "SecParser.tab.cpp" break; case 739: /* $@89: %empty */ #line 11742 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37404 "SecParser.tab.cpp" break; case 740: /* MOSHORTESTPATHD_fun: $@89 valueexpr */ #line 11751 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37423 "SecParser.tab.cpp" break; case 741: /* MOSHORTESTPATHD_fun: function */ #line 11765 "SecParser.y" { yyval = yyvsp[0]; } #line 37429 "SecParser.tab.cpp" break; case 742: /* $@90: %empty */ #line 11772 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37442 "SecParser.tab.cpp" break; case 743: /* MOSHORTESTPATHA_fun: $@90 valueexpr */ #line 11781 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37461 "SecParser.tab.cpp" break; case 744: /* MOSHORTESTPATHA_fun: function */ #line 11795 "SecParser.y" { yyval = yyvsp[0]; } #line 37467 "SecParser.tab.cpp" break; case 745: /* $@91: %empty */ #line 11802 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37480 "SecParser.tab.cpp" break; case 746: /* MGSHORTESTPATHD_fun: $@91 valueexpr */ #line 11811 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37499 "SecParser.tab.cpp" break; case 747: /* MGSHORTESTPATHD_fun: function */ #line 11825 "SecParser.y" { yyval = yyvsp[0]; } #line 37505 "SecParser.tab.cpp" break; case 748: /* $@92: %empty */ #line 11832 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37518 "SecParser.tab.cpp" break; case 749: /* MGSHORTESTPATHA_fun: $@92 valueexpr */ #line 11841 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37537 "SecParser.tab.cpp" break; case 750: /* MGSHORTESTPATHA_fun: function */ #line 11855 "SecParser.y" { yyval = yyvsp[0]; } #line 37543 "SecParser.tab.cpp" break; case 751: /* $@93: %empty */ #line 11862 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37556 "SecParser.tab.cpp" break; case 752: /* MPQREORDER_fun: $@93 valueexpr */ #line 11871 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37575 "SecParser.tab.cpp" break; case 753: /* MPQREORDER_fun: function */ #line 11885 "SecParser.y" { yyval = yyvsp[0]; } #line 37581 "SecParser.tab.cpp" break; case 754: /* $@94: %empty */ #line 11892 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37594 "SecParser.tab.cpp" break; case 755: /* MPQREORDERUPDATE_fun: $@94 valueexpr */ #line 11901 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MTUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37613 "SecParser.tab.cpp" break; case 756: /* MPQREORDERUPDATE_fun: function */ #line 11915 "SecParser.y" { yyval = yyvsp[0]; } #line 37619 "SecParser.tab.cpp" break; case 757: /* $@95: %empty */ #line 11922 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37632 "SecParser.tab.cpp" break; case 758: /* CREATEMGRAPH2_fun: $@95 valueexpr */ #line 11931 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37651 "SecParser.tab.cpp" break; case 759: /* CREATEMGRAPH2_fun: function */ #line 11945 "SecParser.y" { yyval = yyvsp[0]; } #line 37657 "SecParser.tab.cpp" break; case 760: /* $@96: %empty */ #line 11952 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37670 "SecParser.tab.cpp" break; case 761: /* CREATEMGRAPH2FLOB_fun: $@96 valueexpr */ #line 11961 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37689 "SecParser.tab.cpp" break; case 762: /* CREATEMGRAPH2FLOB_fun: function */ #line 11975 "SecParser.y" { yyval = yyvsp[0]; } #line 37695 "SecParser.tab.cpp" break; case 763: /* $@97: %empty */ #line 11982 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37708 "SecParser.tab.cpp" break; case 764: /* MG2INSERTORIG_fun: $@97 valueexpr */ #line 11991 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37727 "SecParser.tab.cpp" break; case 765: /* MG2INSERTORIG_fun: function */ #line 12005 "SecParser.y" { yyval = yyvsp[0]; } #line 37733 "SecParser.tab.cpp" break; case 766: /* MEMGROUPBY_fun: naming MEMGROUPBY_fun_1 */ #line 12013 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 37743 "SecParser.tab.cpp" break; case 767: /* MEMGROUPBY_fun: naming MEMGROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 12019 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 37753 "SecParser.tab.cpp" break; case 768: /* MEMGROUPBY_fun: MEMGROUPBY_fun_1 */ #line 12024 "SecParser.y" {yyval = yyvsp[0];} #line 37759 "SecParser.tab.cpp" break; case 769: /* MEMGROUPBY_fun: MEMGROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 12026 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37765 "SecParser.tab.cpp" break; case 770: /* $@98: %empty */ #line 12033 "SecParser.y" { pair p; paramno++; strcpy(paramname,"mgroup"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37778 "SecParser.tab.cpp" break; case 771: /* MEMGROUPBY_fun_1: $@98 valueexpr */ #line 12042 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" MGROUP"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37797 "SecParser.tab.cpp" break; case 772: /* MEMGROUPBY_fun_1: function */ #line 12056 "SecParser.y" { yyval = yyvsp[0]; } #line 37803 "SecParser.tab.cpp" break; case 773: /* MEMGROUPBY_funlist: MEMGROUPBY_funlist_1 */ #line 12064 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 37812 "SecParser.tab.cpp" break; case 774: /* MEMGROUPBY_funlist_1: MEMGROUPBY_fun */ #line 12074 "SecParser.y" {yyval = yyvsp[0];} #line 37818 "SecParser.tab.cpp" break; case 775: /* MEMGROUPBY_funlist_1: MEMGROUPBY_funlist_1 ',' MEMGROUPBY_fun */ #line 12076 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37826 "SecParser.tab.cpp" break; case 776: /* $@99: %empty */ #line 12085 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 37839 "SecParser.tab.cpp" break; case 777: /* PUSE_fun: $@99 valueexpr */ #line 12094 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PSTREAM1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 37858 "SecParser.tab.cpp" break; case 778: /* PUSE_fun: function */ #line 12108 "SecParser.y" { yyval = yyvsp[0]; } #line 37864 "SecParser.tab.cpp" break; case 779: /* PJOIN2_fun: naming PJOIN2_fun_1 */ #line 12116 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 37874 "SecParser.tab.cpp" break; case 780: /* PJOIN2_fun: naming PJOIN2_fun_1 ZZDEFAULTSEP valueexpr */ #line 12122 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 37884 "SecParser.tab.cpp" break; case 781: /* PJOIN2_fun: PJOIN2_fun_1 */ #line 12127 "SecParser.y" {yyval = yyvsp[0];} #line 37890 "SecParser.tab.cpp" break; case 782: /* PJOIN2_fun: PJOIN2_fun_1 ZZDEFAULTSEP valueexpr */ #line 12129 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37896 "SecParser.tab.cpp" break; case 783: /* $@100: %empty */ #line 12136 "SecParser.y" { pair p; paramno++; strcpy(paramname,"left"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"right"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 37914 "SecParser.tab.cpp" break; case 784: /* PJOIN2_fun_1: $@100 valueexpr */ #line 12150 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PSTREAM1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" PSTREAM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 37940 "SecParser.tab.cpp" break; case 785: /* PJOIN2_fun_1: function */ #line 12171 "SecParser.y" { yyval = yyvsp[0]; } #line 37946 "SecParser.tab.cpp" break; case 786: /* PJOIN2_funlist: PJOIN2_funlist_1 */ #line 12179 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 37955 "SecParser.tab.cpp" break; case 787: /* PJOIN2_funlist_1: PJOIN2_fun */ #line 12189 "SecParser.y" {yyval = yyvsp[0];} #line 37961 "SecParser.tab.cpp" break; case 788: /* PJOIN2_funlist_1: PJOIN2_funlist_1 ',' PJOIN2_fun */ #line 12191 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 37969 "SecParser.tab.cpp" break; case 789: /* PJOIN1_fun: naming PJOIN1_fun_1 */ #line 12201 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 37979 "SecParser.tab.cpp" break; case 790: /* PJOIN1_fun: naming PJOIN1_fun_1 ZZDEFAULTSEP valueexpr */ #line 12207 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 37989 "SecParser.tab.cpp" break; case 791: /* PJOIN1_fun: PJOIN1_fun_1 */ #line 12212 "SecParser.y" {yyval = yyvsp[0];} #line 37995 "SecParser.tab.cpp" break; case 792: /* PJOIN1_fun: PJOIN1_fun_1 ZZDEFAULTSEP valueexpr */ #line 12214 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38001 "SecParser.tab.cpp" break; case 793: /* $@101: %empty */ #line 12221 "SecParser.y" { pair p; paramno++; strcpy(paramname,"left"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"right"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38019 "SecParser.tab.cpp" break; case 794: /* PJOIN1_fun_1: $@101 valueexpr */ #line 12235 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PSTREAM1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38045 "SecParser.tab.cpp" break; case 795: /* PJOIN1_fun_1: function */ #line 12256 "SecParser.y" { yyval = yyvsp[0]; } #line 38051 "SecParser.tab.cpp" break; case 796: /* PJOIN1_funlist: PJOIN1_funlist_1 */ #line 12264 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 38060 "SecParser.tab.cpp" break; case 797: /* PJOIN1_funlist_1: PJOIN1_fun */ #line 12274 "SecParser.y" {yyval = yyvsp[0];} #line 38066 "SecParser.tab.cpp" break; case 798: /* PJOIN1_funlist_1: PJOIN1_funlist_1 ',' PJOIN1_fun */ #line 12276 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38074 "SecParser.tab.cpp" break; case 799: /* $@102: %empty */ #line 12285 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 38087 "SecParser.tab.cpp" break; case 800: /* SORTARRAY_fun: $@102 valueexpr */ #line 12294 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 38106 "SecParser.tab.cpp" break; case 801: /* SORTARRAY_fun: function */ #line 12308 "SecParser.y" { yyval = yyvsp[0]; } #line 38112 "SecParser.tab.cpp" break; case 802: /* $@103: %empty */ #line 12315 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38130 "SecParser.tab.cpp" break; case 803: /* TIE_fun: $@103 valueexpr */ #line 12329 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38156 "SecParser.tab.cpp" break; case 804: /* TIE_fun: function */ #line 12350 "SecParser.y" { yyval = yyvsp[0]; } #line 38162 "SecParser.tab.cpp" break; case 805: /* $@104: %empty */ #line 12357 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38180 "SecParser.tab.cpp" break; case 806: /* CUMULATE_fun: $@104 valueexpr */ #line 12371 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38206 "SecParser.tab.cpp" break; case 807: /* CUMULATE_fun: function */ #line 12392 "SecParser.y" { yyval = yyvsp[0]; } #line 38212 "SecParser.tab.cpp" break; case 808: /* $@105: %empty */ #line 12399 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 38225 "SecParser.tab.cpp" break; case 809: /* LOOP_fun: $@105 valueexpr */ #line 12408 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 38244 "SecParser.tab.cpp" break; case 810: /* LOOP_fun: function */ #line 12422 "SecParser.y" { yyval = yyvsp[0]; } #line 38250 "SecParser.tab.cpp" break; case 811: /* $@106: %empty */ #line 12429 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38268 "SecParser.tab.cpp" break; case 812: /* LOOPA_fun: $@106 valueexpr */ #line 12443 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38294 "SecParser.tab.cpp" break; case 813: /* LOOPA_fun: function */ #line 12464 "SecParser.y" { yyval = yyvsp[0]; } #line 38300 "SecParser.tab.cpp" break; case 814: /* $@107: %empty */ #line 12471 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38318 "SecParser.tab.cpp" break; case 815: /* LOOPB_fun: $@107 valueexpr */ #line 12485 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38344 "SecParser.tab.cpp" break; case 816: /* LOOPB_fun: function */ #line 12506 "SecParser.y" { yyval = yyvsp[0]; } #line 38350 "SecParser.tab.cpp" break; case 817: /* LOOPSWITCH_fun: naming LOOPSWITCH_fun_1 */ #line 12514 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 38360 "SecParser.tab.cpp" break; case 818: /* LOOPSWITCH_fun: naming LOOPSWITCH_fun_1 ZZDEFAULTSEP valueexpr */ #line 12520 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 38370 "SecParser.tab.cpp" break; case 819: /* LOOPSWITCH_fun: LOOPSWITCH_fun_1 */ #line 12525 "SecParser.y" {yyval = yyvsp[0];} #line 38376 "SecParser.tab.cpp" break; case 820: /* LOOPSWITCH_fun: LOOPSWITCH_fun_1 ZZDEFAULTSEP valueexpr */ #line 12527 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38382 "SecParser.tab.cpp" break; case 821: /* $@108: %empty */ #line 12534 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 38395 "SecParser.tab.cpp" break; case 822: /* LOOPSWITCH_fun_1: $@108 valueexpr */ #line 12543 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 38414 "SecParser.tab.cpp" break; case 823: /* LOOPSWITCH_fun_1: function */ #line 12557 "SecParser.y" { yyval = yyvsp[0]; } #line 38420 "SecParser.tab.cpp" break; case 824: /* LOOPSWITCH_funlist: LOOPSWITCH_funlist_1 */ #line 12565 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 38429 "SecParser.tab.cpp" break; case 825: /* LOOPSWITCH_funlist_1: LOOPSWITCH_fun */ #line 12575 "SecParser.y" {yyval = yyvsp[0];} #line 38435 "SecParser.tab.cpp" break; case 826: /* LOOPSWITCH_funlist_1: LOOPSWITCH_funlist_1 ',' LOOPSWITCH_fun */ #line 12577 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38443 "SecParser.tab.cpp" break; case 827: /* LOOPSWITCHA_fun: naming LOOPSWITCHA_fun_1 */ #line 12587 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 38453 "SecParser.tab.cpp" break; case 828: /* LOOPSWITCHA_fun: naming LOOPSWITCHA_fun_1 ZZDEFAULTSEP valueexpr */ #line 12593 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 38463 "SecParser.tab.cpp" break; case 829: /* LOOPSWITCHA_fun: LOOPSWITCHA_fun_1 */ #line 12598 "SecParser.y" {yyval = yyvsp[0];} #line 38469 "SecParser.tab.cpp" break; case 830: /* LOOPSWITCHA_fun: LOOPSWITCHA_fun_1 ZZDEFAULTSEP valueexpr */ #line 12600 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38475 "SecParser.tab.cpp" break; case 831: /* $@109: %empty */ #line 12607 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38493 "SecParser.tab.cpp" break; case 832: /* LOOPSWITCHA_fun_1: $@109 valueexpr */ #line 12621 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38519 "SecParser.tab.cpp" break; case 833: /* LOOPSWITCHA_fun_1: function */ #line 12642 "SecParser.y" { yyval = yyvsp[0]; } #line 38525 "SecParser.tab.cpp" break; case 834: /* LOOPSWITCHA_funlist: LOOPSWITCHA_funlist_1 */ #line 12650 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 38534 "SecParser.tab.cpp" break; case 835: /* LOOPSWITCHA_funlist_1: LOOPSWITCHA_fun */ #line 12660 "SecParser.y" {yyval = yyvsp[0];} #line 38540 "SecParser.tab.cpp" break; case 836: /* LOOPSWITCHA_funlist_1: LOOPSWITCHA_funlist_1 ',' LOOPSWITCHA_fun */ #line 12662 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38548 "SecParser.tab.cpp" break; case 837: /* LOOPSWITCHB_fun: naming LOOPSWITCHB_fun_1 */ #line 12672 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 38558 "SecParser.tab.cpp" break; case 838: /* LOOPSWITCHB_fun: naming LOOPSWITCHB_fun_1 ZZDEFAULTSEP valueexpr */ #line 12678 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 38568 "SecParser.tab.cpp" break; case 839: /* LOOPSWITCHB_fun: LOOPSWITCHB_fun_1 */ #line 12683 "SecParser.y" {yyval = yyvsp[0];} #line 38574 "SecParser.tab.cpp" break; case 840: /* LOOPSWITCHB_fun: LOOPSWITCHB_fun_1 ZZDEFAULTSEP valueexpr */ #line 12685 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38580 "SecParser.tab.cpp" break; case 841: /* $@110: %empty */ #line 12692 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38598 "SecParser.tab.cpp" break; case 842: /* LOOPSWITCHB_fun_1: $@110 valueexpr */ #line 12706 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38624 "SecParser.tab.cpp" break; case 843: /* LOOPSWITCHB_fun_1: function */ #line 12727 "SecParser.y" { yyval = yyvsp[0]; } #line 38630 "SecParser.tab.cpp" break; case 844: /* LOOPSWITCHB_funlist: LOOPSWITCHB_funlist_1 */ #line 12735 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 38639 "SecParser.tab.cpp" break; case 845: /* LOOPSWITCHB_funlist_1: LOOPSWITCHB_fun */ #line 12745 "SecParser.y" {yyval = yyvsp[0];} #line 38645 "SecParser.tab.cpp" break; case 846: /* LOOPSWITCHB_funlist_1: LOOPSWITCHB_funlist_1 ',' LOOPSWITCHB_fun */ #line 12747 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38653 "SecParser.tab.cpp" break; case 847: /* LOOPSELECT_fun: naming LOOPSELECT_fun_1 */ #line 12757 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 38663 "SecParser.tab.cpp" break; case 848: /* LOOPSELECT_fun: naming LOOPSELECT_fun_1 ZZDEFAULTSEP valueexpr */ #line 12763 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 38673 "SecParser.tab.cpp" break; case 849: /* LOOPSELECT_fun: LOOPSELECT_fun_1 */ #line 12768 "SecParser.y" {yyval = yyvsp[0];} #line 38679 "SecParser.tab.cpp" break; case 850: /* LOOPSELECT_fun: LOOPSELECT_fun_1 ZZDEFAULTSEP valueexpr */ #line 12770 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38685 "SecParser.tab.cpp" break; case 851: /* $@111: %empty */ #line 12777 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 38698 "SecParser.tab.cpp" break; case 852: /* LOOPSELECT_fun_1: $@111 valueexpr */ #line 12786 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 38717 "SecParser.tab.cpp" break; case 853: /* LOOPSELECT_fun_1: function */ #line 12800 "SecParser.y" { yyval = yyvsp[0]; } #line 38723 "SecParser.tab.cpp" break; case 854: /* LOOPSELECT_funlist: LOOPSELECT_funlist_1 */ #line 12808 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 38732 "SecParser.tab.cpp" break; case 855: /* LOOPSELECT_funlist_1: LOOPSELECT_fun */ #line 12818 "SecParser.y" {yyval = yyvsp[0];} #line 38738 "SecParser.tab.cpp" break; case 856: /* LOOPSELECT_funlist_1: LOOPSELECT_funlist_1 ',' LOOPSELECT_fun */ #line 12820 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38746 "SecParser.tab.cpp" break; case 857: /* LOOPSELECTA_fun: naming LOOPSELECTA_fun_1 */ #line 12830 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 38756 "SecParser.tab.cpp" break; case 858: /* LOOPSELECTA_fun: naming LOOPSELECTA_fun_1 ZZDEFAULTSEP valueexpr */ #line 12836 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 38766 "SecParser.tab.cpp" break; case 859: /* LOOPSELECTA_fun: LOOPSELECTA_fun_1 */ #line 12841 "SecParser.y" {yyval = yyvsp[0];} #line 38772 "SecParser.tab.cpp" break; case 860: /* LOOPSELECTA_fun: LOOPSELECTA_fun_1 ZZDEFAULTSEP valueexpr */ #line 12843 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38778 "SecParser.tab.cpp" break; case 861: /* $@112: %empty */ #line 12850 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38796 "SecParser.tab.cpp" break; case 862: /* LOOPSELECTA_fun_1: $@112 valueexpr */ #line 12864 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38822 "SecParser.tab.cpp" break; case 863: /* LOOPSELECTA_fun_1: function */ #line 12885 "SecParser.y" { yyval = yyvsp[0]; } #line 38828 "SecParser.tab.cpp" break; case 864: /* LOOPSELECTA_funlist: LOOPSELECTA_funlist_1 */ #line 12893 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 38837 "SecParser.tab.cpp" break; case 865: /* LOOPSELECTA_funlist_1: LOOPSELECTA_fun */ #line 12903 "SecParser.y" {yyval = yyvsp[0];} #line 38843 "SecParser.tab.cpp" break; case 866: /* LOOPSELECTA_funlist_1: LOOPSELECTA_funlist_1 ',' LOOPSELECTA_fun */ #line 12905 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38851 "SecParser.tab.cpp" break; case 867: /* LOOPSELECTB_fun: naming LOOPSELECTB_fun_1 */ #line 12915 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 38861 "SecParser.tab.cpp" break; case 868: /* LOOPSELECTB_fun: naming LOOPSELECTB_fun_1 ZZDEFAULTSEP valueexpr */ #line 12921 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 38871 "SecParser.tab.cpp" break; case 869: /* LOOPSELECTB_fun: LOOPSELECTB_fun_1 */ #line 12926 "SecParser.y" {yyval = yyvsp[0];} #line 38877 "SecParser.tab.cpp" break; case 870: /* LOOPSELECTB_fun: LOOPSELECTB_fun_1 ZZDEFAULTSEP valueexpr */ #line 12928 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38883 "SecParser.tab.cpp" break; case 871: /* $@113: %empty */ #line 12935 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38901 "SecParser.tab.cpp" break; case 872: /* LOOPSELECTB_fun_1: $@113 valueexpr */ #line 12949 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 38927 "SecParser.tab.cpp" break; case 873: /* LOOPSELECTB_fun_1: function */ #line 12970 "SecParser.y" { yyval = yyvsp[0]; } #line 38933 "SecParser.tab.cpp" break; case 874: /* LOOPSELECTB_funlist: LOOPSELECTB_funlist_1 */ #line 12978 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 38942 "SecParser.tab.cpp" break; case 875: /* LOOPSELECTB_funlist_1: LOOPSELECTB_fun */ #line 12988 "SecParser.y" {yyval = yyvsp[0];} #line 38948 "SecParser.tab.cpp" break; case 876: /* LOOPSELECTB_funlist_1: LOOPSELECTB_funlist_1 ',' LOOPSELECTB_fun */ #line 12990 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 38956 "SecParser.tab.cpp" break; case 877: /* $@114: %empty */ #line 12999 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 38974 "SecParser.tab.cpp" break; case 878: /* PARTJOIN_fun: $@114 valueexpr */ #line 13013 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 39000 "SecParser.tab.cpp" break; case 879: /* PARTJOIN_fun: function */ #line 13034 "SecParser.y" { yyval = yyvsp[0]; } #line 39006 "SecParser.tab.cpp" break; case 880: /* PARTJOINSWITCH_fun: naming PARTJOINSWITCH_fun_1 */ #line 13042 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39016 "SecParser.tab.cpp" break; case 881: /* PARTJOINSWITCH_fun: naming PARTJOINSWITCH_fun_1 ZZDEFAULTSEP valueexpr */ #line 13048 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39026 "SecParser.tab.cpp" break; case 882: /* PARTJOINSWITCH_fun: PARTJOINSWITCH_fun_1 */ #line 13053 "SecParser.y" {yyval = yyvsp[0];} #line 39032 "SecParser.tab.cpp" break; case 883: /* PARTJOINSWITCH_fun: PARTJOINSWITCH_fun_1 ZZDEFAULTSEP valueexpr */ #line 13055 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39038 "SecParser.tab.cpp" break; case 884: /* $@115: %empty */ #line 13062 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 39056 "SecParser.tab.cpp" break; case 885: /* PARTJOINSWITCH_fun_1: $@115 valueexpr */ #line 13076 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 39082 "SecParser.tab.cpp" break; case 886: /* PARTJOINSWITCH_fun_1: function */ #line 13097 "SecParser.y" { yyval = yyvsp[0]; } #line 39088 "SecParser.tab.cpp" break; case 887: /* PARTJOINSWITCH_funlist: PARTJOINSWITCH_funlist_1 */ #line 13105 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39097 "SecParser.tab.cpp" break; case 888: /* PARTJOINSWITCH_funlist_1: PARTJOINSWITCH_fun */ #line 13115 "SecParser.y" {yyval = yyvsp[0];} #line 39103 "SecParser.tab.cpp" break; case 889: /* PARTJOINSWITCH_funlist_1: PARTJOINSWITCH_funlist_1 ',' PARTJOINSWITCH_fun */ #line 13117 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39111 "SecParser.tab.cpp" break; case 890: /* PARTJOINSELECT_fun: naming PARTJOINSELECT_fun_1 */ #line 13127 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39121 "SecParser.tab.cpp" break; case 891: /* PARTJOINSELECT_fun: naming PARTJOINSELECT_fun_1 ZZDEFAULTSEP valueexpr */ #line 13133 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39131 "SecParser.tab.cpp" break; case 892: /* PARTJOINSELECT_fun: PARTJOINSELECT_fun_1 */ #line 13138 "SecParser.y" {yyval = yyvsp[0];} #line 39137 "SecParser.tab.cpp" break; case 893: /* PARTJOINSELECT_fun: PARTJOINSELECT_fun_1 ZZDEFAULTSEP valueexpr */ #line 13140 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39143 "SecParser.tab.cpp" break; case 894: /* $@116: %empty */ #line 13147 "SecParser.y" { pair p; paramno++; strcpy(paramname,"first"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"second"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 39161 "SecParser.tab.cpp" break; case 895: /* PARTJOINSELECT_fun_1: $@116 valueexpr */ #line 13161 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 39187 "SecParser.tab.cpp" break; case 896: /* PARTJOINSELECT_fun_1: function */ #line 13182 "SecParser.y" { yyval = yyvsp[0]; } #line 39193 "SecParser.tab.cpp" break; case 897: /* PARTJOINSELECT_funlist: PARTJOINSELECT_funlist_1 */ #line 13190 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39202 "SecParser.tab.cpp" break; case 898: /* PARTJOINSELECT_funlist_1: PARTJOINSELECT_fun */ #line 13200 "SecParser.y" {yyval = yyvsp[0];} #line 39208 "SecParser.tab.cpp" break; case 899: /* PARTJOINSELECT_funlist_1: PARTJOINSELECT_funlist_1 ',' PARTJOINSELECT_fun */ #line 13202 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39216 "SecParser.tab.cpp" break; case 900: /* EXTEND_fun: naming EXTEND_fun_1 */ #line 13212 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39226 "SecParser.tab.cpp" break; case 901: /* EXTEND_fun: naming EXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 13218 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39236 "SecParser.tab.cpp" break; case 902: /* EXTEND_fun: EXTEND_fun_1 */ #line 13223 "SecParser.y" {yyval = yyvsp[0];} #line 39242 "SecParser.tab.cpp" break; case 903: /* EXTEND_fun: EXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 13225 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39248 "SecParser.tab.cpp" break; case 904: /* $@117: %empty */ #line 13232 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39261 "SecParser.tab.cpp" break; case 905: /* EXTEND_fun_1: $@117 valueexpr */ #line 13241 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39280 "SecParser.tab.cpp" break; case 906: /* EXTEND_fun_1: function */ #line 13255 "SecParser.y" { yyval = yyvsp[0]; } #line 39286 "SecParser.tab.cpp" break; case 907: /* EXTEND_funlist: EXTEND_funlist_1 */ #line 13263 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39295 "SecParser.tab.cpp" break; case 908: /* EXTEND_funlist_1: EXTEND_fun */ #line 13273 "SecParser.y" {yyval = yyvsp[0];} #line 39301 "SecParser.tab.cpp" break; case 909: /* EXTEND_funlist_1: EXTEND_funlist_1 ',' EXTEND_fun */ #line 13275 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39309 "SecParser.tab.cpp" break; case 910: /* $@118: %empty */ #line 13284 "SecParser.y" { pair p; paramno++; strcpy(paramname,"stream1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"stream2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 39327 "SecParser.tab.cpp" break; case 911: /* PARAJOIN2_fun: $@118 valueexpr */ #line 13298 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ANY"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ANY2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 39353 "SecParser.tab.cpp" break; case 912: /* PARAJOIN2_fun: function */ #line 13319 "SecParser.y" { yyval = yyvsp[0]; } #line 39359 "SecParser.tab.cpp" break; case 913: /* $@119: %empty */ #line 13326 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39372 "SecParser.tab.cpp" break; case 914: /* DRELFILTER_fun: $@119 valueexpr */ #line 13335 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39391 "SecParser.tab.cpp" break; case 915: /* DRELFILTER_fun: function */ #line 13349 "SecParser.y" { yyval = yyvsp[0]; } #line 39397 "SecParser.tab.cpp" break; case 916: /* DRELEXTEND_fun: naming DRELEXTEND_fun_1 */ #line 13357 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39407 "SecParser.tab.cpp" break; case 917: /* DRELEXTEND_fun: naming DRELEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 13363 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39417 "SecParser.tab.cpp" break; case 918: /* DRELEXTEND_fun: DRELEXTEND_fun_1 */ #line 13368 "SecParser.y" {yyval = yyvsp[0];} #line 39423 "SecParser.tab.cpp" break; case 919: /* DRELEXTEND_fun: DRELEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 13370 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39429 "SecParser.tab.cpp" break; case 920: /* $@120: %empty */ #line 13377 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39442 "SecParser.tab.cpp" break; case 921: /* DRELEXTEND_fun_1: $@120 valueexpr */ #line 13386 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39461 "SecParser.tab.cpp" break; case 922: /* DRELEXTEND_fun_1: function */ #line 13400 "SecParser.y" { yyval = yyvsp[0]; } #line 39467 "SecParser.tab.cpp" break; case 923: /* DRELEXTEND_funlist: DRELEXTEND_funlist_1 */ #line 13408 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39476 "SecParser.tab.cpp" break; case 924: /* DRELEXTEND_funlist_1: DRELEXTEND_fun */ #line 13418 "SecParser.y" {yyval = yyvsp[0];} #line 39482 "SecParser.tab.cpp" break; case 925: /* DRELEXTEND_funlist_1: DRELEXTEND_funlist_1 ',' DRELEXTEND_fun */ #line 13420 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39490 "SecParser.tab.cpp" break; case 926: /* DRELPROJECTEXTEND_fun: naming DRELPROJECTEXTEND_fun_1 */ #line 13430 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39500 "SecParser.tab.cpp" break; case 927: /* DRELPROJECTEXTEND_fun: naming DRELPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 13436 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39510 "SecParser.tab.cpp" break; case 928: /* DRELPROJECTEXTEND_fun: DRELPROJECTEXTEND_fun_1 */ #line 13441 "SecParser.y" {yyval = yyvsp[0];} #line 39516 "SecParser.tab.cpp" break; case 929: /* DRELPROJECTEXTEND_fun: DRELPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 13443 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39522 "SecParser.tab.cpp" break; case 930: /* $@121: %empty */ #line 13450 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39535 "SecParser.tab.cpp" break; case 931: /* DRELPROJECTEXTEND_fun_1: $@121 valueexpr */ #line 13459 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39554 "SecParser.tab.cpp" break; case 932: /* DRELPROJECTEXTEND_fun_1: function */ #line 13473 "SecParser.y" { yyval = yyvsp[0]; } #line 39560 "SecParser.tab.cpp" break; case 933: /* DRELPROJECTEXTEND_funlist: DRELPROJECTEXTEND_funlist_1 */ #line 13481 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39569 "SecParser.tab.cpp" break; case 934: /* DRELPROJECTEXTEND_funlist_1: DRELPROJECTEXTEND_fun */ #line 13491 "SecParser.y" {yyval = yyvsp[0];} #line 39575 "SecParser.tab.cpp" break; case 935: /* DRELPROJECTEXTEND_funlist_1: DRELPROJECTEXTEND_funlist_1 ',' DRELPROJECTEXTEND_fun */ #line 13493 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39583 "SecParser.tab.cpp" break; case 936: /* DRELLGROUPBY_fun: naming DRELLGROUPBY_fun_1 */ #line 13503 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39593 "SecParser.tab.cpp" break; case 937: /* DRELLGROUPBY_fun: naming DRELLGROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 13509 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39603 "SecParser.tab.cpp" break; case 938: /* DRELLGROUPBY_fun: DRELLGROUPBY_fun_1 */ #line 13514 "SecParser.y" {yyval = yyvsp[0];} #line 39609 "SecParser.tab.cpp" break; case 939: /* DRELLGROUPBY_fun: DRELLGROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 13516 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39615 "SecParser.tab.cpp" break; case 940: /* $@122: %empty */ #line 13523 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39628 "SecParser.tab.cpp" break; case 941: /* DRELLGROUPBY_fun_1: $@122 valueexpr */ #line 13532 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39647 "SecParser.tab.cpp" break; case 942: /* DRELLGROUPBY_fun_1: function */ #line 13546 "SecParser.y" { yyval = yyvsp[0]; } #line 39653 "SecParser.tab.cpp" break; case 943: /* DRELLGROUPBY_funlist: DRELLGROUPBY_funlist_1 */ #line 13554 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39662 "SecParser.tab.cpp" break; case 944: /* DRELLGROUPBY_funlist_1: DRELLGROUPBY_fun */ #line 13564 "SecParser.y" {yyval = yyvsp[0];} #line 39668 "SecParser.tab.cpp" break; case 945: /* DRELLGROUPBY_funlist_1: DRELLGROUPBY_funlist_1 ',' DRELLGROUPBY_fun */ #line 13566 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39676 "SecParser.tab.cpp" break; case 946: /* DRELGROUPBY_fun: naming DRELGROUPBY_fun_1 */ #line 13576 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39686 "SecParser.tab.cpp" break; case 947: /* DRELGROUPBY_fun: naming DRELGROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 13582 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39696 "SecParser.tab.cpp" break; case 948: /* DRELGROUPBY_fun: DRELGROUPBY_fun_1 */ #line 13587 "SecParser.y" {yyval = yyvsp[0];} #line 39702 "SecParser.tab.cpp" break; case 949: /* DRELGROUPBY_fun: DRELGROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 13589 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39708 "SecParser.tab.cpp" break; case 950: /* $@123: %empty */ #line 13596 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39721 "SecParser.tab.cpp" break; case 951: /* DRELGROUPBY_fun_1: $@123 valueexpr */ #line 13605 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39740 "SecParser.tab.cpp" break; case 952: /* DRELGROUPBY_fun_1: function */ #line 13619 "SecParser.y" { yyval = yyvsp[0]; } #line 39746 "SecParser.tab.cpp" break; case 953: /* DRELGROUPBY_funlist: DRELGROUPBY_funlist_1 */ #line 13627 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39755 "SecParser.tab.cpp" break; case 954: /* DRELGROUPBY_funlist_1: DRELGROUPBY_fun */ #line 13637 "SecParser.y" {yyval = yyvsp[0];} #line 39761 "SecParser.tab.cpp" break; case 955: /* DRELGROUPBY_funlist_1: DRELGROUPBY_funlist_1 ',' DRELGROUPBY_fun */ #line 13639 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39769 "SecParser.tab.cpp" break; case 956: /* DRELUPDATE_fun: naming DRELUPDATE_fun_1 */ #line 13649 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39779 "SecParser.tab.cpp" break; case 957: /* DRELUPDATE_fun: naming DRELUPDATE_fun_1 ZZDEFAULTSEP valueexpr */ #line 13655 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39789 "SecParser.tab.cpp" break; case 958: /* DRELUPDATE_fun: DRELUPDATE_fun_1 */ #line 13660 "SecParser.y" {yyval = yyvsp[0];} #line 39795 "SecParser.tab.cpp" break; case 959: /* DRELUPDATE_fun: DRELUPDATE_fun_1 ZZDEFAULTSEP valueexpr */ #line 13662 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39801 "SecParser.tab.cpp" break; case 960: /* $@124: %empty */ #line 13669 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39814 "SecParser.tab.cpp" break; case 961: /* DRELUPDATE_fun_1: $@124 valueexpr */ #line 13678 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39833 "SecParser.tab.cpp" break; case 962: /* DRELUPDATE_fun_1: function */ #line 13692 "SecParser.y" { yyval = yyvsp[0]; } #line 39839 "SecParser.tab.cpp" break; case 963: /* DRELUPDATE_funlist: DRELUPDATE_funlist_1 */ #line 13700 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39848 "SecParser.tab.cpp" break; case 964: /* DRELUPDATE_funlist_1: DRELUPDATE_fun */ #line 13710 "SecParser.y" {yyval = yyvsp[0];} #line 39854 "SecParser.tab.cpp" break; case 965: /* DRELUPDATE_funlist_1: DRELUPDATE_funlist_1 ',' DRELUPDATE_fun */ #line 13712 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39862 "SecParser.tab.cpp" break; case 966: /* DRELUPDATEBYID_fun: naming DRELUPDATEBYID_fun_1 */ #line 13722 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 39872 "SecParser.tab.cpp" break; case 967: /* DRELUPDATEBYID_fun: naming DRELUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr */ #line 13728 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 39882 "SecParser.tab.cpp" break; case 968: /* DRELUPDATEBYID_fun: DRELUPDATEBYID_fun_1 */ #line 13733 "SecParser.y" {yyval = yyvsp[0];} #line 39888 "SecParser.tab.cpp" break; case 969: /* DRELUPDATEBYID_fun: DRELUPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr */ #line 13735 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39894 "SecParser.tab.cpp" break; case 970: /* $@125: %empty */ #line 13742 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 39912 "SecParser.tab.cpp" break; case 971: /* DRELUPDATEBYID_fun_1: $@125 valueexpr */ #line 13756 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" SUBSUBTYPE1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 39938 "SecParser.tab.cpp" break; case 972: /* DRELUPDATEBYID_fun_1: function */ #line 13777 "SecParser.y" { yyval = yyvsp[0]; } #line 39944 "SecParser.tab.cpp" break; case 973: /* DRELUPDATEBYID_funlist: DRELUPDATEBYID_funlist_1 */ #line 13785 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 39953 "SecParser.tab.cpp" break; case 974: /* DRELUPDATEBYID_funlist_1: DRELUPDATEBYID_fun */ #line 13795 "SecParser.y" {yyval = yyvsp[0];} #line 39959 "SecParser.tab.cpp" break; case 975: /* DRELUPDATEBYID_funlist_1: DRELUPDATEBYID_funlist_1 ',' DRELUPDATEBYID_fun */ #line 13797 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 39967 "SecParser.tab.cpp" break; case 976: /* $@126: %empty */ #line 13806 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 39980 "SecParser.tab.cpp" break; case 977: /* DRELFILTERADDID_fun: $@126 valueexpr */ #line 13815 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 39999 "SecParser.tab.cpp" break; case 978: /* DRELFILTERADDID_fun: function */ #line 13829 "SecParser.y" { yyval = yyvsp[0]; } #line 40005 "SecParser.tab.cpp" break; case 979: /* $@127: %empty */ #line 13836 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40018 "SecParser.tab.cpp" break; case 980: /* DRELFILTERDELETE_fun: $@127 valueexpr */ #line 13845 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40037 "SecParser.tab.cpp" break; case 981: /* DRELFILTERDELETE_fun: function */ #line 13859 "SecParser.y" { yyval = yyvsp[0]; } #line 40043 "SecParser.tab.cpp" break; case 982: /* DRELFILTERUPDATE_fun: naming DRELFILTERUPDATE_fun_1 */ #line 13867 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 40053 "SecParser.tab.cpp" break; case 983: /* DRELFILTERUPDATE_fun: naming DRELFILTERUPDATE_fun_1 ZZDEFAULTSEP valueexpr */ #line 13873 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 40063 "SecParser.tab.cpp" break; case 984: /* DRELFILTERUPDATE_fun: DRELFILTERUPDATE_fun_1 */ #line 13878 "SecParser.y" {yyval = yyvsp[0];} #line 40069 "SecParser.tab.cpp" break; case 985: /* DRELFILTERUPDATE_fun: DRELFILTERUPDATE_fun_1 ZZDEFAULTSEP valueexpr */ #line 13880 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40075 "SecParser.tab.cpp" break; case 986: /* $@128: %empty */ #line 13887 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40088 "SecParser.tab.cpp" break; case 987: /* DRELFILTERUPDATE_fun_1: $@128 valueexpr */ #line 13896 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DRELFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40107 "SecParser.tab.cpp" break; case 988: /* DRELFILTERUPDATE_fun_1: function */ #line 13910 "SecParser.y" { yyval = yyvsp[0]; } #line 40113 "SecParser.tab.cpp" break; case 989: /* DRELFILTERUPDATE_funlist: DRELFILTERUPDATE_funlist_1 */ #line 13918 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 40122 "SecParser.tab.cpp" break; case 990: /* DRELFILTERUPDATE_funlist_1: DRELFILTERUPDATE_fun */ #line 13928 "SecParser.y" {yyval = yyvsp[0];} #line 40128 "SecParser.tab.cpp" break; case 991: /* DRELFILTERUPDATE_funlist_1: DRELFILTERUPDATE_funlist_1 ',' DRELFILTERUPDATE_fun */ #line 13930 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40136 "SecParser.tab.cpp" break; case 992: /* $@129: %empty */ #line 13939 "SecParser.y" { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 40154 "SecParser.tab.cpp" break; case 993: /* DBSCANF_fun: $@129 valueexpr */ #line 13953 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 40180 "SecParser.tab.cpp" break; case 994: /* DBSCANF_fun: function */ #line 13974 "SecParser.y" { yyval = yyvsp[0]; } #line 40186 "SecParser.tab.cpp" break; case 995: /* $@130: %empty */ #line 13981 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 40204 "SecParser.tab.cpp" break; case 996: /* DBSCANTF_fun: $@130 valueexpr */ #line 13995 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 40230 "SecParser.tab.cpp" break; case 997: /* DBSCANTF_fun: function */ #line 14016 "SecParser.y" { yyval = yyvsp[0]; } #line 40236 "SecParser.tab.cpp" break; case 998: /* $@131: %empty */ #line 14023 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40249 "SecParser.tab.cpp" break; case 999: /* PFILTERS_fun: $@131 valueexpr */ #line 14032 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40268 "SecParser.tab.cpp" break; case 1000: /* PFILTERS_fun: function */ #line 14046 "SecParser.y" { yyval = yyvsp[0]; } #line 40274 "SecParser.tab.cpp" break; case 1001: /* PEXTEND_fun: naming PEXTEND_fun_1 */ #line 14054 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 40284 "SecParser.tab.cpp" break; case 1002: /* PEXTEND_fun: naming PEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 14060 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 40294 "SecParser.tab.cpp" break; case 1003: /* PEXTEND_fun: PEXTEND_fun_1 */ #line 14065 "SecParser.y" {yyval = yyvsp[0];} #line 40300 "SecParser.tab.cpp" break; case 1004: /* PEXTEND_fun: PEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 14067 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40306 "SecParser.tab.cpp" break; case 1005: /* $@132: %empty */ #line 14074 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40319 "SecParser.tab.cpp" break; case 1006: /* PEXTEND_fun_1: $@132 valueexpr */ #line 14083 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40338 "SecParser.tab.cpp" break; case 1007: /* PEXTEND_fun_1: function */ #line 14097 "SecParser.y" { yyval = yyvsp[0]; } #line 40344 "SecParser.tab.cpp" break; case 1008: /* PEXTEND_funlist: PEXTEND_funlist_1 */ #line 14105 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 40353 "SecParser.tab.cpp" break; case 1009: /* PEXTEND_funlist_1: PEXTEND_fun */ #line 14115 "SecParser.y" {yyval = yyvsp[0];} #line 40359 "SecParser.tab.cpp" break; case 1010: /* PEXTEND_funlist_1: PEXTEND_funlist_1 ',' PEXTEND_fun */ #line 14117 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40367 "SecParser.tab.cpp" break; case 1011: /* PEXTENDSTREAM_fun: naming PEXTENDSTREAM_fun_1 */ #line 14127 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 40377 "SecParser.tab.cpp" break; case 1012: /* PEXTENDSTREAM_fun: naming PEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 14133 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 40387 "SecParser.tab.cpp" break; case 1013: /* PEXTENDSTREAM_fun: PEXTENDSTREAM_fun_1 */ #line 14138 "SecParser.y" {yyval = yyvsp[0];} #line 40393 "SecParser.tab.cpp" break; case 1014: /* PEXTENDSTREAM_fun: PEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 14140 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40399 "SecParser.tab.cpp" break; case 1015: /* $@133: %empty */ #line 14147 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40412 "SecParser.tab.cpp" break; case 1016: /* PEXTENDSTREAM_fun_1: $@133 valueexpr */ #line 14156 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40431 "SecParser.tab.cpp" break; case 1017: /* PEXTENDSTREAM_fun_1: function */ #line 14170 "SecParser.y" { yyval = yyvsp[0]; } #line 40437 "SecParser.tab.cpp" break; case 1018: /* PEXTENDSTREAM_funlist: PEXTENDSTREAM_funlist_1 */ #line 14178 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 40446 "SecParser.tab.cpp" break; case 1019: /* PEXTENDSTREAM_funlist_1: PEXTENDSTREAM_fun */ #line 14188 "SecParser.y" {yyval = yyvsp[0];} #line 40452 "SecParser.tab.cpp" break; case 1020: /* PEXTENDSTREAM_funlist_1: PEXTENDSTREAM_funlist_1 ',' PEXTENDSTREAM_fun */ #line 14190 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40460 "SecParser.tab.cpp" break; case 1021: /* $@134: %empty */ #line 14199 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40473 "SecParser.tab.cpp" break; case 1022: /* PLOOPSEL_fun: $@134 valueexpr */ #line 14208 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40492 "SecParser.tab.cpp" break; case 1023: /* PLOOPSEL_fun: function */ #line 14222 "SecParser.y" { yyval = yyvsp[0]; } #line 40498 "SecParser.tab.cpp" break; case 1024: /* $@135: %empty */ #line 14229 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40511 "SecParser.tab.cpp" break; case 1025: /* PLOOPJOIN_fun: $@135 valueexpr */ #line 14238 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40530 "SecParser.tab.cpp" break; case 1026: /* PLOOPJOIN_fun: function */ #line 14252 "SecParser.y" { yyval = yyvsp[0]; } #line 40536 "SecParser.tab.cpp" break; case 1027: /* $@136: %empty */ #line 14259 "SecParser.y" { pair p; paramno++; strcpy(paramname,"arg1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"arg2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 40554 "SecParser.tab.cpp" break; case 1028: /* PAGGREGATE_fun: $@136 valueexpr */ #line 14273 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 40580 "SecParser.tab.cpp" break; case 1029: /* PAGGREGATE_fun: function */ #line 14294 "SecParser.y" { yyval = yyvsp[0]; } #line 40586 "SecParser.tab.cpp" break; case 1030: /* $@137: %empty */ #line 14301 "SecParser.y" { pair p; paramno++; strcpy(paramname,"arg1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"arg2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 40604 "SecParser.tab.cpp" break; case 1031: /* PAGGREGATEB_fun: $@137 valueexpr */ #line 14315 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" PAGGRT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 40630 "SecParser.tab.cpp" break; case 1032: /* PAGGREGATEB_fun: function */ #line 14336 "SecParser.y" { yyval = yyvsp[0]; } #line 40636 "SecParser.tab.cpp" break; case 1033: /* $@138: %empty */ #line 14343 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 40654 "SecParser.tab.cpp" break; case 1034: /* AGGREGATES_fun: $@138 valueexpr */ #line 14357 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 40680 "SecParser.tab.cpp" break; case 1035: /* AGGREGATES_fun: function */ #line 14378 "SecParser.y" { yyval = yyvsp[0]; } #line 40686 "SecParser.tab.cpp" break; case 1036: /* $@139: %empty */ #line 14385 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40699 "SecParser.tab.cpp" break; case 1037: /* USE_fun: $@139 valueexpr */ #line 14394 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40718 "SecParser.tab.cpp" break; case 1038: /* USE_fun: function */ #line 14408 "SecParser.y" { yyval = yyvsp[0]; } #line 40724 "SecParser.tab.cpp" break; case 1039: /* $@140: %empty */ #line 14415 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 40742 "SecParser.tab.cpp" break; case 1040: /* USE2_fun: $@140 valueexpr */ #line 14429 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" STREAMELEM2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 40768 "SecParser.tab.cpp" break; case 1041: /* USE2_fun: function */ #line 14450 "SecParser.y" { yyval = yyvsp[0]; } #line 40774 "SecParser.tab.cpp" break; case 1042: /* TS_fun: naming TS_fun_1 */ #line 14458 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 40784 "SecParser.tab.cpp" break; case 1043: /* TS_fun: naming TS_fun_1 ZZDEFAULTSEP valueexpr */ #line 14464 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 40794 "SecParser.tab.cpp" break; case 1044: /* TS_fun: TS_fun_1 */ #line 14469 "SecParser.y" {yyval = yyvsp[0];} #line 40800 "SecParser.tab.cpp" break; case 1045: /* TS_fun: TS_fun_1 ZZDEFAULTSEP valueexpr */ #line 14471 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40806 "SecParser.tab.cpp" break; case 1046: /* $@141: %empty */ #line 14478 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40819 "SecParser.tab.cpp" break; case 1047: /* TS_fun_1: $@141 valueexpr */ #line 14487 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40838 "SecParser.tab.cpp" break; case 1048: /* TS_fun_1: function */ #line 14501 "SecParser.y" { yyval = yyvsp[0]; } #line 40844 "SecParser.tab.cpp" break; case 1049: /* TS_funlist: TS_funlist_1 */ #line 14509 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 40853 "SecParser.tab.cpp" break; case 1050: /* TS_funlist_1: TS_fun */ #line 14519 "SecParser.y" {yyval = yyvsp[0];} #line 40859 "SecParser.tab.cpp" break; case 1051: /* TS_funlist_1: TS_funlist_1 ',' TS_fun */ #line 14521 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 40867 "SecParser.tab.cpp" break; case 1052: /* $@142: %empty */ #line 14530 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40880 "SecParser.tab.cpp" break; case 1053: /* AS_fun: $@142 valueexpr */ #line 14539 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40899 "SecParser.tab.cpp" break; case 1054: /* AS_fun: function */ #line 14553 "SecParser.y" { yyval = yyvsp[0]; } #line 40905 "SecParser.tab.cpp" break; case 1055: /* $@143: %empty */ #line 14560 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40918 "SecParser.tab.cpp" break; case 1056: /* streamfun_fun: $@143 valueexpr */ #line 14569 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40937 "SecParser.tab.cpp" break; case 1057: /* streamfun_fun: function */ #line 14583 "SecParser.y" { yyval = yyvsp[0]; } #line 40943 "SecParser.tab.cpp" break; case 1058: /* $@144: %empty */ #line 14590 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40956 "SecParser.tab.cpp" break; case 1059: /* prog_fun: $@144 valueexpr */ #line 14599 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 40975 "SecParser.tab.cpp" break; case 1060: /* prog_fun: function */ #line 14613 "SecParser.y" { yyval = yyvsp[0]; } #line 40981 "SecParser.tab.cpp" break; case 1061: /* $@145: %empty */ #line 14620 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 40994 "SecParser.tab.cpp" break; case 1062: /* SYNC_fun: $@145 valueexpr */ #line 14629 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41013 "SecParser.tab.cpp" break; case 1063: /* SYNC_fun: function */ #line 14643 "SecParser.y" { yyval = yyvsp[0]; } #line 41019 "SecParser.tab.cpp" break; case 1064: /* $@146: %empty */ #line 14650 "SecParser.y" { pair p; paramno++; strcpy(paramname,"countelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"streamelem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 41037 "SecParser.tab.cpp" break; case 1065: /* SideEffect_fun: $@146 valueexpr */ #line 14664 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 41063 "SecParser.tab.cpp" break; case 1066: /* SideEffect_fun: function */ #line 14685 "SecParser.y" { yyval = yyvsp[0]; } #line 41069 "SecParser.tab.cpp" break; case 1067: /* $@147: %empty */ #line 14692 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41082 "SecParser.tab.cpp" break; case 1068: /* OSHORTESTPATHD_fun: $@147 valueexpr */ #line 14701 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41101 "SecParser.tab.cpp" break; case 1069: /* OSHORTESTPATHD_fun: function */ #line 14715 "SecParser.y" { yyval = yyvsp[0]; } #line 41107 "SecParser.tab.cpp" break; case 1070: /* $@148: %empty */ #line 14722 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41120 "SecParser.tab.cpp" break; case 1071: /* OSHORTESTPATHA_fun: $@148 valueexpr */ #line 14731 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41139 "SecParser.tab.cpp" break; case 1072: /* OSHORTESTPATHA_fun: function */ #line 14745 "SecParser.y" { yyval = yyvsp[0]; } #line 41145 "SecParser.tab.cpp" break; case 1073: /* $@149: %empty */ #line 14752 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41158 "SecParser.tab.cpp" break; case 1074: /* READ2_fun: $@149 valueexpr */ #line 14761 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBSARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41177 "SecParser.tab.cpp" break; case 1075: /* READ2_fun: function */ #line 14775 "SecParser.y" { yyval = yyvsp[0]; } #line 41183 "SecParser.tab.cpp" break; case 1076: /* $@150: %empty */ #line 14782 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41196 "SecParser.tab.cpp" break; case 1077: /* READ3_fun: $@150 valueexpr */ #line 14791 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBRARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41215 "SecParser.tab.cpp" break; case 1078: /* READ3_fun: function */ #line 14805 "SecParser.y" { yyval = yyvsp[0]; } #line 41221 "SecParser.tab.cpp" break; case 1079: /* $@151: %empty */ #line 14812 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41234 "SecParser.tab.cpp" break; case 1080: /* RDERIVE_fun: $@151 valueexpr */ #line 14821 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" RELARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41253 "SecParser.tab.cpp" break; case 1081: /* RDERIVE_fun: function */ #line 14835 "SecParser.y" { yyval = yyvsp[0]; } #line 41259 "SecParser.tab.cpp" break; case 1082: /* $@152: %empty */ #line 14842 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 41277 "SecParser.tab.cpp" break; case 1083: /* READ3_1_fun: $@152 valueexpr */ #line 14856 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBRARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DBIARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 41303 "SecParser.tab.cpp" break; case 1084: /* READ3_1_fun: function */ #line 14877 "SecParser.y" { yyval = yyvsp[0]; } #line 41309 "SecParser.tab.cpp" break; case 1085: /* $@153: %empty */ #line 14884 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } #line 41332 "SecParser.tab.cpp" break; case 1086: /* READ3_2_fun: $@153 valueexpr */ #line 14903 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" DBRARG"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" DBIARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" DBIARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } #line 41365 "SecParser.tab.cpp" break; case 1087: /* READ3_2_fun: function */ #line 14931 "SecParser.y" { yyval = yyvsp[0]; } #line 41371 "SecParser.tab.cpp" break; case 1088: /* $@154: %empty */ #line 14938 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41384 "SecParser.tab.cpp" break; case 1089: /* FILTERX_fun: $@154 valueexpr */ #line 14947 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41403 "SecParser.tab.cpp" break; case 1090: /* FILTERX_fun: function */ #line 14961 "SecParser.y" { yyval = yyvsp[0]; } #line 41409 "SecParser.tab.cpp" break; case 1091: /* UPDATESEARCH_fun: naming UPDATESEARCH_fun_1 */ #line 14969 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 41419 "SecParser.tab.cpp" break; case 1092: /* UPDATESEARCH_fun: naming UPDATESEARCH_fun_1 ZZDEFAULTSEP valueexpr */ #line 14975 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 41429 "SecParser.tab.cpp" break; case 1093: /* UPDATESEARCH_fun: UPDATESEARCH_fun_1 */ #line 14980 "SecParser.y" {yyval = yyvsp[0];} #line 41435 "SecParser.tab.cpp" break; case 1094: /* UPDATESEARCH_fun: UPDATESEARCH_fun_1 ZZDEFAULTSEP valueexpr */ #line 14982 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41441 "SecParser.tab.cpp" break; case 1095: /* $@155: %empty */ #line 14989 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41454 "SecParser.tab.cpp" break; case 1096: /* UPDATESEARCH_fun_1: $@155 valueexpr */ #line 14998 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41473 "SecParser.tab.cpp" break; case 1097: /* UPDATESEARCH_fun_1: function */ #line 15012 "SecParser.y" { yyval = yyvsp[0]; } #line 41479 "SecParser.tab.cpp" break; case 1098: /* UPDATESEARCH_funlist: UPDATESEARCH_funlist_1 */ #line 15020 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 41488 "SecParser.tab.cpp" break; case 1099: /* UPDATESEARCH_funlist_1: UPDATESEARCH_fun */ #line 15030 "SecParser.y" {yyval = yyvsp[0];} #line 41494 "SecParser.tab.cpp" break; case 1100: /* UPDATESEARCH_funlist_1: UPDATESEARCH_funlist_1 ',' UPDATESEARCH_fun */ #line 15032 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41502 "SecParser.tab.cpp" break; case 1101: /* UPDATEDIRECT_fun: naming UPDATEDIRECT_fun_1 */ #line 15042 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 41512 "SecParser.tab.cpp" break; case 1102: /* UPDATEDIRECT_fun: naming UPDATEDIRECT_fun_1 ZZDEFAULTSEP valueexpr */ #line 15048 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 41522 "SecParser.tab.cpp" break; case 1103: /* UPDATEDIRECT_fun: UPDATEDIRECT_fun_1 */ #line 15053 "SecParser.y" {yyval = yyvsp[0];} #line 41528 "SecParser.tab.cpp" break; case 1104: /* UPDATEDIRECT_fun: UPDATEDIRECT_fun_1 ZZDEFAULTSEP valueexpr */ #line 15055 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41534 "SecParser.tab.cpp" break; case 1105: /* $@156: %empty */ #line 15062 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41547 "SecParser.tab.cpp" break; case 1106: /* UPDATEDIRECT_fun_1: $@156 valueexpr */ #line 15071 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41566 "SecParser.tab.cpp" break; case 1107: /* UPDATEDIRECT_fun_1: function */ #line 15085 "SecParser.y" { yyval = yyvsp[0]; } #line 41572 "SecParser.tab.cpp" break; case 1108: /* UPDATEDIRECT_funlist: UPDATEDIRECT_funlist_1 */ #line 15093 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 41581 "SecParser.tab.cpp" break; case 1109: /* UPDATEDIRECT_funlist_1: UPDATEDIRECT_fun */ #line 15103 "SecParser.y" {yyval = yyvsp[0];} #line 41587 "SecParser.tab.cpp" break; case 1110: /* UPDATEDIRECT_funlist_1: UPDATEDIRECT_funlist_1 ',' UPDATEDIRECT_fun */ #line 15105 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41595 "SecParser.tab.cpp" break; case 1111: /* UPDATEDIRECT2_fun: naming UPDATEDIRECT2_fun_1 */ #line 15115 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 41605 "SecParser.tab.cpp" break; case 1112: /* UPDATEDIRECT2_fun: naming UPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr */ #line 15121 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 41615 "SecParser.tab.cpp" break; case 1113: /* UPDATEDIRECT2_fun: UPDATEDIRECT2_fun_1 */ #line 15126 "SecParser.y" {yyval = yyvsp[0];} #line 41621 "SecParser.tab.cpp" break; case 1114: /* UPDATEDIRECT2_fun: UPDATEDIRECT2_fun_1 ZZDEFAULTSEP valueexpr */ #line 15128 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41627 "SecParser.tab.cpp" break; case 1115: /* $@157: %empty */ #line 15135 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"tuple2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 41645 "SecParser.tab.cpp" break; case 1116: /* UPDATEDIRECT2_fun_1: $@157 valueexpr */ #line 15149 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 41671 "SecParser.tab.cpp" break; case 1117: /* UPDATEDIRECT2_fun_1: function */ #line 15170 "SecParser.y" { yyval = yyvsp[0]; } #line 41677 "SecParser.tab.cpp" break; case 1118: /* UPDATEDIRECT2_funlist: UPDATEDIRECT2_funlist_1 */ #line 15178 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 41686 "SecParser.tab.cpp" break; case 1119: /* UPDATEDIRECT2_funlist_1: UPDATEDIRECT2_fun */ #line 15188 "SecParser.y" {yyval = yyvsp[0];} #line 41692 "SecParser.tab.cpp" break; case 1120: /* UPDATEDIRECT2_funlist_1: UPDATEDIRECT2_funlist_1 ',' UPDATEDIRECT2_fun */ #line 15190 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41700 "SecParser.tab.cpp" break; case 1121: /* UPDATEBYID2_fun: naming UPDATEBYID2_fun_1 */ #line 15200 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 41710 "SecParser.tab.cpp" break; case 1122: /* UPDATEBYID2_fun: naming UPDATEBYID2_fun_1 ZZDEFAULTSEP valueexpr */ #line 15206 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 41720 "SecParser.tab.cpp" break; case 1123: /* UPDATEBYID2_fun: UPDATEBYID2_fun_1 */ #line 15211 "SecParser.y" {yyval = yyvsp[0];} #line 41726 "SecParser.tab.cpp" break; case 1124: /* UPDATEBYID2_fun: UPDATEBYID2_fun_1 ZZDEFAULTSEP valueexpr */ #line 15213 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41732 "SecParser.tab.cpp" break; case 1125: /* $@158: %empty */ #line 15220 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"tuple2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 41750 "SecParser.tab.cpp" break; case 1126: /* UPDATEBYID2_fun_1: $@158 valueexpr */ #line 15234 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 41776 "SecParser.tab.cpp" break; case 1127: /* UPDATEBYID2_fun_1: function */ #line 15255 "SecParser.y" { yyval = yyvsp[0]; } #line 41782 "SecParser.tab.cpp" break; case 1128: /* UPDATEBYID2_funlist: UPDATEBYID2_funlist_1 */ #line 15263 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 41791 "SecParser.tab.cpp" break; case 1129: /* UPDATEBYID2_funlist_1: UPDATEBYID2_fun */ #line 15273 "SecParser.y" {yyval = yyvsp[0];} #line 41797 "SecParser.tab.cpp" break; case 1130: /* UPDATEBYID2_funlist_1: UPDATEBYID2_funlist_1 ',' UPDATEBYID2_fun */ #line 15275 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41805 "SecParser.tab.cpp" break; case 1131: /* UPDATESEARCHSAVE_fun: naming UPDATESEARCHSAVE_fun_1 */ #line 15285 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 41815 "SecParser.tab.cpp" break; case 1132: /* UPDATESEARCHSAVE_fun: naming UPDATESEARCHSAVE_fun_1 ZZDEFAULTSEP valueexpr */ #line 15291 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 41825 "SecParser.tab.cpp" break; case 1133: /* UPDATESEARCHSAVE_fun: UPDATESEARCHSAVE_fun_1 */ #line 15296 "SecParser.y" {yyval = yyvsp[0];} #line 41831 "SecParser.tab.cpp" break; case 1134: /* UPDATESEARCHSAVE_fun: UPDATESEARCHSAVE_fun_1 ZZDEFAULTSEP valueexpr */ #line 15298 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41837 "SecParser.tab.cpp" break; case 1135: /* $@159: %empty */ #line 15305 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41850 "SecParser.tab.cpp" break; case 1136: /* UPDATESEARCHSAVE_fun_1: $@159 valueexpr */ #line 15314 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41869 "SecParser.tab.cpp" break; case 1137: /* UPDATESEARCHSAVE_fun_1: function */ #line 15328 "SecParser.y" { yyval = yyvsp[0]; } #line 41875 "SecParser.tab.cpp" break; case 1138: /* UPDATESEARCHSAVE_funlist: UPDATESEARCHSAVE_funlist_1 */ #line 15336 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 41884 "SecParser.tab.cpp" break; case 1139: /* UPDATESEARCHSAVE_funlist_1: UPDATESEARCHSAVE_fun */ #line 15346 "SecParser.y" {yyval = yyvsp[0];} #line 41890 "SecParser.tab.cpp" break; case 1140: /* UPDATESEARCHSAVE_funlist_1: UPDATESEARCHSAVE_funlist_1 ',' UPDATESEARCHSAVE_fun */ #line 15348 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41898 "SecParser.tab.cpp" break; case 1141: /* UPDATEDIRECTSAVE_fun: naming UPDATEDIRECTSAVE_fun_1 */ #line 15358 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 41908 "SecParser.tab.cpp" break; case 1142: /* UPDATEDIRECTSAVE_fun: naming UPDATEDIRECTSAVE_fun_1 ZZDEFAULTSEP valueexpr */ #line 15364 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 41918 "SecParser.tab.cpp" break; case 1143: /* UPDATEDIRECTSAVE_fun: UPDATEDIRECTSAVE_fun_1 */ #line 15369 "SecParser.y" {yyval = yyvsp[0];} #line 41924 "SecParser.tab.cpp" break; case 1144: /* UPDATEDIRECTSAVE_fun: UPDATEDIRECTSAVE_fun_1 ZZDEFAULTSEP valueexpr */ #line 15371 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41930 "SecParser.tab.cpp" break; case 1145: /* $@160: %empty */ #line 15378 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 41943 "SecParser.tab.cpp" break; case 1146: /* UPDATEDIRECTSAVE_fun_1: $@160 valueexpr */ #line 15387 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 41962 "SecParser.tab.cpp" break; case 1147: /* UPDATEDIRECTSAVE_fun_1: function */ #line 15401 "SecParser.y" { yyval = yyvsp[0]; } #line 41968 "SecParser.tab.cpp" break; case 1148: /* UPDATEDIRECTSAVE_funlist: UPDATEDIRECTSAVE_funlist_1 */ #line 15409 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 41977 "SecParser.tab.cpp" break; case 1149: /* UPDATEDIRECTSAVE_funlist_1: UPDATEDIRECTSAVE_fun */ #line 15419 "SecParser.y" {yyval = yyvsp[0];} #line 41983 "SecParser.tab.cpp" break; case 1150: /* UPDATEDIRECTSAVE_funlist_1: UPDATEDIRECTSAVE_funlist_1 ',' UPDATEDIRECTSAVE_fun */ #line 15421 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 41991 "SecParser.tab.cpp" break; case 1151: /* UPDATEBYID_fun: naming UPDATEBYID_fun_1 */ #line 15431 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 42001 "SecParser.tab.cpp" break; case 1152: /* UPDATEBYID_fun: naming UPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr */ #line 15437 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 42011 "SecParser.tab.cpp" break; case 1153: /* UPDATEBYID_fun: UPDATEBYID_fun_1 */ #line 15442 "SecParser.y" {yyval = yyvsp[0];} #line 42017 "SecParser.tab.cpp" break; case 1154: /* UPDATEBYID_fun: UPDATEBYID_fun_1 ZZDEFAULTSEP valueexpr */ #line 15444 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42023 "SecParser.tab.cpp" break; case 1155: /* $@161: %empty */ #line 15451 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42036 "SecParser.tab.cpp" break; case 1156: /* UPDATEBYID_fun_1: $@161 valueexpr */ #line 15460 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42055 "SecParser.tab.cpp" break; case 1157: /* UPDATEBYID_fun_1: function */ #line 15474 "SecParser.y" { yyval = yyvsp[0]; } #line 42061 "SecParser.tab.cpp" break; case 1158: /* UPDATEBYID_funlist: UPDATEBYID_funlist_1 */ #line 15482 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 42070 "SecParser.tab.cpp" break; case 1159: /* UPDATEBYID_funlist_1: UPDATEBYID_fun */ #line 15492 "SecParser.y" {yyval = yyvsp[0];} #line 42076 "SecParser.tab.cpp" break; case 1160: /* UPDATEBYID_funlist_1: UPDATEBYID_funlist_1 ',' UPDATEBYID_fun */ #line 15494 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42084 "SecParser.tab.cpp" break; case 1161: /* $@162: %empty */ #line 15503 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42097 "SecParser.tab.cpp" break; case 1162: /* FILTERINSERT_fun: $@162 valueexpr */ #line 15512 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42116 "SecParser.tab.cpp" break; case 1163: /* FILTERINSERT_fun: function */ #line 15526 "SecParser.y" { yyval = yyvsp[0]; } #line 42122 "SecParser.tab.cpp" break; case 1164: /* CPROJECTEXTEND_fun: naming CPROJECTEXTEND_fun_1 */ #line 15534 "SecParser.y" {yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")")) ))));} #line 42132 "SecParser.tab.cpp" break; case 1165: /* CPROJECTEXTEND_fun: naming CPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 15540 "SecParser.y" {yyval = NestedText::Concat( (USE_AUTO_BUFFER?NestedText::AtomC("( ! (") :NestedText::AtomC("(")), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , (USE_AUTO_BUFFER?NestedText::AtomC("))") :NestedText::AtomC(")")) ))))));} #line 42142 "SecParser.tab.cpp" break; case 1166: /* CPROJECTEXTEND_fun: CPROJECTEXTEND_fun_1 */ #line 15545 "SecParser.y" {yyval = yyvsp[0];} #line 42148 "SecParser.tab.cpp" break; case 1167: /* CPROJECTEXTEND_fun: CPROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 15547 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42154 "SecParser.tab.cpp" break; case 1168: /* $@163: %empty */ #line 15554 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42167 "SecParser.tab.cpp" break; case 1169: /* CPROJECTEXTEND_fun_1: $@163 valueexpr */ #line 15563 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42186 "SecParser.tab.cpp" break; case 1170: /* CPROJECTEXTEND_fun_1: function */ #line 15577 "SecParser.y" { yyval = yyvsp[0]; } #line 42192 "SecParser.tab.cpp" break; case 1171: /* CPROJECTEXTEND_funlist: CPROJECTEXTEND_funlist_1 */ #line 15585 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 42201 "SecParser.tab.cpp" break; case 1172: /* CPROJECTEXTEND_funlist_1: CPROJECTEXTEND_fun */ #line 15595 "SecParser.y" {yyval = yyvsp[0];} #line 42207 "SecParser.tab.cpp" break; case 1173: /* CPROJECTEXTEND_funlist_1: CPROJECTEXTEND_funlist_1 ',' CPROJECTEXTEND_fun */ #line 15597 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42215 "SecParser.tab.cpp" break; case 1174: /* $@164: %empty */ #line 15606 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42228 "SecParser.tab.cpp" break; case 1175: /* MAP_fun: $@164 valueexpr */ #line 15615 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" CELL1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42247 "SecParser.tab.cpp" break; case 1176: /* MAP_fun: function */ #line 15629 "SecParser.y" { yyval = yyvsp[0]; } #line 42253 "SecParser.tab.cpp" break; case 1177: /* $@165: %empty */ #line 15636 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 42271 "SecParser.tab.cpp" break; case 1178: /* MAP2_fun: $@165 valueexpr */ #line 15650 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" CELL1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" CELL2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 42297 "SecParser.tab.cpp" break; case 1179: /* MAP2_fun: function */ #line 15671 "SecParser.y" { yyval = yyvsp[0]; } #line 42303 "SecParser.tab.cpp" break; case 1180: /* $@166: %empty */ #line 15678 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42316 "SecParser.tab.cpp" break; case 1181: /* MATCHGRID_fun: $@166 valueexpr */ #line 15687 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" CELLS"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42335 "SecParser.tab.cpp" break; case 1182: /* MATCHGRID_fun: function */ #line 15701 "SecParser.y" { yyval = yyvsp[0]; } #line 42341 "SecParser.tab.cpp" break; case 1183: /* $@167: %empty */ #line 15708 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42354 "SecParser.tab.cpp" break; case 1184: /* REPLACEELEM_fun: $@167 valueexpr */ #line 15717 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42373 "SecParser.tab.cpp" break; case 1185: /* REPLACEELEM_fun: function */ #line 15731 "SecParser.y" { yyval = yyvsp[0]; } #line 42379 "SecParser.tab.cpp" break; case 1186: /* GROUPBY2_fun: naming GROUPBY2_fun_1 */ #line 15739 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 42389 "SecParser.tab.cpp" break; case 1187: /* GROUPBY2_fun: naming GROUPBY2_fun_1 ZZDEFAULTSEP valueexpr */ #line 15745 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 42399 "SecParser.tab.cpp" break; case 1188: /* GROUPBY2_fun: GROUPBY2_fun_1 */ #line 15750 "SecParser.y" {yyval = yyvsp[0];} #line 42405 "SecParser.tab.cpp" break; case 1189: /* GROUPBY2_fun: GROUPBY2_fun_1 ZZDEFAULTSEP valueexpr */ #line 15752 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42411 "SecParser.tab.cpp" break; case 1190: /* $@168: %empty */ #line 15759 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42424 "SecParser.tab.cpp" break; case 1191: /* GROUPBY2_fun_1: $@168 valueexpr */ #line 15768 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42443 "SecParser.tab.cpp" break; case 1192: /* GROUPBY2_fun_1: function */ #line 15782 "SecParser.y" { yyval = yyvsp[0]; } #line 42449 "SecParser.tab.cpp" break; case 1193: /* GROUPBY2_funlist: GROUPBY2_funlist_1 */ #line 15790 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 42458 "SecParser.tab.cpp" break; case 1194: /* GROUPBY2_funlist_1: GROUPBY2_fun */ #line 15800 "SecParser.y" {yyval = yyvsp[0];} #line 42464 "SecParser.tab.cpp" break; case 1195: /* GROUPBY2_funlist_1: GROUPBY2_funlist_1 ',' GROUPBY2_fun */ #line 15802 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42472 "SecParser.tab.cpp" break; case 1196: /* $@169: %empty */ #line 15811 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42485 "SecParser.tab.cpp" break; case 1197: /* HADOOPMAP_fun: $@169 valueexpr */ #line 15820 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42504 "SecParser.tab.cpp" break; case 1198: /* HADOOPMAP_fun: function */ #line 15834 "SecParser.y" { yyval = yyvsp[0]; } #line 42510 "SecParser.tab.cpp" break; case 1199: /* $@170: %empty */ #line 15841 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42523 "SecParser.tab.cpp" break; case 1200: /* HADOOPREDUCE_fun: $@170 valueexpr */ #line 15850 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42542 "SecParser.tab.cpp" break; case 1201: /* HADOOPREDUCE_fun: function */ #line 15864 "SecParser.y" { yyval = yyvsp[0]; } #line 42548 "SecParser.tab.cpp" break; case 1202: /* $@171: %empty */ #line 15871 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lobject2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 42566 "SecParser.tab.cpp" break; case 1203: /* HADOOPREDUCE2_fun: $@171 valueexpr */ #line 15885 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TPARA2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 42592 "SecParser.tab.cpp" break; case 1204: /* HADOOPREDUCE2_fun: function */ #line 15906 "SecParser.y" { yyval = yyvsp[0]; } #line 42598 "SecParser.tab.cpp" break; case 1205: /* $@172: %empty */ #line 15913 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lobject1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lobject2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 42616 "SecParser.tab.cpp" break; case 1206: /* HADOOPMAP2_fun: $@172 valueexpr */ #line 15927 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TPARA"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TPARA2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 42642 "SecParser.tab.cpp" break; case 1207: /* HADOOPMAP2_fun: function */ #line 15948 "SecParser.y" { yyval = yyvsp[0]; } #line 42648 "SecParser.tab.cpp" break; case 1208: /* $@173: %empty */ #line 15955 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42661 "SecParser.tab.cpp" break; case 1209: /* GPATTERN_fun: $@173 valueexpr */ #line 15964 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42680 "SecParser.tab.cpp" break; case 1210: /* GPATTERN_fun: function */ #line 15978 "SecParser.y" { yyval = yyvsp[0]; } #line 42686 "SecParser.tab.cpp" break; case 1211: /* $@174: %empty */ #line 15985 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42699 "SecParser.tab.cpp" break; case 1212: /* CROSSPATTERN_fun: $@174 valueexpr */ #line 15994 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42718 "SecParser.tab.cpp" break; case 1213: /* CROSSPATTERN_fun: function */ #line 16008 "SecParser.y" { yyval = yyvsp[0]; } #line 42724 "SecParser.tab.cpp" break; case 1214: /* $@175: %empty */ #line 16015 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42737 "SecParser.tab.cpp" break; case 1215: /* MTHREADEDFILTER_fun: $@175 valueexpr */ #line 16024 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42756 "SecParser.tab.cpp" break; case 1216: /* MTHREADEDFILTER_fun: function */ #line 16038 "SecParser.y" { yyval = yyvsp[0]; } #line 42762 "SecParser.tab.cpp" break; case 1217: /* $@176: %empty */ #line 16045 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42775 "SecParser.tab.cpp" break; case 1218: /* CANCEL_fun: $@176 valueexpr */ #line 16054 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42794 "SecParser.tab.cpp" break; case 1219: /* CANCEL_fun: function */ #line 16068 "SecParser.y" { yyval = yyvsp[0]; } #line 42800 "SecParser.tab.cpp" break; case 1220: /* PROJECTEXTEND_fun: naming PROJECTEXTEND_fun_1 */ #line 16076 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 42810 "SecParser.tab.cpp" break; case 1221: /* PROJECTEXTEND_fun: naming PROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 16082 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 42820 "SecParser.tab.cpp" break; case 1222: /* PROJECTEXTEND_fun: PROJECTEXTEND_fun_1 */ #line 16087 "SecParser.y" {yyval = yyvsp[0];} #line 42826 "SecParser.tab.cpp" break; case 1223: /* PROJECTEXTEND_fun: PROJECTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 16089 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42832 "SecParser.tab.cpp" break; case 1224: /* $@177: %empty */ #line 16096 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42845 "SecParser.tab.cpp" break; case 1225: /* PROJECTEXTEND_fun_1: $@177 valueexpr */ #line 16105 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42864 "SecParser.tab.cpp" break; case 1226: /* PROJECTEXTEND_fun_1: function */ #line 16119 "SecParser.y" { yyval = yyvsp[0]; } #line 42870 "SecParser.tab.cpp" break; case 1227: /* PROJECTEXTEND_funlist: PROJECTEXTEND_funlist_1 */ #line 16127 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 42879 "SecParser.tab.cpp" break; case 1228: /* PROJECTEXTEND_funlist_1: PROJECTEXTEND_fun */ #line 16137 "SecParser.y" {yyval = yyvsp[0];} #line 42885 "SecParser.tab.cpp" break; case 1229: /* PROJECTEXTEND_funlist_1: PROJECTEXTEND_funlist_1 ',' PROJECTEXTEND_fun */ #line 16139 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42893 "SecParser.tab.cpp" break; case 1230: /* EXTENDSTREAM_fun: naming EXTENDSTREAM_fun_1 */ #line 16149 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 42903 "SecParser.tab.cpp" break; case 1231: /* EXTENDSTREAM_fun: naming EXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 16155 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 42913 "SecParser.tab.cpp" break; case 1232: /* EXTENDSTREAM_fun: EXTENDSTREAM_fun_1 */ #line 16160 "SecParser.y" {yyval = yyvsp[0];} #line 42919 "SecParser.tab.cpp" break; case 1233: /* EXTENDSTREAM_fun: EXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 16162 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42925 "SecParser.tab.cpp" break; case 1234: /* $@178: %empty */ #line 16169 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 42938 "SecParser.tab.cpp" break; case 1235: /* EXTENDSTREAM_fun_1: $@178 valueexpr */ #line 16178 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 42957 "SecParser.tab.cpp" break; case 1236: /* EXTENDSTREAM_fun_1: function */ #line 16192 "SecParser.y" { yyval = yyvsp[0]; } #line 42963 "SecParser.tab.cpp" break; case 1237: /* EXTENDSTREAM_funlist: EXTENDSTREAM_funlist_1 */ #line 16200 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 42972 "SecParser.tab.cpp" break; case 1238: /* EXTENDSTREAM_funlist_1: EXTENDSTREAM_fun */ #line 16210 "SecParser.y" {yyval = yyvsp[0];} #line 42978 "SecParser.tab.cpp" break; case 1239: /* EXTENDSTREAM_funlist_1: EXTENDSTREAM_funlist_1 ',' EXTENDSTREAM_fun */ #line 16212 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 42986 "SecParser.tab.cpp" break; case 1240: /* PROJECTEXTENDSTREAM_fun: naming PROJECTEXTENDSTREAM_fun_1 */ #line 16222 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 42996 "SecParser.tab.cpp" break; case 1241: /* PROJECTEXTENDSTREAM_fun: naming PROJECTEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 16228 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 43006 "SecParser.tab.cpp" break; case 1242: /* PROJECTEXTENDSTREAM_fun: PROJECTEXTENDSTREAM_fun_1 */ #line 16233 "SecParser.y" {yyval = yyvsp[0];} #line 43012 "SecParser.tab.cpp" break; case 1243: /* PROJECTEXTENDSTREAM_fun: PROJECTEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 16235 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43018 "SecParser.tab.cpp" break; case 1244: /* $@179: %empty */ #line 16242 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 43031 "SecParser.tab.cpp" break; case 1245: /* PROJECTEXTENDSTREAM_fun_1: $@179 valueexpr */ #line 16251 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 43050 "SecParser.tab.cpp" break; case 1246: /* PROJECTEXTENDSTREAM_fun_1: function */ #line 16265 "SecParser.y" { yyval = yyvsp[0]; } #line 43056 "SecParser.tab.cpp" break; case 1247: /* PROJECTEXTENDSTREAM_funlist: PROJECTEXTENDSTREAM_funlist_1 */ #line 16273 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 43065 "SecParser.tab.cpp" break; case 1248: /* PROJECTEXTENDSTREAM_funlist_1: PROJECTEXTENDSTREAM_fun */ #line 16283 "SecParser.y" {yyval = yyvsp[0];} #line 43071 "SecParser.tab.cpp" break; case 1249: /* PROJECTEXTENDSTREAM_funlist_1: PROJECTEXTENDSTREAM_funlist_1 ',' PROJECTEXTENDSTREAM_fun */ #line 16285 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43079 "SecParser.tab.cpp" break; case 1250: /* GROUPBY_fun: naming GROUPBY_fun_1 */ #line 16295 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 43089 "SecParser.tab.cpp" break; case 1251: /* GROUPBY_fun: naming GROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 16301 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 43099 "SecParser.tab.cpp" break; case 1252: /* GROUPBY_fun: GROUPBY_fun_1 */ #line 16306 "SecParser.y" {yyval = yyvsp[0];} #line 43105 "SecParser.tab.cpp" break; case 1253: /* GROUPBY_fun: GROUPBY_fun_1 ZZDEFAULTSEP valueexpr */ #line 16308 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43111 "SecParser.tab.cpp" break; case 1254: /* $@180: %empty */ #line 16315 "SecParser.y" { pair p; paramno++; strcpy(paramname,"group"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 43124 "SecParser.tab.cpp" break; case 1255: /* GROUPBY_fun_1: $@180 valueexpr */ #line 16324 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GROUP"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 43143 "SecParser.tab.cpp" break; case 1256: /* GROUPBY_fun_1: function */ #line 16338 "SecParser.y" { yyval = yyvsp[0]; } #line 43149 "SecParser.tab.cpp" break; case 1257: /* GROUPBY_funlist: GROUPBY_funlist_1 */ #line 16346 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 43158 "SecParser.tab.cpp" break; case 1258: /* GROUPBY_funlist_1: GROUPBY_fun */ #line 16356 "SecParser.y" {yyval = yyvsp[0];} #line 43164 "SecParser.tab.cpp" break; case 1259: /* GROUPBY_funlist_1: GROUPBY_funlist_1 ',' GROUPBY_fun */ #line 16358 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43172 "SecParser.tab.cpp" break; case 1260: /* SLIDINGWINDOW_fun: naming SLIDINGWINDOW_fun_1 */ #line 16368 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 43182 "SecParser.tab.cpp" break; case 1261: /* SLIDINGWINDOW_fun: naming SLIDINGWINDOW_fun_1 ZZDEFAULTSEP valueexpr */ #line 16374 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 43192 "SecParser.tab.cpp" break; case 1262: /* SLIDINGWINDOW_fun: SLIDINGWINDOW_fun_1 */ #line 16379 "SecParser.y" {yyval = yyvsp[0];} #line 43198 "SecParser.tab.cpp" break; case 1263: /* SLIDINGWINDOW_fun: SLIDINGWINDOW_fun_1 ZZDEFAULTSEP valueexpr */ #line 16381 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43204 "SecParser.tab.cpp" break; case 1264: /* $@181: %empty */ #line 16388 "SecParser.y" { pair p; paramno++; strcpy(paramname,"group"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 43217 "SecParser.tab.cpp" break; case 1265: /* SLIDINGWINDOW_fun_1: $@181 valueexpr */ #line 16397 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" GROUP"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 43236 "SecParser.tab.cpp" break; case 1266: /* SLIDINGWINDOW_fun_1: function */ #line 16411 "SecParser.y" { yyval = yyvsp[0]; } #line 43242 "SecParser.tab.cpp" break; case 1267: /* SLIDINGWINDOW_funlist: SLIDINGWINDOW_funlist_1 */ #line 16419 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 43251 "SecParser.tab.cpp" break; case 1268: /* SLIDINGWINDOW_funlist_1: SLIDINGWINDOW_fun */ #line 16429 "SecParser.y" {yyval = yyvsp[0];} #line 43257 "SecParser.tab.cpp" break; case 1269: /* SLIDINGWINDOW_funlist_1: SLIDINGWINDOW_funlist_1 ',' SLIDINGWINDOW_fun */ #line 16431 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43265 "SecParser.tab.cpp" break; case 1270: /* $@182: %empty */ #line 16440 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 43278 "SecParser.tab.cpp" break; case 1271: /* LOOPJOIN_fun: $@182 valueexpr */ #line 16449 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 43297 "SecParser.tab.cpp" break; case 1272: /* LOOPJOIN_fun: function */ #line 16463 "SecParser.y" { yyval = yyvsp[0]; } #line 43303 "SecParser.tab.cpp" break; case 1273: /* $@183: %empty */ #line 16470 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 43316 "SecParser.tab.cpp" break; case 1274: /* LOOPSEL_fun: $@183 valueexpr */ #line 16479 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 43335 "SecParser.tab.cpp" break; case 1275: /* LOOPSEL_fun: function */ #line 16493 "SecParser.y" { yyval = yyvsp[0]; } #line 43341 "SecParser.tab.cpp" break; case 1276: /* $@184: %empty */ #line 16500 "SecParser.y" { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43359 "SecParser.tab.cpp" break; case 1277: /* AGGREGATE_fun: $@184 valueexpr */ #line 16514 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43385 "SecParser.tab.cpp" break; case 1278: /* AGGREGATE_fun: function */ #line 16535 "SecParser.y" { yyval = yyvsp[0]; } #line 43391 "SecParser.tab.cpp" break; case 1279: /* $@185: %empty */ #line 16542 "SecParser.y" { pair p; paramno++; strcpy(paramname,"argument1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"argument2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43409 "SecParser.tab.cpp" break; case 1280: /* AGGREGATEB_fun: $@185 valueexpr */ #line 16556 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" AGGRTYPE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43435 "SecParser.tab.cpp" break; case 1281: /* AGGREGATEB_fun: function */ #line 16577 "SecParser.y" { yyval = yyvsp[0]; } #line 43441 "SecParser.tab.cpp" break; case 1282: /* $@186: %empty */ #line 16584 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43459 "SecParser.tab.cpp" break; case 1283: /* SYMMJOIN_fun: $@186 valueexpr */ #line 16598 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43485 "SecParser.tab.cpp" break; case 1284: /* SYMMJOIN_fun: function */ #line 16619 "SecParser.y" { yyval = yyvsp[0]; } #line 43491 "SecParser.tab.cpp" break; case 1285: /* $@187: %empty */ #line 16626 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43509 "SecParser.tab.cpp" break; case 1286: /* SYMMOUTERJOIN_fun: $@187 valueexpr */ #line 16640 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43535 "SecParser.tab.cpp" break; case 1287: /* SYMMOUTERJOIN_fun: function */ #line 16661 "SecParser.y" { yyval = yyvsp[0]; } #line 43541 "SecParser.tab.cpp" break; case 1288: /* SYMMPRODUCTEXTEND_fun: naming SYMMPRODUCTEXTEND_fun_1 */ #line 16669 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 43551 "SecParser.tab.cpp" break; case 1289: /* SYMMPRODUCTEXTEND_fun: naming SYMMPRODUCTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 16675 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 43561 "SecParser.tab.cpp" break; case 1290: /* SYMMPRODUCTEXTEND_fun: SYMMPRODUCTEXTEND_fun_1 */ #line 16680 "SecParser.y" {yyval = yyvsp[0];} #line 43567 "SecParser.tab.cpp" break; case 1291: /* SYMMPRODUCTEXTEND_fun: SYMMPRODUCTEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 16682 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43573 "SecParser.tab.cpp" break; case 1292: /* $@188: %empty */ #line 16689 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43591 "SecParser.tab.cpp" break; case 1293: /* SYMMPRODUCTEXTEND_fun_1: $@188 valueexpr */ #line 16703 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43617 "SecParser.tab.cpp" break; case 1294: /* SYMMPRODUCTEXTEND_fun_1: function */ #line 16724 "SecParser.y" { yyval = yyvsp[0]; } #line 43623 "SecParser.tab.cpp" break; case 1295: /* SYMMPRODUCTEXTEND_funlist: SYMMPRODUCTEXTEND_funlist_1 */ #line 16732 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 43632 "SecParser.tab.cpp" break; case 1296: /* SYMMPRODUCTEXTEND_funlist_1: SYMMPRODUCTEXTEND_fun */ #line 16742 "SecParser.y" {yyval = yyvsp[0];} #line 43638 "SecParser.tab.cpp" break; case 1297: /* SYMMPRODUCTEXTEND_funlist_1: SYMMPRODUCTEXTEND_funlist_1 ',' SYMMPRODUCTEXTEND_fun */ #line 16744 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43646 "SecParser.tab.cpp" break; case 1298: /* EXTEND_LAST_fun: naming EXTEND_LAST_fun_1 */ #line 16754 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 43656 "SecParser.tab.cpp" break; case 1299: /* EXTEND_LAST_fun: naming EXTEND_LAST_fun_1 ZZDEFAULTSEP valueexpr */ #line 16760 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 43666 "SecParser.tab.cpp" break; case 1300: /* EXTEND_LAST_fun: EXTEND_LAST_fun_1 */ #line 16765 "SecParser.y" {yyval = yyvsp[0];} #line 43672 "SecParser.tab.cpp" break; case 1301: /* EXTEND_LAST_fun: EXTEND_LAST_fun_1 ZZDEFAULTSEP valueexpr */ #line 16767 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43678 "SecParser.tab.cpp" break; case 1302: /* $@189: %empty */ #line 16774 "SecParser.y" { pair p; paramno++; strcpy(paramname,"currenttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lasttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43696 "SecParser.tab.cpp" break; case 1303: /* EXTEND_LAST_fun_1: $@189 valueexpr */ #line 16788 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43722 "SecParser.tab.cpp" break; case 1304: /* EXTEND_LAST_fun_1: function */ #line 16809 "SecParser.y" { yyval = yyvsp[0]; } #line 43728 "SecParser.tab.cpp" break; case 1305: /* EXTEND_LAST_funlist: EXTEND_LAST_funlist_1 */ #line 16817 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 43737 "SecParser.tab.cpp" break; case 1306: /* EXTEND_LAST_funlist_1: EXTEND_LAST_fun */ #line 16827 "SecParser.y" {yyval = yyvsp[0];} #line 43743 "SecParser.tab.cpp" break; case 1307: /* EXTEND_LAST_funlist_1: EXTEND_LAST_funlist_1 ',' EXTEND_LAST_fun */ #line 16829 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43751 "SecParser.tab.cpp" break; case 1308: /* EXTEND_NEXT_fun: naming EXTEND_NEXT_fun_1 */ #line 16839 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 43761 "SecParser.tab.cpp" break; case 1309: /* EXTEND_NEXT_fun: naming EXTEND_NEXT_fun_1 ZZDEFAULTSEP valueexpr */ #line 16845 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 43771 "SecParser.tab.cpp" break; case 1310: /* EXTEND_NEXT_fun: EXTEND_NEXT_fun_1 */ #line 16850 "SecParser.y" {yyval = yyvsp[0];} #line 43777 "SecParser.tab.cpp" break; case 1311: /* EXTEND_NEXT_fun: EXTEND_NEXT_fun_1 ZZDEFAULTSEP valueexpr */ #line 16852 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43783 "SecParser.tab.cpp" break; case 1312: /* $@190: %empty */ #line 16859 "SecParser.y" { pair p; paramno++; strcpy(paramname,"currenttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lasttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43801 "SecParser.tab.cpp" break; case 1313: /* EXTEND_NEXT_fun_1: $@190 valueexpr */ #line 16873 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43827 "SecParser.tab.cpp" break; case 1314: /* EXTEND_NEXT_fun_1: function */ #line 16894 "SecParser.y" { yyval = yyvsp[0]; } #line 43833 "SecParser.tab.cpp" break; case 1315: /* EXTEND_NEXT_funlist: EXTEND_NEXT_funlist_1 */ #line 16902 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 43842 "SecParser.tab.cpp" break; case 1316: /* EXTEND_NEXT_funlist_1: EXTEND_NEXT_fun */ #line 16912 "SecParser.y" {yyval = yyvsp[0];} #line 43848 "SecParser.tab.cpp" break; case 1317: /* EXTEND_NEXT_funlist_1: EXTEND_NEXT_funlist_1 ',' EXTEND_NEXT_fun */ #line 16914 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43856 "SecParser.tab.cpp" break; case 1318: /* REPLACEATTR_fun: naming REPLACEATTR_fun_1 */ #line 16924 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 43866 "SecParser.tab.cpp" break; case 1319: /* REPLACEATTR_fun: naming REPLACEATTR_fun_1 ZZDEFAULTSEP valueexpr */ #line 16930 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 43876 "SecParser.tab.cpp" break; case 1320: /* REPLACEATTR_fun: REPLACEATTR_fun_1 */ #line 16935 "SecParser.y" {yyval = yyvsp[0];} #line 43882 "SecParser.tab.cpp" break; case 1321: /* REPLACEATTR_fun: REPLACEATTR_fun_1 ZZDEFAULTSEP valueexpr */ #line 16937 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43888 "SecParser.tab.cpp" break; case 1322: /* $@191: %empty */ #line 16944 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 43901 "SecParser.tab.cpp" break; case 1323: /* REPLACEATTR_fun_1: $@191 valueexpr */ #line 16953 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 43920 "SecParser.tab.cpp" break; case 1324: /* REPLACEATTR_fun_1: function */ #line 16967 "SecParser.y" { yyval = yyvsp[0]; } #line 43926 "SecParser.tab.cpp" break; case 1325: /* REPLACEATTR_funlist: REPLACEATTR_funlist_1 */ #line 16975 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 43935 "SecParser.tab.cpp" break; case 1326: /* REPLACEATTR_funlist_1: REPLACEATTR_fun */ #line 16985 "SecParser.y" {yyval = yyvsp[0];} #line 43941 "SecParser.tab.cpp" break; case 1327: /* REPLACEATTR_funlist_1: REPLACEATTR_funlist_1 ',' REPLACEATTR_fun */ #line 16987 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 43949 "SecParser.tab.cpp" break; case 1328: /* $@192: %empty */ #line 16996 "SecParser.y" { pair p; paramno++; strcpy(paramname,"currenttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"lasttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 43967 "SecParser.tab.cpp" break; case 1329: /* PFILTER_fun: $@192 valueexpr */ #line 17010 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 43993 "SecParser.tab.cpp" break; case 1330: /* PFILTER_fun: function */ #line 17031 "SecParser.y" { yyval = yyvsp[0]; } #line 43999 "SecParser.tab.cpp" break; case 1331: /* $@193: %empty */ #line 17038 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44012 "SecParser.tab.cpp" break; case 1332: /* EXTENDX_fun: $@193 valueexpr */ #line 17047 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44031 "SecParser.tab.cpp" break; case 1333: /* EXTENDX_fun: function */ #line 17061 "SecParser.y" { yyval = yyvsp[0]; } #line 44037 "SecParser.tab.cpp" break; case 1334: /* $@194: %empty */ #line 17068 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"value"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 44055 "SecParser.tab.cpp" break; case 1335: /* ADDMODCOUNTER_fun: $@194 valueexpr */ #line 17082 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" int"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 44081 "SecParser.tab.cpp" break; case 1336: /* ADDMODCOUNTER_fun: function */ #line 17103 "SecParser.y" { yyval = yyvsp[0]; } #line 44087 "SecParser.tab.cpp" break; case 1337: /* $@195: %empty */ #line 17110 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44100 "SecParser.tab.cpp" break; case 1338: /* USEHISTOGRAM_fun: $@195 valueexpr */ #line 17119 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44119 "SecParser.tab.cpp" break; case 1339: /* USEHISTOGRAM_fun: function */ #line 17133 "SecParser.y" { yyval = yyvsp[0]; } #line 44125 "SecParser.tab.cpp" break; case 1340: /* $@196: %empty */ #line 17140 "SecParser.y" { pair p; paramno++; strcpy(paramname,"element1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"element2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 44143 "SecParser.tab.cpp" break; case 1341: /* USEHISTOGRAM2_fun: $@196 valueexpr */ #line 17154 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ELEMENT"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 44169 "SecParser.tab.cpp" break; case 1342: /* USEHISTOGRAM2_fun: function */ #line 17175 "SecParser.y" { yyval = yyvsp[0]; } #line 44175 "SecParser.tab.cpp" break; case 1343: /* $@197: %empty */ #line 17182 "SecParser.y" { pair p; paramno++; strcpy(paramname,"dmapelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44188 "SecParser.tab.cpp" break; case 1344: /* DMAPS_fun: $@197 valueexpr */ #line 17191 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44207 "SecParser.tab.cpp" break; case 1345: /* DMAPS_fun: function */ #line 17205 "SecParser.y" { yyval = yyvsp[0]; } #line 44213 "SecParser.tab.cpp" break; case 1346: /* $@198: %empty */ #line 17212 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 44231 "SecParser.tab.cpp" break; case 1347: /* DMAPS2_fun: $@198 valueexpr */ #line 17226 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 44257 "SecParser.tab.cpp" break; case 1348: /* DMAPS2_fun: function */ #line 17247 "SecParser.y" { yyval = yyvsp[0]; } #line 44263 "SecParser.tab.cpp" break; case 1349: /* $@199: %empty */ #line 17254 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); } #line 44286 "SecParser.tab.cpp" break; case 1350: /* DMAPS3_fun: $@199 valueexpr */ #line 17273 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))); cleanVariables(3); restoreVariables(); } #line 44319 "SecParser.tab.cpp" break; case 1351: /* DMAPS3_fun: function */ #line 17301 "SecParser.y" { yyval = yyvsp[0]; } #line 44325 "SecParser.tab.cpp" break; case 1352: /* $@200: %empty */ #line 17308 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); } #line 44353 "SecParser.tab.cpp" break; case 1353: /* DMAPS4_fun: $@200 valueexpr */ #line 17332 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))); cleanVariables(4); restoreVariables(); } #line 44393 "SecParser.tab.cpp" break; case 1354: /* DMAPS4_fun: function */ #line 17367 "SecParser.y" { yyval = yyvsp[0]; } #line 44399 "SecParser.tab.cpp" break; case 1355: /* $@201: %empty */ #line 17374 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); paramno++; strcpy(paramname,"elem3"); sprintf(params[3], "%s_%d",paramname,paramno); p = pair(3, params[3]); paramstack.push(p); paramno++; strcpy(paramname,"elem4"); sprintf(params[4], "%s_%d",paramname,paramno); p = pair(4, params[4]); paramstack.push(p); paramno++; strcpy(paramname,"elem5"); sprintf(params[5], "%s_%d",paramname,paramno); p = pair(5, params[5]); paramstack.push(p); } #line 44432 "SecParser.tab.cpp" break; case 1356: /* DMAPS5_fun: $@201 valueexpr */ #line 17403 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[3]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[4]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG4"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[5]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG5"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))) )))) )))) )))); cleanVariables(5); restoreVariables(); } #line 44479 "SecParser.tab.cpp" break; case 1357: /* DMAPS5_fun: function */ #line 17445 "SecParser.y" { yyval = yyvsp[0]; } #line 44485 "SecParser.tab.cpp" break; case 1358: /* $@202: %empty */ #line 17452 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"elem2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 44503 "SecParser.tab.cpp" break; case 1359: /* DPRODUCTS_fun: $@202 valueexpr */ #line 17466 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARG1"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNFSARG2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 44529 "SecParser.tab.cpp" break; case 1360: /* DPRODUCTS_fun: function */ #line 17487 "SecParser.y" { yyval = yyvsp[0]; } #line 44535 "SecParser.tab.cpp" break; case 1361: /* $@203: %empty */ #line 17494 "SecParser.y" { pair p; paramno++; strcpy(paramname,"arg1"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"arg2"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 44553 "SecParser.tab.cpp" break; case 1362: /* PARTITIONFS_fun: $@203 valueexpr */ #line 17508 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARGPARTITIONF"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" ARRAYORTASKSFUNARGPARTITIONF"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 44579 "SecParser.tab.cpp" break; case 1363: /* PARTITIONFS_fun: function */ #line 17529 "SecParser.y" { yyval = yyvsp[0]; } #line 44585 "SecParser.tab.cpp" break; case 1364: /* $@204: %empty */ #line 17536 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44598 "SecParser.tab.cpp" break; case 1365: /* DBSCAN_fun: $@204 valueexpr */ #line 17545 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44617 "SecParser.tab.cpp" break; case 1366: /* DBSCAN_fun: function */ #line 17559 "SecParser.y" { yyval = yyvsp[0]; } #line 44623 "SecParser.tab.cpp" break; case 1367: /* $@205: %empty */ #line 17566 "SecParser.y" { pair p; paramno++; strcpy(paramname,"elem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44636 "SecParser.tab.cpp" break; case 1368: /* REGISTERFORSTREAM_fun: $@205 valueexpr */ #line 17575 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TTYPE3"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44655 "SecParser.tab.cpp" break; case 1369: /* REGISTERFORSTREAM_fun: function */ #line 17589 "SecParser.y" { yyval = yyvsp[0]; } #line 44661 "SecParser.tab.cpp" break; case 1370: /* PREDCOUNTS_fun: naming PREDCOUNTS_fun_1 */ #line 17597 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 44671 "SecParser.tab.cpp" break; case 1371: /* PREDCOUNTS_fun: naming PREDCOUNTS_fun_1 ZZDEFAULTSEP valueexpr */ #line 17603 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 44681 "SecParser.tab.cpp" break; case 1372: /* PREDCOUNTS_fun: PREDCOUNTS_fun_1 */ #line 17608 "SecParser.y" {yyval = yyvsp[0];} #line 44687 "SecParser.tab.cpp" break; case 1373: /* PREDCOUNTS_fun: PREDCOUNTS_fun_1 ZZDEFAULTSEP valueexpr */ #line 17610 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 44693 "SecParser.tab.cpp" break; case 1374: /* $@206: %empty */ #line 17617 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44706 "SecParser.tab.cpp" break; case 1375: /* PREDCOUNTS_fun_1: $@206 valueexpr */ #line 17626 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44725 "SecParser.tab.cpp" break; case 1376: /* PREDCOUNTS_fun_1: function */ #line 17640 "SecParser.y" { yyval = yyvsp[0]; } #line 44731 "SecParser.tab.cpp" break; case 1377: /* PREDCOUNTS_funlist: PREDCOUNTS_funlist_1 */ #line 17648 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 44740 "SecParser.tab.cpp" break; case 1378: /* PREDCOUNTS_funlist_1: PREDCOUNTS_fun */ #line 17658 "SecParser.y" {yyval = yyvsp[0];} #line 44746 "SecParser.tab.cpp" break; case 1379: /* PREDCOUNTS_funlist_1: PREDCOUNTS_funlist_1 ',' PREDCOUNTS_fun */ #line 17660 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 44754 "SecParser.tab.cpp" break; case 1380: /* STPATTERNEXTEND_fun: naming STPATTERNEXTEND_fun_1 */ #line 17670 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 44764 "SecParser.tab.cpp" break; case 1381: /* STPATTERNEXTEND_fun: naming STPATTERNEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 17676 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 44774 "SecParser.tab.cpp" break; case 1382: /* STPATTERNEXTEND_fun: STPATTERNEXTEND_fun_1 */ #line 17681 "SecParser.y" {yyval = yyvsp[0];} #line 44780 "SecParser.tab.cpp" break; case 1383: /* STPATTERNEXTEND_fun: STPATTERNEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 17683 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 44786 "SecParser.tab.cpp" break; case 1384: /* $@207: %empty */ #line 17690 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44799 "SecParser.tab.cpp" break; case 1385: /* STPATTERNEXTEND_fun_1: $@207 valueexpr */ #line 17699 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44818 "SecParser.tab.cpp" break; case 1386: /* STPATTERNEXTEND_fun_1: function */ #line 17713 "SecParser.y" { yyval = yyvsp[0]; } #line 44824 "SecParser.tab.cpp" break; case 1387: /* STPATTERNEXTEND_funlist: STPATTERNEXTEND_funlist_1 */ #line 17721 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 44833 "SecParser.tab.cpp" break; case 1388: /* STPATTERNEXTEND_funlist_1: STPATTERNEXTEND_fun */ #line 17731 "SecParser.y" {yyval = yyvsp[0];} #line 44839 "SecParser.tab.cpp" break; case 1389: /* STPATTERNEXTEND_funlist_1: STPATTERNEXTEND_funlist_1 ',' STPATTERNEXTEND_fun */ #line 17733 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 44847 "SecParser.tab.cpp" break; case 1390: /* STPATTERNEXTEND2_fun: naming STPATTERNEXTEND2_fun_1 */ #line 17743 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 44857 "SecParser.tab.cpp" break; case 1391: /* STPATTERNEXTEND2_fun: naming STPATTERNEXTEND2_fun_1 ZZDEFAULTSEP valueexpr */ #line 17749 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 44867 "SecParser.tab.cpp" break; case 1392: /* STPATTERNEXTEND2_fun: STPATTERNEXTEND2_fun_1 */ #line 17754 "SecParser.y" {yyval = yyvsp[0];} #line 44873 "SecParser.tab.cpp" break; case 1393: /* STPATTERNEXTEND2_fun: STPATTERNEXTEND2_fun_1 ZZDEFAULTSEP valueexpr */ #line 17756 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 44879 "SecParser.tab.cpp" break; case 1394: /* $@208: %empty */ #line 17763 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44892 "SecParser.tab.cpp" break; case 1395: /* STPATTERNEXTEND2_fun_1: $@208 valueexpr */ #line 17772 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 44911 "SecParser.tab.cpp" break; case 1396: /* STPATTERNEXTEND2_fun_1: function */ #line 17786 "SecParser.y" { yyval = yyvsp[0]; } #line 44917 "SecParser.tab.cpp" break; case 1397: /* STPATTERNEXTEND2_funlist: STPATTERNEXTEND2_funlist_1 */ #line 17794 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 44926 "SecParser.tab.cpp" break; case 1398: /* STPATTERNEXTEND2_funlist_1: STPATTERNEXTEND2_fun */ #line 17804 "SecParser.y" {yyval = yyvsp[0];} #line 44932 "SecParser.tab.cpp" break; case 1399: /* STPATTERNEXTEND2_funlist_1: STPATTERNEXTEND2_funlist_1 ',' STPATTERNEXTEND2_fun */ #line 17806 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 44940 "SecParser.tab.cpp" break; case 1400: /* STPATTERNEXEXTEND_fun: naming STPATTERNEXEXTEND_fun_1 */ #line 17816 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 44950 "SecParser.tab.cpp" break; case 1401: /* STPATTERNEXEXTEND_fun: naming STPATTERNEXEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 17822 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 44960 "SecParser.tab.cpp" break; case 1402: /* STPATTERNEXEXTEND_fun: STPATTERNEXEXTEND_fun_1 */ #line 17827 "SecParser.y" {yyval = yyvsp[0];} #line 44966 "SecParser.tab.cpp" break; case 1403: /* STPATTERNEXEXTEND_fun: STPATTERNEXEXTEND_fun_1 ZZDEFAULTSEP valueexpr */ #line 17829 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 44972 "SecParser.tab.cpp" break; case 1404: /* $@209: %empty */ #line 17836 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 44985 "SecParser.tab.cpp" break; case 1405: /* STPATTERNEXEXTEND_fun_1: $@209 valueexpr */ #line 17845 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 45004 "SecParser.tab.cpp" break; case 1406: /* STPATTERNEXEXTEND_fun_1: function */ #line 17859 "SecParser.y" { yyval = yyvsp[0]; } #line 45010 "SecParser.tab.cpp" break; case 1407: /* STPATTERNEXEXTEND_funlist: STPATTERNEXEXTEND_funlist_1 */ #line 17867 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 45019 "SecParser.tab.cpp" break; case 1408: /* STPATTERNEXEXTEND_funlist_1: STPATTERNEXEXTEND_fun */ #line 17877 "SecParser.y" {yyval = yyvsp[0];} #line 45025 "SecParser.tab.cpp" break; case 1409: /* STPATTERNEXEXTEND_funlist_1: STPATTERNEXEXTEND_funlist_1 ',' STPATTERNEXEXTEND_fun */ #line 17879 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45033 "SecParser.tab.cpp" break; case 1410: /* STPATTERNEXEXTEND2_fun: naming STPATTERNEXEXTEND2_fun_1 */ #line 17889 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 45043 "SecParser.tab.cpp" break; case 1411: /* STPATTERNEXEXTEND2_fun: naming STPATTERNEXEXTEND2_fun_1 ZZDEFAULTSEP valueexpr */ #line 17895 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 45053 "SecParser.tab.cpp" break; case 1412: /* STPATTERNEXEXTEND2_fun: STPATTERNEXEXTEND2_fun_1 */ #line 17900 "SecParser.y" {yyval = yyvsp[0];} #line 45059 "SecParser.tab.cpp" break; case 1413: /* STPATTERNEXEXTEND2_fun: STPATTERNEXEXTEND2_fun_1 ZZDEFAULTSEP valueexpr */ #line 17902 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45065 "SecParser.tab.cpp" break; case 1414: /* $@210: %empty */ #line 17909 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 45078 "SecParser.tab.cpp" break; case 1415: /* STPATTERNEXEXTEND2_fun_1: $@210 valueexpr */ #line 17918 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 45097 "SecParser.tab.cpp" break; case 1416: /* STPATTERNEXEXTEND2_fun_1: function */ #line 17932 "SecParser.y" { yyval = yyvsp[0]; } #line 45103 "SecParser.tab.cpp" break; case 1417: /* STPATTERNEXEXTEND2_funlist: STPATTERNEXEXTEND2_funlist_1 */ #line 17940 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 45112 "SecParser.tab.cpp" break; case 1418: /* STPATTERNEXEXTEND2_funlist_1: STPATTERNEXEXTEND2_fun */ #line 17950 "SecParser.y" {yyval = yyvsp[0];} #line 45118 "SecParser.tab.cpp" break; case 1419: /* STPATTERNEXEXTEND2_funlist_1: STPATTERNEXEXTEND2_funlist_1 ',' STPATTERNEXEXTEND2_fun */ #line 17952 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45126 "SecParser.tab.cpp" break; case 1420: /* STPATTERNEXTENDSTREAM_fun: naming STPATTERNEXTENDSTREAM_fun_1 */ #line 17962 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 45136 "SecParser.tab.cpp" break; case 1421: /* STPATTERNEXTENDSTREAM_fun: naming STPATTERNEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 17968 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 45146 "SecParser.tab.cpp" break; case 1422: /* STPATTERNEXTENDSTREAM_fun: STPATTERNEXTENDSTREAM_fun_1 */ #line 17973 "SecParser.y" {yyval = yyvsp[0];} #line 45152 "SecParser.tab.cpp" break; case 1423: /* STPATTERNEXTENDSTREAM_fun: STPATTERNEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 17975 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45158 "SecParser.tab.cpp" break; case 1424: /* $@211: %empty */ #line 17982 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 45171 "SecParser.tab.cpp" break; case 1425: /* STPATTERNEXTENDSTREAM_fun_1: $@211 valueexpr */ #line 17991 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 45190 "SecParser.tab.cpp" break; case 1426: /* STPATTERNEXTENDSTREAM_fun_1: function */ #line 18005 "SecParser.y" { yyval = yyvsp[0]; } #line 45196 "SecParser.tab.cpp" break; case 1427: /* STPATTERNEXTENDSTREAM_funlist: STPATTERNEXTENDSTREAM_funlist_1 */ #line 18013 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 45205 "SecParser.tab.cpp" break; case 1428: /* STPATTERNEXTENDSTREAM_funlist_1: STPATTERNEXTENDSTREAM_fun */ #line 18023 "SecParser.y" {yyval = yyvsp[0];} #line 45211 "SecParser.tab.cpp" break; case 1429: /* STPATTERNEXTENDSTREAM_funlist_1: STPATTERNEXTENDSTREAM_funlist_1 ',' STPATTERNEXTENDSTREAM_fun */ #line 18025 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45219 "SecParser.tab.cpp" break; case 1430: /* STPATTERNEXTENDSTREAM2_fun: naming STPATTERNEXTENDSTREAM2_fun_1 */ #line 18035 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 45229 "SecParser.tab.cpp" break; case 1431: /* STPATTERNEXTENDSTREAM2_fun: naming STPATTERNEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr */ #line 18041 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 45239 "SecParser.tab.cpp" break; case 1432: /* STPATTERNEXTENDSTREAM2_fun: STPATTERNEXTENDSTREAM2_fun_1 */ #line 18046 "SecParser.y" {yyval = yyvsp[0];} #line 45245 "SecParser.tab.cpp" break; case 1433: /* STPATTERNEXTENDSTREAM2_fun: STPATTERNEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr */ #line 18048 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45251 "SecParser.tab.cpp" break; case 1434: /* $@212: %empty */ #line 18055 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 45264 "SecParser.tab.cpp" break; case 1435: /* STPATTERNEXTENDSTREAM2_fun_1: $@212 valueexpr */ #line 18064 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 45283 "SecParser.tab.cpp" break; case 1436: /* STPATTERNEXTENDSTREAM2_fun_1: function */ #line 18078 "SecParser.y" { yyval = yyvsp[0]; } #line 45289 "SecParser.tab.cpp" break; case 1437: /* STPATTERNEXTENDSTREAM2_funlist: STPATTERNEXTENDSTREAM2_funlist_1 */ #line 18086 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 45298 "SecParser.tab.cpp" break; case 1438: /* STPATTERNEXTENDSTREAM2_funlist_1: STPATTERNEXTENDSTREAM2_fun */ #line 18096 "SecParser.y" {yyval = yyvsp[0];} #line 45304 "SecParser.tab.cpp" break; case 1439: /* STPATTERNEXTENDSTREAM2_funlist_1: STPATTERNEXTENDSTREAM2_funlist_1 ',' STPATTERNEXTENDSTREAM2_fun */ #line 18098 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45312 "SecParser.tab.cpp" break; case 1440: /* STPATTERNEXEXTENDSTREAM_fun: naming STPATTERNEXEXTENDSTREAM_fun_1 */ #line 18108 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 45322 "SecParser.tab.cpp" break; case 1441: /* STPATTERNEXEXTENDSTREAM_fun: naming STPATTERNEXEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 18114 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 45332 "SecParser.tab.cpp" break; case 1442: /* STPATTERNEXEXTENDSTREAM_fun: STPATTERNEXEXTENDSTREAM_fun_1 */ #line 18119 "SecParser.y" {yyval = yyvsp[0];} #line 45338 "SecParser.tab.cpp" break; case 1443: /* STPATTERNEXEXTENDSTREAM_fun: STPATTERNEXEXTENDSTREAM_fun_1 ZZDEFAULTSEP valueexpr */ #line 18121 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45344 "SecParser.tab.cpp" break; case 1444: /* $@213: %empty */ #line 18128 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 45357 "SecParser.tab.cpp" break; case 1445: /* STPATTERNEXEXTENDSTREAM_fun_1: $@213 valueexpr */ #line 18137 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 45376 "SecParser.tab.cpp" break; case 1446: /* STPATTERNEXEXTENDSTREAM_fun_1: function */ #line 18151 "SecParser.y" { yyval = yyvsp[0]; } #line 45382 "SecParser.tab.cpp" break; case 1447: /* STPATTERNEXEXTENDSTREAM_funlist: STPATTERNEXEXTENDSTREAM_funlist_1 */ #line 18159 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 45391 "SecParser.tab.cpp" break; case 1448: /* STPATTERNEXEXTENDSTREAM_funlist_1: STPATTERNEXEXTENDSTREAM_fun */ #line 18169 "SecParser.y" {yyval = yyvsp[0];} #line 45397 "SecParser.tab.cpp" break; case 1449: /* STPATTERNEXEXTENDSTREAM_funlist_1: STPATTERNEXEXTENDSTREAM_funlist_1 ',' STPATTERNEXEXTENDSTREAM_fun */ #line 18171 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45405 "SecParser.tab.cpp" break; case 1450: /* STPATTERNEXEXTENDSTREAM2_fun: naming STPATTERNEXEXTENDSTREAM2_fun_1 */ #line 18181 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-1], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[0], NestedText::AtomC(")") ))));} #line 45415 "SecParser.tab.cpp" break; case 1451: /* STPATTERNEXEXTENDSTREAM2_fun: naming STPATTERNEXEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr */ #line 18187 "SecParser.y" {yyval = NestedText::Concat(NestedText::AtomC("("), NestedText::Concat(yyvsp[-3], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), NestedText::Concat( yyvsp[0] , NestedText::AtomC(")") ))))));} #line 45425 "SecParser.tab.cpp" break; case 1452: /* STPATTERNEXEXTENDSTREAM2_fun: STPATTERNEXEXTENDSTREAM2_fun_1 */ #line 18192 "SecParser.y" {yyval = yyvsp[0];} #line 45431 "SecParser.tab.cpp" break; case 1453: /* STPATTERNEXEXTENDSTREAM2_fun: STPATTERNEXEXTENDSTREAM2_fun_1 ZZDEFAULTSEP valueexpr */ #line 18194 "SecParser.y" {yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45437 "SecParser.tab.cpp" break; case 1454: /* $@214: %empty */ #line 18201 "SecParser.y" { pair p; paramno++; strcpy(paramname,"streamelem"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 45450 "SecParser.tab.cpp" break; case 1455: /* STPATTERNEXEXTENDSTREAM2_fun_1: $@214 valueexpr */ #line 18210 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" STREAMELEM"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 45469 "SecParser.tab.cpp" break; case 1456: /* STPATTERNEXEXTENDSTREAM2_fun_1: function */ #line 18224 "SecParser.y" { yyval = yyvsp[0]; } #line 45475 "SecParser.tab.cpp" break; case 1457: /* STPATTERNEXEXTENDSTREAM2_funlist: STPATTERNEXEXTENDSTREAM2_funlist_1 */ #line 18232 "SecParser.y" { yyval=NestedText::Concat(NestedText::AtomC("( "), NestedText::Concat(yyvsp[0], NestedText::AtomC(" ) "))); } #line 45484 "SecParser.tab.cpp" break; case 1458: /* STPATTERNEXEXTENDSTREAM2_funlist_1: STPATTERNEXEXTENDSTREAM2_fun */ #line 18242 "SecParser.y" {yyval = yyvsp[0];} #line 45490 "SecParser.tab.cpp" break; case 1459: /* STPATTERNEXEXTENDSTREAM2_funlist_1: STPATTERNEXEXTENDSTREAM2_funlist_1 ',' STPATTERNEXEXTENDSTREAM2_fun */ #line 18244 "SecParser.y" { yyval = NestedText::Concat(yyvsp[-2], NestedText::Concat(NestedText::AtomC(" "), yyvsp[0])); } #line 45498 "SecParser.tab.cpp" break; case 1460: /* $@215: %empty */ #line 18253 "SecParser.y" { pair p; paramno++; strcpy(paramname,"tuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); } #line 45511 "SecParser.tab.cpp" break; case 1461: /* REDUCE_fun: $@215 valueexpr */ #line 18262 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))); cleanVariables(1); restoreVariables(); } #line 45530 "SecParser.tab.cpp" break; case 1462: /* REDUCE_fun: function */ #line 18276 "SecParser.y" { yyval = yyvsp[0]; } #line 45536 "SecParser.tab.cpp" break; case 1463: /* $@216: %empty */ #line 18283 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 45554 "SecParser.tab.cpp" break; case 1464: /* TSMOTIFBFFUN_fun: $@216 valueexpr */ #line 18297 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 45580 "SecParser.tab.cpp" break; case 1465: /* TSMOTIFBFFUN_fun: function */ #line 18318 "SecParser.y" { yyval = yyvsp[0]; } #line 45586 "SecParser.tab.cpp" break; case 1466: /* $@217: %empty */ #line 18325 "SecParser.y" { pair p; paramno++; strcpy(paramname,"lefttuple"); sprintf(params[1], "%s_%d",paramname,paramno); p = pair(1, params[1]); paramstack.push(p); paramno++; strcpy(paramname,"righttuple"); sprintf(params[2], "%s_%d",paramname,paramno); p = pair(2, params[2]); paramstack.push(p); } #line 45604 "SecParser.tab.cpp" break; case 1467: /* TSDISTANCEFUN_fun: $@217 valueexpr */ #line 18339 "SecParser.y" { pair p; p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); p = paramstack.top(); strcpy(params[p.first],p.second.c_str()); paramstack.pop(); yyval = NestedText::Concat( NestedText::AtomC("(fun "), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[1]), NestedText::Concat( NestedText::AtomC(" TUPLE"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( NestedText::AtomC("("), NestedText::Concat( NestedText::AtomC(params[2]), NestedText::Concat( NestedText::AtomC(" TUPLE2"), NestedText::Concat(NestedText::AtomC(")"), NestedText::Concat( yyvsp[0], NestedText::AtomC(")"))) )))) )))); cleanVariables(2); restoreVariables(); } #line 45630 "SecParser.tab.cpp" break; case 1468: /* TSDISTANCEFUN_fun: function */ #line 18360 "SecParser.y" { yyval = yyvsp[0]; } #line 45636 "SecParser.tab.cpp" break; #line 45640 "SecParser.tab.cpp" default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; *++yyvsp = yyval; *++yylsp = yyloc; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ { const int yylhs = yyr1[yyn] - YYNTOKENS; const int yyi = yypgoto[yylhs] + *yyssp; yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp ? yytable[yyi] : yydefgoto[yylhs]); } goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; yyerror (YY_("syntax error")); } yyerror_range[1] = yylloc; if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, &yylloc); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) YYERROR; ++yynerrs; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ /* Pop stack until we find a state that shifts the error token. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYSYMBOL_YYerror; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yyerror_range[1] = *yylsp; yydestruct ("Error: popping", YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END yyerror_range[2] = yylloc; ++yylsp; YYLLOC_DEFAULT (*yylsp, yyerror_range, 2); /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturnlab; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturnlab; /*-----------------------------------------------------------. | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. | `-----------------------------------------------------------*/ yyexhaustedlab: yyerror (YY_("memory exhausted")); yyresult = 2; goto yyreturnlab; /*----------------------------------------------------------. | yyreturnlab -- parsing is finished, clean up and return. | `----------------------------------------------------------*/ yyreturnlab: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, &yylloc); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; } #line 18364 "SecParser.y"