a bT#s@s dZdZdZgdgdfgdgdfgdgdfgdgd fgdgd fgd gd fgd gdfgdgdfgdgdfgd gdfdgdgfgdgdfgdgdfgdgdfgdgdfgdgdfgdgdfgdgdfgd gd!fgd"gd#fgdgd$fgdgd%fgdgd&fgd'gd(fgdgd)fgd'gd*fgdgd+fgdgd,fgdgd-fgd'gd.fgd/gd0fgd1gd2fgd3gd4fgdgd5fgdgd6fgdgd7fgd8gd9fgd:gd;fgdgd<fgdgd=fgdgd>fgd?gd@fgdAgdBfgdCgdDfgd'gdEfgdgdFfgd gdGfgdHgdIfgdJgdKfgdLgdMfgdgdNfgdgdOfgdgdPfgdgdQfgd'gdRfgdgdSfgdgdTfgdgdUfgdVgdWfgdgdXfgdYgdZfgdgd[fgdgd\fgdVgd]fgdgd^fgdgd_fgdVgd`fgd'gdafgdgdbfgdgdcfgdgddfgdgdefdfgdggfgd'gdhfgdgdifgdgdjfgdgdkfgdgdlfgd1gdmfgdngdofgdVgdpfgdgdqfgdgdrfgdgdsfgd1gdtfgdgdufgdgdvfgdgdwfgdgdxfgdygdzfgdgd{fgdgd|fgd}gd~fgdVgdfgdgdfgdgdfgdgdfgdgdfgdgdfgdVgdfgdgdfgdVgdfgd'gdfgdgdfgdgdfgd?gdfgdgdfgdgdfgdgdfgdgdfgd'gdfgd'gdfgdgdfdqZiZeD]F\ZZeededD](\Z Z e evrxiee <e ee e<q^qD[gdgdfgdgdfddgddgfddgddgfgdgdfgdgdfgdgdfgdgdfgdgdfgdgdfdgdgfgdgdfgdgdfgdgdfgdgdfgdgdfgdgdfgdgdfgdgdfdgdgfgd¢gdâfgdĢgdŢfgdgdƢfgdǢgdȢfdgdgfgdˢgd̢fddgddgfgdТgdѢfgdҢgdӢfgdԢgdբfddgddgfddgddgfddgddgfgdgdݢfgdޢgdߢfgdgdfgdgdfddgddgfgdgdfdgdgfdgdgfdgdgfgdgdfddgddgfgdgdfdgdgfgdgdfgdgdfgdˢgdfdgdgfdgdgfgdgdfgdgdfddgddgfgdgdfgdgdfgdgdfgd gd fgdgd fgd gd fgdgdfdgdgfgdgdfgdgdfgdˢgdfgdgdfgdgdfgdgdfgdgdfddgddgfgdgd fgd!gd"fgdˢgd#fgd$gd%fgd&gd'fdd(gd)d*gfgd+gd,fgdgd-fgdˢgd.fdd/gd0d1gfgdˢgd2fgdgd3fdgd4gfgd5gd6fgdgd7fgdgd8fgd9gd:fgd;gd<fddgd=d=gfgd>gd?fgd!gd@fddgdAdBgfddgdCdCgfgdDgdEfgdgdFfgdgdGfgdgdHfgdIgdJfgdKgdLfdMcZ iZ e D]F\ZZeededD](\Z Z e e v rie e <e e e e< q q[ gdNZ dOS(Pz3.10ZLALRaRtranslation_unit_or_emptyleftLORleftLANDleftORleftXORleftANDleftEQNEleftGTGELTLEleftRSHIFTLSHIFTleftPLUSMINUSleftTIMESDIVIDEMODAUTO BREAK CASE CHAR CONST CONTINUE DEFAULT DO DOUBLE ELSE ENUM EXTERN FLOAT FOR GOTO IF INLINE INT LONG REGISTER OFFSETOF RESTRICT RETURN SHORT SIGNED SIZEOF STATIC STRUCT SWITCH TYPEDEF UNION UNSIGNED VOID VOLATILE WHILE __INT128 _BOOL _COMPLEX _NORETURN _THREAD_LOCAL _STATIC_ASSERT _ATOMIC _ALIGNOF _ALIGNAS ID TYPEID INT_CONST_DEC INT_CONST_OCT INT_CONST_HEX INT_CONST_BIN INT_CONST_CHAR FLOAT_CONST HEX_FLOAT_CONST CHAR_CONST WCHAR_CONST U8CHAR_CONST U16CHAR_CONST U32CHAR_CONST STRING_LITERAL WSTRING_LITERAL U8STRING_LITERAL U16STRING_LITERAL U32STRING_LITERAL PLUS MINUS TIMES DIVIDE MOD OR AND NOT XOR LSHIFT RSHIFT LOR LAND LNOT LT LE GT GE EQ NE EQUALS TIMESEQUAL DIVEQUAL MODEQUAL PLUSEQUAL MINUSEQUAL LSHIFTEQUAL RSHIFTEQUAL ANDEQUAL XOREQUAL OREQUAL PLUSPLUS MINUSMINUS ARROW CONDOP LPAREN RPAREN LBRACKET RBRACKET LBRACE RBRACE COMMA PERIOD SEMI COLON ELLIPSIS PPHASH PPPRAGMA PPPRAGMASTRabstract_declarator_opt : empty | abstract_declaratorassignment_expression_opt : empty | assignment_expressionblock_item_list_opt : empty | block_item_listdeclaration_list_opt : empty | declaration_listdeclaration_specifiers_no_type_opt : empty | declaration_specifiers_no_typedesignation_opt : empty | designationexpression_opt : empty | expressionid_init_declarator_list_opt : empty | id_init_declarator_listidentifier_list_opt : empty | identifier_listinit_declarator_list_opt : empty | init_declarator_listinitializer_list_opt : empty | initializer_listparameter_type_list_opt : empty | parameter_type_liststruct_declarator_list_opt : empty | struct_declarator_listtype_qualifier_list_opt : empty | type_qualifier_list direct_id_declarator : ID direct_id_declarator : LPAREN id_declarator RPAREN direct_id_declarator : direct_id_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET direct_id_declarator : direct_id_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET | direct_id_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET direct_id_declarator : direct_id_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET direct_id_declarator : direct_id_declarator LPAREN parameter_type_list RPAREN | direct_id_declarator LPAREN identifier_list_opt RPAREN direct_typeid_declarator : TYPEID direct_typeid_declarator : LPAREN typeid_declarator RPAREN direct_typeid_declarator : direct_typeid_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET direct_typeid_declarator : direct_typeid_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET | direct_typeid_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET direct_typeid_declarator : direct_typeid_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET direct_typeid_declarator : direct_typeid_declarator LPAREN parameter_type_list RPAREN | direct_typeid_declarator LPAREN identifier_list_opt RPAREN direct_typeid_noparen_declarator : TYPEID direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKET | direct_typeid_noparen_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKET direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKET direct_typeid_noparen_declarator : direct_typeid_noparen_declarator LPAREN parameter_type_list RPAREN | direct_typeid_noparen_declarator LPAREN identifier_list_opt RPAREN id_declarator : direct_id_declarator id_declarator : pointer direct_id_declarator typeid_declarator : direct_typeid_declarator typeid_declarator : pointer direct_typeid_declarator typeid_noparen_declarator : direct_typeid_noparen_declarator typeid_noparen_declarator : pointer direct_typeid_noparen_declarator translation_unit_or_empty : translation_unit | empty translation_unit : external_declaration translation_unit : translation_unit external_declaration external_declaration : function_definition external_declaration : declaration external_declaration : pp_directive | pppragma_directive external_declaration : SEMI external_declaration : static_assert static_assert : _STATIC_ASSERT LPAREN constant_expression COMMA unified_string_literal RPAREN | _STATIC_ASSERT LPAREN constant_expression RPAREN pp_directive : PPHASH pppragma_directive : PPPRAGMA | PPPRAGMA PPPRAGMASTR function_definition : id_declarator declaration_list_opt compound_statement function_definition : declaration_specifiers id_declarator declaration_list_opt compound_statement statement : labeled_statement | expression_statement | compound_statement | selection_statement | iteration_statement | jump_statement | pppragma_directive | static_assert pragmacomp_or_statement : pppragma_directive statement | statement decl_body : declaration_specifiers init_declarator_list_opt | declaration_specifiers_no_type id_init_declarator_list_opt declaration : decl_body SEMI declaration_list : declaration | declaration_list declaration declaration_specifiers_no_type : type_qualifier declaration_specifiers_no_type_opt declaration_specifiers_no_type : storage_class_specifier declaration_specifiers_no_type_opt declaration_specifiers_no_type : function_specifier declaration_specifiers_no_type_opt declaration_specifiers_no_type : atomic_specifier declaration_specifiers_no_type_opt declaration_specifiers_no_type : alignment_specifier declaration_specifiers_no_type_opt declaration_specifiers : declaration_specifiers type_qualifier declaration_specifiers : declaration_specifiers storage_class_specifier declaration_specifiers : declaration_specifiers function_specifier declaration_specifiers : declaration_specifiers type_specifier_no_typeid declaration_specifiers : type_specifier declaration_specifiers : declaration_specifiers_no_type type_specifier declaration_specifiers : declaration_specifiers alignment_specifier storage_class_specifier : AUTO | REGISTER | STATIC | EXTERN | TYPEDEF | _THREAD_LOCAL function_specifier : INLINE | _NORETURN type_specifier_no_typeid : VOID | _BOOL | CHAR | SHORT | INT | LONG | FLOAT | DOUBLE | _COMPLEX | SIGNED | UNSIGNED | __INT128 type_specifier : typedef_name | enum_specifier | struct_or_union_specifier | type_specifier_no_typeid | atomic_specifier atomic_specifier : _ATOMIC LPAREN type_name RPAREN type_qualifier : CONST | RESTRICT | VOLATILE | _ATOMIC init_declarator_list : init_declarator | init_declarator_list COMMA init_declarator init_declarator : declarator | declarator EQUALS initializer id_init_declarator_list : id_init_declarator | id_init_declarator_list COMMA init_declarator id_init_declarator : id_declarator | id_declarator EQUALS initializer specifier_qualifier_list : specifier_qualifier_list type_specifier_no_typeid specifier_qualifier_list : specifier_qualifier_list type_qualifier specifier_qualifier_list : type_specifier specifier_qualifier_list : type_qualifier_list type_specifier specifier_qualifier_list : alignment_specifier specifier_qualifier_list : specifier_qualifier_list alignment_specifier struct_or_union_specifier : struct_or_union ID | struct_or_union TYPEID struct_or_union_specifier : struct_or_union brace_open struct_declaration_list brace_close | struct_or_union brace_open brace_close struct_or_union_specifier : struct_or_union ID brace_open struct_declaration_list brace_close | struct_or_union ID brace_open brace_close | struct_or_union TYPEID brace_open struct_declaration_list brace_close | struct_or_union TYPEID brace_open brace_close struct_or_union : STRUCT | UNION struct_declaration_list : struct_declaration | struct_declaration_list struct_declaration struct_declaration : specifier_qualifier_list struct_declarator_list_opt SEMI struct_declaration : SEMI struct_declaration : pppragma_directive struct_declarator_list : struct_declarator | struct_declarator_list COMMA struct_declarator struct_declarator : declarator struct_declarator : declarator COLON constant_expression | COLON constant_expression enum_specifier : ENUM ID | ENUM TYPEID enum_specifier : ENUM brace_open enumerator_list brace_close enum_specifier : ENUM ID brace_open enumerator_list brace_close | ENUM TYPEID brace_open enumerator_list brace_close enumerator_list : enumerator | enumerator_list COMMA | enumerator_list COMMA enumerator alignment_specifier : _ALIGNAS LPAREN type_name RPAREN | _ALIGNAS LPAREN constant_expression RPAREN enumerator : ID | ID EQUALS constant_expression declarator : id_declarator | typeid_declarator pointer : TIMES type_qualifier_list_opt | TIMES type_qualifier_list_opt pointer type_qualifier_list : type_qualifier | type_qualifier_list type_qualifier parameter_type_list : parameter_list | parameter_list COMMA ELLIPSIS parameter_list : parameter_declaration | parameter_list COMMA parameter_declaration parameter_declaration : declaration_specifiers id_declarator | declaration_specifiers typeid_noparen_declarator parameter_declaration : declaration_specifiers abstract_declarator_opt identifier_list : identifier | identifier_list COMMA identifier initializer : assignment_expression initializer : brace_open initializer_list_opt brace_close | brace_open initializer_list COMMA brace_close initializer_list : designation_opt initializer | initializer_list COMMA designation_opt initializer designation : designator_list EQUALS designator_list : designator | designator_list designator designator : LBRACKET constant_expression RBRACKET | PERIOD identifier type_name : specifier_qualifier_list abstract_declarator_opt abstract_declarator : pointer abstract_declarator : pointer direct_abstract_declarator abstract_declarator : direct_abstract_declarator direct_abstract_declarator : LPAREN abstract_declarator RPAREN direct_abstract_declarator : direct_abstract_declarator LBRACKET assignment_expression_opt RBRACKET direct_abstract_declarator : LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET direct_abstract_declarator : direct_abstract_declarator LBRACKET TIMES RBRACKET direct_abstract_declarator : LBRACKET TIMES RBRACKET direct_abstract_declarator : direct_abstract_declarator LPAREN parameter_type_list_opt RPAREN direct_abstract_declarator : LPAREN parameter_type_list_opt RPAREN block_item : declaration | statement block_item_list : block_item | block_item_list block_item compound_statement : brace_open block_item_list_opt brace_close labeled_statement : ID COLON pragmacomp_or_statement labeled_statement : CASE constant_expression COLON pragmacomp_or_statement labeled_statement : DEFAULT COLON pragmacomp_or_statement selection_statement : IF LPAREN expression RPAREN pragmacomp_or_statement selection_statement : IF LPAREN expression RPAREN statement ELSE pragmacomp_or_statement selection_statement : SWITCH LPAREN expression RPAREN pragmacomp_or_statement iteration_statement : WHILE LPAREN expression RPAREN pragmacomp_or_statement iteration_statement : DO pragmacomp_or_statement WHILE LPAREN expression RPAREN SEMI iteration_statement : FOR LPAREN expression_opt SEMI expression_opt SEMI expression_opt RPAREN pragmacomp_or_statement iteration_statement : FOR LPAREN declaration expression_opt SEMI expression_opt RPAREN pragmacomp_or_statement jump_statement : GOTO ID SEMI jump_statement : BREAK SEMI jump_statement : CONTINUE SEMI jump_statement : RETURN expression SEMI | RETURN SEMI expression_statement : expression_opt SEMI expression : assignment_expression | expression COMMA assignment_expression assignment_expression : LPAREN compound_statement RPAREN typedef_name : TYPEID assignment_expression : conditional_expression | unary_expression assignment_operator assignment_expression assignment_operator : EQUALS | XOREQUAL | TIMESEQUAL | DIVEQUAL | MODEQUAL | PLUSEQUAL | MINUSEQUAL | LSHIFTEQUAL | RSHIFTEQUAL | ANDEQUAL | OREQUAL constant_expression : conditional_expression conditional_expression : binary_expression | binary_expression CONDOP expression COLON conditional_expression binary_expression : cast_expression | binary_expression TIMES binary_expression | binary_expression DIVIDE binary_expression | binary_expression MOD binary_expression | binary_expression PLUS binary_expression | binary_expression MINUS binary_expression | binary_expression RSHIFT binary_expression | binary_expression LSHIFT binary_expression | binary_expression LT binary_expression | binary_expression LE binary_expression | binary_expression GE binary_expression | binary_expression GT binary_expression | binary_expression EQ binary_expression | binary_expression NE binary_expression | binary_expression AND binary_expression | binary_expression OR binary_expression | binary_expression XOR binary_expression | binary_expression LAND binary_expression | binary_expression LOR binary_expression cast_expression : unary_expression cast_expression : LPAREN type_name RPAREN cast_expression unary_expression : postfix_expression unary_expression : PLUSPLUS unary_expression | MINUSMINUS unary_expression | unary_operator cast_expression unary_expression : SIZEOF unary_expression | SIZEOF LPAREN type_name RPAREN | _ALIGNOF LPAREN type_name RPAREN unary_operator : AND | TIMES | PLUS | MINUS | NOT | LNOT postfix_expression : primary_expression postfix_expression : postfix_expression LBRACKET expression RBRACKET postfix_expression : postfix_expression LPAREN argument_expression_list RPAREN | postfix_expression LPAREN RPAREN postfix_expression : postfix_expression PERIOD ID | postfix_expression PERIOD TYPEID | postfix_expression ARROW ID | postfix_expression ARROW TYPEID postfix_expression : postfix_expression PLUSPLUS | postfix_expression MINUSMINUS postfix_expression : LPAREN type_name RPAREN brace_open initializer_list brace_close | LPAREN type_name RPAREN brace_open initializer_list COMMA brace_close primary_expression : identifier primary_expression : constant primary_expression : unified_string_literal | unified_wstring_literal primary_expression : LPAREN expression RPAREN primary_expression : OFFSETOF LPAREN type_name COMMA offsetof_member_designator RPAREN offsetof_member_designator : identifier | offsetof_member_designator PERIOD identifier | offsetof_member_designator LBRACKET expression RBRACKET argument_expression_list : assignment_expression | argument_expression_list COMMA assignment_expression identifier : ID constant : INT_CONST_DEC | INT_CONST_OCT | INT_CONST_HEX | INT_CONST_BIN | INT_CONST_CHAR constant : FLOAT_CONST | HEX_FLOAT_CONST constant : CHAR_CONST | WCHAR_CONST | U8CHAR_CONST | U16CHAR_CONST | U32CHAR_CONST unified_string_literal : STRING_LITERAL | unified_string_literal STRING_LITERAL unified_wstring_literal : WSTRING_LITERAL | U8STRING_LITERAL | U16STRING_LITERAL | U32STRING_LITERAL | unified_wstring_literal WSTRING_LITERAL | unified_wstring_literal U8STRING_LITERAL | unified_wstring_literal U16STRING_LITERAL | unified_wstring_literal U32STRING_LITERAL brace_open : LBRACE brace_close : RBRACE empty : )':=LUagijtuw|  !"#)*,-./134?ILPRS`abefghijklmnopquwy  %&)*+-.69>?@ABC)~}JrrrrrrrrrIrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)*(rrrrrrrrr  r rrrrrrrrr'rr&rrrrr:rrrrrr#r%rrrrrrr$rrrrrrrrr "rrrr!r)r !"$&r(*+,-./01245678r;<r>?@ABCDGKrPQRrVWYZ[]^_`rbcder movr xyz{rrrrrr'r(r)  r@rArBrCrErGrHrIrJrKrLrN89:;<=>HrQTUV^rlrmrnrorrrtrurvrwrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrmrnrYZrrrrrrprrrrrrrrka`drrrrrrrrrRQrqtrsorrrrrrrrrrrrrgrilcXrrrrrrrrrrrrrhjbVWrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrr#rrr r r rrrrrrrrrr r!IrMr#r$r%r&r.rr/r1r2rhr r r3r4rr;r<r>rDrrrIrJr&rNrOrQrRrSrTrU6rVrXrZr[r]r^r_r`XY[cdsxrcrdrfrgrhrir|rrkrl !#r'/035:;<)rmrrnrorprqrrrsrtrxrzr{r|r~rrrrrrrrrrrr rrrrrrrrrrrrrrr rrrrrrLrrrrrrrr=r?rrrKrr?rerrrrr?r?rrrkr4rrrrrrrr?r?r{9rerkrrrrrrr?r{6re8re+1-rr7r/0.,re)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'rr(r)rrrrr*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<rrr=r> r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrrrrrrrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr rr!rr"r#r$r%r&r'rr(rrrr)r*r+r,r-r.r-r/r0rr1r2r3rrrrr4rrrrrrrrrrrrrr7rrr8r9r:r;rrrrrrrrrrrrrrrrrrrr<r=rrrrrrrrrrrrrrrrrrr4rrrrrrrrrrrrrrrrrrrrrrrrrr-r-r-r-r-r-r-r-r-r-r-r-r-rBrCrDrErFrGrrrrrrrrrrrrrrrrrrrrrrrrrLrMrrrrrrrrrrrrrrrrrrrrrrrrrr[rrr\rrrrrr`rrrrrrrr)rrrrrrrrrrrrrrrrrrrrrr r r rrrrrrrrrr r!rrrr#r$r%r&r.r/r1r2rrr r kr3r4r5}rr:rrrrrrrrr;rrdrr<rrrrrrerrrfrrrrrrrr>rDrrrrIrJrrgrrhrirrrrrNrOrrr>rjrQrkrRrrSrTrUr&rVrXrZr[r]r^r_r`WrrZr\rrz{|}~rlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}rrrrrrrrbrwrcrdrfrgrhrirrrjrrr~rrrrrrrrkrlrr   r r r rrrrrrrr,rrrrr7rrr=)rmrrnrorprqrrrsrtrxrzr{r|r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrIrrrrrrrr r!r"r#r$r%rr&rr'rr(r)r*r+r,rNrrOr-r.r/r0r1r2rr3r4rrVrrrr5rrQr^ir_FriiHAr6rrrr7rrr8r9r:r;rrr<r=rrrrrir5r4rrr2rrrrrrrrBrDr>Cr?r@rr~r~rrrrrrrBrCrDrErFrrG3iirrrrrrrrrrrrr@iGErHrIrrrLrMrrNrOrPrrrrrrrrrQrRrrTrUrVrWrXrYrZr[r\r8r]r^r_r`rrrarbrcr)rrrrrrrrrrrrrrrrrrrrr r r rrrrrrrrrrrrrrr"rr&r'r)r*r+r,r-rr0r r5r r6r7r8r9rr:r=rr?rr@rArBrCrErFrGrrrIrKrLr'r(r)rMrNrOrPrSr@rArBrCrErGrHrIrJrKrLrNrVrWrYr\rQr^r_r`rarbrlrmrnrorrrtrurvrwrerhrirjrrrrrrrkrlrrrrrrrrr)rrrprqrrrtrurvrwryrzrr}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr rr!rr"r#r$r%r&rr'rr(rrrr)r*r+r,rr-r.r1r/r0rr1r2rr3rrrrr4rrrrrrrrrrrrrr7rrrrr8r9r:r;rrrrrrrrrrrrrrrrrrrr<r=rrrrrrrrrrrrrrrrrrrrr4rrrrrrrrrrrrrrrrrrrrrrrrrr1r1r1rr1r1r1rr1r1rrr1r1r1r1r1rrBrCrDrErFrGrrrrrrrrrrrrrrrrrrrrrrrrrrrLrMrrrrrrrrrrrrrrrrrrrrrrrrrrr[rrr\rrrrrr`rrrrrrrrrar)rrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'r(r)rrrrr*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr#rr(rrrrr/rr1rrrrrrrrrrrrrrrrrrr8r9r:r;rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)Irrrrrrrrrrdrrrrrrrerrrfrrrrrrrrrgrrhrirrrrrrrjrkrrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}rrrrrrr~rrrrrrr)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r2r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr2rrrr2rrrr2rrrr2r2r2r2rrBrCrDrErFrGrrrLrMrr[r\r`)4rrr rrrr@rArBrCrErGrHrIrJrKrLrMrNrQrlrmrorprrrtrurvrwrxrrrrrrrrrrrrrrrrrrrrrr)4rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr) rrrprqrrrtrurvrwryrzrr}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr):rrrrrrrrrrrrrrrrrrrrrrrrrrr&rrrrrrrrrrrrrrrrrr|rrrrr r r rrrrrr):rrrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4rtr7r8r9r:r;r<r=r4rArrBrCrDrErFrGrJrrKrLrMrrS$rTr[rr\r_r`rc)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r6r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr6rrrr6rrrr6rrrr6r6r6r6rrBrCrDrErFrGrrrLrMrr[r\r`)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr),rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr),rrr r!r"r#r$r%r&r'r(r)r*r+r,r-r.r/r0r1r2r3r4rr7r8r9r:r;r<r=r4rBrCrDrErFrGrLrMr[r\r`)Arrrrrrrr rrrrr r9rr?rrrLr@rArBrCrErGrHrIrJrKrLrMrNrQrlrmrorprrrtrurvrwrxrrrrrrrrrrrrrrrrrrrrrr)A)rurvrwryr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)5rrrrrrrrrrdrrrrrrrrrrrrrrrrrgrrhrirrrrrrrjrkrrrrrrrr~rrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rrYr7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rrbr7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r;r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr;rrrrrrrrrrrr;rrrrrBrCrDrErFrGrrrLrMrr[r\r`)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)4rrrrrDrrrrrrrDrrrrrrDrrrrrrDrrrDrrrDrrrrDrrrrDrrDrDrrrrrDrDrrrDrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rrcr7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r rrrrrrrrrrrrrrrrrr r!r"rr#r$r%rr&r'r(r)r+r-r.rr/r0r1r2r3r4r5r r9rr:r;r<rr>r?rr@rArBrCrDrErFrGrrHrIrJrLr'r(r)rMrNrOrPrQrRrSrTrUr@rArBrCrErGrHrIrJrKrLrNrVrWrXrYrZr[r\r]rQr^r_r`rarbrlrmrnrorrrtrurvrwrcrdrerfrgrhrirjrrrrrrrkrlrrrrrrrrr)rrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r rrrrrrrrrrrrrrrrrr r!r"rr#r$r%rr&r'r(r)r+r-r.rr/r0r1r2rr r3r4r r5r r9rrr:r;r<r=rr>r?rr@rArBrCrDrErFrGrrHrrIr!r"rJr$r%rLr'r(r)rMrNrOrPrQrRrSrTrUr?r@rArBrCrErGrHrIrJrKrLrNrVrWrXrYrZr[r\r]rQr^r_r`rarbrlrmrnrorrrtrurvrwrcrdrerfrgrhrir{rjrrrrrrrkrlrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r rrrrrrrrrrrrrrrrrr r!r"rr#r$r%r&r'r(r)r+r.rr/r1r2r r3r4r r5r r9rrr:r?rr@rDrrrIr!rJr$rLrNrOrSr@rArBrCrErGrHrIrJrKrLrNrVrXrZr[r]rQr^r_r`rarbrlrmrnrorrrtrurvrwrcrdrfrgrhrir{rjrrrrrrrkrlrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"rrrrr%rrrrrrrrrSrrVrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrprqrrrtrurvrwryrzrr}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrr r r rrrrrrrrrJrrr&r.r/r1r2r4rrrrrrrrrr;rrdrr<rrrrrrerrrfrrrrrrrrrDrrHrIrrgrrrhrirrrrrNrOrrrjrQrrkrRrTrU'rrVrXrZr[Dr]r^r_rrrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}rrrrrrrcrdrfrgrhrirrrrr~rrrrrrkrlrr rrrr)rmrrnrorsr{r|rrrrrrrrrrrrrrrrMrrrrrrrrrrrr r!r"r#r$r%rr&rr'rr(r)r*r+r,rr-r.rr/r0r1r2rr3r4rNrrrOrr6rrr7rrr8r9r:r;rrr<r=rrrrrrrrprxrrrrrzrrrr?r@rrrrrrrrrrrrrrrrrrrrBrCrDrErFrGrrrrOrrrrrHrIrrrrrLrMrrrrrQrRrr[r\r`)r rrrrrrr r9rrr r9rr?rrLrQrwr)rrrurvrwryr}rrriirrrrrrrrrr)rrrrrrrrrrrrrrrrrrr#rr(rrrrr/rr1rrrrrrrrrrrrrrrrrrr8r9r:r;rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r4r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4r4r4r4r4r4r4r4r4r4r4rrr4r4r4r4r4rrBrCrDrErFrGrrrLrMrr[r\r`)4rrrr$rrrrrrr rrrrrr rrrrrr rrr rrr rrrr rrrr rr r rrrrr r rrr rr)rrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'rr(r)rrrrr*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<rrr=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrrOrPrQrRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrrrrrrrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr rr!rr"r#r$r%r&r'rr(rrrr)r*r+r,r-r.r/r0rr1r2rr3rrrrr4rrrrrrrrrrrrr7rrr8r9r:r;rrrrrrrrrrrrrrrrrrrr<r=rrrrrrrrrrrrrrrrrrr4rrrrrrrrrrrrrrrrrrrrrrrrrrBrCrDrErFrGrrrrrrrrrrrrrrrrrrrrrrrrrLrMrrrrrrrrrrrrrrrrrrrrrrrrrr[rrr\rrrrrr`rrrrrrrr)Tr rrrr"rNr&nrrrrrrrrrrrdrrrrrrrrrrrrrrrrrrIrrgrrhrirrrrrrrjrkrr^r_rrrrrrrrrrrhrirrrrr~rrrrrkrlrr r rrr)Trrrrrrrrrrrrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rrrPrr6r[r7rrr8r9r:r;r<r=rrr4rrr?r@rAr}rBrCrDrErFrGrrrHrIrJrKrrrLrMrrrrQrRrSr[r\r`)"rrrr@rArBrCrErHrKrNrQrlrmrortrurvrwrrrrrrrrrrrrrrr)"rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rr`r7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r8r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr8rrrrrrrr8rrrr8rr8r8rrBrCrDrErFrGrrrLrMrr[r\r`)rrrrrrrrrrrrrrrrrrr rr!rr"r#r$r%r&rr'rr(rrrr)r*r+r,rr-r.r9r/r0rr1r2rr3rrrrr4rrrrrrrrrrrrrr7rrrrr8r9r:r;rrrrrrrrrrrrrrrrrrrr<r=rrrrrrrrrrrrrrrrrrrrr4rrrrrrrrrrrrrrrrrrrrrrrrrrr9rrrrrrrr9rrrr9rrr9rrBrCrDrErFrGrrrrrrrrrrrrrrrrrrrrrrrrrrrLrMrrrrrrrrrrrrrrrrrrrrrrrrrrr[rrr\rrrrrr`rrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrrrr Er!Hr"rr#r$r%rr&r'r(r)r*r+r,r-r.rr/r0r1r2rrr r r3r4r5r r6r7r8r9r~r:r;r<r=rr?rr@rArBrCrDrErFrGrrHrrrIrJrKrLr'r(r)rMrNrOrrrPrQrRrSrTrUr@rArBrCrErGrHrIrJrKrLrNrVrWrXrYrZr[r\r]rQr^r_r`rrarbrlrmrnrorrrtrurvrwrcrdrrerfrgrhrirjrrrrrrrkrlrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|fr}r~rerrr.r1rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr5rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)_rrrrrr rrr"r&Xr)\r+r.rr/r1r2r rrrr@rrIrr&r'r@rArBrCrErGrHrIrJrKrLrMrNrQr^r_rdrfrgrirlrmrorprrrtrurvrwrxrhrir|r}r~r~rrrrrrrrrrkrlrrrrrrrrrrrrrrrrrr)_rrrrrrrrrrirrirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrr rrrr r9rr?rrLrQrwr)rrurvrwryr}rrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)4rrrr%rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rrar7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r<r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4r<r<r<r<r<r<r<r<r<r<rrr<r<r<r<r<rrBrCrDrErFrGrrrLrMrr[r\r`)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r*r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr*rrr*r*r*rr*r*rrr*r*r*r*r*rrBrCrDrErFrGrrrLrMrr[r\r`)4rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r rrrrrrrrrrrrrrrrrr r!r"rr#r$r%r&r'r(r)r+r.rr/r1r2r3r4r5r r9rr:r?rr@rDrrIrJrLrNrOrSr@rArBrCrErGrHrIrJrKrLrNrVrXrZr[r]rQr^r_r`rarbrlrmrnrorrrtrurvrwrcrdrfrgrhrirjrrrrrrrkrlrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)r rrmrr rnrorprqrrrsrtrurvrwrxryrzr r{r|r}r~rrrrrrrrr rrrrrrrrrrrrrrrr rrrrrrrrrrr rrrrr rrr rr r rr rrrr rrrrrr rrrrrrr rrr r r rr rr r r rrrrrr rrr r rr r r r rrr rrr rrrrrrrr rrrrrrrr rr rrrrrrrr r r rrr rrrrrrrrrrrrrr rrrrrrrrrrrrrrrrr)5rrr rrrr@rArBrCrErGrHrIrJrKrLrMrNrQrlrmrorprrrtrurvrwrxrrrrrrrrrrrrrrrrrrrrrr)5rrrr(rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)4rrrrrFrrrrrrrFrrrrrrFrrrrrrFrrrFrrrFrrrrFrrrrFrrFrFrrrrrFrFrrrFrr)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r7r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr7rrrrrrrrrrrrrrrrrBrCrDrErFrGrrrLrMrr[r\r`)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rrZr7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r/r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr/rrrrrrrr/rrrr/rr/r/rrBrCrDrErFrGrrrLrMrr[r\r`)4rrrr+rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rr]r7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r:r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rrrrrrrrrrrrrrrrrrrBrCrDrErFrGrrrLrMrr[r\r`)rrrrrrrrrrrrrrrrrrr#rr(rrrrr/rr1rrrrrrrrrrrrrrrrrrr8r9r:r;rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)4rrrr0rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)Lrrrrrrrr rrrrr0r r9rr?rrArBrCrErFrGrrLr@rArBrCrErGrHrIrJrKrLrMrNrWrYr\rQrlrmrorprrrtrurvrwrxrerrrrrrrrrrrrrrrrrrrrrr)Lrrurvrwryr}rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)4rrrrrMrrrrrrrMrrrrrrMrrrrrrMrrrMrrrMrrrrMrrrrMrrMrMrrrrrMrMrrrMrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r,r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr,rrr,r,r,rr,r,rrr,r,r,r,r,rrBrCrDrErFrGrrrLrMrr[r\r`)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r+r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rrrrrrrrrrrrrrrrrrrBrCrDrErFrGrrrLrMrr[r\r`)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrr#rr(rrrrr/rr1rrrrrrrrrrrrrrrrrrr8r9r:r;rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrr0r rrrrrrrrrrrdrrrrrrrerrrfrrrrrrrrrrArBrCrErFrGrr rgrr&rrhrirrrrrrrjrkr@rArBrCrErGrHrIrJrKrL2rN5rWrYr\EFGrQrvrgrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}rrrrrrrlrmrorrrtrurvrwrerr|rr~rrrrrrrrrr rr"rrrrrrrrrrrr)rrrrrrrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.rr/r0r1r2rr3r4rrrrrrrrrUrPrrr?r7rrr8r9r:r;r<r=rrrrrrrirrrrrrrrrrrrTrriirrrrrrrrrrrrrrrrrrrBrCrDrErFrGrrrrrrrrrSOr>rrrrDrrr r rrrIrrrJrrrrrDrgrrEr!rrhrirrrrrNrOrrrjrQrrrkrrRrrrTrUrrrrrVrXrZr[rGrJrr$r%r&r]rKrLr^r_rrrrrrrrr(rlrmrnrorprqrrrsrtrurvrwrxryrzr{rr|r}rrrrrrrrrrNrcrdrOrfrgr)r*rhrirrrrrrr+r,rr~rrrrrrrrrrrrQrRrkrlrr r-rrr.r rrrrrr/rrrrr4rrr)rmrrnrorprqrrrsrtrxrzr{r|r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrUrrrrVrrrrrrrrrrWrrXrrrrrr r!r"r#r$r%rr&rr'rr(r)r*r+r,rr-r.rr/r0r1r2rr3r4rrrrrr0r&r1rr5rMrr]rarr6rYrrrZr2r7rrr8r9r:r;rrr<r=rrrhrrrrrrrrrrrhr4rrrrrr[r\r&r&r4rr]r^rrrrrrr>rr?r@r|rrrrrrrrrrrrrrrrrhrrrBrCrDrErhrFrrrGrrhrrr_rrr5r6rrrrrrHrIrr7r8rrrrLrMrrrNrOrPrhrhrhr`rarrrQrRr9rrrrUrVrWrXrYrZr:r[r\rhr]r^rhr`rarb)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrhrrrrrhrrrhrhrrrrhrrhrhrhrrrhrhrrrhrrrrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrhrrrrrrhrrhrhrrrrrrhrrhrhrrrhrhrrhrhrrrrrrrrhrrrrrrhrhrrhrhrhrhrrrhrrhrhrrhrrhrrrhrhrhrrrrhrhrhrrrrrhrrhrrrrhrrrhrrhrhrrhrhrhrrhrhrhrrhrrrrrhrhrhrrrhrr)rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrrrr r!r"rr#r$r%rr&r'r(r)r*r+r,r-r.rr/r0r1r2rr r3r4r r5r r6r7r8r9rrr:r;r<r=rr>r?rr@rArBrCrDrErFrGrrHrrIr!r"rJrKr$r%rLr'r(r)rMrNrOrPrQrRrSrTrUr?r@rArBrCrErGrHrIrJrKrLrNrVrWrXrYrZr[r\r]rQr^r_r`rarbrlrmrnrorrrtrurvrwrcrdrerfrgrhrir{rjrrrrrrrkrlrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrprrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrirrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)Irrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.r3r/r0r1r2rr3r4rrr7rrr8r9r:r;r<r=rrr4rr3rrrrrrrrrrrr3rrr3rrBrCrDrErFrGrrrLrMrr[r\r`)rrrmrrrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rrXr7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`(Srrrrrrrrrrrrrrrrrrrrrrrrrrrrr%rrr r r r rrrrrrrrrrrrrrrrrrrr rr!rr#r$r%rr'r(r*r,r.rr/r1r2rrr r r3r4r r r r6r7r8r9rrrrrrrrrrrrrrr;rrdrrr<rrrrrrrrrerrrfrrrrrrrrrrrrr>r?rrDrrHrrrr r!r"rJr#r$r%rLrgr&r'rr(rhr)rirrrrrNrOr*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<rrr=r>rjrQrkrRrSrTrUr?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrrVrXrZr[rOr]rPrQrRrSrTr`rUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}rrrrrrrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrcrdrrzrfrgr{r|r}r~r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr(Srrrmrrrnrorprqrrrsrtrurvrwrxryrzr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rr!rr"r#r$r%rr&rr'rrr(rrrr)r*r+r,rr-r.r5r/r0rr1r2rr3rrrrr4rrrrrrrrrrRrrrrUrrrrrrr7rrrrr8r9r:r;rrrrrrrrrrrrrrrrrrrrrr<r=rrrrrrrrrrrrrrrrrrrrrrrrr4rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr5r5r5r5r5r5r5r5r5r5rrr5r5r5r5r5rrBrCrDrErFrGrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrLrMrrrrrrrrrrrrrrrrrrrrrrrrrrr[rrr\rrrrrr`rrrrrrrr(lrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrjrrr rr r r r rrrrrrrrrrrrrrrrrrrrr rr!rrrrr#r$r%rr&r'r(r*r,r.rr/r1r2rrr r r3r4rir r r r6r7r8r9rrrrrrrrrrrrrrrr;rrrr<rrrrrrrrrrrrrrrrrrrhrrrrrr>r?rrDrrHrrrIrrr r!r"rJrr#r$r%rLr&r'rr(r)rrrrrNrOr*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<rrr=r>rQrRrrSrTrUr?rr@rArBrCrDrEr rrFrGrrHrIrJrKrLrMrNr7rVrXrZr[rOr]rPrQrRrSrTr^r_r`rrrrUrVrWrrrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrrrrrrrhrirrjrkrlrmrnrorprqrrrsrtrurvrwrxryrcrdrrzrfrgrhrirrr{rrr|r}r~rrrrrrrrrrrrrrrrrrrkrlrrrrr rrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr(lrjrrmrrrnrorprrqrrrsrtrurjrvrwrxryrzr{r|r}r~rr-rrrrrrjrrrjr rrrrrrr5rrrrrrrrrjrrrrrr-rrrrrrr:rrrrrrr5rrrjrrrrrrrrrrrrr-rrrrrrrrrr:rr'rrr rr!rr"r#r$r%rr&r'r(rr(r)rrr)r*r+rMr,r-r.r/r0rr1r2r>r3rPrrr'r)r4rSrr'rrrrr5rr'rr'rrr`r6r'rrrrr'r7r'r'r8r9r:r;rrrrrrrrrrrrrrrrrrr'rrr<r=r'r'rrrSrSrrrrbrrrrr'rrnrqrr'rsrrrrrr'rr4ryrrrrrrrrrr'r'rrr`r`rjr>rr'r'r?r@rrrrrrrr'rrrrrrr'rrBrCrDrErFrGr'rrbr'r'rrr'rr'r'rr'rr'rrr'r'rrrrrrrrr`rjrrHrIrrrrrLrMr'rrNrOrPrrrr'rr'rrrrrrr'rrrQrRr'rrUrVrWrXr'r'rr'r'r'rr'r'rYrZr[r'rr\r'rrrrr]r^r`r'r'rarbr'rrr'rr)rrrrrrrrrrrrrrrrrrr rr!rr"r#r$r%r&r'rr(rrrr)r*r+r,r-r.r/r0rr1r2rr3rrrrr4rrrrrrrrrrrrr7rrr8r9r:r;rrrrrrrrrrrrrrrrrrrr<r=rrrrrrrrrrrrrrrrrrr4rrrrrrrrrrrrrrrrrrrrrrrrrrBrCrDrErFrGrrrrrrrrrrrrrrrrrrrrrrrrrLrMrrrrrrrrrrrrrrrrrrrrrrrrrr[rrr\rrrrrr`rrrrrrrr( rrrrrrrrrrrrrrlrrrrrrrrrrrrrrrrrrrrrjrrr r r r rrrrrrrrrrrrrrrrrrrr rr!rrr#r$r%rr'r(r*r,r.rr/r1r2frrr r r3r4r r r5r r6r7r8r9rrrr:rrrr;rr<rrrrrrrrr?rrDrrHrrrrr r!r"rJr#r$r%rLr&r'r(r)rNrOr*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<rrr=r>rQrRrTrUr?r@rArBrrCrDrErFrGrHrIrJrKrLrMrNrVrXrZr[rOr&r]rPrQrRrSrTr`rrfrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrcrdrrzrfrgrr{rjr|r}r~rrrgrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr( r rrmrr rnrorprqrrrsrtrur rvrwrxryrzr{r|rr}r~rrrrr/r2rrrrr rrr rrrrrrrrrrrrrr rrrrrrrrrr rr rrrrrrr r rrrrrrr rrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrrr r r rr5rr rrrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrMrrrrrrrrrrrrrrrrrr rrrrrrr r rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrr rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)4rrrrrmrrrrrrrmrrrrrrmrrrrrrmrrrmrrrmrrrrmrrrrmrrmrmrrrrrmrmrrrmrr)rrrrrrrrr r r r r rrrrrrrrrrrrrrrrrrrrr r!r"r#r$r%r&r'rr(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>r?r@rArBrCrDrErFrGrHrIrJrKrLrMrNrOrPrQrerRrSrTrUrVrWrXrYrZr[r\r]r^r_r`rarbrcrdrerfrgrhrirjrkrlrmrnrorprqrrrsrtrurvrwrxryrzrr{r|r}r~rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrrrrrrrr)rrrrrrrrrrrrrrrrrr7rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)r rrmrr rnrorprqrrrsrtrurvrwrxryrzr r{r|r}r~rrrrrrrrr rrrrrrrrrrrrrrrr rrrrrrrrrrr rrrrr rrr rr r rr rrrr rrrrrr rrrrrrr rrr r r rr rr r r rrrrrr rrr r rr r r r rrr rrr rrrrrrrr rrrrrrrr rr rrrrrrrr r r rrr rrrrrrrrrrrrrr rrrrrrrrrrrrrrrrr)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rr\r7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)5rrr r!r"r#r$r%r&rr'r(r)r*r+r,r-r.r/r0r1r2rr3r4rr^r7rrr8r9r:r;r<r=rrr4rBrCrDrErFrGrrrLrMrr[r\r`)xrrrrrr r r rrrrrrrrrrrdrrrrrrrerrrfrrrrrrrrrrr r!r#r$rgrrrhrirrrrrrrjrrkr?NOrRQ_rUrlrmrnrorprqrrrsrtrurvrwrxryrzr{r|r}rrrrrbrrrjrkrkr{rrr~rrrrrrrrrrrr12rdr)xrrrrrrrrrrrr r!r"r#r$r%r&rr'r(r)r*r+r,rr-r.rr/r0r1r2rr3r4rrrrrrrrrr7rrr8r9r:r;r<r=rrrrrhrirrrrrrrrrrrrrrrrrrrrrBrCrDrErrFrGrrrrkrlrrr rr rrrrLrMrrr rrrrrrrr[r\rrrr`)qZINT_CONST_CHARZVOIDLBRACKETZ WCHAR_CONSTZ FLOAT_CONSTMINUSRPARENZSTRUCTLONGPLUSELLIPSISZU32STRING_LITERALGTZGOTOZENUMZPERIODZGEZ INT_CONST_DECZARROWZ_STATIC_ASSERTZCHARZHEX_FLOAT_CONSTDOUBLEZ MINUSEQUALZ INT_CONST_OCTZ TIMESEQUALORZSHORTZRETURNZ RSHIFTEQUALZ_ALIGNASZRESTRICTZSTATICZSIZEOFZUNSIGNEDZUNIONCOLONz$endZWSTRING_LITERALZDIVIDEZFORZPLUSPLUSZEQUALSELSEZANDEQUALZEQANDZTYPEIDLBRACEZPPHASHINTZSIGNEDCONTINUENOTZOREQUALZMODZRSHIFTDEFAULTZ _NORETURNZ__INT128ZWHILEZ U8CHAR_CONSTZ_ALIGNOFZEXTERNZCASEZLANDZREGISTERZMODEQUALZNEZSWITCHZ INT_CONST_HEXZ_COMPLEXZ PPPRAGMASTR PLUSEQUALZ U32CHAR_CONSTZCONDOPZU8STRING_LITERALZBREAKZVOLATILEZPPPRAGMAZINLINEZ INT_CONST_BINZDOZLNOTZCONSTZLSHIFTZLORZ CHAR_CONSTZU16STRING_LITERALRBRACEZ_BOOLZLESEMIZ _THREAD_LOCALLTCOMMAZ U16CHAR_CONSTZOFFSETOFZ_ATOMICZTYPEDEFZXORZAUTOZDIVEQUALZTIMESLPARENZ MINUSMINUSZIDZIFZSTRING_LITERALFLOATZXOREQUALZ LSHIFTEQUALRBRACKETrr) rrGrMrprurxrrrrrrr) r@r@r@r@r@r@r@r@r@r@r@r@r@)!rrr rr"rr*r+r-r0r5r:r=rrrArBrCrKr'r(r)rMrPrSrGrWrYr`rarbrnrj)!rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr(r<r=) rArArArArArArArArArArArArA)rrrrGrMrprurxrrrrrrr)rrrBrBrBrBrBrBrBrBrBrBrBrBrB)Rrr rrrrrrrrr r#r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>rDrFrGrMrOrPrerSrTrVrWr_rerfrhrirjrkrnrprqrsrurxryrzr~rrrrrrrrrrrrrrrrrrr)Rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)r r#rjrkr)rqrtrzr{r|)rrrr.r/r1r2rrrrr'rGrMrfrirprurxr~r~rrrrrrrrr)r0rnrrArBrorprr&rr&rrrr&rrrrrrrrr&rrrrrr)rnrorpr&)rrrr)rJr)rr rr"r%r?r{r)rr r#rTrWrjrr)rrrrrrr')rr,r6r7r8r,r,)rrGrMrnrprurxrrrrrrrrrrr)rFrFrFrPrFrFrFrSrFrTrFrFrFrrrFrFrF)r&r|rr)rdrdrdrd)r5r:rSr`rbrj)rrrrrr))rrrrrrrrrrr"rr'r(r+r-r0r5r:rr>rrArBrCrHrJr'r(r)rMrPrSrGrWrYr`rarbrnrj))rrr$rrrrrrrrr;rr$rr;r;rrr;rUrr;r;r;rUr$r;r;r;r;r;rrr;r;rrrrr) rCrCrCrCrCrCrCrCrCrCrCrCrC)r>rJrSr`)rrrrr)rr(rr)r?r?rDrL)r>rJrrSr`rr)rrrrrrr)rrrr)Xrr r5r:rrrrrrrrr r#r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>rDrFrGrMrOrPrSrTrfrVrWr_rrerfrhrirjrkrnrprqrsrurxryrzrjr~rrrgrrrrrrrrrrrrrrrrrr)Xrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr rrrrrrrrrrrrrrrrrrrgr )Qrr rrrrrrrrr r#r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>rDrFrGrMrOrPrSrTrVrWr_rerfrhrirjrkrnrprqrsrurxryrzr~rrrrrrrrrrrrrrrrrrr)Qrdrdrgrhrirdrgrkrgrgrgrgrgrgrgrdrdrdrdrdrdrdrdrdrdrdrdrdrdrdrdrgrdrdrgrgrgrdrgrgrdrdrgrgrgrgrgrdrgrgrdrgrgrgrgrgrgrgrgrgrdrdrdrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgrgr>rr)rrrfr)rErKr,r/)rrrlrjr rrrr(r*rrHrrJr`rrr)rrr&rrrrr&rrrrrrrr&rr&)r0rArB)rCrWrYrrr"r+r r*r@)!rrr3rrr<r3rr<r<rrrQr<rr<r<r<r3r<r<r<r<r<rrr<r<rrrrr)rrrr'rGrMrprurxrrrrrrr)r?rLrErrErErErErErErErErErErErE)rrrjr rrr(r*rrr>rHrrJrSr`r)rlrrlrlrlrrrlrrrrrrrrr)rrr(rrHrr)rrrrrrrrA)rr(rrHrr)r r r rr rr>rrHrIrrG)rSr`rb)rrrrrJrQ)6rrrrrrrrrrrr"rr'r(r+r-r0rr r5rr:r=rr>rrArBrCrHr!r"rJr$r%r'r(r)rMrPrSr?rGrWrYr`rarbrnr{rjrr)6rrr#rrr rrrrrrr rr#rr r rr rr rrr rTrr r r rTrr r#rr r r r r r rr rr r rrrrr rrr rgr_)rrr'r(r)r:r=rDrGrMrnrprqrsrurxryrrrrrrrrrrrrr)rrrrrrrbrNrrrrrrrrrrrrrrrrrdrrrrr)rrrrrrrrrrr"r'r(r+r5r:rrJrSrGr`rarbrnrj)rrr rrrrrrrrrr rrrrr rrrrrrr)Qrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr&r')r0rArBrCr r#rWrYr$r%r'r|r.r)rDrXrZr[r]rwrcrdrfrgr+r-rr)rrrr(rrHrr)rrrrrrrrrr9) rMrprxrrrrrrr) rrrrrrrrrr)rr-rr'r(r)rMrP)rrrrrrrrc)!rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrr0rrArBrCrGrMrWrYrprurxrrrrrrr)rrrFrHrFrFrFrHrurFrFrurHrurururururururu) rIrIrvrvrrvrvrvrvrrvrvrv)Nrr rrrrrr r#r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>rDrFrGrMrOrPrSrTrVrWr_rerfrhrirjrkrnrprqrsrurxryrzr~rrrrrrrrrrrrrrrrrrr)Nrerererjrerererererererererererererererererererererererererererererererererererererererererererrererererererererererrerererererererererererererererererere)(rrrrr rrrrrr"rr'r*r+r-r0r5r:r=rrrArBrCrKr'r(r)rMrPrSrGrWrYr`rarbrnrj)(rrr'rr4rrrrrr'r4rr4r'r4r4rrr4r4r'r4r4r4r4r4r4r4r4r4rr'r4r4rrrr'rrG):rrrrrrr rrrrr"r'r(r*r r5rr:r>rrHr r"rJr#r%r&rSr?rGrMr`rjrkrbrnrprurxr{rjr|rrrrrrrrrrrrrrr):r rr>rrr rCrrrrrrr>rCr rr rrr"rHrsr rrsr rgrr rrrrsrsrrrrrr rrrrrrsr rrrrrrrrrr)r5r:rSr`rarbrj)rrrrrrr)Qrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)rrrr"r+rrGrn)rr)rr)r@rJrJr)rrrrrrrrrr"r'r+r5r:rrSrGr`rarbrnrj)r rr*rrrrr rr*rr*rKrKr*rKr*rKrKrKr*rK) rKrKrKrKrKrKrKrKrKrKrKrKrK)rnrorp)r r$r%rLrr)rr rFrOrPrerz)rrrrOr*ryrR)r5r:rj)rrr)Qrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)&rrrr rr"rr(r*r+r-r0r5r:r=rr>rrArBrCrHrJrKr'r(r)rMrPrSrGrWrYr`rarbrnrj)&rr!rrrrrr!rrrrrrrrrRrrrrrRr!rrrrrrrrrrrrrrr)r0rArBrCrWrY)rGrGrGr\r\r\rrr)rrrjr rrr(r*rrHrrJr`r)rr"rr rrrr rrrrrr) rNrNrNrNrNrNrNrNrNrNrNrNrN)Qrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr(r.)Qrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)!rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr#)1rrrrr r#r'r(r)r:r=r>rDrGrMrSrTrVrWr_rfrhrjrkrnrprqrsrurxryrrrrrrrrrrrrrrrrrr)1r!rrr!rrrrrrrrrrrrrrurvrwrxrr!rrrrrrrrrrrrrrrrrr!rrrrrr}r~rrrrrr)rfrrfr)rrrrrr)rrr-r0r rrrArBrCr"r%r'r(r)rMrPr?rWrYr{r)rr=r=r=r!r$r=r=r=r=rrr=r=r=r=r=rr=r=rr)r&rr|rr)rrrrrrB)rrrr"r+r5r:rrSrGr`rarbrnrj)rr(rr(r(rJrJr(rJr(rJrJrJr(rJ)rrrrrr )Krr rrrrr r#r'r(r)r*r+r,r-r.r/r0r1r2r3r4r5r6r7r8r9r:r;r<r=r>rDrFrGrMrOrPrSrTrVrWr_rerfrhrjrkrnrprqrsrurxryrzrrrrrrrrrrrrrrrrrrr)Krfrfrfrfrfrfrfrfrfrfrfrlrmrnrorprqrrrsrtrurvrwrxryrzr{rfr|r}rfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrfrf)!rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)r;r;r;r;r;r;r;r;)rrr%rrrrrrrrrr%rrrrr%rrrrrrr)rr-r0rrArBrCr'r(r)rMrPrWrY)r>r>rHr>rHrHrHr>r>r>r>r>rHrH)9rr rrrrr r#r'r(r)r:r=r>rDrFrGrMrOrPrSrTrVrWr_rerfrhrjrkrnrprqrsrurxryrzrrrrrrrrrrrrrrrrrrr)9rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr)cexpression_statementstruct_or_union_specifierinit_declarator_listinit_declarator_list_optiteration_statement static_assertunified_string_literalassignment_expression_opt brace_open enumeratortypeid_noparen_declaratortype_qualifier_list_opt"declaration_specifiers_no_type_optexpression_opt designationparameter_listalignment_specifierlabeled_statementabstract_declaratortranslation_unitinit_declaratordirect_abstract_declaratordesignator_list identifieroffsetof_member_designatorunary_expressionabstract_declarator_opt initializerdirect_id_declaratorstruct_declaration_list pp_directivedeclaration_listid_init_declaratortype_specifiercompound_statementpointertypeid_declaratorid_init_declarator_list declaratorargument_expression_liststruct_declarator_list_optblock_item_listparameter_type_list_optstruct_declaratortype_qualifierassignment_operator expressionstorage_class_specifierunified_wstring_literaltranslation_unit_or_emptyinitializer_list_opt brace_closedirect_typeid_declaratorexternal_declarationpragmacomp_or_statement type_name typedef_namepppragma_directive statementcast_expressionatomic_specifierstruct_declarator_listemptyparameter_declarationprimary_expression declarationdeclaration_specifiers_no_typejump_statementenumerator_list block_itemconstant_expressionidentifier_list_optconstanttype_specifier_no_typeidstruct_declaration direct_typeid_noparen_declarator id_declaratorselection_statementpostfix_expressioninitializer_listunary_operatorstruct_or_unionblock_item_list_optassignment_expressiondesignation_optparameter_type_listtype_qualifier_list designatorid_init_declarator_list_optdeclaration_specifiersidentifier_listdeclaration_list_optfunction_definitionbinary_expressionenum_specifier decl_bodyfunction_specifierspecifier_qualifier_listconditional_expression(R)zS' -> translation_unit_or_emptyzS'rNNN)z abstract_declarator_opt -> emptyrrp_abstract_declarator_opt plyparser.pyr )z.abstract_declarator_opt -> abstract_declaratorrrrrr )z"assignment_expression_opt -> emptyrrp_assignment_expression_optrr )z2assignment_expression_opt -> assignment_expressionrrrrr )zblock_item_list_opt -> emptyrrp_block_item_list_optrr )z&block_item_list_opt -> block_item_listrrrrr )zdeclaration_list_opt -> emptyrrp_declaration_list_optrr )z(declaration_list_opt -> declaration_listrrrrr )z+declaration_specifiers_no_type_opt -> emptyrr$p_declaration_specifiers_no_type_optrr )zDdeclaration_specifiers_no_type_opt -> declaration_specifiers_no_typerrrrr )zdesignation_opt -> emptyrrp_designation_optrr )zdesignation_opt -> designationrrrrr )zexpression_opt -> emptyrrp_expression_optrr )zexpression_opt -> expressionrrrrr )z$id_init_declarator_list_opt -> emptyrrp_id_init_declarator_list_optrr )z6id_init_declarator_list_opt -> id_init_declarator_listrrrrr )zidentifier_list_opt -> emptyrrp_identifier_list_optrr )z&identifier_list_opt -> identifier_listrrrrr )z!init_declarator_list_opt -> emptyrrp_init_declarator_list_optrr )z0init_declarator_list_opt -> init_declarator_listrrrrr )zinitializer_list_opt -> emptyrrp_initializer_list_optrr )z(initializer_list_opt -> initializer_listrrrrr )z parameter_type_list_opt -> emptyrrp_parameter_type_list_optrr )z.parameter_type_list_opt -> parameter_type_listrrr rr )z#struct_declarator_list_opt -> emptyrrp_struct_declarator_list_optrr )z4struct_declarator_list_opt -> struct_declarator_listrrr rr )z type_qualifier_list_opt -> emptyrrp_type_qualifier_list_optrr )z.type_qualifier_list_opt -> type_qualifier_listrrr rr )zdirect_id_declarator -> IDrrZp_direct_id_declarator_1rr)z3direct_id_declarator -> LPAREN id_declarator RPARENrrZp_direct_id_declarator_2rr)zpdirect_id_declarator -> direct_id_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKETrrZp_direct_id_declarator_3rr)zsdirect_id_declarator -> direct_id_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKETrrp_direct_id_declarator_4rr)zodirect_id_declarator -> direct_id_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKETrrr rr)z\direct_id_declarator -> direct_id_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKETrrZp_direct_id_declarator_5rr)zNdirect_id_declarator -> direct_id_declarator LPAREN parameter_type_list RPARENrrp_direct_id_declarator_6rr)zNdirect_id_declarator -> direct_id_declarator LPAREN identifier_list_opt RPARENrrr rr)z"direct_typeid_declarator -> TYPEIDrrZp_direct_typeid_declarator_1rr)z;direct_typeid_declarator -> LPAREN typeid_declarator RPARENrrZp_direct_typeid_declarator_2rr)zxdirect_typeid_declarator -> direct_typeid_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKETrrZp_direct_typeid_declarator_3rr)z{direct_typeid_declarator -> direct_typeid_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKETrrp_direct_typeid_declarator_4rr)zwdirect_typeid_declarator -> direct_typeid_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKETrrrrr)zddirect_typeid_declarator -> direct_typeid_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKETrrZp_direct_typeid_declarator_5rr)zVdirect_typeid_declarator -> direct_typeid_declarator LPAREN parameter_type_list RPARENrrp_direct_typeid_declarator_6rr)zVdirect_typeid_declarator -> direct_typeid_declarator LPAREN identifier_list_opt RPARENrrrrr)z*direct_typeid_noparen_declarator -> TYPEIDrrZ$p_direct_typeid_noparen_declarator_1rr)zdirect_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKETrrZ$p_direct_typeid_noparen_declarator_3rr)zdirect_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET STATIC type_qualifier_list_opt assignment_expression RBRACKETrr$p_direct_typeid_noparen_declarator_4rr)zdirect_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET type_qualifier_list STATIC assignment_expression RBRACKETrrrrr)ztdirect_typeid_noparen_declarator -> direct_typeid_noparen_declarator LBRACKET type_qualifier_list_opt TIMES RBRACKETrrZ$p_direct_typeid_noparen_declarator_5rr)zfdirect_typeid_noparen_declarator -> direct_typeid_noparen_declarator LPAREN parameter_type_list RPARENrr$p_direct_typeid_noparen_declarator_6rr)zfdirect_typeid_noparen_declarator -> direct_typeid_noparen_declarator LPAREN identifier_list_opt RPARENrrrrr)z%id_declarator -> direct_id_declaratorrrZp_id_declarator_1rr)z-id_declarator -> pointer direct_id_declaratorrrZp_id_declarator_2rr)z-typeid_declarator -> direct_typeid_declaratorrrZp_typeid_declarator_1rr)z5typeid_declarator -> pointer direct_typeid_declaratorrrZp_typeid_declarator_2rr)z=typeid_noparen_declarator -> direct_typeid_noparen_declaratorrrZp_typeid_noparen_declarator_1rr)zEtypeid_noparen_declarator -> pointer direct_typeid_noparen_declaratorrrZp_typeid_noparen_declarator_2rr)z-translation_unit_or_empty -> translation_unitrrp_translation_unit_or_empty c_parser.pyrR)z"translation_unit_or_empty -> emptyrrrrr)z(translation_unit -> external_declarationrrZp_translation_unit_1rr)z9translation_unit -> translation_unit external_declarationrrZp_translation_unit_2rr)z+external_declaration -> function_definitionrrZp_external_declaration_1rrS)z#external_declaration -> declarationrrZp_external_declaration_2rr)z$external_declaration -> pp_directiverrp_external_declaration_3rr)z*external_declaration -> pppragma_directiverrrrr)zexternal_declaration -> SEMIrrZp_external_declaration_4rr)z%external_declaration -> static_assertrrZp_external_declaration_5rr)z^static_assert -> _STATIC_ASSERT LPAREN constant_expression COMMA unified_string_literal RPARENrrp_static_assert_declarationrr)zAstatic_assert -> _STATIC_ASSERT LPAREN constant_expression RPARENrrrrr})zpp_directive -> PPHASHrrZp_pp_directiverr)zpppragma_directive -> PPPRAGMArrp_pppragma_directiverr)z*pppragma_directive -> PPPRAGMA PPPRAGMASTRrrrrr)zLfunction_definition -> id_declarator declaration_list_opt compound_statementrrZp_function_definition_1riJ)zcfunction_definition -> declaration_specifiers id_declarator declaration_list_opt compound_statementrrZp_function_definition_2ri\)zstatement -> labeled_statementrr p_statementrik)z!statement -> expression_statementrrrril)zstatement -> compound_statementrrrrim)z statement -> selection_statementrrrrin)z statement -> iteration_statementrrrrio)zstatement -> jump_statementrrrrip)zstatement -> pppragma_directiverrrriq)zstatement -> static_assertrrrrir)z7pragmacomp_or_statement -> pppragma_directive statementrrp_pragmacomp_or_statementri)z$pragmacomp_or_statement -> statementrrrri)z declaration_specifiers init_declarator_list_optrr p_decl_bodyri)zGdecl_body -> declaration_specifiers_no_type id_init_declarator_list_optrrrri)zdeclaration -> decl_body SEMIrrZ p_declarationri)zdeclaration_list -> declarationrrp_declaration_listri)z0declaration_list -> declaration_list declarationrrrri)zSdeclaration_specifiers_no_type -> type_qualifier declaration_specifiers_no_type_optrrZ"p_declaration_specifiers_no_type_1ri)z\declaration_specifiers_no_type -> storage_class_specifier declaration_specifiers_no_type_optrrZ"p_declaration_specifiers_no_type_2ri )zWdeclaration_specifiers_no_type -> function_specifier declaration_specifiers_no_type_optrrZ"p_declaration_specifiers_no_type_3ri)zUdeclaration_specifiers_no_type -> atomic_specifier declaration_specifiers_no_type_optrrZ"p_declaration_specifiers_no_type_4ri)zXdeclaration_specifiers_no_type -> alignment_specifier declaration_specifiers_no_type_optrrZ"p_declaration_specifiers_no_type_5ri)z?declaration_specifiers -> declaration_specifiers type_qualifierrrZp_declaration_specifiers_1ri")zHdeclaration_specifiers -> declaration_specifiers storage_class_specifierrrZp_declaration_specifiers_2ri')zCdeclaration_specifiers -> declaration_specifiers function_specifierrrZp_declaration_specifiers_3ri,)zIdeclaration_specifiers -> declaration_specifiers type_specifier_no_typeidrrZp_declaration_specifiers_4ri1)z(declaration_specifiers -> type_specifierrrZp_declaration_specifiers_5ri6)zGdeclaration_specifiers -> declaration_specifiers_no_type type_specifierrrZp_declaration_specifiers_6ri;)zDdeclaration_specifiers -> declaration_specifiers alignment_specifierrrZp_declaration_specifiers_7ri@)zstorage_class_specifier -> AUTOrrp_storage_class_specifierriE)z#storage_class_specifier -> REGISTERrrrriF)z!storage_class_specifier -> STATICrrrriG)z!storage_class_specifier -> EXTERNrrrriH)z"storage_class_specifier -> TYPEDEFrrrriI)z(storage_class_specifier -> _THREAD_LOCALrrrriJ)zfunction_specifier -> INLINErrp_function_specifierriO)zfunction_specifier -> _NORETURNrrrriP)z type_specifier_no_typeid -> VOIDrrp_type_specifier_no_typeidriU)z!type_specifier_no_typeid -> _BOOLrrrriV)z type_specifier_no_typeid -> CHARrrrriW)z!type_specifier_no_typeid -> SHORTrrrriX)ztype_specifier_no_typeid -> INTrrrriY)z type_specifier_no_typeid -> LONGrrrriZ)z!type_specifier_no_typeid -> FLOATrrrri[)z"type_specifier_no_typeid -> DOUBLErrrri\)z$type_specifier_no_typeid -> _COMPLEXrrrri])z"type_specifier_no_typeid -> SIGNEDrrrri^)z$type_specifier_no_typeid -> UNSIGNEDrrrri_)z$type_specifier_no_typeid -> __INT128rrrri`)ztype_specifier -> typedef_namerrp_type_specifierrie)z type_specifier -> enum_specifierrrrrif)z+type_specifier -> struct_or_union_specifierrrrrig)z*type_specifier -> type_specifier_no_typeidrrrrih)z"type_specifier -> atomic_specifierrrrrii)z3atomic_specifier -> _ATOMIC LPAREN type_name RPARENrrZp_atomic_specifierrio)ztype_qualifier -> CONSTrrp_type_qualifierriv)ztype_qualifier -> RESTRICTrrrriw)ztype_qualifier -> VOLATILErrrrix)ztype_qualifier -> _ATOMICrrrriy)z'init_declarator_list -> init_declaratorrrp_init_declarator_listri~)zBinit_declarator_list -> init_declarator_list COMMA init_declaratorrrr ri)zinit_declarator -> declaratorrrp_init_declaratorri)z0init_declarator -> declarator EQUALS initializerrrr!ri)z-id_init_declarator_list -> id_init_declaratorrrp_id_init_declarator_listri)zHid_init_declarator_list -> id_init_declarator_list COMMA init_declaratorrrr"ri)z#id_init_declarator -> id_declaratorrrp_id_init_declaratorri)z6id_init_declarator -> id_declarator EQUALS initializerrrr#ri)zMspecifier_qualifier_list -> specifier_qualifier_list type_specifier_no_typeidrrZp_specifier_qualifier_list_1ri)zCspecifier_qualifier_list -> specifier_qualifier_list type_qualifierrrZp_specifier_qualifier_list_2ri)z*specifier_qualifier_list -> type_specifierrrZp_specifier_qualifier_list_3ri)z>specifier_qualifier_list -> type_qualifier_list type_specifierrrZp_specifier_qualifier_list_4ri)z/specifier_qualifier_list -> alignment_specifierrrZp_specifier_qualifier_list_5ri)zHspecifier_qualifier_list -> specifier_qualifier_list alignment_specifierrrZp_specifier_qualifier_list_6ri)z/struct_or_union_specifier -> struct_or_union IDrrp_struct_or_union_specifier_1ri)z3struct_or_union_specifier -> struct_or_union TYPEIDrrr$ri)z[struct_or_union_specifier -> struct_or_union brace_open struct_declaration_list brace_closerrp_struct_or_union_specifier_2ri)zCstruct_or_union_specifier -> struct_or_union brace_open brace_closerrr%ri)z^struct_or_union_specifier -> struct_or_union ID brace_open struct_declaration_list brace_closerrp_struct_or_union_specifier_3ri)zFstruct_or_union_specifier -> struct_or_union ID brace_open brace_closerrr&ri)zbstruct_or_union_specifier -> struct_or_union TYPEID brace_open struct_declaration_list brace_closerrr&ri)zJstruct_or_union_specifier -> struct_or_union TYPEID brace_open brace_closerrr&ri)zstruct_or_union -> STRUCTrrp_struct_or_unionri)zstruct_or_union -> UNIONrrr'ri)z-struct_declaration_list -> struct_declarationrrp_struct_declaration_listri)zEstruct_declaration_list -> struct_declaration_list struct_declarationrrr(ri)zNstruct_declaration -> specifier_qualifier_list struct_declarator_list_opt SEMIrrZp_struct_declaration_1ri)zstruct_declaration -> SEMIrrZp_struct_declaration_2ri#)z(struct_declaration -> pppragma_directiverrZp_struct_declaration_3ri()z+struct_declarator_list -> struct_declaratorrrp_struct_declarator_listri-)zHstruct_declarator_list -> struct_declarator_list COMMA struct_declaratorrrr)ri.)zstruct_declarator -> declaratorrrZp_struct_declarator_1ri6)z9struct_declarator -> declarator COLON constant_expressionrrp_struct_declarator_2ri;)z.struct_declarator -> COLON constant_expressionrrr*ri<)zenum_specifier -> ENUM IDrrp_enum_specifier_1riD)zenum_specifier -> ENUM TYPEIDrrr+riE)z=enum_specifier -> ENUM brace_open enumerator_list brace_closerrZp_enum_specifier_2riJ)z@enum_specifier -> ENUM ID brace_open enumerator_list brace_closerrp_enum_specifier_3riO)zDenum_specifier -> ENUM TYPEID brace_open enumerator_list brace_closerrr,riP)zenumerator_list -> enumeratorrrp_enumerator_listriU)z(enumerator_list -> enumerator_list COMMArrr-riV)z3enumerator_list -> enumerator_list COMMA enumeratorrrr-riW)z7alignment_specifier -> _ALIGNAS LPAREN type_name RPARENrrp_alignment_specifierrib)zAalignment_specifier -> _ALIGNAS LPAREN constant_expression RPARENrrr.ric)zenumerator -> IDrr p_enumeratorrih)z+enumerator -> ID EQUALS constant_expressionrrr/rii)zdeclarator -> id_declaratorrr p_declaratorrix)zdeclarator -> typeid_declaratorrrr0riy)z(pointer -> TIMES type_qualifier_list_optrr p_pointerri)z0pointer -> TIMES type_qualifier_list_opt pointerrrr1ri)z%type_qualifier_list -> type_qualifierrrp_type_qualifier_listri)z9type_qualifier_list -> type_qualifier_list type_qualifierrrr2ri)z%parameter_type_list -> parameter_listrrp_parameter_type_listri )z4parameter_type_list -> parameter_list COMMA ELLIPSISrrr3ri)z'parameter_list -> parameter_declarationrrp_parameter_listri)z parameter_list COMMA parameter_declarationrrr4ri)z=parameter_declaration -> declaration_specifiers id_declaratorrrp_parameter_declaration_1ri*)zIparameter_declaration -> declaration_specifiers typeid_noparen_declaratorrrr5ri+)zGparameter_declaration -> declaration_specifiers abstract_declarator_optrrZp_parameter_declaration_2ri6)zidentifier_list -> identifierrrp_identifier_listriV)z3identifier_list -> identifier_list COMMA identifierrrr6riW)z$initializer -> assignment_expressionrrZp_initializer_1ri`)z:initializer -> brace_open initializer_list_opt brace_closerrp_initializer_2rie)z brace_open initializer_list COMMA brace_closerrr7rif)z/initializer_list -> designation_opt initializerrrp_initializer_listrin)zFinitializer_list -> initializer_list COMMA designation_opt initializerrrr8rio)z%designation -> designator_list EQUALSrrZ p_designationriz)zdesignator_list -> designatorrrp_designator_listri)z-designator_list -> designator_list designatorrrr9ri)z3designator -> LBRACKET constant_expression RBRACKETrr p_designatorri)zdesignator -> PERIOD identifierrrr:ri)z=type_name -> specifier_qualifier_list abstract_declarator_optrrZ p_type_nameri)zabstract_declarator -> pointerrrZp_abstract_declarator_1ri)z9abstract_declarator -> pointer direct_abstract_declaratorrrZp_abstract_declarator_2ri)z1abstract_declarator -> direct_abstract_declaratorrrZp_abstract_declarator_3ri)z?direct_abstract_declarator -> LPAREN abstract_declarator RPARENrrZp_direct_abstract_declarator_1ri)zddirect_abstract_declarator -> direct_abstract_declarator LBRACKET assignment_expression_opt RBRACKETrrZp_direct_abstract_declarator_2ri)zadirect_abstract_declarator -> LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKETrrZp_direct_abstract_declarator_3ri)zPdirect_abstract_declarator -> direct_abstract_declarator LBRACKET TIMES RBRACKETrrZp_direct_abstract_declarator_4ri)z5direct_abstract_declarator -> LBRACKET TIMES RBRACKETrrZp_direct_abstract_declarator_5ri)z^direct_abstract_declarator -> direct_abstract_declarator LPAREN parameter_type_list_opt RPARENrrZp_direct_abstract_declarator_6ri)zCdirect_abstract_declarator -> LPAREN parameter_type_list_opt RPARENrrZp_direct_abstract_declarator_7ri)zblock_item -> declarationrr p_block_itemri)zblock_item -> statementrrr;ri)zblock_item_list -> block_itemrrp_block_item_listri)z-block_item_list -> block_item_list block_itemrrr<ri)z@compound_statement -> brace_open block_item_list_opt brace_closerrZp_compound_statement_1ri)z5labeled_statement -> ID COLON pragmacomp_or_statementrrZp_labeled_statement_1ri)zKlabeled_statement -> CASE constant_expression COLON pragmacomp_or_statementrrZp_labeled_statement_2ri )z:labeled_statement -> DEFAULT COLON pragmacomp_or_statementrrZp_labeled_statement_3ri)zJselection_statement -> IF LPAREN expression RPAREN pragmacomp_or_statementrrZp_selection_statement_1ri)zYselection_statement -> IF LPAREN expression RPAREN statement ELSE pragmacomp_or_statementrrZp_selection_statement_2ri)zNselection_statement -> SWITCH LPAREN expression RPAREN pragmacomp_or_statementrrZp_selection_statement_3ri)zMiteration_statement -> WHILE LPAREN expression RPAREN pragmacomp_or_statementrrZp_iteration_statement_1ri!)zUiteration_statement -> DO pragmacomp_or_statement WHILE LPAREN expression RPAREN SEMIrrZp_iteration_statement_2ri%)zwiteration_statement -> FOR LPAREN expression_opt SEMI expression_opt SEMI expression_opt RPAREN pragmacomp_or_statementrrZp_iteration_statement_3ri))zoiteration_statement -> FOR LPAREN declaration expression_opt SEMI expression_opt RPAREN pragmacomp_or_statementrrZp_iteration_statement_4ri-)zjump_statement -> GOTO ID SEMIrrZp_jump_statement_1ri2)zjump_statement -> BREAK SEMIrrZp_jump_statement_2ri6)zjump_statement -> CONTINUE SEMIrrZp_jump_statement_3ri:)z(jump_statement -> RETURN expression SEMIrrp_jump_statement_4ri>)zjump_statement -> RETURN SEMIrrr=ri?)z+expression_statement -> expression_opt SEMIrrZp_expression_statementriD)z#expression -> assignment_expressionrr p_expressionriK)z4expression -> expression COMMA assignment_expressionrrr>riL)z9assignment_expression -> LPAREN compound_statement RPARENrrZ#p_parenthesized_compound_expressionriX)ztypedef_name -> TYPEIDrrZp_typedef_nameri\)z/assignment_expression -> conditional_expressionrrp_assignment_expressionri`)zSassignment_expression -> unary_expression assignment_operator assignment_expressionrrr?ria)zassignment_operator -> EQUALSrrp_assignment_operatorrin)zassignment_operator -> XOREQUALrrr@rio)z!assignment_operator -> TIMESEQUALrrr@rip)zassignment_operator -> DIVEQUALrrr@riq)zassignment_operator -> MODEQUALrrr@rir)z assignment_operator -> PLUSEQUALrrr@ris)z!assignment_operator -> MINUSEQUALrrr@rit)z"assignment_operator -> LSHIFTEQUALrrr@riu)z"assignment_operator -> RSHIFTEQUALrrr@riv)zassignment_operator -> ANDEQUALrrr@riw)zassignment_operator -> OREQUALrrr@rix)z-constant_expression -> conditional_expressionrrZp_constant_expressionri})z+conditional_expression -> binary_expressionrrp_conditional_expressionri)zZconditional_expression -> binary_expression CONDOP expression COLON conditional_expressionrrrAri)z$binary_expression -> cast_expressionrrp_binary_expressionri)z>binary_expression -> binary_expression TIMES binary_expressionrrrBri)z?binary_expression -> binary_expression DIVIDE binary_expressionrrrBri)z binary_expression MOD binary_expressionrrrBri)z=binary_expression -> binary_expression PLUS binary_expressionrrrBri)z>binary_expression -> binary_expression MINUS binary_expressionrrrBri)z?binary_expression -> binary_expression RSHIFT binary_expressionrrrBri)z?binary_expression -> binary_expression LSHIFT binary_expressionrrrBri)z;binary_expression -> binary_expression LT binary_expressionrrrBri)z;binary_expression -> binary_expression LE binary_expressionrrrBri)z;binary_expression -> binary_expression GE binary_expressionrrrBri)z;binary_expression -> binary_expression GT binary_expressionrrrBri)z;binary_expression -> binary_expression EQ binary_expressionrrrBri)z;binary_expression -> binary_expression NE binary_expressionrrrBri)z binary_expression AND binary_expressionrrrBri)z;binary_expression -> binary_expression OR binary_expressionrrrBri)z binary_expression XOR binary_expressionrrrBri)z=binary_expression -> binary_expression LAND binary_expressionrrrBri)z binary_expression LOR binary_expressionrrrBri)z#cast_expression -> unary_expressionrrZp_cast_expression_1ri)z:cast_expression -> LPAREN type_name RPAREN cast_expressionrrZp_cast_expression_2ri)z&unary_expression -> postfix_expressionrrZp_unary_expression_1ri)z-unary_expression -> PLUSPLUS unary_expressionrrp_unary_expression_2ri)z/unary_expression -> MINUSMINUS unary_expressionrrrCri)z2unary_expression -> unary_operator cast_expressionrrrCri)z+unary_expression -> SIZEOF unary_expressionrrp_unary_expression_3ri)z2unary_expression -> SIZEOF LPAREN type_name RPARENrrrDri)z4unary_expression -> _ALIGNOF LPAREN type_name RPARENrrrDri)zunary_operator -> ANDrrp_unary_operatorri)zunary_operator -> TIMESrrrEri)zunary_operator -> PLUSrrrEri)zunary_operator -> MINUSrrrEri)zunary_operator -> NOTrrrEri)zunary_operator -> LNOTrrrEri)z(postfix_expression -> primary_expressionrrZp_postfix_expression_1ri)zEpostfix_expression -> postfix_expression LBRACKET expression RBRACKETrrZp_postfix_expression_2ri)zOpostfix_expression -> postfix_expression LPAREN argument_expression_list RPARENrrp_postfix_expression_3ri)z6postfix_expression -> postfix_expression LPAREN RPARENrrrFri)z2postfix_expression -> postfix_expression PERIOD IDrrp_postfix_expression_4ri)z6postfix_expression -> postfix_expression PERIOD TYPEIDrrrGri)z1postfix_expression -> postfix_expression ARROW IDrrrGri)z5postfix_expression -> postfix_expression ARROW TYPEIDrrrGri)z1postfix_expression -> postfix_expression PLUSPLUSrrp_postfix_expression_5ri)z3postfix_expression -> postfix_expression MINUSMINUSrrrHri)zUpostfix_expression -> LPAREN type_name RPAREN brace_open initializer_list brace_closerrp_postfix_expression_6ri)z[postfix_expression -> LPAREN type_name RPAREN brace_open initializer_list COMMA brace_closerrrIri)z primary_expression -> identifierrrZp_primary_expression_1ri)zprimary_expression -> constantrrZp_primary_expression_2ri)z,primary_expression -> unified_string_literalrrp_primary_expression_3ri)z-primary_expression -> unified_wstring_literalrrrJri)z.primary_expression -> LPAREN expression RPARENrrZp_primary_expression_4ri)zWprimary_expression -> OFFSETOF LPAREN type_name COMMA offsetof_member_designator RPARENrrZp_primary_expression_5ri)z(offsetof_member_designator -> identifierrrp_offsetof_member_designatorri)zJoffsetof_member_designator -> offsetof_member_designator PERIOD identifierrrrKri )zUoffsetof_member_designator -> offsetof_member_designator LBRACKET expression RBRACKETrrrKri )z1argument_expression_list -> assignment_expressionrrp_argument_expression_listri)zPargument_expression_list -> argument_expression_list COMMA assignment_expressionrrrLri)zidentifier -> IDrrZ p_identifierri )zconstant -> INT_CONST_DECrr p_constant_1ri$)zconstant -> INT_CONST_OCTrrrMri%)zconstant -> INT_CONST_HEXrrrMri&)zconstant -> INT_CONST_BINrrrMri')zconstant -> INT_CONST_CHARrrrMri()zconstant -> FLOAT_CONSTrr p_constant_2ri;)zconstant -> HEX_FLOAT_CONSTrrrNri<)zconstant -> CHAR_CONSTrr p_constant_3riL)zconstant -> WCHAR_CONSTrrrOriM)zconstant -> U8CHAR_CONSTrrrOriN)zconstant -> U16CHAR_CONSTrrrOriO)zconstant -> U32CHAR_CONSTrrrOriP)z(unified_string_literal -> STRING_LITERALrrp_unified_string_literalri[)z?unified_string_literal -> unified_string_literal STRING_LITERALrrrPri\)z*unified_wstring_literal -> WSTRING_LITERALrrp_unified_wstring_literalrif)z+unified_wstring_literal -> U8STRING_LITERALrrrQrig)z,unified_wstring_literal -> U16STRING_LITERALrrrQrih)z,unified_wstring_literal -> U32STRING_LITERALrrrQrii)zBunified_wstring_literal -> unified_wstring_literal WSTRING_LITERALrrrQrij)zCunified_wstring_literal -> unified_wstring_literal U8STRING_LITERALrrrQrik)zDunified_wstring_literal -> unified_wstring_literal U16STRING_LITERALrrrQril)zDunified_wstring_literal -> unified_wstring_literal U32STRING_LITERALrrrQrim)zbrace_open -> LBRACErrZ p_brace_openriw)zbrace_close -> RBRACErrZ p_brace_closeri})zempty -> rrZp_emptyriN)Z _tabversionZ _lr_methodZ _lr_signatureZ_lr_action_itemsZ _lr_actionitemsZ_k_vzip_xZ_yZ_lr_goto_itemsZ_lr_gotoZ_lr_productionsrVrV8/tmp/pip-target-98j97qn4/lib/python/pycparser/yacctab.pys82