Caml1999T037 >nO8C(ParmatchР$Misc$Misc2typing/parmatch.mlRsxRs|@@ 3@@@@@@#intA;@@#intA@@@@@&_none_@@A@A@$charB;@@$charA@@@@@ @A@&stringQ;@@&stringA@@@@@@@@%bytesC;@@%bytesA@@@@@@@@%floatD;@@%floatA@@@@@@@@$boolE;@@%falsec@@%@$trued@@+@@@A@@@@@,@A@$unitF;@@"()e@@6@@@A@@@@@7@A@ #exnG;@@@A@@@@@;@@@#effH;@@O@A@A@@@@@@D@@@,continuationI;@@Q@@P@B,continuationA@nY@@@@@@T@@@%arrayJ;@@R@A%arrayA@@@@@@_@@@ $listK;@@S@A"[]f@@l@"::g@@@T@@y@ @@A@Y@@@@@|@@@&optionL;@@V@A$Noneh@@@$Somei@@@@@A@Y@@@@@@@@)nativeintM;@@)nativeintA@@@@@@@@%int32N;@@%int32A@@@@@@@@%int64O;@@%int64A@@@@@@@@&lazy_tP;@@X@A&lazy_tA@Y@@@@@@@@ 5extension_constructorR;@@5extension_constructorA@@@@@@@@*floatarrayS;@@*floatarrayA@@@@@@@@&iarrayT;@@Y@A&iarrayA@Y@@@@@@@@ *atomic_locU;@@Z@A*atomic_locA@@@@@@@@@ .Assert_failure`#@@@@@J@@@@@@@@[@@A頰=ocaml.warn_on_literal_pattern@@0Division_by_zero]#@@@A󠰠  @+End_of_file\#$@@@A@'FailureY#,@'@@A@0Invalid_argumentX#5@0@@A $#@-Match_failureV#>@@=@9@;@@a@@A5!4!@)Not_foundZ#O@@@A&=)<)@-Out_of_memoryW#W@@@A.E1D1@.Stack_overflow^#_@@@A6M9L9@.Sys_blocked_io_#g@@@A>UATA@)Sys_error[#o@j@@AG^J]J@:Undefined_recursive_modulea#x@@w@s@u@@h@@AXo[n[@:Continuation_already_takenb#@@@A`wcvc@&Stdlib@@@@A3@@@Rss@@@3@@@Р(Asttypes(AsttypesS}S}@@ 3@@@@@A3@@@S}}@@ @3@@@Р%Types%TypesTT@@ 3@@@@@A3@@@T@@ @3@@@Р*Data_types*Data_typesUU@@ 3@@@@@A3@@@U@@ @3@@@Р)Typedtree)TypedtreeVV@@ 3@@@@@A3@@@V@@ @3@@@A+-parmatch_caseMAXX@А'pattern@'3        @;@@&@A@A@G@B@@@X\@@@@-DA@@XX@@BA@;@A'patternN@@B@(+Y,Y@@>EA)has_guardO@@@@@,7Z8Z@@JFA,needs_refuteP@@@@@/C[D[@@VGA@@A@Y@@@@@/@@@,@#%%"MY@!@@Ш@А'pattern+CTYUY@@0@@)H@.@#**%\Z@$@@Ш@г-$booleZfZ@@5W@@8@@-Z@4@#00+n[@*@@Ш@г3$boolw[x[@@;i@@>@@0l@:@@A@c@@cb@3xwwxxxxx@@@@ఠ*typed_caseQ^ $^ .@HA@@@)Typedtree$case@@D@@@EB@?/general_pattern@@@YC@V@@@XB@@@@AB@>3@@@@࣠@%paramlAঠ%c_lhs^ 1^ 6A3%c_lhs/!k@@@@E$@@@?@@@3&c_cont&optionL%Ident!t@@@A@@@@@@A@A4typing/typedtree.mli6--6--@@M@3'c_guard%X*expression@@@C@@@B@@B#@A7--7--@@]@3%c_rhs5 @@@D@@C,@A8--8-. @@f@@A5--5--@@j@ఠISJIH@IA@bp@@@F3@`^  b@@@@'c_guard^ 8^ ?A5ఠT@0JA@98@@@L@@@K@%c_rhs-^ A.^ FA:ఠU@EKA@J@@@P,@@@9^ /:^ H@@D@B1@@@@ະ3$@@=@@@3@@A@A@3  @@B@A@@A @'patternO_KOP_KV@ఐP%c_lhsX_KYY_K^@S@U@T@@3WVVWWWWW@S\DA@C@B0-@/@.@@@)has_guardh``di``m@డ&Option'is_somew``px``v@ {``w|``~@@@&optionL!a@@@@$boolE@@@@@@*option.mli\  \  +@@.Stdlib__OptionQ@"@@@@@@FC@=@@@<@@@;@@:K@@ఐ'c_guard````@S@@7@@@DD@GD@E`@@F @@@@@_D@Cf@z,needs_refuteaa@డ;!=aa@@!a@@$boolE@@@'@@&@@%&%equalBA @@@@*stdlib.mliyy@@&StdlibQ@@@@b/expression_desc@@@^C@S@ @@@R@@Q@@P@@ఐ֠%c_rhs a a@@@%@@@_@]@(exp_descaa@3(exp_desc0@@@)@@@@@@ 3'exp_loc (Location!t@@@@@A @AL  M !@@x@3)exp_extra$listK@)exp_extra@@@@!t@@@@*attributes@@@@@@@@@@B0@Aq"&r"\@@y@3(exp_type<%Types)type_expr@@@@@C>@A]a]{@@z@3'exp_envJ#Env!t@@@@@DL@A||@@{@3.exp_attributesX(@@@@@EU@A@@|@@A@@w@tg@@#@@ภ0Texp_unreachableaa@;0Texp_unreachable@@@5@@@@A_@A*,,*,,@@@@@  @@D@b;@@aa@@^@@@ND@[C@@@_KM@@E@iA@B@e@A@@@@ఠ,untyped_casemdd@LA@@@)Parsetree$case@@@B@g$'pattern@@@C@@@@B@h@@iB@f3@#LE@F@G@@@࣠@#Aঠ)Parsetreedd@&pc_lhsdd@A3&pc_lhs2@@@ &@@@@@@ 3(pc_guard &optionLA*expression@@@ @@@ @@A@A5parsing/parsetree.mliDDDD@@G@3&pc_rhs @@@ @@B@A DD DD@@P@@ADDDD@@T@ఠ1260@)OA@P@@@3@Nq d!h@@@@(pc_guard(d)dA7ఠ@@PA@;8@@@@@@@&pc_rhs=d>dA9ఠ@UQA@J@@@,@@@IdJd@@D@j1@@@@ະ'patternXeYe @ఐH&pc_lhsae be@K@M@L@@3`__`````@LT=:@<@;)&@(@'@@@$)has_guardqfrf"@డ&Option'is_somef%f+@ f,f3@@ @@@ @@@C@@@@@@@@@1@@ఐp(pc_guardf4f<@9@@&@@@D@D@F@@, @@|@@@D@L@i,needs_refuteg>Bg>N@డ*g>cg>d@@@@/expression_desc@@@ C@@ @@@@@@@m@@ఐ&pc_rhsg>Rg>X@v@@@@@ @ @)pexp_descg>Yg>b@3)pexp_desc@@@)@@@@@@ 3(pexp_loc (Location!t@@@@@A @A5.&.+5.&.@@@D@3.pexp_loc_stackK.location_stack@@@@@B@A 6.A.F 6.A.e@@O@3/pexp_attributes"V*attributes@@@@@C!@A7.f.k7.f.@@Z@@A4.. 4..%@@^@@3@@V@@ภ)Parsetree)g>e*g>n@0Pexp_unreachable.g>o/g>@@;0Pexp_unreachablek@@@@@@@Aa@A6DxDz7DxD@@@|@@ @@vD@@@?g>Q@g>@@@@@D@@@@Ge'@@@(A@B@/@A@,@,+@}@ఠ(make_patWnXn @jRA@@@@$B@@)type_expr@@@ B@@!t@@@ B@,pattern_data @@@&B@@@ B@@@B@@@B@3}||}}}}}@@@@@@࣠@$descAn n@SA@@53@Bnr@@@@@  @@"tyAnn@TA@@B3@!L@@@@@@@@$tenvAnn@UA@@G3@V@@@@@@@@3(pat_descH!a@ @@@;@@@ 3'pat_loc !t@@@2@@A @Arr @@A\@3)pat_extra@P)pat_extra@@@5@!t@@@6@@@@7@@4@@@3@@B*@As s G@@b]@3(pat_type8@@@8@@C3@AtHL tHf@@k_@3'pat_envA@@@9@@D<@A(ugk)ugz@@tc@3.pat_attributesJ@@@:@@EE@A1v{2v{@@}d@@A5q6q@@[@(pat_descoo'@ఐ$desc'o*(o.@@@3%$$%%%%%@r~@u@v@@@a'pat_loc3o04o7@డ(Location$none(LocationBo:CoB@ FoCGoG@@(Location!t@@@@4parsing/location.mli~ ; ;~ ; G@@D@@@@@@,E@ 3@)pat_extracoIdoR@ภ"[]koUloW@;ސ@@U@@@@AA@AC@@@ @@@@@@ ͠@@@@ Π@<@@@ @@ @@@ E@ a@(pat_typepY\pYd@ఐ"typYgpYi@@@7s@'pat_envpYlpYs@ఐ$tenvpYvpYz@@@=@.pat_attributesq|q|@ภRq|q|@Q@@@v@@@*E@*@@@o-@@L@7.A@lB@*5@A@2@21@H@ఠ%omegaˠtt@YA@@)Typedtree'pattern@@@+B@*3@b@@@@@డ(Patterns%omega(Patternstt@ tt@@ @@@*@3typing/patterns.mliVV@@(PatternsD@ @@*"@A@t@@@%@ఠ&omegasԠuu@&ZA@@@#intA@@@+ $listKL'pattern@@@+ @@@+ @@+ B@+3(''(((((@K^W@X@Y@@@డJ&omegas(Patterns;u,@A@v@@@/@ఠ)extra_pat֠xx@\A@@>,,pattern_desc1%value@@@+2@@@+1B@+@@@+(B@+3@Roh@i@j@@@ఐ(make_paty y@@@@@v@@@+@o@@@+j,@@@+@@+@@+@@+@@ภ(Tpat_varzz@;(Tpat_var86@@@H@@@G@(!t@@@I(Asttypes#loc&stringQ@@@K@@@J#Uid!t@@@L@C@ALAA>Q & (?Q & g@@@k@డ%Ident,create_local%Ident 2z! 3z&@  6z' 7z3@@@&stringQ@@@+%Ident!t@@@+@@+@0typing/ident.mlib##b#@@@E@@@@@@@,k@@@,j@@,i@@!+ `z5 az6@@ cz4 dz7@@-@@@,rD@,tD@,s@@; @@r@@@+5@,uD@,q@డ'mknoloc ~z9 z@@@!a@ #loc @@@@@@ssss@@@@@@@@@+7C@,C@,| @@@,{@@,z@@!+ zB zC@@ zA zD@@C@,@@1@@(@@@,@డ#Uid@ذ@@@K@6w@@-@@@@@6@6K@6@@R @@t@@Ġ(Constant Y Z@;(Constant @(Asttypes(constant@@@5@AABF@AiT  jT  @@@h]@ఠ"c1ޠ r s @ hA@@@@@63 t s s t t t t t@a@@@@@"@@@5@@Ġ(Constant   @,ఠ"c2ߠ  @ iA@@4@@@6@@@@@@5@@@ @@@"@ @@6&@@@(@@@6,@@@@ఐ@"c1 !/ !1@?@@@A@@X@@@63        @N2+@,@-@@@@ఐ8"c2 !3 !5@ @@k@@@6@@@@@@ @@6@@Ġ*Const_char ;E ;O@;*Const_char(Asttypes(constant@@@@$charB@@@@AA@G@A4parsing/asttypes.mliYY@@@B@@ ;P ;Q@@@@@6U@@@"@@@@@6Y@@Ġ*Const_char;S;]@-@;^ ;_@@'@@@6k@@@ @@@@@6o@@< @@@@ @@6v@@v@@Ġ)Const_int;`j<`s@;)Const_intN@#intA@@@@A@@G@AFXGX@@@UA@@N`tO`u@@@@@6@@@@@@@@7@@Ġ)Const_int_`w``@$@d`e`@@&@@@7@@@ @@ @@@7@@3 @@@@ @@7@@@@@@@@@@7@ @@@7 @@7@@Ġ+Const_int32@;+Const_int32@%int32N@@@@AD@G@A\Z\\Zr@@@E@@@@@@@7@@@@@H@@@7@@Ġ+Const_int32@$@@@&@@@7@@@ @@^@@@7@@3 @@@@ @@7 @@ @@@@@m@@@7@r@@@7@@7@@Ġ+Const_int64@;+Const_int64@%int64O@@@@AE@G@A]su]s@@@F@@@@@@@7'>@@@@@@@@7(B@@Ġ+Const_int64@$@ @@&@@@7,T@@@ @@@@@7-X@@3 @@@@ @@7._@@_@@,@@@@@@70@@@@71@@7/l@@Ġ/Const_nativeint12@;/Const_nativeintD@)nativeintM@@@@AF@G@A<^=^@@@KG@@DE@@@@@7;@@@@@@@@7<@@Ġ/Const_nativeintUV@$@Z[@@&@@@7@@@@ @@@@@7A@@3 @@@@ @@7B@@@@~@@@@@@7D@@@@7E@@7C@@Ġ+Const_float @;+Const_float@&stringQ@@@@AC@G@A[@B[@Y@@@D@@@@@@@7O@@@@@>@@@7P@@Ġ+Const_float$@$@%&@@&@@@7T@@@ @@T@@@7U@@3 @@@@ @@7V@@@@@@@c@@@7X@h@@@7Y@@7W@@Ġ,Const_string'1'=@;,Const_string@R@@@(Location!t@@@&optionLf@@@@@@@CB@G@AZ Z?@@@C@@'>'?@@#@@@7fG@@@#@@@7gL@@ @@@@7i@@@7hU@@@:@@@@@7jY@@Ġ,Const_string'A'M@E@'N 'O@@G@@@7qk@@@G@@@7rp@@ @C@@@@7t@@@7sy@@@@@@@@7u}@@b@@@,@ @@7v@@@@Q@@@@@@7{@@@@7|@@7z@@@ภ$trueP'SQ'W@;@@@M@@@AB@@A'@@@@@@@Ġ*Const_charrXdsXn@@wXoxXp@@@@@7@@@ @@@@@7@Ġ)Const_intq}q@K@qq@@M@@@7@@@ @@3@@@7@@# @@7@@@7@Ġ+Const_int32@@@@@@@7@@@ @@K@@@7@@; @@O@@@7@Ġ+Const_int64@נ@@@@@@7@@@ @@c@@@7 @@S @@g@@@7@Ġ/Const_nativeint@@@@@@@7@@@ @@{@@@7#@@k @@@@@7'@Ġ+Const_float@c@@@e@@@77@@@ @@@@@7;@@ @@@@@7?@Ġ,Const_string @)@@@+@@@7O@@@+@@@7T@@ @'$@@@7@@@7]@@@@@@@@7a@@Xb@@@@@7g@@@$%@@@@@7p@@@@@@ @@7w@@@@@@7@@@@7@@7@@@ภ%falseBC@;@@@@B@@A@@@@@p@@@AHI&@@s@@Ġ%TupleX'-Y'2@;%Tuple @ <&optionL&stringQ@@@5@@@5@@@5@ABBF@A rU   sU  @@@ q^@ఠ"l1{'3|'5@jA@@"!@@@6@@@6@@@63@r@@@@@4@@@6 @@Ġ%Tuple'7'<@>ఠ"l2'='?@kA@@FEB@@@6@@@6@@@6$@@@@@@6 '@@Z@@@*@ @@6.@@@0@@@64@@@డ/  'F'G@ @@@pol@@@7@@@7@@@7I@7@ @@@7@@7@@73@ib@c@dF?@@@A@@@@ఐq"l1'C'E@@@"@@ఐZ"l2'H'J@@@1I@7!@@@@("@@Ġ&Record KQKW@;&Record@ 1label_description@@@5@@@5@ACBF@A V   V  @@@ _@Ġ"::(K^)K`@; @B@AA@A@@ఠ$lbl13KY4K]@FlA@@!@@@6+354455555@"@@@@>Ka?Kb@@-@@@6-@@@6, @@@HKXIKc@@87@@@6/@@@6.@@@E @@@6@@Ġ&Record\Ke]Kk@OĠ=dKreKt@<ఠ$lbl2mKmnKq@mA@@[@@@68:@@wKuxKv@@ՠf@@@6:@@@69F@@@KlKw@@qp@@@6<@@@6;P@@@/ @@@6 S@@ @@@@@ @@6=Z@@@F@@@6>`@@@డ РҰ{{@ϰ@@@#intA@@@:I@7@ @@@7@@7@@73@@@OH@I@J@@@@డ.%Array&length{{@ {{@@@%arrayJ!a@9h@@@9n5@@@9m@@9l-%array_lengthAA @@@)array.mliaa@@-Stdlib__ArrayA@$@@@1label_description@@@:J@:@@@:Q@@@:@@:I@@ఐ֠$lbl1 { {@T@@@@@:@:]@'lbl_all{{@3'lbl_all%@@@ [%arrayJ.@@@ U@@@ T@@F33(lbl_name@@@ N@@@@A{ | { | @@.]@3'lbl_res)type_expr@@@ O@@A@A|  |  @@9^@3'lbl_arg%)type_expr@@@ P@@B@A&}  '}  @@D_@3'lbl_mut0,mutable_flag@@@ Q@@C(@A1  2  @@O`@3*lbl_atomic;+atomic_flag@@@ R@@D3@A<@  =@  @@Za@3'lbl_posF}@@@ S@@E=@AFA  GA  "@@db@P3*lbl_represPE5record_representation@@@ V@@GH@AQC  RC  @@od@3+lbl_private[,private_flag@@@ W@@HS@A\D  ]D @@ze@3'lbl_locf!t@@@ X@@I_@AhE'+iE'?@@f@3.lbl_attributesr*attributes@@@ Y@@Jk@AtF@DuF@i@@g@3'lbl_uid~t#Uid!t@@@ Z@@Kx@AGjnGj}@@h@@AB Q UB Q v@@c@@@ؠ@@@:K@:K@:@@@@@@డ%%Array&length{{@ {{@@@@@@@@:J@:@@@:*@@@:@@:"@@ఐu$lbl2{{@,@@@@@:@:6@'lbl_all{{@ٰ@@"+@@@:K@:K@:E@@: @@SK@:H@@4@@ &I@@Ġ%Array  @;%Array@,mutable_flag@@@5Š @@@5@BEBF@A ]   ]  ;@@@ e@ఠ#am1&'@9nA@@@@@6G @@01@@@@@6H @@@+6@@ u@6@ !@@Ġ%ArrayAB@6ఠ#am2JK@]oA@@>@@@6L 9@@TU@@@@@@6M A@@@Z@@ @6A E@@S@@@+@ @@6N L@@@1@@@6O R@@@డrs@@@@i@@@:I@:@@@@:@@:@@:3|{{|||||@ kb[@\@]?8@9@:@@@@ఐj#am1@@@@@ఐS#am2@@@)J@:!@@@@ "@@Ġ#Any@;#Any m@@@@BF@A R   R  @@@ [@@@  @@ @6Q @@@@@ @6R @@@@@@ @@6V @@ @@@@@ @6W @@Ġ#Any@/@@@@ @6X @@@@@@ @@6\ @@ @@< @@@ 7@ *@@6] @@Ġ&Record @Ġ @ @@@@@@@6j@@@6i @@@ @@ X@6^ @@Ġ&Record$%@Ġ °,-@ @@@@@@@6s@@@6r @@@ @@ f@6_ !@@3 @@@$@ @@6t (@@ (@@@@@ @ v@@6u /@@Ġ'VariantS$T+@;'Variant @ @@@5@ADBF@A `W ! % aZ y @@;@@#tag@@ %label@@@5 oX 2 < pX 2 G@@ n`@'has_arg@@$boolE@@@5 }X 2 H ~X 2 V@@ |a@(cstr_row@@&Stdlib#ref%Types(row_desc@@@5@@@5 Y W a Y W x@@ b@(type_row@@@$unitF@@@5(row_desc@@@5@@5° Z y  Z y @@ c@@DA@@@@@~@@@bA d@@,-@@]@@@6| @@@f@@ @6v @@Ġ'Variant/6@p@78@@r@@@6 @@@ @@ @6w @@~@@@@ @@6 @@ @@@@@ @ @@6 @@Ġ$Lazy9?9C@;$Lazy @@@ABF@A ^ < @ ^ < F@@@ f@@@  @@ 2@6 @@Ġ$Lazy9E9I@@@@@ 0@6 @@@@@@ @@6 @@ @@R @@@ M@ @@@6 @@@ภǰ9M9Q@@@@ B @@@#RX$RY@@ c@6 @@@+R[,R\@@ \@6 @@ @@@@ @@6 @@@@@@6 $@@@ภAR` P@@ Q@@ l +@@@ADY] S@@ n3@??@@@@@@ -@@@ ^ UA@ E@= \@A@ Y@డ$List$findXswYs{@ \s|]s@@@@!a@>$boolE@@@@@@@@ @@@@@@@@@@@(list.mli9(e(e9(e(@@,Stdlib__Listj@$@@@@ )B@AE@A@@@A@@A@ @@@A @@A@@A3@   @ @ @@@@@ঠ(pat_desc@Ġ#Any@@@@@ UB@AB@AB@AI@A&@@@@@:B@AB@AI@A.@@@ภ@~@@@[@@@A9@@@@L?@@@ภ@@@@G@@A%paramy@@@@@@ay@@@A@@AF@AF@AW@@ఐ t&column@ L@@ d@@@@re@Ġ)Not_found@;)Not_found#exnG@@@@@@ A@A&_none_@@A@@I@@@@@ @@@A3        @@@@@@@@@ภ˰6:6>@@@@  @ఠ)discr_patz'?C(?L@:qA@@@@@@@డ$List'for_all8PT9PX@ <PY=P`@@@@!a@>@@@@@@@@  @@@@@@@@@@@@@@@####@@d@#@@@@ @@@A@@A@  @@@A@@@A@@A@@A3feefffff@J@D@E@@@@ఐ Š.coherent_headszPb{Pp@@@@ $@@@A@@@A@  -@@@A@@@A @@@A@@A@@A'@@ఐu)discr_patPqPz@1@@4@@PaP{@@@( I@@@A@@@A @@@A@@AC@@ఐ >&columnP| 3@  4@@ iO@@ 5@@ RP@@@Akm 7@@ T@  8@@ U @  :@@ W3@ @@@ E $head@@>@?@@3@_J=@7@8)@#@$@@@@@@@@BD@B%D@B$M@@ఐ 1simplified_matrix@t@@w@@@@Z@A@B@B(@A@@@Ԡ@ఠ)is_absent!T!X!T!a@wA@@@(Asttypes%label@@@B]B@B*@#ref%Types(row_desc@@@B\B@Bc@@@BiB@B/(@@@B@B@B0@@B1B@B+@@B,B@B)3@ ?8@9@:@@@࣠@#tagA!T!b!T!e@*xA@@73@D!T!T !T!@@@@@  @@#rowA+!T!f,!T!i@>yA@@=3*))*****@!N@@@@@@@@డjl<!T!=!T!@i@@@H.row_field_view@@@BJD@B8@ l@@@B7@@B6@@B53HGGHHHHH@+^@"@#@@@@డ.row_field_repr\!T!l]!T!z@@f)row_field@@@ #@@@ @@ @0typing/types.mli<<<<@@ni@@@@@@@BD1@@@BC@@BB*@@డ-get_row_field!T!|!T!@@@@@ @@@@ /@@@ @@ @@ @*99+9:@@W@@@@@@@BQ@@@@BPA@@@BO@@BN@@BMX@@ఐ#tag!T!!T!@@@e@@డ&!!!T!!T!@@Ϡ!a@@@@i@@h'%field0AA@@@@@@@@@@@@Bd@@Bb@@ఐ#row%!T!@'@@@@)@@@@!T!{!T!@@@@@BK@BlG@B[@@ @@@@ภ'Rabsent!T!@;'Rabsent@@@ @@@@AB@A<<<<@@@h@@ @@E@Bo@@@@@A@+B@Bs@A@@@@ఠ-is_absent_pat!!!!@,zA@@@@@@B~B@B|@@@B}B@BuP@@@BB@Bv@@BwB@Bt3,++,,,,,@)[T@U@V@@@࣠@!dA?!!@!!@R{A@@"3>==>>>>>@/G!!H""$@@@@@  @@ఐ!dV!!W!!@8@@@@93UTTUUUUU@$@@@(pat_desc`!!a!!@ @@= @Ġ(Patternsq!!r!!@$Headv!!w!!@@'Variant|!!}!!@@*ঠ#tag!!!!A3$3@@@B&@@@3@@AA@3@@BA@3@@CA@A%@"ఠ@|A@0@@@BA@(cstr_row!!!!A3"L@@@B$@@B3BA@@@A<@9365@@AA/@,3@@CA@A@ఠ@}A@.)@@@B@@@B^@@A!!!!@@e@@@BF@Bf@@@P@@g@@g@@@ఐ)is_absent!!!"@@@@@@@B@@@@B@@@B@@@B@@B@@B3@MJ@L@K52@4@3@@@@ఐU#tag!" !" @@@@@@BF@BF@B@@ఐP(cstr_row!" !"@!@@@@@B@@@BF@BF@B1@@F@@2@@""""@@@@@@@ภ ܰ""@ @@@@@@A !!@@3@@@@A@B@B@A@@@@ఠ-const_compare1"&"*2"&"7@D~A@@@ J@@@BB@B@ B@B#intA@@@C+B@B@@BB@B@@BB@B3GFFGGGGG@92@3@4@@@࣠@!xAZ"&"8["&"9@mA@@%3YXXYYYYY@2b"&"&c##@@@@@  @@!yAn"&":o"&";@@A@@03mllmmmmm@!<@@@@@@@@@ఐ-!x">"F">"G@@@N3@"H@@@@@@ఐ(!y">"H">"I@ @@T@@@@@b@[@@B@@Ġ+Const_float"O"S"O"^@ (ఠ"f1"O"_"O"a@AA@@ 0@@@B3@4@@@@@@@@B@@Ġ+Const_float"O"c"O"n@ Cఠ"f2"O"o"O"q@BA@@ K@@@B@@@@@B@B@B@@0 @@@"@ @@B&@@@(@@@B,@@@డ&Stdlib'compare"u"{"u"@ "u""u"@@@!a@C@@@@C@@C@@C(%compareBA @@@@.utils/misc.mli    @@$Miscn@ @@@%floatD@@@C5F@C#@ @@@C"@@C!@@C 3@vo@p@q\U@V@W@@@@డ/float_of_string4"u"5"u"@@&stringQ@@@z'@@@y@@x4caml_float_of_stringAA^@@@\ll]lm(@@[}@@@@@@@C/8@@@C.@@C-0@@ఐ"f1]"u"^"u"@9@@+@@@C6H@C8H@C7D@@h"u"i"u"@@RG@@డ/float_of_stringv"u"w"u"@B@@@B@@@C<f@@@C;@@C:^@@ఐ"f2"u""u"@f@@Y@@@CCH@CEH@CDr@@"u""u"@@H@CBw@@@@Wx@@Ġ,Const_string""""@ Ԡఠ"s1""""@CA@@ @@@B2@@""""@@ @@@B:@@""""@@ ޠ @@@B@@@BF@@@%""@@@BJ@@Ġ,Const_string""""@ ఠ"s2""""@DA@@ @@@Bb@@""""@@ @@@Bj@@""""@@  @@@B@@@Bv@@@%""@@(@Bz@@Y@@@7@ @@B@@@=@@@B@@@డ&String'compare "" ""@  ""  "#@@@!&String!t@@@E@ @@@E#intA@@@E@@E@@E@*string.mli*@@.Stdlib__StringL@#@@@@@@FS@ @@@FR@@@FQ@@FP@@FO3FEEFFFFF@@@qj@k@l@@@@ఐ"s1Z "#[ "#@@@:@@@FcG@Fb@@ఐ"s2l "#m "#@@@L@@@FkG@Fj)@@Z@@1*@@Ġ)Const_int ##  ##@T@ ## ##@@V@@@B@@@ @@a@B@Ġ*Const_char ## ##'@@ ##( ##)@@@@@B%@@@ @@&@@@@'@Ġ,Const_string #*#/ #*#;@ ߠ@ #*#= #*#>@@ @@@C7@@ #*#@ #*#A@@ @@@C?@@ #*#C #*#D@@  @@@C@@@CK@@@ #*#E@@:M@@F@@;N@Ġ+Const_float #F#K #F#V@X@ #F#W #F#X@@Z@@@C^@@@ @@L_@@X@@M`@Ġ+Const_int32#Y#^#Y#i@`@#Y#j#Y#k@@b@@@C p@@@ @@^q@@j@@_r@Ġ+Const_int64#l#q#l#|@ @#l#}#l#~@@"@@@C @@@ @@p@@|@@q@Ġ/Const_nativeint####@@####@@@@@C@@@ @@@@ ## ##@@@@@###$##@@N@B@@ @@@@ @@C@@@@@@C@@@డA&Stdlib'compareA##B##@ E##F##@@M@@@F@Ft@ @@@Fs@@Fr@@Fq@@ఐ!x\##]##@@@&@@ఐ!yi##@@@)@@+ @@(@@@Am">"@ @@*3ihhiiiii@@@@ A@;B@G@A@@@'@ఠ,records_argsߠ~####@EA@@@@@M@ @@@M@@@@M@@M@@@MB@G @3@ @M@ @@@M@@@@M@@M@@@MB@G@g'@@@M@@@@M@@MB@G@@GB@G @@G B@G3@z@@@@@࣠@"l1A####@FA@@Q3@^## &&&;@@@@@  @@"l2A####@GA@@L3@!h@@@@@@@@Aఠ'combine$$$$$+@ HA@@@^,@@@GE@H@@@HE@G@k9@@@HE@H@@@HE@G@@@@Gr@ 7@@@HoE@Gs@+E@Gt@@GuE@GS@@@GRE@G@ɠ@@@Gb@ R@@@HrE@Gc@9E@Gd@@GeE@GU@@@GTE@G@RE@G@@@GE@G @E@G@@@GE@G!@@G'@@G&@@G%@@G$@@G#3^]]^^^^^@y@|@}@@@࣠@"r1Aq$$,r$$.@IA@@u3pooppppp@@|@s@j@S@<@4@@G"F@G@@GF@G@@GF@G@@GF@G@@GF@G@@@@@@ @@"r2A$$/$$1@JA@@3@*6@-@.@@@@@@"l1A$$2$$4@KA@@3@@@@@@@@@"l2A$$5$$7@LA@@3@@@@@@@@@@ఐ*"l1$$@$$B@@@3@"@@@@@@ఐ("l2$$C$$E@ @@@@@@@Ϡ@@@GL@@Ġ$K$O$K$Q@@@@@@GN3@'@@@@Ġ $K$R $K$T@@@@@@GO @@@@@@@@GV@@@@@@GW@@@@డ$List#rev &$K$X '$K$\@  *$K$] +$K$`@@@ݠ!a@?@@@@ @@@@ @@@ @ e e@@ M@@@@@@@G@@@G@@GP@@ఐ蠐"r1 V$K$a W$K$c@@@Y]@@4@@^@@డ$List#rev i$K$e j$K$i@  m$K$j n$K$m@@C@@@C@@@G@@@G@@G@@ఐ"r2 $K$n $K$p@ְ@@{@@ @@+@@d@@@<@4@@G@@Ġ3 $q$u $q$w@2@@@@@GY3        @@@@@Ġ $q$ $q$@@@ $q$y $q$z@@u@@@ $q${ $q$|@@w@@ఠ"p2 $q$} $q$@ MA@@|%@@ $q$x@@@@@@@Gf/@ఠ$rem2- $q$@ NA0@@ 7E@G`@@@Gg>@@@ @@@GZA@@G @@@H@ @@GhH@@@N@@@GiN@@@ఐ'combine $q$ $q$@@@@@@@@@@@G@@G@@G@@G@@G3!!!!!!!!@7N@H@I:4@5@6@@@@ภ"::!$q$!$q$@ఐM%omega!"$q$ @ @@@ఐ"r1!,$q$@@@.$@@!/$q$!0$q$@@AE@HE@HE@HE@HFE@HGE@HE@H E@GE@G8@@ภ3!J$q$!K$q$@"ఐ"p2!T$q$ @H @@ L@ఐǠ"r2!^$q$@@@SV@@!a$q$!b$q$@@fE@HE@HE@HE@HME@H]E@HE@HE@GE@Gj@@ภ!|$q$!}$q$@@@@eE@Gw@@ఐ$rem2!$q$!$q$@@@YE@G@@@@@@Ġw!$$!$$@v@@!$$!$$@@3!!!!!!!!@@@@@@!$$!$$@@@@ఠ"p1!$$!$$@!OA@@@@!$$ @@@@@@@Gv@ఠ$rem1.!$$@!PA1@@!,E@Gp@@@Gw,@@@ @@@Gk/@@Ġu!$$!$$@t@@@@@Gl;@@(@@@@ @@GzB@@@@@@G{H@@@ఐ'combine!$$!$$@@@@@@@@@@@G@@G@@G@@G@@G3""""""""@8Z@T@UF@@A@B@@@@ภ"$$"$$@ఐj"p1""$$ @ @@@ఐ"r1",$$@@@.#@@"/$$"0$$@@E@H(@@ภ$";$$"<$$@ఐp%omega"E$$ @ @@3<@ఐ"r2"O$$@@@DF@@"R$$"S$$@@E@HK@@ఐ$rem1"`$$"a$$@S@@IE@HZ@@ภ"m$$"n$$@@@@;E@Hg@@y@@h@@ĠY"$$"$$@X@@"$$"$$@@hE@G@@ఠ$lbl1"$$"$$@"QA@@rE@H(E@G@@ఠ"p1"$$"$$@"RA@@xE@G@@"$$+@@@$@@ @@G@ఠ$rem19"$%@"SA<@@"E@G@@@G@@@ @@@G}@@Ġ"$%"$%@@@"$%"$%@@E@G@@ఠ$lbl2"$%"$% @"TA@@E@H+E@G@@ఠ"p2"$% "$%@#UA@@E@G!@@"$%+@@@$@@ @@G+@ఠ$rem29#$%@#VA<@@"fE@G@@@G;@@@ @@@G~>@@j @@@T@ @@GE@@@Z@@@GK@@@డ!!<#+%%0#,%%1@@!a@@X@@@-@@,@@+)%lessthanBAV@@@@UV @@TS@@@@@@@H'K@H@@@@H@@H@@H3#K#J#J#K#K#K#K#K@@@@@@@|u@v@wng@h@iYS@T@U@@@@ఐԠ$lbl1#i%%##j%%'@@@@'lbl_pos#p%%(#q%%/@ @@+#@@ఐ$lbl2#%%2#%%6@'@@2@'lbl_pos#%%7#%%>@+ @@CL@H*;@@#@@#E@@@H,L@H%B@ఐ'combine#%D%L#%D%S@&@@@@@@q@X@P@@H2@@H1@@H0@@H/@@H.\@@ภ#%D%W#%D%Y@ఐ"p1#%D%U @g @@p@ఐZ"r1#%D%[@)@@z@@#%D%T#%D%\@@E@HE@@ภ#%D%c#%D%e@ఐ %omega#%D%^ @ @@@@@HU@ఐW"r2#%D%g@>@@@@#%D%]#%D%h@@E@HL@@ఐE$rem1#%D%i$%D%m@@@E@H^@@ఐU"l2$%D%n$%D%p@9@@@@w@@@Ơ@@@H_L@H@@డ"!>$&%q%$'%q%@@!a@@ S@@@0@@/@@.,%greaterthanBA Q@@@@ P Q@@ OT@@@@@@@HnK@Hd@@@@Hc@@Hb@@Ha@@ఐ $lbl1$W%q%$X%q%@@@ @'lbl_pos$^%q%$_%q%@ @@@@ఐ$lbl2$m%q%$n%q%@@@ @'lbl_pos$t%q%$u%q%@ @@6L@Hq)@@#@@@@@HsL@Hl/@ఐ'combine$%%$%%@@@@@@w@^@E@=@@Hy@@Hx@@Hw@@Hv@@HuI@@ภ$%%$%%@yఐ֠%omega$%% @} @@@@@H`@ఐJ"r1$%%@@@j@@$%%$%%@@E@Ho@@ภ$%%$%%@ఐࠐ"p2$%% @w @@@ఐD"r2$%%@+@@@@$%%$%%@@qE@H@@ఐD"l1$%%$%%@,@@@@ఐ$rem2$%%$%%@@@E@H@@w@@@HL@H@ఐ'combine% %%%%&@@@@@@@@ʠ@@@H@@H@@H@@H@@H@@ภ%&%& %'%& @ఐ"p1%0%& @ٰ @@@ఐ̠"r1%:%&@@@<@@%=%&%>%&@@?E@H@@ภ2%I%&%J%&@!ఐb"p2%S%& @ @@`@ఐƠ"r2%]%&@@@R@@%`%&%a%&@@UE@H@@ఐ$rem1%n%&%o%&@@@WE@H#@@ఐv$rem2%}%&%~%&"@#@@KE@H2@@v@@@HL@H7@%%q%| @@9@%%%  @@;@@@A%$$:@@@?@7@@MS@#A@@@@@i@P@H@@Ms@@Mr@@Mq@@Mp@@MoE@Mj/@@@%$$(@@ఐ'combine% &&&(% &&&/@:@@@%@@@M{@@@M@%@@@M}@@@M@X@>@@@@M@@@M@@@M@i@6@@@@M@%@@M@@@M~@06@@@Mz@63@@@M|@@My@@Mx@@Mw@@Mv@@Mu3%%%%%%%%@@@@@ภ% &&&0% &&&2@@@@%^n@@@ME@M@@ภ& &&&3& &&&5@@@@%of@@@ME@M#@@ఐQ"l1&! &&&6&" &&&8@6@@0@@ఐJ"l2&. &&&9S@ʰT@@<@@U@@{=@V@@|@`WA@B@M^@A@[@[Z@q&Compat.B&@$&?&F&A$&?&L@&SA@Т&ConstrC&L%&M&R&M%&M&X@Б%equal&Y&&]&g&Z&&]&l@б@г$7constructor_description*Data_types&h'&o&y&i'&o&@ &l'&o&&m'&o&@@@@@@M3&m&l&l&m&m&m&m&m@@@@A @@б@г$7constructor_description*Data_types&(&&&(&&@ &(&&&(&&@@@@@@M @@г&E$bool&)&&&)&&@@ @@@M(@@@@@M+@@@1@@M.9 @@@&&&]&c@@&WA@@@4@S@@3&&&&&&&&@7U @A3&&&&&&&&@9@@&%&M&Y&*&&@@БAఠ&compat&,&'&,&'@&YA@@@$@@@O@@@OD@M@$*@@@O@@@OD@M,@@@a|D@M@@M@@M3&&&&&&&&@l@B@@@&XA@@@࣠@!pA&,&'&,&' @']A@@03&&&&&&&&@?@:@3*@@ME@M@@ME@M@A@B'ocompat@$9$hKD@P@@@P@@@PD@M@$xPD@P@@@P@@@PD@MND@M@@ME@M@@ME@M@''K+n+t'(K+n+{@@':ZA'compats@#$tD@Pj@@@Pi@@@PhD@M@$yD@Pm@@@Pl@@@PkD@MwD@M@@ME@M@@ME@M@'PP++'QP+,@@'c[A,tuple_compat@#*@# G@@@afI@a=@@@aSD@PѠ@$̠D@P@@@P@@P@@@PD@M@#@$"@@@aRD@Pנ@$D@P@@@P@@P@@@PD@MD@M@@ME@M@@ME@M@'U,t,z'U,t,@@'\A@@@@@@!qA',&' ',&' @'^A@@3''''''''@@@@@@@@@@ఐѠ!p',&'',&'@@@3''''''''@$@@@@@(pat_desc',&'',&'@! @@  I@O@@OD@M@@ఐ@@@ఐ&compat)G1'')H1''@Q@@@@w@@O@@O3)I)H)H)I)I)I)I)I@_X@Y@Z@@@@ఐf!p)[1'')\1''@ @@@@ఐƠ!q)h1'')i1''@@@@@%@@@@@)v2'')w2''@@]@NK3)u)t)t)u)u)u)u)u@@@@@Ġ*Tpat_alias)2'')2''@̠ఠ!q)2'')2''@)`A@@& @@@N[@@@NZ@@)2'')2''@@@@@N\%@@)2'')2''@@Ҡ@@@N^@@@N]1@@)2'')2''@@@@@N_9@@)2'')2''@@@@@N`A@@@9)2''@@t@NLE@@J@@@L@ @@NaL@@@R@@@NbR@@@ఐ&compat)2'()2'( @߰@@@@@@O@@O3))))))))@VO@P@Q@@@@ఐ!p)2'( )2'( @@@@)@@ఐj!q)2'( )2'( @@@)@@%@@#@@Ġ'Tpat_or*3((* 3((@;'Tpat_or!M!k@@@@@'o @@@'t@@@'N%(row_desc@@@@@@@CKALAA'K'L@@@'v@ఠ"p1*63((*73((@*IaA@@'wD@Nk@@@Np3*;*:*:*;*;*;*;*;@@@@ఠ"p2*H3((*I3(( @*[bA@@'@@@Nq@@*S3((!*T3(("@@65@@@Ns@@@Nr@@@U*]3((#@@C@Nd @@@*d3(($*e3((%@@@Ne(@@a@@@@ @@Nt/@@@@@@Nu5@@@డ("||*~4()(<*4()(>@@&@@@P@&@@@O&@@@N@@M@@L'%sequorBA&@@@@&&@@&^@@@@@@@O@@@@O@@@O@@O@@O3********@yr@s@tha@b@c@@@@ఐ&compat*4()(0*4()(6@ð@@@@@@O@@O@@ఐ"p1*4()(7*4()(9@!@@('@@@O)@@ఐ9!q*4()(:*4()(;@@@6@@&@@7@@ఐ.&compat*4()(?*4()(E@@@@-@$@@O@@OJ@@ఐ"p2*4()(F*4()(H@R@@(Y@@@O[@@ఐk!q+ 4()(I+4()(J@M@@Bh@@&@@:i@@+4()(/+4()(K@@=l@@@+5(L(P+5(L(Q@@@Nw3++++++++@b@@@@Ġ'Tpat_or++5(L(R+,5(L(Y@#ఠ"q1+45(L([+55(L(]@+GcA@@(jD@N~@@@N@ఠ"q2+E5(L(^+F5(L(`@+XdA@@(@@@N+@@+P5(L(a+Q5(L(b@@32@@@N@@@N7@@@/+Z5(L(c@@@Nx;@@@@@@B@ @@NB@@@H@@@NH@@@డ)+r6(g(z+s6(g(|@@@@@@@P@@@@P@@@P@@P@@P3+}+|+|+}+}+}+}+}@UN@O@PE>@?@@@@@@ఐ֠&compat+6(g(n+6(g(t@@@@@@@P@@P@@ఐ!p+6(g(u+6(g(v@@@%@@ఐ}"q1+6(g(w+6(g(y@.@@)|@@@P6@@&@@7@@ఐ&compat+6(g(}+6(g(@ϰ@@@@@@P$@@P#J@@ఐꠐ!p+6(g(+6(g(@-@@W@@ఐ"q2+6(g(+6(g(@_@@)@@@@P+h@@&@@i@@+6(g(m+6(g(@@l@@Ġ.Tpat_construct+8((+8((@;.Tpat_construct#A#?@@@b@@@a@##loc)Longident!t@@@d@@@c*Data_types7constructor_description@@@e)}#b@@@h@@@g@@@f)[@(#2#loc)f!t@@@m@@@l@@@k@))core_type@@@n@@j@@@i@DDALAA)na  )odq@@@)o@@,U8((,V8((@@OM@@@N@@@N3,Y,X,X,Y,Y,Y,Y,Y@@@@ఠ"c1,f8((,g8((@,yeA@@S@@@N@ఠ#ps1,t8((,u8((@,fA@@E)ՠ#@@@N@@@N@@@N%@@,8((,8((@@\@[ZX@@@N@@@N@@@N@U@@@N@@N@@@NB@@@,8((@@@NF@@Ġ.Tpat_construct,8((,8((@@,8((,8((@@@@@N@@@N\@ఠ"c2,8((,8((@,gA@@@@@Nj@ఠ#ps2,8((,8((@,hA@@*0$@@@N@@@N@@@N@@,8((,8((@@@@@@N@@@N@@@N @@@@N@@N@@@N@@@P,8()@@@N@@@@@b@ @@N@@@h@@@N@@@డ+}!s!u-9))-9))@!r@@@!r@@@P6@!q@@@P5"H@@@P4@@P3@@P23--------@h@@@@ng@h@iaZ@[@\@@@@డ%equal&Constr-=9)) ->9))@ -A9))-B9))@@@@@@PH@@@@PG@@@PF@@PE@@PD@@@@@@@@PM@@@@PL@@@PK@@PJ@@PI>@@ఐ"c1-l9))-m9))@E@@,@@@PYJ@P[J@PZR@@ఐ"c2-9))-9))@W@@:@@@PXJ@P]J@P\f@@N @@!@@@PB@P^J@PWn@@ఐp'compats-9)) -9))'@t@@@r@cW@@Pa@@P`@@ఐ;#ps1-9))(-9))+@@@@@ఐ#ps2-9)),-9))/@@@{@@"@@r@@@@@@Ġ,Tpat_variant-;)J)N-;)J)Z@;,Tpat_variant%%@@@p@@@o@$%label@@@qנ+>%#@@@t@@@s@@@r&Stdlib#ref)(row_desc@@@v@@@u@CEALAA+mPR+o@@@+ip@ఠ"l1.;)J)[. ;)J)]@.iA@@1@@@N3. . . . . . . . @O@@@ఠ#op1.;)J)^.;)J)a@.*jA@@+x%]@@@N@@@N@@@N@@.);)J)c.*;)J)d@@>9@@@N@@@N#@@@d.3;)J)e@@@N'@@Ġ,Tpat_variant.>;)J)g.?;)J)s@oఠ"l2.G;)J)t.H;)J)v@.ZkA@@p@@@N?@ఠ#op2.U;)J)w.V;)J)z@.hlA@@O+%@@@N@@@N@@@NU@@.g;)J){.h;)J)|@@|w@@@N@@@Na@@@3.q;)J)}@@)@Ne@@@@@E@ @@Nl@@@K@@@Nr@@@డ,"蠐".<)).<))@"@@@"@@@Pt@"@@@Ps#@@@Pr@@Pq@@Pp3........@@@@@]V@W@XPI@J@K@@@@డ-*۠*ݰ.<)).<))@*ڰ@@@@@@PI@P@*@@@P@@P@@P#@@ఐ"l1.<))@)@@/@@ఐ"l2$.<))@3&@@@@@P>@@@@#5@@@P@PJ@PF@@ఐ栐'ocompat.<)).<))@@@@@@@P@@PY@@ఐ堐#op1.<)).<))@_@@f@@ఐ#op2/ <))/ <))@j@@s@@"@@t@@H@@7u@@Ġ-Tpat_constant/=))/=))@;-Tpat_constant&a&_@@@W@@@V@&"(constant@@@X@ABALAA,NW  ,OW  ;@@@,m@ఠ"c1/9=))/:=))@/LmA@@@@@N3/;/:/:/;/;/;/;/;@@@@@@&@@'@N@@Ġ-Tpat_constant/L=))/M=))@0ఠ"c2 /U=))/V=))@/hnA@@1@@@N@@@@@@N@@D @@@"@ @@O&@@@(@@@O,@@@డ-++/t>))/u>))@+@@@5@@@PH@P@+@@@P@@P@@P3/~/}/}/~/~/~/~/~@QJ@K@L6/@0@1@@@@ఐc-const_compare/>))/>))@ϰ@@@!@@@P@X@@@P@@P@@P@@ఐr"c1/>))/>))@'@@!@@@PJ@PJ@P2@@ఐj"c2/>))/>))@:@@J@PJ@PC@@3@@LD@@@/>))/>))@@WI@PO@@?@@P@@Ġ*Tpat_tuple/?))/?))@;*Tpat_tuple'&'$@@@Z@@@Y@@-#&@@@^@@@]@-Y'>@@@`@@@_@@\@@@[@ACALAA-(Y k m-)Z | @@@-tn@ఠ*labeled_ps 0?))0?)*@0&oA@@@*)@@@O@@@O@-'f@@@O@@@O@@O@@@O30*0)0)0*0*0*0*0*@o@@@@@P@@@O@@Ġ*Tpat_tuple0;?)*0<?)* @Zఠ*labeled_qs 0D?)*0E?)*@0WpA@@@[Z@@@O$@@@O#@-'@@@O&@@@O%@@O"@@@O!1@@@&@@@O4@@@@@7@ @@O';@@@=@@@O(A@@@ఐ ",tuple_compat0y@**"0z@**.@ &@@@ $@ @@P@@P30{0z0z0{0{0{0{0{@tm@n@oD=@>@?@@@@ఐ|*labeled_ps0@**/0@**9@@@ 6@@ఐX*labeled_qs0@**:0@**D@@@ @@'@@  @@Ġ)Tpat_lazy0A*E*I0A*E*R@;)Tpat_lazy''@@@@@@@.'@@@@@@@AHALAA--J@@@..s@ఠ!p 0A*E*S0A*E*T@0qA@@.+(@@@O5@@@O4300000000@ @@@@@, @@@O*@@Ġ)Tpat_lazy0A*E*V0A*E*_@6ఠ!q 0A*E*`0A*E*a@1rA@@.K(0@@@O=@@@O< @@@ @@@O+#@@N@@@&@ @@O>*@@@,@@@O?0@@@ఐ T&compat1A*E*e1A*E*k@ @@@ S@ J A@@P@@P311111111@ ZRK@L@M3,@-@.@@@@ఐZ!p1'A*E*l1(A*E*m@@@. gD@P@@@P@@ఐM!q1:A*E*n1;A*E*o@ @@. oD@P@@@P+@@3 @@ m,@@Ġ+Tpat_record1RB*p*t1SB*p*@;+Tpat_record((@@@x@@@w@-,@(`#loc^!t@@@|@@@{@]1label_description@@@}@.֠(@@@@@@~@@z@@@y(+closed_flag@@@@BFALAA.u^`.{@@@.q@ఠ"l11B*p*1B*p*@1sA@@<@;9@@@OT@@@OS@6@@@OU@/ (@@@OW@@@OV@@OR@@@OQ311111111@ @@@@1B*p*1B*p*@@8@@@OX @@@o1B*p*@@ @OA @@Ġ+Tpat_record1B*p*1B*p*@zఠ"l21B*p*1B*p*@1tA@@{@zx@@@Oh@@@Og@u@@@Oi@/H)-@@@Ok@@@Oj@@Of@@@Oe?@@1B*p*1B*p*@@v@@@OlG@@@31B*p*@@ @OBK@@@@@E@ @@OmR@@@K@@@OnX@@@@@ఠ"ps2C**2C**@20yA@@i*K@@@Q@@@QI@P32%2$2$2%2%2%2%2%@ l@@]V@W@X@@@@ఠ"qs27C**28C**@2JzA@@*e@@@Q@@@QI@P@@( @@@(@@@P!@ఐ֠,records_args2TC**2UC**@ @@@*@@@@Q%@@@Q$I@Q@w@@@Q@*@@@P@@Q@@@Q@+@@@@QB@@@QAI@Q@@@@Q@*@@@P@@P@@@P@۠(@@@P@@@@P@@P@@P@@Pu@@ఐ"l12C**2C**@~@@+B@W@@@@Q!@@@Q @@@QJ@Q)J@Q"@@ఐ"l22C**2C**@@@+b@Z@@@@Q@@@Q@@@QJ@QFJ@Q?@@@@@Š@@@Q\J@Q@A@2C** @@ఐ Š'compats2D**2D**@ ɰ@@@ @  @@Q_@@Q^322222222@@@@@@@@@ఐ점"ps3 D**3 D**@@@ D@Qf@@ఐ᠐"qs3D**3D**@@@ D@Qs#@@+@@ $@6@@ H@@Ġ*Tpat_array3-E**3.E**@;*Tpat_array*r*p@@@@@@@*3,mutable_flag@@@/ 0*@@@@@@@@@@BGALAA0l0m@@@0r@ఠ#am13WE**3XE**@3juA@@"@@@O| @ఠ"ps3eE**3fE**@3xvA@@*0Ơ*@@@O@@@O~@@@O} @@@H3uE**@@ [@Op @@Ġ*Tpat_array3E**3E**@Sఠ#am23E**3E*+@3wA@@T@@@O @ఠ"qs3E*+3E*+@3xA@@\0*@@@O@@@O@@@O @@@'3E*+@@ _@Oq @@~@@@9@ @@O @@@?@@@O @@@డ2((( 3F+ +3F+ +@(@@@(@@@Q@(@@@Q(@@@Q@@Q@@Q333333333@ z@{@|tm@n@oQJ@K@LD=@>@?@@@@డ2L003F+ +3F+ +@0@@@@@@QI@Q@0@@@Q@@Q@@Q#@@ఐ#am13F+ +3F+ +@*@@0@@ఐ#am24 F+ +4 F+ +@5@@$J@Q?@@@@(l@@@Q@QJ@QG@@డ2((4!G++D4"G++F@(@@@(@@@Q@(~@@@Q)U@@@Q@@Q@@Qb@@డ20j0l4<G++34=G++4@0i@@@#intA@@@QJ@Q@ 0m@@@Q@@Q@@Q@@డ2$List&length4^G++$4_G++(@ 4bG++)4cG++/@@@*!a@?@@@?.@@@?@@?@kk @@C@@@@1ڠ+@@@Q@@@QK@Q@@@QE@@@Q@@Q@@ఐ0"ps4G++04G++2@°@@4!@@@QL@QL@Q@@C @@^@@డ3$List&length4G++54G++9@ 4G++:4G++@@@S@@@S2+@@@Q@@@QK@Q@@@Q@@@Q@@Q@@ఐ>"qs4G++A4G++C@@@t!@@@QL@QL@Q@@0 @@L@Q@@@@)A@@@Q@QK@Q@@ఐ ɠ'compats4H+G+M4H+G+T@ Ͱ@@@ @  @@Q@@Q/@@ఐ"ps5H+G+U5 H+G+W@5@@ D@Q>@@ఐ"qs5H+G+X5H+G+Z@B@@ D@QM@@&@@ N@@@@)u@@@Q@QJ@QV@@*@@OW@@@50I+[+_51I+[+`@@ @O t@@@58I+[+a59I+[+b@@ @O |@@ @@@@ @@O @@@@@@O @@@ภ$ 5NI+[+g5OI+[+l@$ @@@z @@@A5R,&'@@| 5@eA@@@@@\k@@\jD@\hg@@@5[,&& @__;:@9<@@\@MA@@M@@M35a5`5`5a5a5a5a5a@@@@࣠@"opA5rK+n+|5sK+n+~@5{A@@n35q5p5p5q5q5q5q5q@@@@@@@"oqA5K+n+5K+n+@5|A@@l355555555@@@@@@@@@@ఐ("op5K+n+5K+n+@@@355555555@"@@@@@@ఐ("oq5K+n+5K+n+@ @@@@@@@@@@\x@@Ġ$None5L++5L++@;5 55@@W@@@@AA@A5@@5 @@ @@@\z355555555@/@@@@Ġ$None5L++5L++@@@@@@\{@@@@@@ @@\@@@@@@\@@@ภ%5L++5L++@%@@@#@@Ġ$Some5M++5M++@;5@<@5>A@AA@A5@@5>ఠ!p6M++6M++@6}A@@D@\q@@@@@@\t@@Ġ$Some6M++6M++@ఠ!q6M++6 M++@62~A@@D@\@@@@@ @\@@/ @@@!@ @@\@@@'@@@\@@@ఐ&compat6>M++6?M++@H@@@@wn@@\@@\36@6?6?6@6@6@6@6@@G@@A@B.'@(@)@@@@ఐO!p6TM++6UM++@@@N@@ఐB!q6aM++6bM++@@@A@@'@@@ @@Ġ$None6uN++6vN++@@@@@p@\@@Ġ$Some6N++6N++@@6N++6N++@@mD@\@@@ @@s@\@@6N++6N++@@@@ @@\@ @@@Ġ$Some6N++6N++@@6N++6N++@@D@\@@@ @@@\@@Ġ$None6N++6N++@@@@@@\"@@6N++6N++@@@@ @@\+@ @+@@7@@@ @@@\2@@@ภ%6N++6N++@%@@@:@@@A6K+n+@@ @eA@@@@@^@@^D@^g@@@6K+n+p @@@@@@@M@@M366666666@ @@@࣠@"ps A6P+,6P+,@7A@@366666666@@@@@@@"qs!A7P+,7P+,@7A@@377777777@@@@@@@@@@ఐ("ps7P+,7P+,@@@377777777@"@@@@@@ఐ("qs7)P+,7*P+,@ @@@@@@@@@@^@@Ġ/ְ7@Q,, 7AQ,,"@/@@@@@^37@7?7?7@7@7@7@7@@(@@@@Ġ/7MQ,,$7NQ,,&@/@@@@@^ @@@@@@ @@^@@@@@@^@@@ภ'7dQ,,*7eQ,,.@'@@@"@@Ġ%M7tR,/,47uR,/,6@%Lఠ!p"7}R,/,3 @7A @@KD@^e@ఠ"ps#7R,/,8@7A@@6@@@^s@@@@@`@^v@@Ġ%s7R,/,;7R,/,=@%rఠ!q$7R,/,: @7A @@aD@^@ఠ"qs%7R,/,?@7A@@7@@@^@@@@@u@^@@= @@@-@ @@^@@@3@@@^@@@డ67,-,/7R,/,N7R,/,P@,,@@@,,@@@^@,+@@@^-@@@^@@^@@^377777777@jd@e@f_Y@Z@[F@@A@B;5@6@7@@@@ఐ6&compat7R,/,C7R,/,I@@@@5@,#@@^@@^@@ఐ!p8R,/,J8R,/,K@#@@)@@ఐn!q8R,/,L8R,/,M@.@@n6@@"@@>7@@ఐ'compats8!R,/,Q8"R,/,X@@@@@@@^@@^J@@ఐ"ps82R,/,Y83R,/,[@P@@D@_Y@@ఐ"qs8AR,/,\8BR,/,^@]@@D@_h@@&@@i@@U@@j@@@8RS,_,c8SS,_,d@@#@^9@@@8ZS,_,e8[S,_,f@@@^A@@ @@@@ @@^H@@@@@@^N@@@ภ'/8pS,_,m8qS,_,r@'.@@@%V@@@A8tP+, @@'0@A@@I@:.@@`@@`D@`@@@8}P++ @//@@@,@ @@M@@M388888888@@@@࣠@*labeled_ps&A8U,t,8U,t,@8A@@>388888888@@@@@@@*labeled_qs'A8U,t,8U,t,@8A@@*388888888@P@@@@@@@@@ఐ(*labeled_ps8U,t,8U,t,@@@b388888888@"B@@@@@@ఐ(*labeled_qs8U,t,8U,t,@ @@N@@@@@v@U@@`@@Ġ1u8V,,8V,,@1t@@@@@`388888888@(@@@@Ġ18V,,8V,,@1@@@@r@` @@@@@@ @@`@@@@@@`@@@ภ(9V,,9V,,@(@@@p"@@Ġ&9W,,9W,,@&@ఠ'p_label(9 W,,9!W,,@93A@@D@agD@ak@@ఠ!p)9/W,,90W,,@9BA@@D@ay@@96W,,$@@@@ @@a@ఠ*labeled_ps*09DW,,@9VA3@@8D@a@@@a @@@ @@@`@@Ġ'09WW,,9XW,,@'/@ఠ'q_label+9dW,,9eW,,@9wA@@D@ajD@a @@ఠ!q,9sW,,9tW,,@9A@@D@a@@9zW,,$@@@@ @@a@ఠ*labeled_qs-09W,- @9A3@@8D@a @@@a@@@ @@@`@@_ @@@K@ @@a@@@Q@@@a@@@డ8.. 9Y-=-C9Y-=-E@.@@@.@@@a*@.@@@a).@@@a(@@a'@@a&399999999@@@@@|@}@~c\@]@^UN@O@PA;@<@=@@@@డ8;&Option%equal9X- -9X- -@ 9X- -9X- -@@@@!a@~@6\@@@&@@%@@$@@@@#@l@@@"6l@@@!@@ @@@@@6j_ j j6k_ j @@6iR@+&@@@@@@@@aA@@a@@@a?@@@@a>@@@@a<@@@a;@@a:@@a9@@a8`@@డ8&String%equal:'X- - :(X- -&@ :+X- -':,X- -,@@@ @@@E@@@@E$boolE@@@E@@D@@D@rr r@@K@@@@!@@@aa@&@@@a`@@@a_@@a^@@a]@@ఐ;'p_label:[X- --:\X- -4@@@:@@ఐ'q_label:hX- -5:iX- -<@@@@@@@.@@@a6@akJ@aQ@@డ8.ݠ.߰:~Y-=-Q:Y-=-S@.ܰ@@@.@@@aq@.@@@ap/@@@ao@@an@@am@@ఐݠ&compat:Y-=-F:Y-=-L@@@@@@@a@@a@@ఐ|!p:Y-=-M:Y-=-N@@@{@@ఐE!q:Y-=-O:Y-=-P@@@D@@"@@@@ఐq,tuple_compat:Y-=-T:Y-=-`@u@@@s@R9@@a@@a@@ఐ*labeled_ps:Y-=-a:Y-=-k@@@D@a%@@ఐ`*labeled_qs:Y-=-l:Y-=-v@%@@nD@a4@@&@@X5@@U@@/F@@@a5@aJ@a{=@@!@@a>@@@;Z-w-{;Z-w-|@@@aI@@@; Z-w-}; Z-w-~@@@aQ@@ @@@@ @@aX@@@@@@a^@@@ภ)ް;Z-w-; Z-w-@)@@@f@@@A;#U,t,@@@@A@@@@@c@@cD@c@@@;,U,t,v @@@R@w8@1/@ @@@3;1;0;0;1;1;1;1;1@C@@;8*&&;9\--@ 3;6;5;5;6;6;6;6;6@_@@@;=%&M&Q@3;;;:;:;;;;;;;;;;@@@@@;B$&?&? @ @/SyntacticCompat4D;N^--;O^--@;aA@гР&Compat;Z_--;[_--@@ @@m@fd@?=@@@3;f;e;e;f;f;f;f;f@2@*@@~@wu@PN@)'@@@;:@@@Б@ఠ%equal/;a--;a--@;A@@@/@@@c@/@@@c/'@@@c@@c@@cE@c3@డ9,equal_constr*Data_types;a--;a--@ ;a--;a--@@@/@@@ E@/@@@ D!@@@ C@@ B@@ A@/p  /q  U@@/Y@@@3X@A@;a--@@@[@B;@<@=@@3;;;;;;;;@_E@@;`--;b--@ 3;;;;;;;;@d@@@@w;b--@0@9F939J3@@@d@@@d@9Q9>9U3$@@@d @@@d 0@@@@d @@d @@d @0@1@1@9f9S @@@d@@@d@@@d@9t9a#@@@d@@@d@@@d0c@@@d@@d@@d@@@2@99vC@@@d!@@@d @@@d@99F@@@d@@@d@@@d0@@@d@@d@@d@@@3@@ݠ%B! @@@d(@@@d-@99u@@@d/@@@d.@@d,@@@d+@@ؠ@@@d'@99@@@d*@@@d)@@d&@@@d%0@@@d$@@d#@@d"@@@@@@@@e=@@er//>r//@k@@n@డ%Subst)type_expr%Subst>"s//>#s//@ >&s//>'s//@@@%Subst!t@@@iV@@@@iU)type_expr@@@iT@@iS@@iR@0typing/subst.mli~ : :~ : d@@P@"@@@@@@i@@@@i@@@i@@i@@i@@డ?(identity%Subst>_s//>`s//@ >cs//>ds//@@;%subst!a@i@@@i@3orr4or@@DE@@@L@@@iI@i@@ఐ "ty>s//@@@#@@f@@$I@i@>r//@@(@A@-G@i@A@ @  @!@ఠ9get_constructor_type_path>u//>u//@>A@@@4)type_expr@@@iG@i@#Env!t@@@iG@i$Path!t@@@j G@i@@iG@i@@iG@i3>>>>>>>>@Tle@f@g@@@࣠@"tyA>u//>u/0@>A@@13>>>>>>>>@>>u//>y0v0@@@@@  @@$tenvA>u/0>u/0@>A@@:3>>>>>>>>@!H@@@@@@@@@ఠ"ty>v0 0>v0 0@? A@@5)type_expr@@@iJ@i3>>>>>>>>@'W@@@@@డ5%+expand_head%Ctype?v0 0?v0 0@ ?v0 0?v0 0%@@@l@@@3@|@@@3'@@@3@@3@@3@5()U)U5))U)@@5'Z@@@@~@@@i@@@@i9@@@i@@i@@i7@@ఐb$tenv?Cv0 0&?Dv0 0*@A@@D@@ఐ*clean_copy?Rv0 0,?Sv0 06@@@@@@@i@@iX@@ఐ"ty?dv0 07?ev0 09@|@@e@@?hv0 0+?iv0 0:@@G@iG@ik@@\@@ql@A@?ov0 0 @@డ=(get_desc?{w0>0F?|w0>0N@@@@@ &)type_desc@@@ @@ @&""& "#@@&k@@@@@@@i@@@i@@i3????????@@@@@@@ఐ"ty?w0>0O?w0>0Q@ @@@@@iK@iK@i@@2 @@*@@@i@Ġ'Tconstr?x0W0[?x0W0b@;'Tconstr;@@@ @@@@ ڠ$listK@@@ @@@ ۠&Stdlib#ref&+abbrev_memo@@@ @@@ @CCAL@A&wT$&&xT$\@@@&L@ఠ$path?x0W0d?x0W0h@?A@@5@@@i]@@?x0W0i?x0W0j@@1B@@@j@@@ii@@@x0W0k@x0W0l@@2-@@@j@@@ju@@@Q@ x0W0m@@@@@jz@@@@@j}@@@ఐ.$path@x0W0q@x0W0u@-@.@/@@e3@@@@@@@@@8@@@@@%y0v0z@&y0v0{@@@@@j@@@@@j@@@ ภ.@4y0v0\@.@]@@5@@@j@@:y0v0b@@@@@A@<w0>0@d@@3@8@7@7@8@8@8@8@8@@@@f@@=@pgA@G@jn@A@k@kj@@ఠ,simple_match@N11@O11@@aA@@@9ܠ5@@@j3G@j(@@@j)G@j@96@@@j6G@j+@@@j,G@j@@@jG@j@@jG@j@@jG@j3@p@o@o@p@p@p@p@p@@@@@@࣠@!dA@11@11@@A@@13@@@@@@@@@>@11@22@@@@@  @@!hA@11@11@@A@@63@@@@@@@@@!H@@@@@@@@ Р8$Head(Patterns@11&@11.@ @11/@113@@@3@@@@@@@@@+W@"@#@@@@A3@@@@@@@@@@@@11! @@ @3@@@@@@@@@@@@ఐQ!d@171?@171@@6@@~3@@@@@@@@@@@@(pat_desc@171A@171I@: @@@@ఐS!h@171K@171L@.@@@(pat_desc@171M@171U@:. @@@@!@@@@@@j-$@@Ġ)ConstructA1[1_A1[1h@5ఠ"c1A1[1iA1[1k@A"A@@5@@@j53AAAAAAAA@Z@@@@@@@@j/@@Ġ)ConstructA!1[1mA"1[1v@5ՠఠ"c2A*1[1wA+1[1y@A=A@@5@@@j8@@@@@@j0@@. @@@ @@@j9$@@@&@@@j:*@@@డ?r,equal_constr*Data_typesAM1}1AN1}1@ AQ1}1AR1}1@@@@@5Y@@@j@5^@@@j@@@j@@j@@j3A]A\A\A]A]A]A]A]@ZS@T@U@9@:@;@@@@ఐb"c1Aq1}1Ar1}1@@@5z@@@jM@jM@j@@ఐ["c2A1}1A1}1@!@@5@@@jM@jM@j-@@C @@ .@@Ġ'VariantA11A11@,Kঠ#tagA11A11@3,E,T@@@jD,G@@@3,=,<@@A,A,6@,33,0,/@@B,A,@,3,,@@C,A, @,,A,F@,Cఠ"t1A11A11@AA@@,U@@@jI3AAAAAAAA@@@@@AA11A11@@,n@@@jKM@jJ @@@,@@o@j< @@Ġ'VariantA11A11@,ঠ#tagA11A11@3,{,@@@jP,}@@@3,s,r@@A,:A,l@,i3,f,e@@B,;A,T@,Q3,N,M@@C,@@@+@@@j=A@@d @@@<@ @@jXH@@@B@@@jYN@@@డ@>D>FB11B11@>C@@@,@@@jL@j@>D@@@j@@j@@j3B BBB B B B B @ksl@m@n>7@8@9@@@@ఐ{"t1B411B511@@@@@ఐR"t2BA11BB11@@@,@@@j"@@@@#@@Ġ(ConstantBV11BW11@4ఠ"c1B_11B`11@BrA@@5@@@ja3BaB`B`BaBaBaBaBa@@@@@@@@ @j[@@Ġ(ConstantBr11Bs11@5ఠ"c2B{11B|12@BA@@5!@@@jd@@@@@@j\@@0 @@@"@ @@je&@@@(@@@jf,@@@డA>Ƞ>ʰB12B12@>ǰ@@@'[@@@kL@j@>@@@j@@j@@j3BBBBBBBB@QJ@K@L6/@0@1@@@@ఐ'-const_compareB12B12@#@@@4@@@j@'~@@@j@@j@@j@@ఐr"c1B12B12@'@@4@@@kN@k N@k2@@ఐj"c2B12B12@:@@N@k N@k C@@3@@LD@@@B12B12@@WM@k O@@?@@P@@Ġ$LazyC22 C22$@-@@@@@jh@@Ġ$LazyC22&C22*@-*@@@@@ji@@@@@@ @@jn@@@@@@jo@@@ภ2ܰC+22.C,222@2@@@@@Ġ&RecordC<2327C=232=@1/@CA232>CB232?@@1110@@@jy@@@jx@@@ @@@jq@@Ġ&RecordCU232ACV232G@1H@CZ232HC[232I@@1J1I@@@j~@@@j}@@@ @@@jr@@+ @@@ @ @@j@@@&@@@j @@@ภ3)Cx232MCy232Q@3(@@@ @@Ġ%TupleC2R2VC2R2[@21ఠ%lbls1C2R2\C2R2a@CA@@292825@@@j@@@j@@@j3CCCCCCCC@@@@@@@@H@j@@Ġ%TupleC2R2cC2R2h@2Uఠ%lbls2C2R2iC2R2n@CA@@2]2\2Y@@@j@@@j@@@j$@@@@@\@j'@@@@@@*@ @@j.@@@0@@@j4@@@డBF@ @ C2R2xC2R2y@@ @@@222@@@k"@@@k!@@@k L@k@@@@@k@@k@@k3CCCCCCCC@:ib@c@dF?@@@A@@@@ఐq%lbls1D2R2rD2R2w@@@"@@ఐZ%lbls2D2R2zD2R2@@@1L@k#!@@@@"@@Ġ%ArrayD$22D%22@0ఠ#am1D-22D.22@D@A@@0!@@@j`@ఠ$len1D;22D<22@DNA@@0)@@@jn@@@DC22@@@jr@@Ġ%ArrayDN22DO22@0Cఠ#am2DW22DX22@DjA@@0K@@@j@ఠ$len2De22Df22@DxA@@0S@@@j@@@Dm22@@@j@@M@@@1@ @@j@@@7@@@j@@@డB8䠐8D22D22@8@@@8@@@k+@8@@@k*9@@@k)@@k(@@k'3DDDDDDDD@qj@k@ld]@^@_IB@C@D<5@6@7@@@@డC@נ@ٰD22D22@@ְ@@@0@@@kEM@k<@@@@@k;@@k:@@k9#@@ఐ#am1D22D22@*@@0@@ఐx#am2D22D22@5@@$N@kF?@@@@92@@@k7@kGN@kDG@@డCPAAD22D22@A@@@0@@@kUM@kL@A@@@kK@@kJ@@kIa@@ఐŠ$len1E22E22@g@@n@@ఐ$len2E 22E22@r@@$N@kV}@@@@9j@@@k6@kWN@kT@@Y @@@@@E%22E&22@@@jU@@Ġ#AnyE122E222@0x@@@@@jb@@@@@@ @@ji@@@@@@jo@@@ภ4EH22EI22@4@@@w@@@EU22EV22@@@j@@@E]22E^22@@@j@@ @@@@ @@j@@@@@@j@@@ภ42Es22@40@@@@@@AEv1719@@3ErEqEqErErErErEr@@@@Ey11@@ 3EuEtEtEuEuEuEuEu@@@@A@*G@k@A@@@ @ఠ*record_argE33E33"@EA@@@?;;@@@lG@l@@@lG@k>13@@@lG@l@@@lG@k@@kG@k3EEEEEEEE@4`Y@Z@[@@@࣠@"phAE33#E33%@EA@@(3EEEEEEEE@5E33E33@@@@@  @@ Р=$Head(PatternsE3(33E3(3;@ E3(3<E3(3@@@@3EEEEEEEE@".L@%@&@@@@A3EEEEEEEE@@@E3(3. @@ @3EEEEEEEE@@@ఐ<"phE3D3LE3D3N@@@`3EEEEEEEE@@@@(pat_descE3D3OE3D3W@?7 @@c@Ġ#AnyF3]3aF3]3d@1K@@@@p3FFFFFFFF@)@@@@q@@@ภ>F 3]3hF3]3j@>@@@s @Ġ&RecordF3k3oF3k3u@4 ఠ$argsF#3k3vF$3k3z@F6A@@44@@@l @@@l <@@@ @@=@@=@@@ఐ$argsF63k3~F73k3@@@@@3F5F4F4F5F5F5F5F5@]@@@@FB33FC33@@R@@R@@@డFP+fatal_errorFM33FN33@@&stringQ@@@4!a@1@@3@*OY*PY@@*N@@@@@@@@lL@l@@lv@@2Parmatch.as_recordFp33Fq33@@Fs33@@&@@@lL@lL@l@@/@@@@@AF}3D3F@@w@F3(3*@@3F{FzFzF{F{F{F{F{@@@@A@G@l+@A@@@ݠ@ఠ.extract_fieldsF33F33@FA@@@.3@@@lI@l@@@lG@l-@09@3@@@l @>@@@l@@l@@@lG@l2.à I@l@@@lG@l3@@l4G@l.@@l/G@l,3FFFFFFFF@=6@7@8@@@࣠@$lblsAF33F33@FA@@;3FFFFFFFF@HF33F4_4@@@@@  @@#argAF33F33@FA@@@3FFFFFFFF@!R@@@@@@@@@ఠ)get_fieldŠF33F33@G A@@@3@@@lnJ@l8@0@4 @@@loM@lX@?@@@@lJ@lY@@lZM@lF@@@lSJ@l=J@l>@@l?J@l9@@l:J@l73GGGGGGGG@:F|@=@>@@@࣠@#posAG.33G/33@GAA@@43G-G,G,G-G-G-G-G-@AG633G7474Y@@@@@  @@#argAGB33GC33@GUA@@?3GAG@G@GAGAGAGAGA@!K@@@@@@@@డE$List$findGZ33G[33@ G^33G_33@@1@@@@Z0@@@lI@@lH@0b@@@lGc@@lE@@lD3GjGiGiGjGjGjGjGj@*6k@-@.@@@@࣠@DA@ఠ#lblɠG34G34@GA@@w3GGGGGGGG@@@@@@G34G34@@w@@G34G34@@@@@@l\@@ @@డF CѠCӰG34G34@Cа@@@J@ld@C@@@lc@@lb@@la3GGGGGGGG@@/@)@*@@@@ఐ#posG34 G34@u@@@@ఐE#lblG34G34@@@@'lbl_posG34G34@4v @@&@@@@1o@@@lpP@ll,@G33G34@@@1{@@@lU@@lTN@ltN@lr]@@ఐ#argG34G34!@@@@@@@k@@@G4'4-G4'4.@@J@lwy@@ఠ!pˠH 4'40H 4'41@HA@@J@lx@@@@@@ @@lz@@@@@@l{@@@ఐ!pH$4'45H%4'46@@@@@ 3H#H"H"H#H#H#H#H#@$@@@Ġ)Not_foundH4474GH5474P@18@@@@G3@@@l~@H;474=@@0@@@ఐ@n%omegaHC474T @@@@&@@@AHF33@@(3HBHAHAHBHBHBHBHB@@@@A@OJ@l@A@@డF$List#mapHX4_4aHY4_4e@ H\4_4fH]4_4i@@04@@@@@@l@0@@@l0r@@@l@@l@@l3HiHhHhHiHiHiHiHi@O~w@x@y@@@@࣠@#lblAH4_4oH4_4r@HA@@3H~H}H}H~H~H~H~H~@@@@@@@ఐ)get_fieldH4_4vH4_4@!@@@55@@@l@2)@5@@@l@@@@@l@@l@@@l@@l@@l3HHHHHHHH@<3@*@+@@@@ఐ<#lblH4_4H4_4@@@@'lbl_posH4_4H4_4@5d @@5g@@@lL@lL@l @@ఐ#argH4_4H4_4@@@/-@@H@@".@H4_4jH4_4@@@C"@@lJ@lJ@l]@@ఐ$lblsH4_4@@@T~@@@@2j@@@3@ A@[G@l@A@@@1@ఠ1simple_match_args͠H44H44@IA@@@B>@@@m9G@m_@@@m`G@l@B>@@@lG@l@@@lG@l@>ҠAP@@@m#G@mD@@@mSG@l G@l@@lG@l@@lG@l@@lG@l3I+I*I*I+I+I+I+I+@p@@@@@࣠@%discrAI>44I?44@IQA@@=3I=I<I<I=I=I=I=I=@JIF44IG7[7d@@@@@  @@$headAIR44IS44@IeA@@B3IQIPIPIQIQIQIQIQ@!T@@@@@@@@$argsAIc44Id45@IvA@@D3IbIaIaIbIbIbIbIb@V@@@@@@@@ РA$Head(PatternsI|55I}55@ I55I55@@@3IIIIIIII@+e@"@#@@@@A3IIIIIIII@@@I55  @@ @3IIIIIIII@@@ఐJ$headI5!5)I5!5-@2@@3IIIIIIII@@@@(pat_descI5!5.I5!56@B @@@Ġ(ConstantI5<5@I5<5H@@I5Q5_I5Q5`@@>@@@l&@@@ @@'@@'@Ġ'VariantI5a5eI5a5l@4@I5a5mI5a5n@@4@@@l9@@@ @@:@@:@@@@;@Ġ%TupleI5o5sI5o5x@8@J5o5yJ5o5z@@888@@@l@@@l@@@lU@@@ @@V@@V@@;@@W@Ġ%ArrayJ5{5J5{5@6 @J5{5J5{5@@6@@@li@@@6 @@@ln@@@ @@o@@o@@T @@p@Ġ$LazyJ055J155@4F@@@@{@@{@@`@@|@@@ఐ۠$argsJ;55J<55@@@@Ġ&RecordJH55JI55@8;ఠ$lblsҠJQ55JR55@JdA@@8C8B@@@m@@@m3JWJVJVJWJWJWJWJW@@@@@@ @@E@@E@@@ఐנ.extract_fieldsJg55Jh55@7@@@27{@@@m@@@m@4@7@@@m@B@@@m@@m@@@m2@@@m@@m @@m 3JJJJJJJJ@>7@8@9@@@@ఐ*record_argJ55J55@װ@@@D!@B@@@m.@@@m-C68@@@m,@@@m+@@m*"@@ఐz%discrJ55J55@_@@/@@J55J55@@27@@@m(@@@m'N@m@@@AU@Ơ!b@>@@@AT@@@@@AS@@@AR@@AQ@@AP@4>}>}4>}>@@4A@-(@@@%8@@@m&N@m[N@mVN@mC@@@mF@@@@mE%@@@@mB@@@mA@@m@@@m?@@ఐ۠$lblsK,55K-55@@@S.@@@mTO@mWO@mU@@ఐ᠐$argsKA55KB55@@@!@@KE55KF55@@4۠@D@)@@m%@@@m$N@mYO@mQ@@@@'@Ġ#AnyK`55Ka55@6@@@@J@@J@@@ఐ3%discrKn56Ko56 @@@l@(pat_descKu56 Kv56@D @@n@Ġ)ConstructK66 K66)@@6ఠ$cstrӠK66*K66.@KA@@@;@@@mc3KKKKKKKK@ @@@@@@@@@@@@డC&omegas(PatternsK662K66:@ K66;K66A@@Cf@@@C@@@mCC@@@m@@@m@@m3KKKKKKKK@.0)@*@+@@@@ఐ9$cstrK66BK66F@@@?@@@m@m@*cstr_arityK66GK66Q@?@@C@@@mP@mP@m%@@: @@&@Ġ'VariantK6R6ZK6R6a@6ঠ'has_argK6R6dK6R6k@366@@@mh6@@A366@@@6MA6@636y6x@@B6NA6g@6d36a6`@@C6OA6S@6P6OA6@6~Ġ;L6R6nL6R6r@;@@@@6@@@mou@@@L6R6bL 6R6t@@6@@@mqR@mp}@@@)@@~@@~@Ġ$LazyL6u6}L6u6@6.@@@@@@@@5@@@@@ภ"::L"6u6L#6u6A9డD?%omega(PatternsL06u6@ L36u6L46u6@@D<@@D\@@@m@ภ"[] AD@A@KG@m@@@mO@m@@LK6u6)@@@Ġ&RecordLV66LW66@:Iఠ$lblsԠL_66L`66@LrA@@:Q:P@@@mw@@@mv3LeLdLdLeLeLeLeLe@@@@@@ @@b@@b@@@ఐD*omega_listLu66Lv66@C@@@D:i@@@mO@m@@@mDD@@@m@@@m@@m3LLLLLLLL@1*@+@,@@@@ఐ8$lblsL66L66@ @@D4$@@@mP@mP@m@@. @@t@Ġ%ArrayL66L66@8@L66L66@@8@@@m{3LLLLLLLL@/@@@ఠ#lenՠL66L66@LA@@8@@@m|@@@L66@@@@@@@డD&omegas(PatternsL66L66@ L66L66@@D@@@D@@@mDD@@@m@@@m@@m3LLLLLLLL@b0)@*@+@@@@ఐ7#lenL66L66@ @@D@@@mP@mP@m@@, @@@Ġ%TupleM 66M 66@;ఠ$lbls֠M66M66@M'A@@;;;@@@m@@@m@@@m@@@@@@@@@@ఐDˠ*omega_listM-67M.67 @Db@@@DȠ;֠;@@@n @@@nO@m@@@mDϠD@@@m@@@m@@m3MAM@M@MAMAMAMAMA@81@2@3@@@@ఐ?$lblsMS67 MT67@ @@D(@@@nP@n P@n@@2 @@0@Ġ'VariantMm77Mn77!@8ঠ'has_argMx77$My77+@388#@@@m8 @@A388@@@7A8@8377@@B7A7@7377@@C7A7@77A8@8ĠM767A@8@@@@@@@@5@@@Ġ(ConstantM7B7JM7B7R@@Q@M7B7SM7B7T@@@S@@@m@@@ @@@@@@I@@@@@ภFQM7B7XM7B7Z@FP@@@"@@@AM55y@@d@@@AM5!5#{@@ @M55}@@3MMMMMMMM@?@@@A@G@n@A@@@@ఠ)discr_patנM;;M;;@MA@@@C&Simple'pattern@@@q G@n@F}@@C!t@@@qM@qȠ@Kd@q@@q̠@Kg@q@@q@@@qG@nG@n@@nG@n@@nG@n3NNNNNNNN@@ @ @@@࣠@!qAN;;N;;@N'A@@<3NNNNNNNN@IN;;N@r@|@@@@@  @@#pssAN(;;N);;@N;A@@C3N'N&N&N'N'N'N'N'@!S@@@@@@@@ РFP$Head(PatternsNA;;NB;;@ NE;;NF;;@@@3NENDNDNENENENENE@+d@"@#@@@@A3NHNGNGNHNHNHNHNH@@@NP;; @@ @3NMNLNLNMNMNMNMNM@@@Aఠ*refine_pat۠N];<N^;< @NpA@@@GD @@@oK@o@@@oK@n@G@@K@n@@@n@@nK@n@@@n@@nK@n@@@nK@n(K@n@@n@@n3NNNNNNNN@?@@@࣠@#accAN;<N;<@NA@@93NNNNNNNN@PE@@@7@@nL@n@@nL@n@G@H@@@@@@ĠGFN<<#N<<%@GE@@@@C3NNNNNNNN@$S@@@@@@@ఐ(#accN<<)N<<,@ @@5 @Ġ<N<-@Ox<<Oy<<@@>>>@@@o@@@o@@@oL@@@ @@`M@@`M@Ġ$LazyO<<O<<@9@@@@kX@@kX@@@@lY@@@ఐ$headO<<O<<@@@c@Ġ&RecordO<<O<<@=ఠ$lblsߠO<<O<<@OA@@==@@@o @@@o @@@ @@@@@@@@ఠ&fieldsO>>O>>@OA@@O'<@@@obQ@oo@@@osQ@o3OOOOOOOO@+$@%@&@@@డNI$List*fold_rightO>>"O>>&@ O>>'O>>1@@@@!a@?.@#acc@?,@@@v@@@u@E@@@@t@  @@@s@@@r@@@q@99@@9^@$@@@@>Q@o@GQ@o@@o @@o@ @@@o@  @@o@@o@@o3PPPPPPPP@F@@@@࣠@#lblAP)>>7P*>>:@P<A@@!Y@@@@!rAP7>>;P8>><@PJA@@+3P6P5P5P6P6P6P6P6@h2@@@@@@@@డN$List&existsPO>@>OPP>@>S@ PS>@>TPT>@>Z@@@@!a@>9@@@@@@@@F@@@@:@@@@@@@@@@@9$$9$$@@9e@$@@@@T@o=@@@o?@@o>@ @@@o<@@@o;@@o:@@o93PPPPPPPP@KWx@N@O@@@@࣠@!lAP>@>`P>@>a@PA@@#3PPPPPPPP@@@@@@@డOLӠLհP>@>oP>@>p@LҰ@@@=M@@@oaV@oW@L@@@oV@@oU@@oT3PPPPPPPP@0'@@@@@@@ఐ0!lP>@>eP>@>f@@@O@'lbl_posP>@>gP>@>n@=o @@!@@ఐ#lblP>@>qP>@>t@@@(@'lbl_posP>@>uP>@>|@= @@9W@od1@@#@@@@@ofW@o_7@P>@>[P>@>}@@@}@@@oM@@oLU@ojU@oh]@@ఐ͠!rQ>@>~Q>@>@|@@@@@@-y@@@omU@oJp@ఐݠ!rQ>>Q>>@@@z@ภ0Q>>Q>>@>ఐ#lblQ$>>Q%>>@@@@ఐ!rQ/>>Q0>>@@@"@@@@jQ@or@Q6>@>L@@'@Q8>>2Q9>>@@@4@22@@o/@@o.R@o{R@oyn@@ఐ$lblsQL>>QM>>@x@@WJ@@@o-R@oR@o}=@@ఐ ٠*record_argQc>>Qd>>@ @@@JG @@@o@@@oJ?\@@@o@@@o@@o\@@ఐ렐#accQ>>Q>>@Ͱ@@ i@@Q>>Q>>@@Q@on@@@@y@A@Q>> @@@ఠ!dQ>>Q>>@QA@@KGB@@@oQ@o@@@oQ@o3QQQQQQQQ@@@@@@J顠(pat_descQ>?Q>?@ภ&RecordQ>?Q>?@?ఐ&fieldsQ>?Q>?@@@??@@@o@@@oQ@oQ@o,@@@@3Q@o/@KK@@@oQ@o@KK@K@@@o@K@@@o@M@@@o@@o@@@oQ@o@JK@@@oQ@o@JK@@@oQ@o@JM@@@oQ@o@@ఐ8$headR>>R>?@@@o@R>>R>? @@}r@A@R>>@@ఐĠ*refine_patR!?$?,R"?$?6@@@@@@@o@@o3R#R"R"R#R#R#R#R#@@@@@@@ఐ!dR5?$?7R6?$?8@ @@K@o@@ఐB$rowsRD?$?9RE?$?=@(@@K@o!@@)@@"@4@@@@@x@@RR?>?FRS?>?G@@.9@@.9@@@ఐƠ#accR[?>?KR\?>?N@@@C@@@AR_d@@@@H@@@q!@@!@Ġ&RecordS+@K@US,@K@[@A@S0@K@\S1@K@]@@A A@@@q@@@q7@@@ @@H@@@q;@@;@@! @@H@@@q?@@@ఐ*refine_patSJ@K@aSK@K@k@@@@LӠH@@@q@@@q@K@@@f@@q@e@@q@@@q@@q@@qf@@ఐ!qSr@K@lSs@K@m@w@@}s@@ఐZ#pssS@K@nS@K@q@5@@@@9@@@@S@r@vS@r@w@@I-@@@q@@I0@@@q@@@ఐ!qS@r@{|@}@@@@@AS?r?t@@@@@@3@@@S;;@@3SSSSSSSS@V@@@A@G@q@A@@@Aఠ)read_argsS@@S@@@SA@@@LJQ @r@@@rG@q@LSQ+@r+G@r@@@rG@q@S* G@rI@@@rMG@q렠@G@q@@q@@q@@q3SSSSSSSS@ @@@@@࣠@"xsAS@@S@@@SA@@43SSSSSSSS@@@;@6@/@'@@qH@q@@qH@q@@qH@q@J@K@@@@@@!rAT@@T@@@TA@@L3TTTTTTTT@".X@%@&@@@@@@@ఐ:"xsT@@T@@@@@j3TTTTTTTT@"d@@@@@@ఐ(!rT,@@T-@@@ @@p@@@@@~@w@@r@@ĠLٰTCAATDAA @L@@@@@r3TBTATATBTBTBTBTB@'@@@@@TLAA TMAA @@G@q@r @@@@@@ @@r @@@@@@r @@@@ภLTgAAThAA@L@@@L@@@r-'@@ఐs!rTwAATxAA@W@@3@@@@@@@@r%:@@ĠBgTAATAA@Bf@TAA@@G@rv@ఠ"xsTAA@TA@@S@@@r@@@@@@r @@ĠBTAA TAA"@Bఠ#argTAA @TA @@@ఠ$restTAA&@TA@@T @@@r@@@@@ @r @@8 @@@*@@@r@@@0@@@r@@@@@ఠ$argsTA*A1TA*A5@TA@@G@rNL@r03TTTTTTTT@WQ@R@S>.@9@:5/@0@1@@@@ఠ$restTA*A6TA*A:@UA@@@L@r1@@@@@@ @@r4@ఐa)read_argsUA*A=UA*AF@'@@@`@Y@P@H@@r8@@r7@@r62@@ఐ"xsU(A*AGU)A*AI@:@@uG@rAA@@ఐv$restU7A*AJU8A*AN@G@@{G@rBP@@,@@@Z@F@@rCM@r@Y@A@UFA*A-@@@ภ49UPARAXUQARAZ@C(ఐ#argUZARAU @j @@3UWUVUVUWUWUWUWUW@r~w@x@yib@c@d@@@ఐ$argsUiARA^@ @@@@@@M@@@rL@@ఐ~$restUyARA_UzARAc@@@} @@#@@@@@@rO'@> @@ @@@UAdAfUAdAg@@@rr@@@UAdAhUAdAi@@@rz@@ @@@@ @@r@@@@@@r @@@డU+fatal_errorUAmAqUAmA|@c@@@c@@@rS@@@@r[L@rR@@rQ@@2Parmatch.read_argsUAmA~UAmA@@UAmA}UAmA@@@@@rXL@rZL@rY@@% @@Z@@@AU@@ @@@@@@r@A@@,@%@@@@r@@r@@rG@r@@@U@@ @@!@@ఠ(set_argsUAAUAA@V A@@@S\MC@@@wG@s@@@sG@r@UmG@w@@@wG@rNG@s@@@sG@r@@rG@r@@rG@r3VVVVVVVV@5@@@࣠@!qAV+AAV,AA@V>A@@/3V*V)V)V*V*V*V*V*@F<V3AAV4-GCGf@@@@@  @@!rAV?AAV@AA@VRA@@43V>V=V=V>V>V>V>V>@!F@@@@@@@@ఐ)!qVQAAVRAA@@@T3VOVNVNVOVOVOVOVO@H@@@@@ঠ(pat_descVcAAVdAA@OĠ*Tpat_tupleVkAAVlAA@&ఠ+lbls_omegasVtAAVuAA@VA@@/@&&@@@r@@@r@SM@@@r@@@r@@r@@@r3VVVVVVVV@<@@@@@'@@MנL@w@@@wG@rL@r@@@VAAVAA@@G@wG@wG@w@!b@>@@AO@@@AN@b@@@AL@I@@@AM@@AK@@AJ@@==@==@@@@@0+@@@(@v@Y@@sj@@@si@@@@se@hg@@@sg@@sd@@sc}@@ఐ+lbls_omegasWeAAWfAB @@@Q@@@@sw@@@svM@s~M@sx@@f@@@@@@sM@ss@A@WAA@@@@ఠ$argsWB BWB B@WA@@VG@s@@@sL@s3WWWWWWWW@@@@@@@@@ఠ$restWB BWB B@WA@@G@wG@w}G@wG@wpG@wvG@vG@vG@uG@tG@urG@tG@tG@tG@tG@t(G@t2G@sG@t L@s6@@C)@@@C@,@@s=@ఐ1)read_argsWB B"WB B+@@@@PxUEO*@@@s@@@sL@s@@@s@P`@@@s@WYh@@@s@@@s@@s@@sh@@ఐ$&omegasX B B,XB B2@p@@P.@@@sM@sM@s}@@ఐ栐!rX"B B3X#B B4@ΰ@@@@E@@@@@@sM@s@A@X/B B @@ภ7X5 B8BX6 B8B@F ఐQꠐ(make_patXA B8B<XB B8BD@P^@@@O\G@wG@w&G@w,G@vG@vG@u.L@uP@@@uRG@uNG@tG@tG@tG@sK@s@Q@@@s@Q@@@sQ,@@@s@@s@@s@@s3XnXmXmXnXnXnXnXn@@@@@@@@@ภ*Tpat_tupleX B8BFX B8BP@(డV$List'combineX B8BRX B8BV@ X B8BWX B8B^@@ @@@ ((@@@s@@@sL@sL@sL@s@@@s@G@s@@@s @@ @@s@@@s@@s@@sJ@@ఐ$lblsX B8B_X B8Bc@+@@ 3@@@sM@sM@s_@@ఐM$argsX B8BdX B8Bh@h@@5@@@sM@sM@st@@X B8BQX B8Bi@@1@Q@VQG@uJG@tG@tG@s@@@s@@s@@@sL@sM@s@@Y B8BEY B8Bj@@K@s@@ఐ!qY B8BkY B8Bl@Ұ@@@(pat_typeY B8BmY B8Bu@R$ @@R@@@sL@tL@t@@ఐ !qY2 B8BvY3 B8Bw@@@5@'pat_envY9 B8BxY: B8B@R8 @@R@@@sL@t L@t@@ @@(G@s@ఐ$restYM B8BYN B8B@ذ@@@@@@Q8@@@s@'@@@ @@@y@ঠ(pat_descYc BBYd BB@RĠ+Tpat_recordYk BBYl BB@(ఠ&omegasYt BBYu BB@YA@@(@((@@@r@@@rɠ@(@@@rˠ@VP@@@r@@@r@@r@@@r3YYYYYYYY@A@@@ఠ&closedY BBY BB@YA@@(@@@r@@@:Y BB@@G@r@@@Y BBY BB@@@@@@@@@ఠ$argsY BBY BB@YA@@YG@t@@@t'L@t3YYYYYYYY@sXQ@R@S0)@*@+@@@@ఠ$restY BBY BB@YA@@"L@t@@@@@@@@t@ఐ7)read_argsY BBY BB@@@@R~@((@@@t-@@@t,@(@@@t.@W]QB@@@t0@@@t/@@t+L@t@@@t@RN@@@t@YqV@@@t@@@t@@t@@tV@@ఐ&omegasZ% BBZ& BB@_@@R@@@@t)M@t1M@t*k@@ఐ!rZ: BBZ; BB@@@.x@@W@@@@p@@t3M@t&@A@ZG BB @@@ఠ$argsZR BBZS BB@ZeA@@P@((@@@ts@@@trL@tc@(@@@ttL@td@tL@te@@tfL@t:@@@tOL@t43ZrZqZqZrZrZrZrZr@@@@@@@@డX$List$map2Z BBZ BB@ Z BBZ BB@@@@!a@?@!b@?!c@?@@@@@@@PR@@@@@PY@@@@Y@@@@@@@@@@@@@@D@DA@@D?`@1,@@@@@bL@tV@ZL@tW@X&R @@@tv@@@tuL@tX@@tYL@t>@aL@t<z@@t@@@t?@3@@@t=@2 @@@t;@@@t9@@t8@@t7@@t63ZZZZZZZZ@o@@@@࣠@X; A@ఠ#lid Z BCZ BC@[ A@@:@@ఠ#lbl [ BC [ BC @[A@@C@@@[ BC[ BC@@F@@[ BC[ BC@@@S@R@Q@@t[@@  @@#arg A[% BC[& BC@[8A@@T3[$[#[#[$[$[$[$[$@6i@0@1+g@%@&@@@@  @@@ఐA#lid[; BC[< BC@@@z3[9[8[8[9[9[9[9[9@"l@@@@@@ఐD#lbl[J BC[K BC"@@@@@ఐ4#arg[V BC$[W BC'@@@@@[Z BC[[ BC(@@@@@@@tg&@[e BB[f BC)@@@@@@tS@@tRM@tnM@tl@@ఐ&omegas[y BC*[z BC0@@@۠@@@tQM@twM@tp@@ఐՠ$args[ BC1[ BC5@@@@@@tPM@tyM@tx@@ @@B#@A@[ BB @@ภ:[C9Cx[C9Cz@IyఐUV(make_pat[C9C=[C9CE@Sʰ@@@hG@tK@t@UP@@@t@UI@@@tUD@@@t@@t@@t@@t3[[[[[[[[@Nxq@r@s@@@@ภ+Tpat_record[C9CG[C9CR@*~ఐ$args[C9CT[C9CX@@@*@**@@@t@@@t@*}@@@t@YP@@@t@@t@@@tL@tL@t7@ఐf&closed\C9CZ\C9C`@<@@*@@@tL@tL@tI@@\C9CF\C9Cb@@^K@tN@@ఐ!q\C9Cc\C9Cd@۰@@!]@(pat_type\%C9Ce\&C9Cm@U- @@U@@@tL@tL@tk@@ఐ!q\;C9Cn\<C9Co@@@>z@'pat_env\BC9Cp\CC9Cw@UA @@U@@@tL@tL@t@@ @@MG@t@ఐ$rest\WC9C{\XC9C@ް@@@@@@T^G@t{@@@t~@ @@@ @@L@ঠ(pat_desc\oCC\pCC@UĠ.Tpat_construct\wCC\xCC@0{ఠ#lid\CC\CC@\A@@0|0z@@@r@@@r3\\\\\\\\@7@@@ఠ!c\CC\CC@\A@@0@@@r@ఠ&omegas\CC\CC@\A@@5rZS@@@r@@@r@@@r%@@\CC\CC@@0@000@@@r@@@r@@@r頠@0@@@r@@r@@@rB@@@W\CC@@=G@rF@@@\CC\CC@@I@@I@@@@@ఠ$args \CC\CC@\A@@\DG@t@@@tL@t3\\\\\\\\@vo@p@qd]@^@_WP@Q@R@@@@ఠ$rest\CC\CC@]A@@EL@t@@!@@@!@@@t@ఐ b)read_args]CC]CC@ (@@@UZvT[@@@t@@@tL@t@@@t@U>@@@t@\F@@@tᠠ@@@t@@t@@tF@@ఐ&omegas]>CC]?CC@L@@Uנ.@@@tM@tM@t[@@ఐ!r]SCC]TCC@@@Gh@@E@@@w@^@@tM@tq@A@]`CC @@ภఐW(make_pat]rCC]sCC@U@@@)G@u%K@u@W@@@u@W@@@uW @@@u@@u@@u@@u3]]]]]]]]@@@@@@@@@ภ.Tpat_construct]CC]CD@1ఐ!#lid]CD]CD@@@11@@@u*L@u;L@u9@@@u8&@ఐ$!c]CD]CD @ư@@1@@@u+L@uFL@uE8@ఐ砐$args]CD ]CD@?@@6[-@r@u-@@@u,L@uHL@uGN@ภ$None]CD]CD@( @@@1@111@@@u3@@@u2@@@u1@1@@@u4@@u0@@@u/L@u\r@@]CC]CD@@K@u'w@@ఐ䠐!q^ DD^ DD@ɰ@@@(pat_type^DD ^DD(@W @@W@@@uL@ulL@ui@@ఐ!q^)DD)^*DD*@@@,@'pat_env^0DD+@W. @@W@@@uL@uqL@un@@@@:G@u@ఐG$rest^DD5D9^ED5D=@@@F@@@@VڠKG@t@@@t@ @@8a@ঠ(pat_desc^[D>DA^\D>DI@WĠ,Tpat_variant^cD>DL^dD>DX@0ఠ!l^lD>DZ^mD>D[@^A@@0@@@r3^n^m^m^n^n^n^n^n@@@@ఠ%omega^{D>D]^|D>Db@^A@@7u[ܠU@@@r@@@r@@@r@ఠ#row^D>Dd^D>Dg@^A@@00@@@r@@@r)@@@:^D>Dh@@ G@r-@@@^D>D@^D>Di@@0@@0@@@@@ఠ#arg^DmDu^DmDx@^A@@(L@u@@@uL@ut3^^^^^^^^@lYR@S@TKD@E@F6/@0@1@@@@ఠ$rest^DmDz^DmD~@^A@@L@uu@@!@@@!@@@ux@@ఐj%omega^DD^DD@%@@7ޠ\EV*@@@u@@@u~@@@u}3^^^^^^^^@6@@@@ఐ!r^DD^DD@@@ @@@@@@@@u@@Ġ$Some_DD_DD@)@_DD_DD@@\vV[@@@u@@@u3________@f@@@@@ @@8\Vg@@@u@@@u@@@u @@ĠM_7DD_8DD@Mఠ!a_@DD @_RA @@ CG@u"@ఠ!r_LDD@_^A@@^@@@u0@@@@@@u3@@B @@@6@ @@u:@@@8W\V@@@u@@@u@@@u@@@uK@@@@ภ$Some_xDD_yDD@)~ఐB!a_DD_DD@B@C@D@@C3________@MA;@<@=@@@@@@)ʠ@@@u @@ఐL!r_DD_DD@@@@@$@@@렠@@@u@@Ġ$None_DD_DD@)@@@@8]V@@@u@@@u@@@u@@ఠ!r_DD_DD@_A@@ @u@@@@@@ @@u@@@8͠]4W@@@u@@@u@@@u@@@u@@@@ภ$None_DD_DD@*0@@@*0 L@u@@@u3________@;70@1@2@@@@ఐ=!r`DD`DD@ @@<@@@@k@@` DD`DD@@@9 ]pWU@@@u@@@u@@@u@ @@u-@@@9]Wf@@@u@@@u@@@u@ "@@u>@@@ ภN`8DD`9DD@N@@@U@@@uK@`?DD@@M@@@A`ADD @@@@x@@v@A@`IDmDq@@ภ?8`OEE=`PEE?@N'ఐZ(make_pat`[DD`\DE@Xx@@@WN@w2@@@w4G@w0G@vG@vK@v@Z @@@v@Z@@@vY@@@v@@v@@v@@v3`y`x`x`y`y`y`y`y@@@@@@@@@ภ,Tpat_variant`EE `EE@2ఐ*!l`EE`EE@װ@@2@@@vL@vL@v"@ఐ#arg`EE`EE!@)@@9^ Z@@@v@@@vL@vL@v9@ఐ.#row`EE#`EE&@@@2٠2@@@v@@@vL@vL@vO@@`EE `EE(@@pK@vT@@ఐ !q`EE)`EE*@ @@ c@(pat_type`EE+`EE3@Y @@Z@@@vL@vL@vq@@ఐ Ӡ!q`EE4`EE5@ @@ @'pat_envaEE6@Z @@Z@@@vL@vL@v@@@@ G@v@ఐJ$restaE@EDaE@EH@@@I@@@@Y G@v@@@v@ @@ d@ঠ(pat_desca-EIELa.EIET@ZmĠ)Tpat_lazya5EIEWa6EIE`@0ఠ&_omegaa>EIEaa?EIEg@aQA@@^X@@@s@@@s3aDaCaCaDaDaDaDaD@ @@@@@ @@ G@r@@@aNEIEKaOEIEh@@ P@@ P@@@ఐ !raY ElE|aZ ElE}@ @@ M3aWaVaVaWaWaWaWaW@ $@@@@@ĠOAah!EEai!EE@O@ఠ#argaq!EE @aA @@ tG@v@ఠ$resta}!EE@aA@@`ܠ@@@v(@@@@@ v)@@ v)@@@ภ@sa"EEa"EE@Obఐ[?(make_pata"EEa"EE@Y@@@7G@w!M@w @[9@@@w @[2@@@w [-@@@w @@w @@w@@w3aaaaaaaa@SC=@>@?82@3@4@@@@ภ)Tpat_lazya"EEa"EE@1 ఐT#arga"EEa"EE@@@T@@a"EEa"EE@@0M@w# @@ఐ !qa"EEa"EE@ @@ /@(pat_typea"EEa"EE@Z @@[@@@wN@w9N@w6=@@ఐ Π!qa"EEa"EE@ @@ L@'pat_enva"EEt@Z u@@[@@@wN@w>N@w;Y@@q}@@ G@w\@ఐ$restb"EE@a@@as G@w@@@wM@w@M@w?p@@ @@ q@@b$#EEb%#EE@@ @@ @@@డb2+fatal_errorb/#EEb0#EE@@@@@@@wD N@wC@@wB@@;Parmatch.do_set_args (lazy)bA#EEbB#EF@@bD#EEbE#EF@@@@@wIN@wKN@wJ@@ @@ 7@@@AbO ElEpbP$FF@@ :3bLbKbKbLbLbLbLbL@@@@ঠ(pat_descb^%FFb_%FF@[Ġ*Tpat_arraybf%FFbg%FF'@/9ఠ"ambo%FF)bp%FF+@bA@@/:@@@s "@ఠ&omegasb}%FF-b~%FF3@bA@@/B_ޠY@@@s@@@s@@@s 8@@@'b%FF4@@ G@s  <@@@b%FFb%FF5@@  ?@@  ?@@@@@ఠ$argsb&F9FAb&F9FE@bA@@b G@w`@@@woL@wV3bbbbbbbb@ [E>@?@@81@2@3@@@@ఠ$restb&F9FFb&F9FJ@bA@@ L@wW@@@@@@@@wZ@ఐ)read_argsb&F9FMb&F9FV@@@@[f`3Z@@@wt@@@wsL@wc@@@wb@[u<@@@wa@bGD@@@w_@@@w^@@w]@@w\D@@ఐ~&omegasb&F9FWb&F9F]@L@@[.@@@wqM@wuM@wrY@@ఐ Ԡ!rc&F9F^c&F9F_@ @@ f@@E@@@u@^@@wwM@wno@A@c&F9F= @@ภB c#(FpFc$(FpF@Pఐ\ؠ(make_patc/'FcFgc0'FcFo@[L@@@ G@wK@w@\@@@w@\@@@w\Ơ@@@w@@w@@w@@w3cAc@c@cAcAcAcAcA@@@@@@@@@ภ*Tpat_arraycT(FpFwcU(FpF@0'ఐ"amc^(FpFc_(FpF@@@0,@@@wL@wL@w"@ఐϠ$argscp(FpFcq(FpF@)@@08`Ԡ v@ @w@@@wL@wL@w8@@c(FpFvc(FpF@@MK@w=@@ఐ g!qc(FpFc(FpF@ L@@ L@(pat_typec(FpFc(FpF@\ @@]5@@@wL@wL@wZ@@ఐ !qc(FpFc(FpF@ i@@ i@'pat_envc(FpF@\ @@]E@@@wL@wL@wv@@@@ G@wy@ఐ $restc)FFc)FF@@@ @@@@\] G@wy@@@w|@ @@ %@ঠ(pat_descc*FFc*FF@]Ġ-Tpat_constantc*FFc*FF@4̠@c*FFc*FF@@4@@@s @@@ @@ aG@s @Ġ(Tpat_anyc*FFc*FF@;@@@@  @@@@  @@@d*FFd*FF@@ @@ @@@ภBd+FFd+FF@Qߠఐ 預!qd+FF @ Ͱ @@ @ఐ ߠ!rd+FF@ ư@@ @@ @@ @ঠ(pat_descd*,GG d+,GG@]jĠ(Tpat_vard6,GGd7,GG@[C@d;,GGd<,GG@@[>@@@s- @@@[<[7@@@s/@@@s. @@@[5@@@s0 @@@@@ G@s# @Ġ*Tpat_aliasdW,GG"dX,GG,@;@d\,GG-d],GG.@@a[@@@s=@@@s<@@ @;@@@s>@@@;;@@@s@@@@s?@@@;@@@sA$@@@;@@@sB)@@@'!@@/*@@I"@@0+@Ġ'Tpat_ord,GG1d,GG8@:}@d,GG9d,GG:@@aG@rG@sF@@@sK@@@ @a @@@sLF@@@:}:|@@@sN@@@sMO@@@@@UP@@d,GGd,GG;@@XS@@Ad,GGd,GG?@@V@@V@@@డd+fatal_errord-GCGGd-GCGR@f@@@f@@@wL@w@@wi@@1Parmatch.set_argsd-GCGTd-GCGe@@d-GCGS@@{@@@wL@wL@w|@@@@}@@@AdAA@@3dddddddd@@@@A@G@ze@A@@@@ఠ1simplify_head_patdDIPITdDIPIe@dA@@*add_column@@@@@}F@po@@@}H@@@}G@@}EG@}-@@@}0@@@zwG@}3G@}4A@}5G@}1A@}2G@}.A@}/G@zg@]@'pattern@@@~UG@zl@ G@zq@G@zv@@zxG@zr@@zsG@zm@@znG@zh@@ziG@zf3e'e&e&e'e'e'e'e'@C:3@4@5@@@࣠HHALe9DIPIge:DIPIq@eLA@@P3e8e7e7e8e8e8e8e8@_eADIPIPeBJJJ@@@@@eDDIPIf @@!pAeNDIPIreODIPIs@eaA@@93eMeLeLeMeMeMeMeM@!h@@@@@@@@"psAe_DIPIte`DIPIv@erA@@>3e^e]e]e^e^e^e^e^@M@@@@@@@@!kAepDIPIweqDIPIx@eA@@I3eoeneneoeoeoeoeo@R@@@@@@@@Aఠ1simplify_head_pateEI{IeEI{I@eA@@@p@@@{L@z|@L@z@L@zL@z@@z@@z@@z3eeeeeeee@$0o@'@(@@@࣠@!pAeEI{IeEI{I@eA@@ 3eeeeeeee@,@'@$@$"@@zM@z@@zM@z}@@z~M@z{@2@3@@@@@@"ps AeEI{IeEI{I@eA@@63eeeeeeee@*@@!@"@@@@@@!k!AeEI{IeEI{I@eA@@C3eeeeeeee@J@@@@@@@@ Р]'General(PatternseFIIeFII@ eFIIeFII@@@3eeeeeeee@#/h@&@'@@@@A3eeeeeeee@@@@e3eeeeeeee@@@డ*strip_varsfFIIf FII@@['General'pattern@@@{w[+Half_simple'pattern@@@{v@@{u@^M 1 3^M 1 b@@^X@@@@@@@{@@@{@@{3f#f"f"f#f#f#f#f#@,@@@@డJ$viewf5FIIf6FII@@@@@{?0@@@{>@@{=@^BJ  ^CJ  @@^AV@@@@,@@@{=@@@{@@{%@@ఐ!pfWFIIfXFII@@@2@@&@@R@@@{@|T@{:@@.Z@@O@@@{>@wfgFII@@3fcfbfbfcfcfcfcfc@o@@@(pat_descfmFIIfnFII@_@@^$view@@|P@|@"Or@ఠ"p1)fGIIfGII@fA@@^'pattern@@@|A3ffffffff@@@@@ఠ"p2*fGIIfGII@fA@@^'pattern@@@|B@@@fGIIfGII@@UJQ$(row_desc@@@|D@@@|C"@@fGIIfGII@@@.@@@@|E-@Р%Tuple^@UnUl@@@|@@|@_'pattern@ @|@@|@ @|#Any@%Array@Y,mutable_flag@ @|@^٠_#'pattern@,@|@.@|@@|'Variant@Y%label@=@|@U_@'pattern@I@|@K@|@Q#refQ(row_desc@X@|@Z@|@@|&Record@_@Y#loc)Longident!t@y@|@{@|@\1label_description@@|@_'pattern@@|@@|@@|@Z +closed_flag@@|@@|$Lazy_'pattern@@|Ġ"Or@@@|Ơ@@@|Ǡ@@@|@@|@@|Š)Construct@ZA#loc\!t@@|@@|ˠ@\[7constructor_description@@|͠@__'pattern@@|@@|@@|ʠ(ConstantZj(constant@@|@@@|A@]@gGII@@a@@|6B@@c@@@|FE@@@ఐ^1simplify_head_patgGIIgGIJ@8@@@]@X@VT@@|@@|@@|3gggggggg@g`@a@bVO@P@Q@@@@ఐo"p1gGIJ gGIJ @@@n@@@}@@ఐJ"psh GIJ h GIJ@2@@|"@@ఐ1simplify_head_pathGIJhGIJ!@o@@@@@@@}@@}@@}7@@ఐ"p2h+GIJ"h,GIJ$@?@@@@@}$G@@ఐ|"psh;GIJ%h<GIJ'@d@@T@@ఐx!khHGIJ(hIGIJ)@O@@a@@hLGIJhMGIJ*@@d@@n@@e@@h+@@@@@|u@@@|t@@@@|v@@|s@@@|rQ@|L @Р@@@@|@@|֠@@ @|@@|@ @|Ԡ@@@@|ڠ@@#@|@%@|@@|٠@@1@|ޠ@@:@|@<@|ߠ@@E@|@G@|@@|ݠ@@@]@|@_@|栠@@e@|蠠@@k@|@@|@m@|䠠@@s@|@@|㠠@{@|렠@z@@|@n@@|@ih@@|@@|@@|젠@@@|@@|@@@|@~@@|@@|@@||{@@|@@@|A@@iKHJ+J1iLHJ+JFA@@@|nQ@|l@n@ @@n@i+@@o@@@|x@lk@@@|z@@@|y@@|wQ@|Q@#@ @i@iC@@j@@@||@gf@@@|~@@@|}@b`@@@|@@@|@@|{Q@|U&@D@A&@^@id@@_@^\@@@|@@@|@U@@@|@R@@@|@@|@@@|@N@@@|@@|Q@|[P@Gn@kP@M@i@N@@@|Q@|c[@Ry@v[@/@i@@0.@@@|@@@|@)@@@|@&%@@@|@@@|@@|Q@|d|@s@|@!@i@"@@@|Q@|j@|@@Р-@ ̐nHpAG&@@@|KA@1$view@@@&@@'@@(@@)@@*@@+@b6&Simple$view(Patternsj*HJ+J2j+HJ+J:@ j.HJ+J;j/HJ+JA@@j3HJ+JB@ @@@@$view+j9HJ+JJj:HJ+JN@jLAP@@|@@2@|@@@@@@@|@@@ఐ*add_columnjNIJRJYjOIJRJc@@@d3jLjKjKjLjLjLjLjL@Y@@@@@@డbt$Head+deconstruct(PatternsjhIJRJejiIJRJm@ jlIJRJnjmIJRJr@@jqIJRJsjrIJRJ~@ @̰ @@@@@@}<@@@@}9@@@@};@@@}:@@}8@@}79@@cϡ(pat_descjIJRJjIJRJ@ఐf$viewjIJRJjIJRJ@N@@@@@}R@}xV@c۠c@@@}R@}@c֠cנ@c@@@~@c@@@~@fx@@@~@@~@@@~ R@~@cΠdc@@@~R@~@c̠d^@@@~%R@~"@cʠf@@@~/R@~,@@ఐB!pjIJRJjIJRJ@@@^@jIJRJjIJRJ@@@@@}IR@~6@@jIJRJdjIJRJ@@@@ఐ="psjIJRJjIJRJ@%@@o@@ఐ9!kk IJRJk IJRJ@@@x@@@@w@@@AkFII@@y3k k k k k k k k @@@@lA@@@@@@~E@@~D@@~CL@~@p@@@kEI{I}@@ఐ1simplify_head_patk$JJJk%JJJ@{@@@@@@~J@@@@~I@@~H@@~G3k+k*k*k+k+k+k+k+@@@@@ఐ!pk;JJJk<JJJ@ذ@@%@@ఐ점"pskHJJJkIJJJ@԰@@&@@ఐ蠐!kkUJJJ@@@,'@@4@@(@?@@@A@sG@~e@A@@@1Aఠ2simplify_first_col,khLJJkiLJJ@k{A@@@dd_@@@~G@~r@@@~qG@~m@@@~lG@~gjݠ@@@@@~Ѡ@@@@~@@@~@@~J@~ڠ@j)G@~x@@@~J@~@@~@@@~G@~h@@~j3kkkkkkkk@y@@@@@@ĠdGkMJJkMJJ@dF@@@@F3kkkkkkkk@R@M<@@~iH@~f@P@Q@@@@@ภdVkMJJkMJJ@dU@@@D@ĠYkNJJkNJJ@YĠdhkNJJkNJJ@dg@@@@bG@~o"@@kNJJkNJJ@@k7 @@@~s+@@@@@r,@@@ ภZkNJKkNJK @Z@@@a@@@~9@kNJK@@p;@ĠYϰkOK,K8kOK,K:@YΠĠYװkOK,K2kOK,K4@Y֠ఠ!p-lOK,K1 @lA @@i3llllllll@V@@@ఠ"ps.lOK,K6@l$A@@kqw@@@~z@@@lOK,K0lOK,K7@@G@~u@ఠ$rows/l%OK,K;l&OK,K?@l8A@@k@@@~{#@@@@@$@@@@ఠ*add_column0l8PKCKMl9PKCKW@lKA@@@@@~J@~@@@~J@~@k@@@@~J@~@@@~J@~d@@@~J@~@@~J@~@@~J@~@@~J@~3l_l^l^l_l_l_l_l_@e@`@a[U@V@WIB@C@D@@@࣠@!p2AlvPKCKXlwPKCKY@l A@@:3lultltlululululu@Gl~PKCKIlPKCKm@@@@@  @@"ps3AlPKCKZlPKCK\@l A@@F3llllllll@!Q@@@@@@@@!k4AlPKCK]lPKCK^@l A@@O3llllllll@Z@@@@@@@@ภKlPKCKilPKCKk@Z@ఐD!plPKCKblPKCKc@)@@z3llllllll@(m@@ @@@@ఐ?"pslPKCKelPKCKg@'@@@@lPKCKalPKCKh@@wJ@~@ఐ>!klPKCKlX@Y@@@@Z@@ek@@@~#@h_A@J@~f@A@c@ఐ1simplify_head_patlQKqKwlQKqK@E@@@@@@@~@ml@@@~@@@~@@~@fI@~@I@~A@~A@~A@~@@@@~@@@@~@@~@@~@@~3mm m mmmmm@@@@@@-ఐ蠐*add_columnm QKqKm!QKqK@ @@@@@l@@@@~@@@~eŠ @@@~@@~@@~@@~$@@ఐ:!pmAQKqKmBQKqK@۰@@1@@ఐ<"psmNQKqKmOQKqK@@@>@@ఐ2simplify_first_colm]QKqKm^QKqK@@@@@@~O@@ఐG$rowsmlQKqKmmQKqK@@@G@~^@@mrQKqKmsQKqK@@a@@@@pb@@@@@AV5mxLJJ@@@@@@@@G@@@@mLJJ @@@ݠ@ఠ;build_specialized_submatrix6m]MMm]MM:@m A@@*extend_row@$we@@@!@@@ G@@@@k@G@A@G@A@G@@g8cY@@@%@@@$G@@fS@@gPcq@@@i@@@h@;K@@@g@4K@@@f@@@eG@fp6@@@dG@@@G@@@G@@@G@@࣠RR8AVm]MM<m]MMF@m A@@Z3mmmmmmmm@=im]MMmdN7NG@@@@@m]MM; @@%discr9An]MMGn]MML@nA@@S3nmmnnnnn@!r@@@@@@@@#pss:An]MMMn]MMP@n%A@@W3nnnnnnnn@g@@@@@@@@Aఠ*filter_rec;n%^MSM]n&^MSMg@n8A@@@f@@g c@@@#@@@"K@Ҡ@r@@K@Ϡ@p@@K@@@@K@fޠ@@@K@@@3nKnJnJnKnKnKnKnK@;G@>@?@@@@Ġ\6n]_MsMn^_MsM@\5@@ఠ$head<nn_MsM{no_MsM@nA@@63nmnlnlnmnmnmnmnm@#S@N/@@L@@Q@R@@@@ఠ$args=n_MsMn_MsM@nA@@@@n_MsMzn_MsM@@@P@@@@@ఠ"ps>n_MsMn_MsM@nA@@(@@n_MsMyn_MsM@@@@@@1@ఠ#pss?n_MsMn_MsM@nA@@n @@@@@@@@@A@@@ఐ.p,simple_matchn`MMn`MM@)@@@hGdh@@@@@@@hPdq@@@@@@39@@@@@@@3nnnnnnnn@hq@k@l_@Y@ZK@E@F81@2@3@@@@ఐ렐%discrn`MMn`MM@Ӱ@@:@@ఐ$headn`MMn`MM@@@#@@<@@Kn@@@N@)@ภMoaMMoaMM@\ܠఐ&*extend_rowoaMMoaMM@ @@}=@@ఐ&"1simple_match_argsoaMMo aMM@!@@@hd@@@@@@@hd@@@@@@ @&g^@@@ @@@ @@ @@ @@g@@ఐI%discroGaMMoHaMM@1@@t@@ఐ栐$headoTaMMoUaMM@{@@@@ఐࠐ$argsoaaMMobaMM@@@@@oeaMMofaMM@@@@ఐ۠"psoqaMMoraMM@@@@@e@@@ఐZ*filter_recoaMMoaMN@ @@@Y:@@-@@ఐ䠐#pssoaMNoaMN @@@fK@1@@@@J@@@@I@ఐz*filter_recobN NobN N!@-@@@yZ@@4@@ఐ#pssobN N"obN N%@Ұ@@K@8@@@@j@o`MM@@l@@ocN&N,ocN&N-@@J@@@ภhWocN&N1ocN&N3@hV@@@zR@@AX@o^MSMj@@@@@@@@RK@Q3oooooooo@Z@@@@@o^MSMU @@ఐ*filter_recodN7N9odN7NC@f@@@ho@@ile@@@Z@@@Y@@@X@@@W@@@VhL@@@U@@T@@ఐ#psspdN7ND@@@E@@-@@'@8@@(@A@wG@t@A@@@A+4specialized_matricesAGpiNNpiNN@А&matrix@v3pppppppp@k@@;@@u@A@A@G@B@@@p)iNNp*lOCOD@@@@p<A@@p-iNNp.iNN@@n@;@A'defaultB@@H@wp9jOOp:jOO@@pLA'constrsC@@o@hc$Head!t@@@{@:H@|@@}@@@pVkOOpWkOOB@@piA@@A@Y@@@@@3@@@0@#**'p`jOO @&@@Ш@А&matrix0IpgjOO phjOO@@5@@xN@3@#//pokOO@@@Ш@г2$listpxkOO=pykOOA@В@г7(PatternspkOO"pkOO*@?pkOO+pkOO/@@CpkOO0pkOO1@ @@Mx @@@А&matrixI~pkOO4pkOO;@@@Z@@@_pkOO!(@@c@@@N@@A@{@@{z@3pppppppp@@@@ఠ=build_specialized_submatricesDpS?SCpS?S`@pA@@*extend_row@'h@@@@@@H@@n2@H@H@ĐA@H@A@H@@@@@IH@@is@@H@}@1L@ @@@(L@ @@@@@H@RC5H@@@@7K@4@@@6H@@@H@@@H@@@H@3pppppppp@@@@࣠QQFAUqS?SbqS?Sl@q"A@@Y3qq q qqqqq@hqS?S?q\\@@@@@qS?Sa @@%discrGAq$S?Smq%S?Sr@q7A@@R3q#q"q"q#q#q#q#q#@!q@@@@@@@@$rowsHAq5S?Ssq6S?Sw@qHA@@Z3q4q3q3q4q4q4q4q4@f@@@@@@@@@ఠ,extend_groupIqHSzSqISzS@q[A@@@j֠f@@@@@@L@@jg@@@@@@L@@L@@L@@pԠH@H@@@@L@@5L@렠@j@@@L@@@L@@@L@@@L@@@L@@@L@@@L@3qqqqqqqq@Wc@Z@[@@@࣠@%discrKAqSzSqSzS@qA@@Q3qqqqqqqq@^qSzS|qSS@@@@@  @@!pLAqSzSqSzS@qA@@X3qqqqqqqq@!h@@@@@@@@$argsMAqSzSqSzS@qA@@\3qqqqqqqq@l@@@@@@@@!rNAqSzSqSzS@q A@@g3qqqqqqqq@p@@@@@@@@"rsOAqSzSqSzS@q!A@@r3qqqqqqqq@{@@@@@@@@@ఠ!rPqSSqSS@r "A@@H@3qqqqqqqq@"@@@@@ఐ*extend_rowr SSr SS@@@R@@ఐ)1simple_match_argsrSSrSS@$@@@kg@@@@@@@kg@@@@@@@) jW@@@@@@@@@@@@9@@ఐ%discrr@SSrASS@@@F@@ఐ!prMSSrNSS@@@S@@ఐ$argsrZSSr[SS@@@`@@r^SSr_SS@@c@@ఐ!rrjSSrkSS@@@p@@e@@q@A@roSS@@@ఐ᠐%discrr{SSr|SS@ư@@.3ryrxrxryryryryry@@@@@@@ภQqrSSrSS@``ఐ!rrSSrSS@@@@ఐ"rsrSSrSS@@@*"@@@@k3)@@@'@@rSS@@@[@ @@/@?@@@ A@cL@@A@ @Aఠ-insert_constrQrUUrUU%@r#A@@@lGhh@@@@@@L@@L@@L@@kh@L@a@ktj@@@c@@`L@(@@@'L@ rEL@@@@L@ @@@@@@@@ 3rrrrrrrr@a@@@@@࣠@$headRArUU&rUU*@s$A@@@3rrrrrrrr@L@G@@@@@@-@@ M@@@ M@@@M@@@M@@V@W@@@@@@$argsSAsUU+sUU/@s1%A@@V3ssssssss@".d@%@&@@@@@@!rTAs/UU0s0UU1@sB&A@@c3s.s-s-s.s.s.s.s.@j@@@@@@@@Ġkհs?U=UCs@U=UE@k@@@@n3s=s<s<s=s=s=s=s=@u@@@@@@@ภ')sJUUsKUUAa"ఐ,extend_group sVUU@f@@@lޠh@@@E@@@D@li@@@I@@@H@@@r̠@@@G@@l @@@F@@C@@B@@A@@@@@?@@><@@ఐ$headsUUsUU@f@@I@@ఐ$headsUUsUU@s@@V@@ఐ$argssUUsUU@o@@c@@ఐ!rsUUsUU@m@@p@@ภlPsUUsUU@lO@@@sG@@@dR@o@@z @@@ภ'Al]@A@s)L@8@@@ViVu?ViV@@@@@ఐ0$argsuKViVuLViV@@@@@ఐ,!ruXViVuYViV@@@@@ఐH#envueViVufViV@@@L@!@@B@@"@@R@@hQ@%@uoVV  @@'@@A^YurUU4 @@@wA@@@@@@@y@@x@@w@@vL@r}@@@uUU@@@ఠ,insert_omegaZuVVuVV@u+A@@@L@{@]@o)kJ@@@@@@N@@u 8@@@N@@@N@@@@L@]@@nTJ@@@@@N@@@@L@@@L@|@@}L@z3uuuuuuuu@@@@࣠@!r\AuVVuVV@u,A@@E3uuuuuuuu@RuVVuVW9@@@@@  @@#env]AuVVuVV@u-A@@S3uuuuuuuu@!\@@@@@@@@డtb$List#mapuVVuVV@ vVVvVV@@]ٰ@@@@lO@@@^1q@@@^X@@@@@@@3vv v vvvvv@)5~@,@-@@@@࣠@sj`A@ఠ"q0^v)VVv*VW@v<.A@@3v(v'v'v(v(v(v(v(@@@@@ఠ"rs_v6VWv7VW@vI/A@@ @@v;VVv<VW@@@@@@@@ @@ఐ,extend_groupvNVW vOVW@_@@@oנk@@@@@@@ol@@@@@@@@@uŠ@@@@@o@@@@@@@@@@@@@@@3vrvqvqvrvrvrvrvr@fU@O@PI@C@D@@@@ఐ]"q0vVWvVW@@@@@డn$Head%omega(PatternsvVWvVW!@ vVW"vVW&@@vVW'vVW,@ @(@@@5@nl  nl  @@np@ @@(@@@<@@ภoQvVW-vVW/@oP@@@H@I@@ఐ!rvVW0vVW1@߰@@;V@@ఐ"rsvVW2vVW4@^@@,c@@@@d@vVVvVW5@@@G*@@O@O@@@ఐ #envvVW6@ڰ@@X@@@@:@A@dL@@A@@Aఠ+form_groupsavW@WJvW@WU@w0A@@@o@pl@@@m@@@l@o@@@n@@k@@@oL@@v{WL@5@@@9L@@o@@,L@ @L@@L@ @J@@ L@@@@L@@>L@렠@(L@@@@@@@@@3wAw@w@wAwAwAwAwA@F@@@@@࣠@-constr_groupsbAwTW@WVwUW@Wc@wg1A@@T3wSwRwRwSwSwSwSwS@`@[@F@A@+@*@@M@@@M@@@M@@@M@@n@o@@@@@@+omega_tailscAwyW@WdwzW@Wo@w2A@@`3wxwwwwwxwxwxwxwx@&2|@)@*@@@@@@ĠpwW{WwW{W@p@@@@f3wwwwwwww@r@@@@@@@@ఐI-constr_groupswW{WwW{W@@@@@ఐ0+omega_tailswW{WwW{W@@@@@wW{WwW{W@@@n@m@@&@ĠewWWwWW@e@@ఠ$headdwWWwWW@w3A@@3wwwwwwww@B@@@@ఠ$argsewWWwWW@w4A@@ @@wWWwWW@@@@@@@@ఠ$tailfwWWwWW@w5A@@"@@wWWwWW@@@@@@+@ఠ$restgxWWxWW@x6A@@w`L@@@@;@@@ @@<@@@ఐK$headxWWxWW@@K@L@@3xxxxxxxx@XK0@E@F7-@1@2$@@@@@(pat_descx%WWx&WW@qe@@L@qL@!L@@Ġ(Patternsx<WWx=WW@$HeadxAWWxBWX@@#AnyxGWXxHWX@@c@@@@#2@@#2@@@ఐV+form_groupsxTXXxUXX@@@@U@>@7@@@@(@@'@@&@@%J@@ఐ-constr_groupsxmXXxnXX@@@lW@@ภWaxxXYxyXY@fPఐ$tailxXYxXY@e@@l@ఐ+omega_tailsxXY xXY@@@sw@@xXYxXY@@vL@8|@@ఐ$restxXYxXY@@@|L@;@@Q@@@g@f@@#@@xYY%xYY&@@@@@@@ఐ+form_groupsxY*Y6xY*YA@d@@@@@@@@@A@@@@@?@@>@@ఐ-insert_constrxYBYQxYBY^@ְ@@@r`n@@@U@@@T@@@q{@@qz@@@V@@S@@@WxS@@@R@@Q@@P@@O@@N@@ఐ;$headyYBY_yYBYc@@@@@ఐ;$argsyYBYdyYBYh@@@&@@ఐ3$tailyYBYiy YBYm@@@/ @@ఐ۠-constr_groupsy,YBYny-YBY{@@@+@@y0YBYPy1YBY|@@.L@j@@ఐȠ+omega_tailsy>YBY}y?YBY@@@$(@@ఐK$restyKYBYyLYBY@-@@(L@w7@@@@8@@@AyRWW@@:@@AbhyUW@Wr @@@ A@@W@@@9@!@ @@#@@"@@!@@ L@ @@@yfW@WB@@@@ఠ-constr_groupsiyuYYyvYY@y7A@@r @@r @@@@@|@@@{L@%3yyyyyyyy@1@@@@ఠ+omega_tailsjyYYyYY@y8A@@xy@@@L@&@@( @@@(@ @@)@@ఠ4initial_constr_groupkyYYyYY@y9A@@rE@H@H@/M@D@rXw.@H@@@IM@E@@FM@?@@@AM@*C@ Рq$Head(PatternsyYYyYY@ yYYyYY@@@3yyyyyyyy@@@@@A3yyyyyyyy@@@yYY @@ @3yyyyyyyy@@@ఐ֠%discryYZyYZ@@@ $3yyyyyyyy@@@@(pat_descyYZzYZ@s? @@o@@@OH@LH@&H@~H@H@0H@.@Ġ&Recordz!ZZz"ZZ$@h@z&ZZ%z'ZZ&@@hh@@@4@@@35@@@ @@.6@@.6@Ġ%Tuplez8ZZ)z9ZZ.@h@z=ZZ/z>ZZ0@@hhh@@@;@@@:@@@9P@@@ @@IQ@@IQ@@+@@JR@Ġ$LazyzTZZ3zUZZ7@dj@@@@U]@@U]@@7@@V^@@@ภ.<z][e[nz^[e[wAh5@ఐ J%discrzk[e[s@ 1@@ s@@ภs zt[e[tzu[e[v@s @@@M@J@@@@M@K@ภ.B $As@%A@y@@@CP@P@@z[e[m-@@@@z[x[z[x[@@@@@@@ภs.z[x[z[x[@s-@@@@@@AzYY@@@zYY@@@A@zYY@@ఐ+form_groupsz[[z[[@R@@@sA@t:p[@@@a@@@`@sQ G@@@b@@_@@@^@z"@@@c@s^@@!@ @@f@ @@e@@@d@1@@@]@@\@@[@@Z3zzzzzzzz@;4@5@6@@@@ఐB4initial_constr_groupz[[z[[@ @@{M@M@@@ภsz[[z[[@s@@@kM@!@@ఐ ۠$rows{ [[{[[@ ~@@ 1.@@g@@@@@@M@z7@z @@ @A@{YY@@@ఠ'defaultl{&\(\.{'\(\5@{9:A@@\r /@@@L@3{+{*{*{+{+{+{+{+@@@@@@@@డy$List#rev{B\(\8{C\(\<@ {F\(\={G\(\@@@[@@@[ O@@@\ S@@@@@$@@ఐ̠+omega_tails{^\(\A{_\(\L@,@@[5 h@@@M@M@9@@( @@>:@A@{k\(\* @@@ఠ'constrsm{v\P\V{w\P\]@{;A@@c@ H@%L@Ѡ@\Π @@@@@@@@L@3{{{{{{{{@^mf@g@h@@@డz$List#map{\\{\\@ {\\{\\@@c{@@@@@.N@ɠ@[ <@@@N@@@N@@=@]  J@@@N@@@N@@@@c"@@@c֠@@@@@@@3{{{{{{{{@E@@@@࣠@y'pA@ఠ%discrn{\\{\\@{@Y @@ ?m@ @@ @ F@  @@ A @  A@ H@U &@A@ #@ # "@ 7@ఠ(set_lastq}E]]}F]] @}X>A@@@/q@@@zH@W@@@/j@@@s@*۠*@@@u@@@t@@rH@Q@vu'pattern@@@@@@H@R@@SH@N@&H@`@vH@@@@H@a@@bH@O@@PH@X@@YH@V3}}}}}}}}@   @ @ @@@࣠@!asA}]]!}]]"@}?A@@S3}}}}}}}}@`}]]}]^@@@@@  @@Aఠ$loopt}]%]/}]%]3@}@A@@@vLJ@@@J@c@@@bJ@]}! J@a@@@eJ@^@@`3}}}}}}}}@,8@/@0@@@@Ġvn}]?]E}]?]G@vm@@@@#3}}}}}}}}@/@*@@_K@\@-@.@@@@@ ภl}]?]R}]?]W@l@@@s@@@u@}]?]K@@.@Ġ"::}]X]_}]X]aAkѠ@}]X]`@@DJ@e&@Ġ"[] Av@@ A@}e @@@j2@@@~]X]^@@W4@@@ภ1~]X]f~]X]Akడv4'General%erase(Patterns~(]X]n@ ~+]X]o~,]X]v@@~0]X]w~1]X]|@@@v[,pattern_dataР|@{@zy@@@{H@@@{G@vwu@@@{I@@{F@@@{E@@AsA@@As@@qr@@@{K@pvo@@@{M@@@{L@@{J@@A#Var@@%Ident!t@@@{O@q(#locm$@@@{Q@@@{P@i#Uid!t@@@{R@@{N@@A@@qD@@@{T@v@@@{V@@@{U@i/i+@@@{X@@@{W@@{S@@A@@@qm@@@{]@@@{\@s@@@{^@w@@@{_@@{[@@@{Z@q|@@@{`@@{Y@@A{@wz@@@{a@@Ay@@wk@@@{c@w$_@@@{d@Zi}Y@@@{f@@@{e@@{b@@Ax@@qwvu@@@{i@@@{h@sr@@@{j@pwOo@@@{l@@@{k@@{g@@A%Alias@@w^'pattern@@@{n@!t@@@{o@q#locm@@@{q@@@{p@i#Uid!t@@@{r@i)type_expr@@@{s@@{m@@A@r @@@{t@@A@@@{DA@b$view@@{C@@@{B@@@{A@@{@@wyK  wzK  /@@wxW@hK@@@HР@@@@@@@@@F@@@@@@@@@@ڠ@٠@@@@@@w@ @@@@ @H@A@@@@@d@@@@Ӡc@@@@@@@@@@@r@3@@x @=@@?@@@H@{@@z@@@@us@@@@@@@r@@@@@@@@@@n@@@@m@@@@@@@lk@@@@@@@@@@@r@@@x]@@@@@jj@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@s$?>;@@@@@Ƞ@u:9@@ʠ@x8@@@@@@Ơ@s@7@@@@H@6@@@@@@x=@@H@<@@@@@@@@@@@@@@@@@@@@@8@@@@@@@@@@@@@-@@@@@@@@@@@sUTS@N@@@@Ϡ@uQ@V@Ѡ@Py/O@`@@b@@@H@@@@@@@@@@@۠@@@@@@@@@@@@@@@@@@@r@@@@@@sy@@H@@@@@@H@A@D@@H@A@@H@A@@@@@@@@@~@@}@@ఐ̠!ae]X]}f]X]~@@@@@U@@@ภ5/ ZAz@ [A@ΠJ@w@@@{L@_@@y]X]ee@@@ĠoZ]]]]@oYఠ!xu]] @AA @@J@l3@@@@ఠ!lv]]@BA@@@@@n@@@@@@@@ภ`]]]]@o{ఐ#!x]]]]@#@$@%@@$3@."@@@@@ఐ $loop]]]]@@@@ @@n@@ఐ8!l]]]]@@@J@r"@@@@#@@(@@$@@Akw]%]6 @@@ @@@%@@MJ@L@@@]%]'@@@@@]]]]@@^@@Ġz]]]]@z@@@@h@@]]]]@@@@@@Wq@@@@డz $Head+deconstruct(Patterns]]]]@ ]]]]@@]]]]@ @/x @@@4E@@@i@42@@@f@//@@@h@@@g@@e@@d@@ఐ!a@]]A]]@u@@@@0@@@@ภzK]]L]]@z@@@z@@@@@S]]T]]@@@@ఠ%firstxa]]b]]@tCA@@ H@X3baabbbbb@@@@@ఠ#rowyp]]q]]@DA@@H@H@Y@@x]]y]]@@@@ @@\@@@@ఐ*%first]]]]@)@*@+@@*3@5&@ @!@@@@ఐ점$loop]]]]@ð@@@{51@@@@@@@@@@@@@ఐH#row]]]]@(@@G,@@@@6H@/@@]]@@D1@@Akz]]@@@@@rH@8@"@@@,#A@H@*@A@'@'&@=@ఠ,mark_partial{^D^H^D^T@EA@@@k@@4@@@H@[@0j0i@@@@@@H@\@@]H@X@{@@@@@@H@Y@@ZH@I@@@Uk@@)@$@@n@@@mH@G@@@T@@SH@3@@@@@@@ఠ$zero|(^W^])^W^a@;FA@@|Р(ConstantuJ@@@9@@@=@@@@>I@#@@@2I@&@ఐ|(make_patJ^W^dK^W^l@{g@@@@|@@@%@|@@@$|ݠ+@@@"@@!@@ @@B@@*ภ)Const_inti^W^yj^W^@u.@p^W^q^W^@@u6@@@:J@@@b=@@@@ఐN"hpJ^^K^^@`@N@O@@a3IHHIIIII@qYh0@4@1@@@(pat_descV^^W^^@}@@z@@@ H@H@kH@i@Ġ(Patternsr^^s^^@$Headw^^x^^@@#Any}^^~^^@@o@@@@(3@@(3@@@ఐ"ps^^^^@9@@=@@^_^_@@:E@@:E@@@ఐW(set_last^_ ^_@@@@6@@@{@@@6@@@t@2'2&@@@v@@@u@@s@}NJ@@@x@@@z@@y@@}[ @@@w@@r@@q@@p@@ఐ$zero^_^_@@@6@@@M@@@ఐ"ps^_^_@@@@H@@@@M@M@@@]@@@@@A^^@@@^^__@@@#@@VI@I@@@<@@)@K @@*@A@^D^D @@ @@ఠ-close_variant__#__0@'IA@@@Fn!t@@@H@@l/@@@(H@@@@H@@@H@@@H@3.--.....@c\@]@^@@@࣠@#envAA__1B__4@TJA@@)3@??@@@@@@6I__Jbtby@@@@@  @@#rowAU__5V__8@hKA@@13TSSTTTTT@!@@@@@@@@@డ(row_repri_;_uj_;_}@@ls@@@ lv-row_desc_repr@@@ @@ @l ;I;Il;I;p@@lzd@@@@l@@@!@@@ @@3~}}~~~~~@+7^@.@/@@@@ఐ>#row_;_~_;_@ @@k@@+@@#@@@'@Ġ#Row_;_A_;_D@;#Row4@@@ @9 @@@ @A@@A@AlF:w:{lG;;G@@;@@&fields @@E@l%label@@@ @lg@@@ @@ @@@ lc:w:ld:w:@@lY@$more@@H@@@ ln::lo::@@lZ@&closed@@$boolE@@@ l|::l}::@@l[@%fixed@@&optionLl1fixed_explanation@@@ @@@ l::l:;@@l\@$name@@@GO!t@@@ @FKH]@@@ @@@ @@ @@@ l;;l;;E@@m]@@@A@@@@@@@@0@Am!^@ঠ&fields*_;_F+_;_LA3u@@@0w@@@3_^@@AA[@X3UT@@BAN@K3HG@@CA;@8354@@DA@Ai@fఠ@KLA@@@@@B@l@@@C@@A@@@@@$moreQ_;_NR_;_RA3@@@2@@A3@@@;A@3|{@@BAB@?>A@ఠ@rMA@H@@@G@&closedk_;_dl_;_jA3@@@6@@B3@@@UA@3@@AVA@3@@CWA|@y3vu@@DXA\@YXA@ఠ@NA@@@@K@%fixed_;_l_;_qA3@@@8@@C3@@@oA@3@@ApA@3@@BqA@3@@DrAv@srA@ఠ@OA@@@@Q@@@P@$name_;_T_;_X@3@@@4@@D3@@@A@3@@AA@3@@BA@3@@CA@ A@ఠ)orig_name_;_Y_;_b@PA@@@@@@[@I@@@]@@@\@@Z@@@YI@@@_;_E_;_r@@(@@@_M@^Q@@@4@@d@@@`U@@g@@@aX@@@@@ఠ$name____@QA@@Q.@@@@@IH@@@@@@@@M@@@@M@i3@@@@@@@|y@{@z_X@Y@Z@@@@ఠ&static____@+RA@@|@@@M@j@@9 @@@9@ @@m#@డ$List)fold_left5__6__@ 9__:__@@@@#acc@?4@!a@?6 @@@p@@@o@ @| @@@@n@@@m@@@l@@@k@p33p3r@@p]@$@@@@@x@K@@'M@M@r@@@@@$M@@n@@@M@@@M@t@@v@@u@ @0@@@s&@@q@@p@@o3~}}~~~~~@~@@@@࣠@A@ఠ"nm____@SA@@M@@@ఠ&static____@TA@@M@@@____@@@@ @@@@ @@A@ఠ$_tag____@UA@@X3@70@1@2*#@$@%@@@@ఠ!f____@VA@@b@@____@@@p@k@@@@ @@డ/.row_field_repr____@n@@@n@@@n@@@@@3@4=@7@8-@'@(@@@@ఐ4!f__ __@ @@@@@@n@@@@Ġ'Reither___`@;'Reithern@?@@@ H]Jo@@@ @@@ M@@@ @CAAB@An;;n;;@@@o5g@@8_`9_`@@@@@D@@@_` A_` @@J@@@@@@P@ĠwO_` P_`@w @@@@&@@@\@@@=V_`@@o@@@a@@o@@@d@@@ డ2link_row_field_exth`c`oi`c`@&insideo@@@ @o@@@ $unitF@@@ @@ @@ @ojDjDojDj@@oM@@@o#@@@@o(@@@@@@@@@@@$ఐŠ!f`c``c`@@@&@@డ)rf_absent`c``c`@oH@@@ @oC<<oD<=@@ok@  @@oT@@@T@T@@@Q@@@@@S@@@ภ$None````@S @@@S @@@@@ఐ3&static````@@@2@@````@@@@;@@@}@@@Ġ'Reither````@֠@````@@@@@@@````@@۠KI@@@@@@ @Ġx `` ``@x@@@@@@@@@@#``@@o@@@@@o@@@ @@@@ఐ"nm$``%``@\@@.@@ภw.``/``@w@@@~@@@;@@5``6``@@>@Ġ'RabsentC``D``@oI@@@@p@@@P@@P@Ġ(RpresentQ``R``@;(RpresentoW@iK@@@ @@@ @A@AB@Ao;;o;;@@@pcf@@f``g``@@K@@@@@@v@@@ @@p-@@@z@@z@@1 @@p1@@@~@@@@ఐ렐"nm`a`a@@@@@ఐ預&static`a`a @Ű@@@@`a`a@@7@@@A__@@9@__`a@@@B@8D@@@@N@N@@@@ఐ)orig_nameaaaa @@@M@1@@ภylaa"aa&@yk@@@M@ =@@aaaa'@@fM@!B@@ఐ&fieldsaa(aa.@ư@@p@@@N@&N@"W@@ @@~@A@__ @@డP_j_la2aBa2aD@_i@@@_i@@@-@_h@@@,_g@@@+@@*@@)3@@@@@@@@@డp#nota2a7 a2a:@@/@@@F3@@@E@@D(%boolnotAA1@@@/LL0Lt@@.\@@@@@@@=@@@<@@;/@@ఐ&closed0a2a;1a2aA@%@@*@@@DN@FN@EC@@3 @@_@@@9@GN@CK@@డ"!=Na2aJOa2aL@@!a@@{@@@C@@B@@A&%noteqBAy@@@@xy@@w[@@@@T@i@@@W@fL@@@Y@@@X@@V@@@UM@L@(@@@K@@J@@I@@ఐ$namea2aEa2aI@@@&@@ఐ砐)orig_namea2aMa2aV@@@5M@Z@@@@`@@@8@_N@T@@ @@g@@@`M@7@@ఠ%more'abajabao@WA@@%Types)type_expr@@@mM@a3@@@@ఐ&staticabauaba{@װ@@gG@@@cM@b@డL(newgenty%Btypeabaaba@ abaaba@@@1)type_desc@@@g6@@@g@@g@LN  LN  @@Lf@@@@@@@gC@@@f@@e>@@ภ$Tnil abaaba@;$TnilKS@@@@AL@Aqnceqnck@@@rO@@  @@*@@@nN@rV@@8@@_W@డMB)newgenvar%Btype+aba,aba@ /aba0aba@@$name&optionL&stringQ@@@g@@@g@$unitF@@@g)type_expr@@@g@@g@@g@MXP  MYP  +@@MWg@+&@@#!@@@y@@@x@@@@w@@@v@@u@@t@4ภ$None?U@?@85@@@@@@@@ภ"()abaaba@;(@@@N@@@@A@@AW@@!@ @@D@@@N@@@c@@N@@abar@@@A@abaf@@డ%unify%Ctypeaaaa@ aaaa@@@@@@3@)type_expr@@@3@)type_expr@@@3$unitF@@@3@@3@@3@@3@.U.U.U.@@e@&!@@@@@@@@@@@@@@@@@@@@@@@3@' @!@"@@@@ఐ#envaaaa@@@@@ఐ$moreaaaa@@@J@@@M@M@$@@డN$(newgenty%Btype aaaa@ aaab@@(@@@(@@@\@@@@@D@@ภ(Tvariant&bb'bb@;(TvariantLl@s0@@@ @AHAL@Ar}r}@@@s3R@డ~*create_row=bb&>bb0@&fieldsL~@sf%label@@@ d@r@@@ e@@ c@@@ b$moreN@@@ a&closed@@@ `%fixed}{@@@ _@@@ ^$name@M!t@@@ [@LN@@@ ]@@@ \@@ Z@@@ Ys@@@ X@@ W@@ V@@ U@@ T@@ S@s)M//s*R0H0{@@sP@ZY@@WU@T@@@͠@sD@@@@@@@@RN@@@PN@@@MK@@@@@@JH@G@@@Ġ@DO@@@@@@@@@@@s@@@@@@@@@@@@@@ภsbb9bb;@r@@@@@@@@s@@@@@@@@O@@ఐD%more'bbBbbG@#@@OK@@@O@O@-@ภ|bHb_bHbc@|@@@@@@O@ =@ఐ%fixed bHbk!bHbp@@@7@@@@@@O@ O@ U@ఐO$name8bHbe9bHbi@@@@ɠ@@@@@ŠO@@@@@@@@@@@O@O@z@@Tbb%UbHbq@@t_@@@@O@@@^bb_bHbr@@s@@@N@@@faagbHbs@@@@@@N@@@ @@CM@@sa2a\*@@@@ua2a4,@@@-@@Jr@@@Ax_;_=/@@L3tssttttt@@@@:1A@cH@ 8@A@5@54@K@ఠ*full_matchc+c/c+c9@XA@@@@@@H@"@Y4@+N@@@P@@@@P@֠@@@@@H@@@@H@'L@@@:H@(@@)H@#@@$H@!3@@@@@@࣠@'closingAc+c:c+cA@YA@@;3@Hc+c+#h0h@@@@@@  @@#envAc+cBc+cE@ZA@@F3@!R@@@@@@@@ఐ#envc+cOc+cR@W@@@@X3@@@@ĠcXcZcXc\@@@@@f3@@@@@g@@@ภ|ŰcXc`cXce@|@@@T @Ġ{cfcscfcu@{@ఠ%discrcfci cfcn@2[A@@H@@H@25@@@+cfcp,cfcq@@}H@3=@@0cfch1cfcr@@@@ @@5F@@;cfcv<cfcw@@H@4H@0@@@6S@@@ @@T@@T@@@ Рe$Head(PatternsVc{cWc{c@ Zc{c[c{c@@@3ZYYZZZZZ@nF?@@@A@@@@A3]\\]]]]]@@@ec{c @@ @3baabbbbb@@@ఐT%discrscctcc@@@S3qppqqqqq@@@@(pat_desc{cc|cc@ @@H@AH@? @Ġ#Anycccc@y@@@@3@-@@@@@@@ ภ}Vcccc@}U@@@/@@@@cc@@@Ġ)Constructcccc@]ঠ(cstr_tagcccc@ZĠ.Cstr_extensioncccc@;.Cstr_extensionb@@@ @@$Path!t@@@ >Z@@@ ?@BBAC@Ak  k  &@@@W@@cccc@@@@@LO@@@@@@MT@@@( @@@@@NX@@Acccc@@@@@PP@O`@@@G@@ra@@ra@@@ภ}cdcd@}@@@Ci@Ġ)Constructdd dd@ఠ!c dd dd@\A@@@@@S3        @@@@@@@@@@@@@డJLdd)dd*@I@@@Z@@@O@@J@@@@@@@3&%%&&&&&@&@ @!@@@@డ$List&length>dd?dd@ BddCdd$@@Z@@@Z H@@@@[ @@@@@&@@ఐ#env[dd%\dd(@m@@3@@!@@<4@@డ!+kdd9ldd:@@#intA@@@~@@@@} @@@|@@{@@z'%addintBA@@@@0++0+,@@n@@@@@@@@@@@@@@@@@@l@@ఐ!cdd+dd,@x@@@@@@@+cstr_constsdd-dd8@@@F@@@Q@Q@@@ఐ!cdd;dd<@@@@@@@@.cstr_nonconstsdd=ddK@l@@`@@@Q@Q@@@9 @@Q@@@ @@*@Ġ'VariantdLdPdLdW@zঠ(type_rowdLdZdLdbA3z\z@@@Xz^@@C3zz@@@zOAz@z3zz@@AzPAz@z3z|z{@@BzQAzj@zgzQAzU@zRఠ@]A@@zh@@@aze@@@`@@_@@A dLdXdLdg@@z@@@cP@b@@@,@@@@@@@@ఠ&fieldsdkdu dkd{@2^A@@x-z@@@P@@@@P@3)(()))))@0-@/@.@@@డ$List#map>d~d?d~d@ Bd~dCd~d@@x@@@@P@$@@@xt@@@xZ-@@@@@@@3QPPQQQQQ@(@@@@࣠@A@ఠ!djddkdd@}_A@@@@@@rddsdd@@F@@uddvdd@@@֠@@@O@@ @@ఐ !ddddd@@ @!@@3@a*@@@(pat_descdddd@԰ @@ @Ġ'Variantdddd@{Nঠ#tagddddA3{H{W@@@{J@@@3{@{?@@A{A{9@{63{3{2@@B{A{!@{3{{@@C{ A{ @{ { A{I@{Fఠ@`A@{T@@@1@@@dddd@@{l@@@U@9@@@'@@:@@:@@@ఐ#tagdddd@@@@@3@F@@@@ dd dd@@3O@@3O@@@ ภ de  de@@@@|@@@\@ de@@^@@@Add @@3@`@@@dd de@@@@@Q@Q@@@ఐ)#env ee ee@@@k@@@@@A@dkdq@@@ఠ#row e'e1 e'e4@%aA@@{t@@@P@3@@@@@@ఐ#(type_row' e'e7( e'e?@@@@{@@@{@@@@@@@ภ: e'e@; e'eB@@@@{@@@Q@ '@@@@+(@A@D e'e- @@డO eFeWP eFeY@@@@@@@@@@@@@@@@@@ 3ZYYZZZZZ@ESL@M@N@@@@ఐ'closingl eFeOm eFeV@@@@@డ#not{ eFeZ| eFe]@s@@@s@@@"r@@@!@@ '@@డS5has_fixed_explanation%Btype eFe_ eFed@  eFee eFez@@@(row_desc@@@g8$boolE@@@g7@@g6@SeSe@@Sq@@@@@@@-@@@,@@+Y@@ఐ#row eFe{ eFe~@c@@)@@@4R@6R@5m@@ eFe^ eFe@@@@@)@7R@3w@@\ @@.@@@@8Q@(@@s@@nS@@@9P@@డV$List'for_alleeee@ eeee@@z@@@@@|@@@O@R@x@@@fO@S@@TO@?z@@@A@@@@@@@>z@@@=@@<@@;@@࣠@oA@ఠ#tag.ee/ee@AbA@@/3-,,-----@@@@@ఠ!f;ee<ee@NcA@@5 @@@eeAee@@@C@>@@V@@ @@డ.row_field_reprUef Vef@x@@@x@@@_y@@@^@@]3[ZZ[[[[[@9a@3@4-[@'@(@@@@ఐ4!foefpef@ @@h@@@@y0@@@e@Ġ'Rabsentf!f/f!f6@x@@@@yB@@@k(@@(@Ġ'Reitherf!f9f!f@@ w@f!fAf!fB@@ y@@@r:@@f!fDf!fE@@ |T@@@t@@@sF@Ġkf!fGf!fL@j@@@@ @@@wR@@@#f!fM@@yq@@@xW@@W@@6@@yu@@@z[@@@ภqf!fQf!fU@p@@@{{@@@f@Ġ'ReitherfVfdfVfk@ @fVfmfVfn@@ @@@|@@fVfpfVfq@@ U,@@@@@@@ĠfVfsfVfw@@@@@ @@@@@@#fVfx@@y@@@@@@Ġ(Rpresentffff@ @ffff@@ US@@@@@@@@@ @@y@@@@@@@B @@y@@@@@@డ$List#mem$ff%ff@ (ff)ff@@@!a@>@ @@@@|@@@@@@@@@@@|+'C'C|+'C'b@@|h@@@@AO@@@@@@@@@@@@@@ఐ*#tagXffYff@@@X@@ఐF&fieldsefffff@J@@8+@@@T@T@@@M @@@@@Aref @@|+@@@@weexff@@@|7@@@O@@NP@P@P@@డ*row_fieldsfffg@@z@@@ kSР@z%label@@@ i@zD@@@ j@@ h@@@ g@@ f@z@T0}0}zAT0}0@@zQ@ @@@z@@@@@@@Ġ@z^@@@@@@@@@@d@@ఐ#rowfgfg @n@@z@@@Q@Q@x@@fffg @@@@@MP@Q@@@ @@.P@L@డWMOgg.gg0@L@@@L@@@@K@@@"@@@@@@@@@డK*row_closed gg gg)@@{@@@ q3@@@ p@@ o@z~88z~89@@{S@@@@{"@@@@@@@@3@@@@@ఐ#row.gg*/gg-@ϰ@@{:@@@Q@Q@@@/ @@@@@@Q@@@డ$List'for_allPg1g9Qg1g=@ Tg1g>Ug1gE@@}@@@@@~@@@XP@@{ @@@AP@@@P@}&@@@@@@ @@@}%@@@@@@@H@@࣠@A@ఠ#taggFgVgFgY@dA@@/n@@ఠ!fgFgZgFg[@eA@@4z@@gFgUgFg\@@@B@=@@@@ @@డj3j5g`gg`g@j2@@@j2@@@@j1@@@j0@@@@@@@3@c:b@4@5/\@)@*@@@@డ9g`g}g`g~@@@@{@@@@S@.@@@@-@@,@@+@@డ,.row_field_reprg`glg`gz@{@@@{@@@:{@@@9@@86@@ఐg!fg`g{g`g|@>@@C@@@@-D@@ภ'Rabsent g`gg`g@{@@@;T@ER@@(@@j@@@)@FT@6Z@@డ$List#mem*g`g+g`g@ .g`g/g`g@@@@@P@L@@@@K@@@J@@I@@H~@@ఐ#tagHg`gIg`g@@@@@ఐ6&fieldsUg`gVg`g@:@@(+@@@VT@YT@W@@7 @@j@@@(@ZT@U@@~@@~#@@@[S@'@ogFgPpg`g@@@~/@@@ @@ Q@_Q@]W@@డ*row_fieldsgggg@@@@|@@@g@@@@e@|9@@@f@@d@@@c@@bl@@ఐ#rowgggg@I@@|@@@tR@vR@u@@gggg@@f`@@@ Q@wR@p@@n @@@@@@xQ@ @@@@P@@ eFeL@@@@@@@@@Ġ(Constantgggg@}Ġ*Const_chargggg@@gggg@@@@@is@@@ @@@@@jw@@@ @@px@@px@@@డ_$&gggg@#@@@a@@@O@}@$@@@|@@{@@z@@డz$List&lengthgggg@ gggg@@a@@@a@@@a@@@@@@@ఐW#env0gg1gg@B@@@@@@7@@;gg<gg@@BP@@@+@@@Ġ(ConstantLggMgg@@QghRgh@@@@@m@@@ @@@@@Ġ%Array_ hh` hh @T@d hh e hh @@V@@@q@@@U@@@r@@@ @@@@@@$ @@@@@ภ4u hhv hh@3@@@@Ġ%Tuple!hh!hh @.@!hh!!hh"@@0/,@@@y@@@x@@@w"@@@ @@#@@#@Ġ&Record"h#h'"h#h-@@"h#h."h#h/@@@@@~@@@}9@@@ @@2:@@2:@@+ @@3;@Ġ$Lazy#h0h4#h0h8@@@@@>F@@>F@@7@@?G@@@ภs#h0h<@q@@@ N@@@Acc@@ 7@c{c}@@ 3@i@@@@@Ac+cI@@ @ A@ ?H@ @A@@@ @ఠ-should_extend'hh'hh@fA@@@a#$Path!t@@@H@@@@H@@@@@@H@x@@@wH@ @@@@@H@ @@@H@@@@H@@@H@@@H@3@ ]  @ @ @@@࣠@#extA$'hh%'hh@7gA@@F3#""#####@S,'hh-5jj@@@@@  @@#envA8'hh9'hh@KhA@@F376677777@!]@@@@@@@@ఐ)#extJ'hhK'hh@@@k3HGGHHHHH@Z@@@@@Ġ$NoneZ(hh[(hh@a@@@@{3XWWXXXXX@@@@@|@@@ภ"c(hhd(hh@!@@@U @Ġ$Somep)hhq)hh@avఠ#exty)hhz)hh@iA@@H@H@3@@@@@4@@4@@@ఐU#env)hh)hh@=@@3@A@@@@@Ġ/*hi*hi@.@@@@3@@@@@@@@ ภc*hi*hi@b@@@<@@@@*hi@@@Ġ+ii+ii @@ఠ!p+ii+ii@jA@@9@@@+ii+ii@@?@@+ii@@@Ѡ@@@G@@!+ii!@@4H@ @@@P@@@@@Q@@Q@@@ Р$Head(Patterns,i%i4,i%i<@ ,i%i=,i%iA@@@3@k;@5@6@@@@A3@@@,i%i/ @@ @3@@@ఐI!p -iEiW -iEiX@@@ 3      @@@@(pat_desc-iEiY-iEia@S @@H@ @Ġ)Construct".igio#.igix@֠ঠ(cstr_tag-.igiz..igi@Ġ-Cstr_constant9.igi:.igi@;-Cstr_constant }@\@@@ <@A@AC@A&h"'h6@@@DT@@J.igiK.igi@@@@@&A@@@@@@@@'E@Ġ*Cstr_blockY.igiZ.igi@;*Cstr_block @|@@@ =@AAAC@AFijlGij@@@dU@@j.igik.igi@@@@@+a@@@@@@@@,e@@; @@@@@-i@Ġ,Cstr_unboxed}.igi~.igi@;,Cstr_unboxed @@@@AC@Aejfj@@@V@@@  @@)@@@0|@@.igi.igi@@/@@@1@@@.igiy.igi@@A@@@3R@2@@@w@@@@@@@@ఠ$path/ii/ii@kA@@Y@@@mR@]3@@@@ఐZ9get_constructor_type_path/ii/ii@XA@@@Z@@@c@Z@@@bZ @@@a@@`@@_@@ఐ!p/ii/ii@۰@@)@(pat_type/ii/ii@ @@Z;@@@oS@tS@q7@@ఐ-!p/ii/ii@@@F@'pat_env/ii/ii@ @@ZM@@@nS@yS@vT@@K @@XU@A@/ii @@డ$Path$same$Path0ij0ij@ 0ij 0ij @@@3@@@@8@@@$boolE@@@@@@@@/typing/path.mli{  {  )@@AH@@@@I@@@@N@@@~@@@}@@|@@{387788888@D@@@@@@ఐ$pathJ0ijK0ij@ @@h@@@R@R@@@ఐ堐#ext^0ij_0ij@Ѱ@@$@@P@@QR@'@c@@T@Ġ)Constructo1jjp1jj(@#ঠ(cstr_tagz1jj*{1jj2@ Ġ.Cstr_extension1jj41jjB@ Ơ@1jjC1jjD@@ @@@>~@@@ @@@?@@@1jj31jjE@@6@@@@@@@1jj)1jjF@@H@@@BR@A@@@1@@@@@@@ภd1jjJ1jjO@c@@@@Ġ(Constant2jPjX2jPj`@c@2jPja2jPjb@@e@@@E@@@ @@@@@Ġ%Tuple2jPje2jPjj@w@2jPjk2jPjl@@yxu@@@L@@@K@@@J@@@ @@@@@@'@@@Ġ'Variant2jPjo2jPjv@@2jPjw2jPjx@@@@@O@@@ @@@@@@;@@@Ġ&Record2jPj{2jPj@@2jPj2jPj@@@@@T@@@S@@@ @@@@@@S @@@Ġ%Array2jPj2jPj@ @2jPj2jPj@@@@@X@@@ @@@Y@@@ @@@@@@l @@@Ġ$Lazy02jPj12jPj@F@@@@%@@%@@x@@&@@@ภ92jPj:2jPj@@@@+.@Ġ#AnyF3jjG3jj@@@@@3;@@3;@@@ ภP3jjQ3jj@@@@@@@H@W3jj@@GJ@@@AY-iEiKZ4jj@@J@\,i%i+@@L3XWWXXXXX@f@@@@@A_)hh3@@O@@@Aa'hh5@@Q@?6A@H@7=@A@:@:9@P@ఠ-pat_of_constrq8jkr8jk@lA@@@@@@@H@9@@@@H@>Ѡ@@@W@@@VH@@@@H@?@@@H@:@@;H@83@@@@@@࣠@&ex_patA8jk8jk@mA@@13@>8jj;kvk@@@@@  @@$cstrA8jk8jk@nA@@:3@!H@@@@@@@@(pat_desc9kk-9kk5@ภ.Tpat_construct:k8k;:k8kI@nؠడ'mknoloc:k8kK:k8kR@b@@@n@@@[J@J@le @@@k@@j3@3?o@6@7@@@@ภ)Longident:k8kT:k8k]@&Lident:k8k^:k8kd@@;&Lident)Longident!t@@@Wx@&stringQ@@@Wo@A@@C@A5parsing/longident.mli]>B]>R@@@A@ఐp$cstr':k8ke(:k8ki@7@@:@)cstr_name.:k8kj/:k8ks@ @@$@@@|K@K@~H@@9:k8kS::k8kt@@XJ@zK@{N@@_@@]@@@wS@ఐ$cstrK;kvkL;kvk@[@@^@ఐE&omegasX;kvkY;kvk@ް@@@B@@@?<@@@@@@@@w@@ఐ$cstrs;kvkt;kvk@@@@*cstr_arityz;kvk{;kvk@* @@f@@@K@K@@@- @@tV@@@_@@@^@@@]J@K@@ภ$None;kvk;kvk@e@@@ot@osorop@@@d@@@c@@@b@om@@@e@@a@@@`J@@@;kvk@@,J@X@@@@J@@@@@@נ@@@@ؠ@@@@@@@@@J@@x@@@J@@s@@@J@@ߠ@@@J@@@ఐV&ex_pat9kk!9kk'@;@@ @9kk O@@u@YPA@H@W@A@T@TS@j@ఠ%orify =kk=kk@ oA@@@q@@@@$H@@| @@@1H@n@@@J@@@@H@@@H@@@H@3-,,-----@@@@@@࣠@!xA@=kkA=kk@SpA@@/3?>>?????@<H=kkI=kk@@@@@  @@!yAT=kkU=kk@gqA@@83SRRSSSSS@!F@@@@@@@@ఐ(make_patf=kkg=kk@@@@@@@@@@@@@M@@@@@@@@@3tssttttt@".\@%@&@@@@ภ'Tpat_or=kk=kk@r}ఐR!x=kk=kk@7@@}@ఐI!y=kk=kk@!@@}$@ภ$None=kk=kk@f@@@rr@@@@@@K@?7@@=kk=kk@@J@<@@ఐ!x=kk=kk@i@@K@(pat_type=kk=kk@а @@g@@@K@EK@BY@@ఐ!x=kk=kk@@@h@'pat_env=kk@ @@w@@@K@JK@Gu@@@@v@A@H@N@A@@@Aఠ*orify_manyĠ?kk?kl@rA@@@es@o@@@H@V@@@UH@PH@Q@@S3        @ @@@@@@Ġ@ll @ll@@@@@3@*@%@@RI@O@(@)@@@@@ ภ0@ll"1@ll'@@@@@@@i@7@ll@@'@ĠG?Al(l+@Al(l-Aఠ!xŠ HAl(l,@ZsA @@DH@X3HGGHHHHH@+@@@ĠM A@@ A@ @@@] @@@ZAl(l*@@W@@@ఐ!xbAl(l1cAl(l2@@@@@U3a``aaaaa@E$@@@ĠHoBl3l7pBl3l9@Gఠ!xƠxBl3l5yBl3l6@tA@@sH@_3xwwxxxxx@[@@@ఠ"xsǠBl3l:Bl3l<@uA@@@@@a@@@@@@@@ఐ%orifyBl3l@Bl3lE@@@@@@@q@@@@p*@@@n@@@m@@l@@k3@=6@7@81*@+@,@@@@ఐE!xBl3lFBl3lG@@@D@@ఐΠ*orify_manyBl3lIBl3lS@@@@@@#@@ఐV"xsBl3lTBl3lV@+@@H@2@@Bl3lHBl3lW@@5@@M@@6@@AȰ?kl @@@@@@@@5H@4@@@?kk @@ @ݠ@ఠ.pat_of_constrsɠEllEll@ vA@@@P @@@ZH@7@3@@@K@@@@H@<rY@@@J@@@@H@=@@>H@8@@9H@6@࣠@&ex_patA,Ell-Ell@?wA@@.3+**+++++@;4Ell5Hm m?@@@@@  @@%cstrsA@EllAEll@SxA@@93?>>?????@!E@@@@@@@@@ఠ&ex_pat͠SFllTFll@fyA@@~'pattern@@@YK@A3YXXYYYYY@'V@@@@@డ~$Head0to_omega_pattern(PatternsrFllsFll@ vFllwFll@@{Fll|Fll@ @@P@@@5+@@@5@@5@j  j  @@o@@@@P@@@E8@@@D@@C6@@ఐu&ex_patFllFll@Z@@C@@0@@ID@A@Fll@@డܠްGllGll@۰@@@H@H@nH@c@@@@b@@a@@`3@`pi@j@k@@@@ఐ%cstrsGllGll@l@@@@ภkGllGll@j@@@%H@o@@@@{O@@@pK@k#@డQ%raiseGllGll@@@@@!a@@@&%raiseAA@@@^BB^Bg@@@@@@@@@@tK@s@@rH@@ภ%EmptyGlmGlm@;a @@@eE@@@aA@Aa@@a@ @@+@@@yK@}_@@4@@`@ఐ)*orify_many'Hm m (Hm m@@@@@@@@@@@@w@@డ$List#mapDHm mEHm m@ HHm mIHm m!@@ @@@@@<@@@K@K@@@@M@@@f@@@@@@@@@ఐ-pat_of_constrnHm m#oHm m0@<@@@@@@N@@@@M@@@@@@@@ ˠ@@@@@@@@@@@@@@@ఐI&ex_patHm m1Hm m7@߰@@F@@@@@Hm m"Hm m8@@@@@@.@@@@@@@@@@@@@ఐ%cstrsHm m9Hm m>@a@@@@Hm m@@Z@@@K@L@@@@@@Gll@@@-@@r@A@H@@A@@@W@ఠ,pats_of_typeΠJmAmEJmAmQ@zA@@@u@@@H@@@@@H@!@@@*N@.@@@;H@@@H@@@H@3@ @@@@@࣠@#envAJmAmRJmAmU@!{A@@+3        @8JmAmAcqUqu@@@@@  @@"tyA"JmAmV#JmAmX@5|A@@63!  !!!!!@!B@@@@@@@@డM9extract_concrete_typedecl%Ctype:Km[mc;Km[mh@ >Km[mi?Km[m@@@a!t@@@3@U)type_expr@@@3R:typedecl_extraction_result@@@3@@3@@3@Y --Z -.@@Xc@#@@@@@@@@@@@@@@@@@3eddeeeee@EQ}@H@I@@@@ఐl#envwKm[mxKm[m@Q@@@@ఐe"tyKm[mKm[m@@@@@N@@7@@@!@Ġ(TypedeclLmmLmm@;(TypedeclH@@@3@$Path!t@@@3 !t@@@30type_declaration@@@3@C@BA@A,,,-,@@@`@@LmmLmm@@@@@3@U@@@ఠ$pathҠLmmLmm@}A@@%@@@ @ঠ)type_kindLmmLmm@3)type_kind0type_declaration@@@ .type_decl_kind@@@ @@B;3+type_params a"c4@@@ @@@ @@@ @A"O O$"O O@@@@3*type_arityc]@@@ @@A@A#OAOE#OAOU@@@%3,type_private%,private_flag@@@ @@C @A%OuOy%OuO@@ @3-type_manifest0cW@@@ @@@ @@D.@A&OO&OO@@@3-type_variance>aS#(Variance!t@@@ @@@ @@E@@A'OO'OO@@)@31type_separabilityPae5,Separability!t@@@ @@@ @@FR@A)P"P&)P"PM@@;@3/type_is_newtypeb^@@@ @@G\@A*PNPR*PNPh@@E@34type_expansion_scopelc@@@ @@Hf@A+PiPm+PiP@@O@3(type_locv(Location!t@@@ @@It@A,PP,PP@@]@3/type_attributes)Parsetree*attributes@@@ @@J@A-PP-PP@@k@3.type_immediate.Type_immediacy!t@@@ @@K@A .PP .PP@@y@34type_unboxed_default@@@ @@L@A/PP/PQ@@@3(type_uid#Uid!t@@@ @@M@A#1QaQe$1QaQu@@@@A'$OVOZ($OVOt@@@Ġ,Type_variantLmmLmm@;,Type_variant)type_kind#lbl@ $cstr@ @@@ #@a @@@ 6variant_representation@@@ !@BBAD@AS9R=R?T9R=Rt@@@@@LmmLmm@@7constructor_declaration@@@@@@@@@@@@@@@8@@@@@@Ġ+Type_recordLmmLmm@;+Type_recordA@bA@@@ 5record_representation@@@ @BAAD@A8RR 8RR<@@@@@LmmLmm@@1label_declaration@@@+@@@*A@@@@@@,F@@@)@@&@@@-J@@n@@*@@@.N@@@LmmLmm@@e@@@0M@/V@@@Lmm@@@@@1[@@@@@2^@@@డ0find_type_descrs#Env,Mmm-Mmm@ 0Mmm1Mmm@@@$Path!t@@@&S@@@@&R1type_descriptions@@@&Q@@&P@@&O@W  W  K@@"r@!@@@@@@y@/@@@x@@@w@@v@@u3UTTUUUUU@@@@@@@ఐ$pathgMmmhMmn@ @@8@@@N@N@@@ఐp#env{Mmn|Mmn@U@@$@@S@@<@@@(@Ġ,Type_variantNn nNn n @ఠ%cstrsӠNn n"Nn n'@~A@@*Data_types7constructor_description@@@@@@3@K@@@@Nn n(Nn n)@@@@@ @@@#Nn n*@@m@@@@@p@@@@@డ(xBxDNn nGNn nI@xA@@@xA@@@@x@@@@x?@@@@@@@3@v@9@:@;@@@@డF"<=Nn nBNn nD@@!a@@ @@@3@@2@@1*%lessequalBA @@@@)) )Z@@U@@@@n@@@O@@@@@@@@@3@4@@@@డy$List&lengthNn n0Nn n4@ Nn n5Nn n;@@n@@@n@@@P@@@@n@@@@@'@@ఐ%cstrs4Nn n<5Nn nA@e@@nӠ@@@Q@Q@<@@, @@E=@@AGNn nEHNn nF@@PP@H@@8@@x@@@@P@P@@డ$List'for_allcPnndPnn@ gPnnhPnn@@+@@@@s@@@O@,@@@@@@& @@@+@@@@@@@@@࣠@"cdAPnnPnn@A@@#@@@@ఐ"cdPnnPnn@1@@@@23@@@@0cstr_generalizedPnnPnn@8 @@d@@@Q@@PnnPnn@@@Ip@@@@@P@#P@!@@ఐ0%cstrsPnnPnn@@@y`@@@P@'P@%@@n @@yL@@@@(P@@@@@M@@@)O@@డP$List#mapQnnQnn@ QnnQnn@@ǰ@@@@@@@N@0@@1@$ @@@/  @@@-@@,@@+@@ఐ -pat_of_constrQnnQnn@@@@][@@@r@@@qP@G@@@F@(@@@Emk@@@D@@@C@@@B@@A@@@1@@ఐ預(make_pat@QnnAQnn@]@@@+Q@]@@@@_@@@@^ՠ@@@\@@[@@Z@@YR@@ภ(Tpat_any^Qnn_Qnn@|T@@@GQ@s`@@ఐN"tymQnnnQnn@@@m@@ఐo#envzQnn{Qnn@T@@z@@~QnnQnn@@m@@@WQ@wR@l@@QnnQno@@@@@@|Ԡ@@@{@@@z@@@y@@x@@ఐ%cstrsQnoQno@ְ@@Ҡ@@@@A@@@u @@@Q@@@@O@@@@@O@@5@@@O@@@O@@@@O@3@VO@P@Q@@@డ$List#map$ToAoM%ToAoQ@ (ToAoR)ToAoU@@@@@@)O@>@@@Z@@@@G@@@@@@@376677777@(@@@@࣠@"ldAKToAo[LToAo]@^A@@;@@@@@డo'mknoloc^Uoaoo_Uoaov@@@@dܠg@@@@@3baabbbbb@T%:@@@@@@ภ)LongidentuUoaoxvUoao@&LidentzUoao{Uoao@@ wఐ?"ldUoaoUoao@ @@Z#@(lbl_nameUoaoUoao@i @@ @@@R@R@1@@UoaowUoao@@R@6@@@@@7@@ఐ_"ldUoaoUoao@@@@zC@@ఐޠ%omegaUoaoUoao@@@O@@Y@@@@@@@X@ToAoVUoao@@@@@P@P@@@ఐ&labelsVooVoo@@@@@@P@P@@@ @@@A@So*o4 @@ภYİXooXooAఐ(make_pat Xoo@ @@@<<@@-N@/@@@1H@H@N@@@@@@@@@@@@@@@@@@3@0)@*@+@@@@ภ+Tpat_record!Xoo"Xoo@tϠఐ@&fields+Xoo,Xoo@@@tԠ@tӠt@@@@@@@t@@@@@@@@@@@@@@@O@O@:@ภ&ClosedVXooWXoo@;&Closedi+closed_flag@@@@@@@B@@A_o `o@@@n^@@@@t@@@O@U@@kXoolXoo@@xN@Z@@ఐZ"tyyXoozXoo@@@g@@ఐ{#envXooXoo@`@@t@@@@H@~H@x@ภZS A&@ A@H@@@@N@#@@Xoo@@0@@@@@@@@YopYop@@h@@@T@@k@@@W@@@ภZYop YopAఐ렐%omega Yop@ @@h@ภZA[@ A@'H@%@@@)N@6v@@Yop @@x@@@AMmmZpp@@3@{@@@Ġ/Has_no_typedecl[pp"[pp1@;/Has_no_typedeclK@@@@BA@A----@@@a@@@  @@@@@6@@@@@7@@@డ<(get_desc\p5pG\p5pO@g@@@iH@@@Gg@@@F@@E@@డ)+expand_head%Ctype\p5pQ\p5pV@ \p5pW\p5pb@@h@@@hp@@@T@h@@@Sh+@@@R@@Q@@P@@ఐ*#env5\p5pc6\p5pf@@@Q@@ఐ#"tyB\p5pgC\p5pi@ذ@@U@@F\p5pPG\p5pj@@i@@@N@cO@^@@U @@g@@@M@Ġ&Ttuple]]pppx^]ppp~@;&Ttupleg@g@!}&stringQ@@@ @@@ נ@i@@@ @@ @@@ @ABAL@AL  L  @@@K@ఠ"tlؠ]ppp]ppp@A@@)@('@@@o@@@n@i@@@p@@m@@@l5@@@C@@h@@@q9@@h @@@r<@@@ภ[^pp_ppAఐ`(make_pat ^pp@Ӱ@@@@@H@@@@H@N@@e@@@@^@@@Y@@@@@@@@@3@pXQ@R@S@@@@ภ*Tpat_tuple^pp^pp@xడZ$List#map^pp^pp@ ^pp^pp@@Ѱ@@@@@xx@@@@@@O@O@O@à@j`@@@O@@@O@@@f@@@@@@@@O@O@O@@@@V2@@@<@@@@@@@_@@࣠@A@ఠ#lbl٠K^ppL^pp@^A@@H3JIIJJJJJ@v@@@@@T^ppU^pp@@@@@W^ppX^pp@@@V@I@@@@ @@@ఐ!#lbll^ppm^pp@h@!@"@@i3kjjkkkkk@+@@@@ఐ%omega{^pp|^pp@N@@@@@@@@@@@ @@@^pp^pp@@@v@@P@P@B@@ఐ"tl^pp^pp@°@@Ƞ@@@P@P@@@^pp^pp@@Q@@@O@P@b@@^pp^pp@@N@g@@ఐ"ty_pp_pp@V@@@@ఐ #env_pp_pp@@@@@&@@H@@ภ\ -Al@ .A@8H@y@@@}N@ @@^pp8@@@@`pp`pp@@ii@@@t@@il@@@u@@@ภ\ְ`pp`ppAϠఐ,%omega `pp@Ӱ @@(@@@@ภ\̰ A@ A@k H@@@@N@@@`pp@@ "@@@A\p5p;apq@@ %[@Ġ(Typedecl&bqq'bqq@@+bqq,bqq@@@@@>@@3bqq4bqq@@@@@?@ঠ)type_kindAbqqBbqq"@jĠ-Type_abstractMbqq%Nbqq2@;-Type_abstract@W+type_origin@@@ @A@AD@A7QQ7QR@@@\@@_bqq3`bqq4@@@@@Q@@@@@@@@R@Ġ)Type_opennbqq7obqq@@;)Type_open@@@@AD@A :RuRw :RuR@@@w@@@  @@@@@[ @@/ @@@@@\ @Ġ-Type_externalbqqCbqqP@;-Type_external@@@@ "@ACAD@A&;RR';RR@@@@@bqqQbqqR@@@@@f 1@@@@@@@@g 5@@S @@@@@h 9@@@bqqbqqS@@@@@jO@i A@@@bqqT@@ \@@@k F@@ F@Ġ1May_have_typedeclcqUqYcqUqj@;1May_have_typedecl #@@@ABA@A -- --@@@b@@@  @@ q@@@n [@@ [@@ @@ u@@@p _@@@ภ]cqUqo Aఐ%omega cqUqt@ @@@@@ r@ภ]  Au@  A@A H@ @@@L@$ @@cqUqn @@  @@@AKm[m] @@ 3@ @@@  A@ H@D @A@ @  @ @ఠ8get_variant_constructors۠eqwq{eqwq@A@@@@@@H@F@ @@@aH@Kg~@@@@@@H@L@@MH@G@@HH@E3@  E >@ ?@ @@@@࣠@#envA,eqwq-eqwq@?A@@)3+**+++++@64eqwqw5lrr@@@@@  @@"tyA@eqwqAeqwq@SA@@43?>>?????@!@@@@@@@@@డk9extract_concrete_typedecl%CtypeXfqqYfqq@ \fqq]fqq@@ @@@ @@@V@ @@@U @@@T@@S@@R3hgghhhhh@*6`@-@.@@@@ఐQ#envzfqq{fqq@6@@v@@ఐJ"tyfqqfqq@@@z@@3@@ :@@@`!@Ġ(Typedeclgqqgqq@ @gqqgqq@@ @@@k5@ఠ$pathߠgqqgqq@A@@ @@@lC@ঠ)type_kindgqqgqq@ Ġ,Type_variantgqqgqr@ %@gqrgqr@@  @@@@@@b@@ @ @@@g@@@@@ @@@k@@@gqqgqr@@ 0@@@M@s@@@Igqr@@ @@@x@@ @@@{@@@డ0find_type_descrs#Envhr rhr r@ hr rhr r/@@˰@@@@@@@@@@@@@@@@@3@ib@c@d@@@@ఐp$pathhr r0hr r4@ @@@@@N@N@@@ఐ#env-hr r5.hr r8@@@)$@@:@@@@@(@Ġ,Type_variant>ir>rF?ir>rR@ ఠ%cstrsGir>rTHir>rY@ZA@@ @@@@@@F@@Uir>rZVir>r[@@ @@@N@@@[ir>r\@@ @@@S@@ @@@V@@@ఐ"%cstrsiir>r`jir>re@!@"@#@@X3hgghhhhh@b,@@@@ujrfrnvjrfro@@ 4@@@n@@ 7@@@q@@@డ+fatal_errorjrfrsjrfr~@e9@@@e9@@@yO@@@@@ !Parmatch.get_variant_constructorsjrfrjrfr@@jrfrjrfr@@eO@@@O@O@@@ @@@@@Ahr rkrr@@3@@@@@lrrlrr@@ `@@@G@@ c@@@J@@@డ+fatal_errorlrrlrr@es@@@es@@@M@@@]@@ !Parmatch.get_variant_constructorslrrlrr@@lrr@@e@@@M@M@p@@@@q@@@Afqq@@3@s@@@A@H@@A@@@Ǡ.ConstructorSetHnrrnrr@A@гРf#Set$Makenrrnrs@ nrsnrs@@@3@ @ @ @@@#Ord퐡+Stdlib__Set+OrderedType#elt@;@@@A!t@@@@@@@'set.mliF//EF//U@@@@s@A@!t@;@@@A@@@@@ J U Y J U _@@@@D@A@%empty@@@@M ~ M ~ @@,E@@#add@1@@@@@@@@@@@@@@@/P  0P  @@CF@@)singleton@@@@)@@@@@@@V  AV  @@TG@@&remove@(@@@@<@@@?@@@@@@@@VY 5 9WY 5 R@@jH@@%union@M@@@@R@@@U@@@@@ @@ @l_]am_]w@@I@@%inter@c@@@ @h@@@ k@@@ @@@@@bb@@J@@(disjoint@y@@@@~@@@$boolE@@@@@@@@ee@@K@@$diff@@@@@@@@@@@@@@@@i(,i(A@@L@@(cardinal@@@@#intA@@@@@@mm@@M@@(elements@@@@$listK@@@@@@@@@rr7@@N@@'min_elt@@@@@@@@@@x x5@@O@@+min_elt_opt@@@@&optionL@@@@@@@@@}}@@P@@'max_elt@@@@@@@@@@@@+Q@@+max_elt_opt@@@@)@@@@@@@@@-.>@@AR@@&choose@$@@@@@@@@@>?@@RS@@*choose_opt@5@@@P-@@@@@@@@@TU@@hT@@$find@<@@@@P@@@D@@@@@@@@jk@@~U@@(find_opt@R@@@@f@@@^@@@@@@@@@@@x|x@@V@@*find_first@@o@@@@@@@@@@@@{@@@@@@@@KOKx@@W@@.find_first_opt@@@@@@@@@@@@@@@@@@@@@@@@@RVR@@X@@)find_last@@@@@=@@@@@@@@@@@@@@@@@{{@@Y@@-find_last_opt@@@@@Y@@@@@@@@@@@@@@@@@@@@@@Z@@$iter@@@@@$unitF@@@@@@@@@ @@@@@@@@@@2[@@$fold@@@@@@#acc@@@@@@"@@@@  @@@@@@@;<@@O\@@#map@@%@@@(@@@@@@<@@@?@@@@@@@@VW@@j]@@&filter @@@@@@@@@@@@X@@@[@@@@@@@@r  s  @@^@@*filter_map @@\@@@c@@@@@@@@@x@@@{@@@@@@@@"" ""7@@_@@)partition @@|@@@ @@@@@@@@@@@@@@@@@@@@@@@@$;$?$;$i@@`@@%split @@@@@@@@@@@@@>@@@@@@@@@@@@@@%Z%^%Z%@@a@@(is_empty @@@@U@@@@@@'$'('$'?@@b@@,is_singleton@@@@~g@@@}@@|@'p't'p'@@c@@#mem@@@@{@@@@z~@@@y@@x@@w@ '' '(@@+d@@%equal@@@@v@@@@u@@@t@@s@@r@.(A(E/(A(^@@Be@@'compare@%@@@q@*@@@p@@@o@@n@@m@E((F((@@Yf@@&subset@<@@@l@A@@@k@@@j@@i@@h@\)_)c])_)}@@pg@@'for_all@@F@@@g@@@f@@e@^@@@d@@@c@@b@@a@y))z)*@@h@@&exists@@c@@@`@@@_@@^@{@@@]@@@\@@[@@Z@*d*h*d*@@i@@'to_list@@@@YѠ@@@X@@@W@@V@%++!%++<@@j@@'of_list@@@@U@@@T@@@S@@R@)+|+)+|+@@k@@+to_seq_from@@@@Q@@@@P&Stdlib#Seq!t@@@O@@@N@@M@@L@/,w,{/,w,@@l@@&to_seq@@@@K#Seq!t@@@J@@@I@@H@4-0-44-0-O@@m@@*to_rev_seq@@@@G5#Seq!t@@@F@@@E@@D@8--8--@@)n@@'add_seq@K#Seq!t@@@C@@@B@@@@A@@@@@@?@@>@3<..4<..4@@Go@@&of_seq@i#Seq!t"@@@=@@@<5@@@;@@:@L@..M@..@@`p@@@@m@ojm@БA+!tIossoss@@;@@@A7constructor_description@@@@@@@ossoss1@@@@A@@Aг  oss @@3@;@@@A#@@@@@@@@@@@@@ @@@@@3@@@@ఠ'compareps2s8ps2s?@A@@@@@@&J@@@@@0J@ @@@J@ @@ J@@@J@3@OI@@@࣠@"c1Aps2s@ps2sB@A@@$@@@@"c2Aps2sCps2sE@A@@)3@ 5@@@@@@@@డb&String'compareps2sHps2sN@ ps2sOps2sV@@@@@@@@@@@@@@@@@@@3        @(4S@+@,@@@@ఐK"c1!ps2sW"ps2sY@6@@k@)cstr_name(ps2sZ)ps2sc@ @@@@@'M@%@@ఐX"c2<ps2sd=ps2sf@*@@}-@)cstr_nameCps2sgDps2sp@0 @@#@@@1M@/9@@O@@:@t A@J@9@A@Pps2s4 @@@@A@@@@@3RQQRRRRR@@@Znrs[qsqst@ 3XWWXXXXX@S@@@@^_qsqsu@HJ;@@@A@@@,@"@@@@G@@@CA@BJ;@@@A@@@@@A@@@>A@=  @@@-@<@9@8!@ @@@2@@@@1@@@0@@/@@.@7@4@3"@@@@5@@@4@@3@2@/@.#@@@@:@-@@@90@@@8@@7@@6@-@*@)$@9@@@?@>@@@>A@@@=@@<@@;@(@%@$%@J@@@D@O@@@CR@@@B@@A@@@@#@ @&@[@@@I@`@@@H@@@G@@F@@E@@@'@l@@@N@q@@@Mt@@@L@@K@@J@@@(@}@@@Q@@@P@@O@@ @ )@@@@U @@@T@@@S@@R@@@*@@@@X@@@W@@V@@@+@@@@\@@@[@@@Z@@Y@@@,@@@@_@@@^@@]@@@-@@@@c@@@b@@@a@@`@@@.@@@@f@@@e@@d@@@/@@@@j@@@i@@@h@@g@@@0@@@@o@@@@n@@@m@@l@@k@@@1@@@@u@@@@t٠@@@s@@@r@@q@@p@@@2@@ @@@|@@@{@@z@@@@y@@@x@@w@@v@@@3@@!@@@@@@@@@3@@@̠/@@@@@@@@~@@}@@@4@@;@@@@@@@@@M@@@F@@@@@@@@@@5@@Q@@@@@@@@@c@@@_@@@@@@@@@@@@@6@@k@@@@@@@@@}@@@@@@@@@@@@@7@@@@@@@@@@@@@@@@@@@@@@@@8@@@@@@@@@@@@@@@@@@@@@@@@9@@@@@@@@@@@@@@@@@@@@@@@@:@@@@@@@@@@@@@@@@@@@@@@@@@@@;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@<@@@@@@@@@@@@Ġ@@@@Š@@@@@@@@@@@@@=@!@@@@@@@@@@@>@-@@@@@@@@@@@?@/@@@@>@@@~@@@@@@@@}@z@y@@J@@@@O@@@x@@@@@@@@w@t@sA@[@@@@`@@@r@@@@@@@@q@n@mB@l@@@@q@@@l@@@@@@@@k@h@gC@@u@@@f@@@@@@@@@e@@@@@@@@d@a@`D@@@@@_@@@@@@@@@^@@@@@@@@]@Z@YE@@@@X@@@@@@@@@W@T@SF@R@@@@@@@@@@@@Q@N@MG@@@@@@@@LIH@@@@@@@@@@@G@D@CH@@@@^BA@@@@@@@@@@@=@<I@@@@p;:@@@@@@@@@9@6@5J@43@@@ @@@ @@@@ @@@ @@@@@2@/@.K@-,@@@@@@$@@@@@ @+@(@@@@@nrr@@A@C@ఠ0complete_constrsˠtsstss@A@@@9@@@fK@b@@@aK@;@@@@[@@@ZK@@$listK@@@M@@@@K@A@@BK@<@@=K@:3@@~}A@tsA@qp@kj@[Z@QP@BA@32@$#@@@@@@@@@@@@@po@XW@DC@,+@@@@@@@@@xw@ih@ZY@KJ@<;@('@@@@@@@@@@ J@@@࣠@&constrAFtssGtss@YA@@3EDDEEEEE@pNtssOuu@@@@@  @@,used_constrsAZtss[tss@mA@@3YXXYYYYY@!@@@@@@@@@ఠ!cϠmussnuss@A@@K@dK@E3onnooooo@#@@@@@ఐ=&construssust@"@@@(pat_descustust @ǰ @@K@G@A@uss@@@ఠ'constrsРvttvtt@A@@@@@\@@@[N@I3@2>7@8@9@@@ఐ 8get_variant_constructorsvttvtt7@ @@@@@@P@o@@@O%@@@N@@@M@@L@@K @@ఐ&constrvtt8vtt>@s@@!/@'pat_envvtt?vttF@װ @@@@@^O@cO@`=@@ఐ!cvttGvttH@I@@L@(cstr_resvttIvttQ@հ @@@@@]O@gO@eZ@@O @@b[@A@vtt @@@ఠ,used_constrsѠ wtUt[ wtUtg@A@@K @@@YN@h3@r}@~@@@@డ 5'of_list.ConstructorSet&wtUtj'wtUtx@ *wtUty+wtUt@@@Sl@@@6@@@5%@@@4@@3@R@O@@@`y@@@R@@@Q2@@@P@@O1@@ఐ,used_constrsQwtUtRwtUt@ݰ@@>@@/@@C?@A@VwtUtW@@@ఠ&othersҠaxttbxtt@tA@@@@@N@c@@@qN@^3lkklllll@\kd@e@f@@@డ$List&filteryttytt@ yttytt@@@@!a@>)@@@@@@@@D@@@@5@@@@@@@@@@@+^-)-),^-)-X@@*o@$@@@@>@@@f@@e@F@@@dKJ@@@b@@a@@`3@E@@@@࣠@%cnstrAzttztt@A@@^X@@@@డ<#notzttztt@,̰@@@,@@@},@@@|@@{3@o#w@@@@@@డ #mem.ConstructorSetzttztt@ zttztt@@@5@@@@@@@@@@@@@@ @@ǰ@@@C@@@@@@@@@@@@@@6@@ఐ]%cnstrztt ztt@@@@C@@ఐ ,used_constrs,ztt-ztt@@@!@@@R@R@W@@7ztt8ztt@@-0@@@@R@a@@m @@@@@Q@g@GzttHztt@@@@@@t@@sO@O@@@ఐĠ'constrs\{tt]{tt@F@@̠@@@rO@O@@@ @@@A@ixtt @@@@ఠ%constԠx}u8u>y}u8uC@A@@+@@@N@@@@N@3@-&@'@(@@@@ఠ(nonconstՠ}u8uE}u8uM@A@@F@@@N@@@' @@@'@@@@డ$List)partition~uPuT~uPuX@ ~uPuY~uPub@@@@!a@>eZ@@@A@@A@u@@@A@S@@@A@>@@@A@@A@@A@@A@f3E3Eg3E3@@ev@.)@@@@b"@@@@@@!j@@@@sr@@@@^x@@@@@@@@@3@s@@@@࣠@%cnstrA ~uPuh ~uPum@A@@@@@@డFH~uPu~uPu@E@@@@@@P@@F@@@@@@@3"!!"""""@&@@@@@@ఐ/%cnstr6~uPuq7~uPuv@@@@*cstr_arity=~uPuw>~uPu@ @@!@@@G~uPuH~uPu@@,Q@$@@@@@@@Q@*@R~uPucS~uPu@@@@@@@@O@O@@@ఐ&othersg~uPuh~uPu@߰@@@@@O@O@w@@ @@@@@@O@@A@|}u8u:@@డ!@uuuu@@!a@s@@@@Ǡ @@@̠@@@@@@@@nnnn@@@@@@@@@@@@@@@@@@@@3@.C<@=@>)"@#@$@@@@ఐK%constuuuu@@@?@@@N@N@@@ఐE(nonconstuu@!@@H @@@N@N@.@@ @@/@h@@\@|@@t@@@@@@B@[@@t@A@:K@@A@@@@ఠ3build_other_constrsנuuuu@ A@@@'@@@@@@@Q@@@@@@Q@@@@K@ @k&@@@-K@}b@@@&@@@%K@@@K@ @@ K@ 3%$$%%%%%@P~@@@@@࣠@#envA8uu9uu@KA@@=376677777@J@uuAww@@@@@  @@!pALuuMuu@_A@@43KJJKKKKK@!T@@@@@@@@ Рt$Head(Patternseuufuu@ iuujuu@@@3ihhiiiii@+U@"@#@@@@A3lkklllll@@@tuu @@ @3qppqqqqq@@@ఐ9!puuuu@@@i3@@@@(pat_descuuuu@ʰ @@5@@@3K@0K@K@@Ġ)Constructuuuv@Vঠ(cstr_taguv uv@SĠ.Cstr_extensionuvuv#@*@uv$uv%@@*@@@#3@N@@@@ @*@@@$@@@ @@h@@@% @@@uvuv(@@z@@@'Q@&@@@0@@E@@E@@@ఐ%)extra_patuv,uv5@j@@@Ġ)Constructv6v:v6vC@ঠ(cstr_tagvDvMvDvU@Ġ-Cstr_constantvDvXvDve@!Ơ@vDvfvDvg@@!@@@[@1@@@ @@@@@2@Ġ*Cstr_blockvDvjvDvt@!@vDvuvDvv@@!@@@]@6@@@ @@@@@7@@' @@@@@8@Ġ,Cstr_unboxed/vDvy0vDv@!@@@@@@@;@@7@@@@@<@@@:vDvK;vDv@@B@@@Q@|Q@=@!c۠GvDvHvDv@ZAN@@@~R@?PvDvJQvDv@@@@@m@@@@@@@@ఠ&constrܠ]vv^vv@pA@@j@@@Q@@@@Q@3gffggggg@+%@)@&@@@(pat_descxvvyvv@ఐ:!cvvvv@@@@@@@Q@@@@@@@@@@@U@@@@@@@@Q@@@@@@Q@@;@@@Q@@k@@@Q@@@ఐx!pvvvv@S@@X@vvvv@@f[@A@vv@@@ఠ*get_constrݠvvvv@A@@@a@@@Q@@@@Q@@@@Q@@@Q@3@@@@@@࣠@!qAvvvv@ A@@"3@/vvwwK@@@@@  @@ఐ!qvvvv@8@@@@93@$@@@(pat_descvvvv@Z @@= @Ġ)Construct'vw(vw@۠ఠ!c0vw1vw@CA@@@@@#@@@@@X$@@X$@@@ఐ!c?vw@vw@@@@@]3>==>>>>>@0@@@@Kww%Lww&@@m9@@m9@@@డY+fatal_errorVww*Www5@u @@@u @@@xU@@@L@@3Parmatch.get_constrhww7iwwJ@@kww6j@@u@@@U@U@_@@r@@`@@@Auvvt@@3qppqqqqq@b@@@vA@Q@}@A@z@@ఠ,used_constrswOw[wOwg@A@@;@@@Q@@@@Q@3@@@@@@డ$List#mapwOwkwOwo@ wOwpwOws@@@@@@"@@@נ@@@+@@@@@@@3@&@@@@࣠@A@ఠ!pwOwzwOw{@A@@>@@@wOw|wOw}@@D@@wOwywOw~@@@Ԡ@@@M@@ @@ఐ*get_constrwOwwOw@X@@@t@@@@@@@@@@@3@h3@-@.@@@@ఐ:!pwOwwOw@ @@@@ @@|@ wOwt wOw@@@@@R@R@@@ఐ預#envwOwwOw@ΰ@@"h@@@@@A@#wOwW@@ఐ3.pat_of_constrs-ww.ww@-@@@n:@@@@]<@@@@@@}@@@@@@ @@ @@ 3@??@@@@@@@@@@@@ఐ !pRwwSww@@@9@@ఐ0complete_constrsawwbww@7@@@k@@@<@@@;@ @@@:@@@9@@@8@@@7@@6@@58@@ఐ*&constrwwww@@@@@@N@@@MR@QR@OP@@ఐ,used_constrswwww@Z@@ ɠ@@@L@@@KR@UR@Sh@@wwww@@ڠ@@@JQ@(@@@'Q@[R@Ix@@@@y@@@,@@@@@@U@@wwww@@<D@@<D@@@ఐ)extra_patww@`@@M@@@Auu@@@uu@@3@h@@@A@K@{@A@@@@ఠ4build_other_constantx xx x$@A@@@@@@@@K@A@K@}@@ h@K@A@K@@K@@@K@ K@A@K@@@ @@@ K@@M@ER@@@@R@@@@@@R@@@@K@à?@@@K@@@K@@@K@@@K@@@K@@@K@~@@K@|3>==>>>>>@RK@L@M@@@࣠@$projAQx x%Rx x)@dA@@g3POOPPPPP@tYx x Zxy @@@@@  @@$makeAex x*fx x.@xA@@l3dccddddd@!~@@@@@@@@%firstAvx x/wx x4@A@@q3uttuuuuu@@@@@@@@@$nextAx x5x x9@A@@|3@@@@@@@@@!pAx x:x x;@A@@3@@@@@@@@@#envAx x<x x?@A@@3@@@@@@@@@@ఠ#allxBxHxBxK@A@@ʠK@K@@@@R@3@*@!@"@@@డ?$List#mapxBxNxBxR@ xBxSxBxV@@@@@@!@@@@@@*@@@@@@@3@&@@@@࣠@EA@ఠ!pxBx]xBx^@A@@>@@@ xBx` xBxa@@D@@xBx\xBxb@@@堠@@@M@@ @@ఐԠ$proj"xBxf#xBxj@@@73      @\'@!@"@@@@ఐ0!p4xBxk5xBxl@@@@(pat_desc;xBxm<xBxu@{ @@ @@@@K@@xBxWAxBxv@@@@@S@S@~@@ఐ#envRxBxwSxBxz@@@0e@@|@@@A@WxBxD@@Aఠ)try_constbx~xcx~x@uA@@@tR@k@@@R@@@3jiijjjjj@@@@@@࣠@!iA}x~x~x~x@A@@3|{{|||||@%@ @@S@@#@$@@@@  @@డ$List#memxxxx@ xxxx@@+u@@@@+q@@@+p@@@@@@@3@,8G@/@0@@@@ఐ?!ixxxx@ @@T@@ఐ #allxxxx@W@@+ @@@T@T@%@@9 @@F@@@T@+@ఐ~)try_constxxxx@_@@@}|@@9@@ఐm$nextxxxx@U@@H@@ఐ!ixxxx@R@@U@@xxxx@@X@@%@@Y@ఐ(make_patxxxx@,@@@@@@@@@@@@@@@@@@@@v@@ఐ̠$make.xx/xx@@@4@@ఐ!i;xx<xx@@@@@?xx@xx@@@@@ఐ!pMxxNxx@@@6@(pat_typeTxxUxx@\ @@@@@T@T@@@ఐՠ!pjxxkxx@@@S@'pat_envqxxrxx@p @@@@@T@ T@@@m @@@}xx @@@ A@@@@R@ @@@x~x@@ఐ,)try_constxxxy@ @@@+@@@@@3@@@@@ఐ/%firstxyI@J@@ @@K@@f@"L@@g7@PM@@h@WNA@K@"U@A@R@RQ@h@ఠ0some_private_tagylypyly@A@@@@@$K@#3@}@@@@@2ylyyly@@ylyyly@@ @A@ylyl@@@@ఠ+build_otheryyyy@A@@@#)@@@:K@&@@@%K@&@@r@@@S@@@@@@S@{@@@K@+-@@@=K@,@@-K@'@@(K@%3@M[T@U@V@@@࣠@#extAyyyy@,A@@;3@H!yy")s@@@@@  @@#envA-yy.yy@@A@@@3,++,,,,,@!R@@@@@@@@ఐ#env?yy@yy@Q@@@@R3>==>>>>>@@@@ĠNyyOyy@@@@@`3LKKLLLLL@@@@@a@@@ఐ%omegaYyyZyy@,@@V @Ġ>eyyfyy@=@ఠ!dryysyy@A@@zK@65@@@|yy}yy@@K@K@,K@K@K@K@K@PK@K@K@gK@7Q@@yyyy@@@%@@@9Z@@yyyy@@K@K@kK@OK@K@K@K@K@lK@=K@K@K@K@QK@K@K@K@K@K@8K@4@@@:@@@:.@@@@@@@ Р$Head(Patternsyyyy@ yyyz@@@3@|u@v@w@@@@A3@@@yy @@ @3@@@ఐ!dzzzz@@@3@@@@(pat_desczzzz@D @@@@@K@K@K@K@K@K@CK@A@Ġ)Construct$z#z+%z#z4@ؠঠ(cstr_tag/z#z70z#z?@Ġ.Cstr_extension7z#zB8z#zP@2{@<z#zQ=z#zR@@2z@@@M3<;;<<<<<@V@@@@ @2w@@@N@@@ @@@@@O @@@Lz#z5Mz#zT@@@@@QS@P@@@0@@M@@M@@@ఐ(make_pat]zz^zz@z@@@@e@K@!@@@#K@R@@ @@@@@@@@@@@@@@@@?@@ภ(Tpat_varzzzz@డi,create_local%Identzzzz@ zzzz@@g@@@g@@@d@@@@@h@@+*extension*zzzz@@zzzz@@~@@@T@T@|@@% @@@@@@T@@ຠ3#txt#loc!a@@@@@@@ 3#loc !t@@@@@A @Azz@@g@@Ayy@@f@#txtz{z{ @+*extension*z{ z{@@z{ z{@@@@@S@@'#locz{z{@ఐ!dz{!z{"@&@@@'pat_locz{#z{*@J @@A@@@S@@@@z{z{+@@@@@S@@@@ @డC#Uid@@=,@@ఐ!d{|{|@2@@;@(pat_type!{|"{|@) @@@@@MV@RV@OI@@ఐŠ!d7{|8{|@O@@X@'pat_env>{|?{|$@= @@@@@LV@WV@Tf@@I{{J{|%@@,f@@@9@XV@Kp@@ @@@@@YU@8v@ఐ)extra_pat_|9|I`|9|R@@@\K@Z@ఐ w3build_other_constrsn|f|vo|f|@+@@@@@@@f@@@e@@@d@@@c@u@@@b@@@a@@@`@@_@@^@@ఐp#envÚ|f|Û|f|@[@@@@ఐ5!dç|f|è|f|@@@4@@=@@EK@~@@@}@ò{{ @@@@ù||ú||@@#@@#@@@ఐ ͠3build_other_constrs||||@@@@@Tu@@@@@@@W@@@@@@u@@@9@@@@@@@@@@N@@ఐƠ#env||||@@@[@@ఐ!d||||@@@h@@=@@i@@@A{{||@@@Ġ'Variant||||@ঠ(cstr_row||||A3@@@Y@@B3@@@tA@3@@AuA@3@@CvAz@wvA@ఠ@9A@@@@b@@@a3+**+++++@E@@@(type_row7||8||A3@@@[@@C3@@@A@3@@AA@3@@BA@A@ఠ@WA@@@@@j@@@i@@h@@@P||Q||@@@@@lS@k'@@@J@@Q(@@Q(@@@@ఠ$tagsb}}c}}@uA@@p@@@S@@@@S@3lkklllll@OL@N@M2/@1@0@@@డ$List#mapă}}"Ą}}&@ ć}}'Ĉ}}*@@_@@@@S@&@@@@@@/@@@@@@@3ĖĕĕĖĖĖĖĖ@*@@@@࣠@A@ఠ!dį}+}?İ}+}@@A@@S@D@@@Ĺ}+}Bĺ}+}C@@7J@@ļ}+}>Ľ}+}D@@@@@@@S@@ @@ఐ"!d}H}^}H}_@!@"@#@@"3@e,@@@(pat_desc}H}`}H}h@ @@@@K@S@@Ġ'Variant}n}}n}@ঠ#tag}n}}n}A3@@@@@@3@@AVA@3@@BWAp@m3ji@@CXA\@YXA@ఠ@A@@@@9@@@}n}}n}@@@@@X@A@@@'@@9B@@9B@@@ఐ#tag}n}}n}@@@@@3@N@@@@*}}+}}@@NW@@NW@@@ ภ3}}4}}@@@@@@@ d@:}}@@f@@@A<}H}X @@387788888@h@@@?}+}9@}}@@@@@T@T@@@ఐ'#envQ}}R}}@@@c@@@@@A@V}} @@@ఠ.make_other_pata}}b}}@tA@@@@@@NS@@@@@!S@@@@K@@@JU@0@@@?S@@@S@@@S@3ŁŀŀŁŁŁŁŁ@*#@$@%@@@࣠@#tag AŔ}}ŕ}}@ŧA@@/3œŒŒœœœœœ@<Ŝ}}ŝ~O~@@@@@  @@%const AŨ}~ũ}~@ŻA@@:3ŧŦŦŧŧŧŧŧ@!F@@@@@@@@@ఠ#arg Ż~~ż~~@A@@@@@*V@#@@@$V@ 3@+[@"@#@@@ఐ1%const~~#~~(@ @@g@ภ$None~~.~~2@!@@@!!@@@%@ภ$Some~~8~~<@డ %omega(Patterns~~=~~E@ ~~F~~K@@@@=9@@@@$V@)<@~~ @@&>@A@ ~~ @@ఐ(make_pat~O~]~O~e@0@@@@@@@2@@@@1@@@/@@.@@-@@,3!  !!!!!@]qj@k@l@@@@ภ,Tpat_variant2~O~g3~O~s@cఐ#tag<~O~t=~O~w@@@@ఐ#argG~O~yH~O~|@!@@Dë@@@Q@@@P@@@OV@YV@W3@ఐ8(cstr_rowa~O~~b~O~@@@{v@@@S@@@RV@mV@kI@@p~O~fq~O~@@U@LN@@ఐ!dƀ~O~Ɓ~O~@@@ ]@(pat_typeƇ~O~ƈ~O~@ @@&@@@AV@sV@pk@@ఐ+!dƝ~O~ƞ~O~@@@*z@'pat_envƤ~O~@  @@6@@@@V@xV@u@@@@5@@@6@A@KS@|@A@@@ఠ#row Ƽ~~ƽ~~@A@@@@@S@}3ƿƿ@@jc@d@e@@@ఐ(type_row~~~~@^@@@8@@@5@@@@@@@ภ;f~~~~@;e@@@K@@@T@'@@@@+(@A@~~ @@డc$List)fold_left~~~~@ ~~~@@?ɰ@@@@hUS@@@@@@ @@@ S@@@@S@@@L@@@4S@@@@@S@@@S@'@@@@@)@?@@@/@@@@@@343344444@u|@}@~@@@@࣠@&others AJK"@]A@@D3IHHIIIII@@@@@@@ğ A@ఠ#tag ^$_'@qA@@=3]\\]]]]]@*![@@@@@@ఠ!f m(n)@ǀA@@E@@r#s*@@@S@N@@@@ @@డ$List#memNj.Cnj.G@ Ǐ.Hǐ.K@@4g@@@xS@7S@S@S@S@@4l@@@4k@@@@@@@3ǢǡǡǢǢǢǢǢ@GP@J@KB@<@=@@@@ఐX#tagǶ.LǷ.O@@@@@ఐa$tags.P.T@=@@48@@@W@W@'@@D @@C@@@W@-@ఐ&others.Z.`@y@@7@డ+.row_field_reprf~f@@@@@@@@@@@@N@@ఐ!fff@V@@[@@@@@@@_@Ġ'Rabsent@@@@@@@@3@o@@@@@@@@@@ఐڠ&others!"@@@@Ġ'Reither.&/-@@ఠ!c 7/80@JA@@@@@@398899999@@@@@B2C3@@@!@@@@@@ @@N5O6@@@$@@@@@@&T7@@@@@@@@@@@@@ภI`PaR@8ఐ .make_other_patl;mI@@@@@@@@@@@@@@@@@@@@@@@@3~~@SL@M@N@@@@ఐ3#tagȑJȒM@@@o@@ఐg!cȞNȟO@@@@@@Y@Y@$@@= @@%@ఐj&othersȱSȲY@O@@0@@I@@1@Ġ(RpresentȿZnZv@?nఠ#arg ZwZz@A@@?v@@@@@@,@@@ @@@@@0@@@@@3@@@ภȰZZ@ఐ.make_other_patZ~Z@&@@@@@@$@g@@@#|<:@@@"@@@!@@@ @@@@3@]A:@;@<@@@@ఐ#tagZZ@h@@@@డLJLNZZ@K@@@?Ϡp@@@F@@@EY@<@ P@@@;@@:@@9.@@ఐs#arg;Z<Z@8@@;@@ภ$NoneGZHZ@@@@'Y@JI@@MZNZ@@@@@3@KZ@DS@@l @@HS@0V@ఐ&othersaZbZ@@@Za@@z@@[b@@@Affx@@]Q@h.@@@_S@jkZ@@@h@Uj@@@@T@fT@d&@@ภ|}@@@@uS@kH@@డ*row_fieldsɍɎ@5@@@@@@r5@5@@@p@@@@@q@@o@@@n@@ml@@ఐ#rowɯɰ@v@@@@@U@U@@@ɺɻ@@Bq@@@T@U@{@@ @@w@Ġd@c@@@@-X@@@@@@@@@@@@3@@@@@=h(&@@@@@@@@@@@@@@@@ఠ#tag  @ A@@@@@U@3@@@@డ*5has_fixed_explanation%Btype ! &@  ' <@@8}@@@8}@@@8{@@@@@3@@@@@ఐr#row. =/ @@@@8@@@V@V@@@& @@@@@V@@ఐ 0some_private_tagE FF V@ :@@JU@&@Aఠ%mktag T\vU\{@gA@@@@@@V@V@@@^@࣠@#tag Al\|m\@A@@3kjjkkkkk@8"@@@W@@ @!@@@@  @@డ$List#memʈʉ@ ʌʍ@@7d@@@8V@@7a@@@7`@@@@@@@3ʗʖʖʗʗʗʗʗ@-9E@0@1@@@@ఐ@#tagʩʪ@ @@R@@ఐT$tagsʶʷ@0@@7.@@@X@X@%@@: @@6@@@X@+@ఐ|%mktag@`@@@{v@@9@@డI!^@@@@@T@@@@S@@@R@@Q@@P@ ^6^6 ^6^\@@ q@@@@@@@@@@@@@@@@@@j@@ఐ#tag@t@@w@@!'@@@@8@@@Y@Y@@@()@@V@@@]@@@ఐ̠#tag56@@@@9@@@A@@@@V@@@@@\n @@ఐ%mktagJK@ڰ@@@@@@@@3MLLMMMMM@@@@@+AnyOtherTag[\@@^_@@@@@ V@ @@@@f@'@@gd@h  @@!f@A@j @@ఐ.make_other_pattu@@@@@@@@@@@Š@@@@@@@@@@@@@3ˇˆˆˇˇˇˇˇ@T@@@@@@ఐ#tag˙˚@ @@@@@&U@*U@)@@ภ\˫ˬ@[@@@"@@@%U@.'@@@@@ K@"*@M @@ @Ġ02@ఠ#pat - @A @@P@@@@@@@@@@ఠ*other_pats <@A @@=h(&@@@@@@@@@@@@@@@(@@Mx86@@@@@@@@@@@@@@\ŇGE@@@@@@@@@@@@@@@డʁ$List)fold_left@P@T@  @U!@^@@D@@@@Ʉm@ +@1K@T@n@@@T@:@ɔ@@@}T@<@@>@@=@@D @@@;@@9@@8@@73A@@AAAAA@~@@pj@k@l@@@@࣠@%p_res AY_vZ_{@lA@@53XWWXXXXX@@@@@@@#pat Ah_|i_@{A@@43gffggggg@'G@@@@@@@@ఐ#(make_patz{@ė@@@ƠYK@3@@@5K@T@sW@[@'@@@]@ @@@\@@@Z@@Y@@X@@W3̖̖̖̖̖̖̕̕@0<f@3@4@@@@ภ'Tpat_oŗ̨@ఐL#paṯ̲@@@|@ఐf%p_res̼̽@P@@$@ภ$None@@@@@@@x@@@wX@7@@@@VW@t<@@ఐ q!d@ @@ pK@(pat_type@ @@Ɖ@@@lX@X@Y@@ఐ !d@ @@ h@'pat_env@ @@ƚ@@@kX@X@v@@ @@T@jy@_q@@@@@@M@@LU@U@@@ఐ`#pat)*@@@T@@@ఐZ*other_pats89@@@E @@@KU@U@@@( @@ >@@@AE~~F@@ AD@Z@@ B@@@ C@@@ D@Ġ(ConstantT U@Ġ*Const_char]^@p@b c!@@j@@@r3baabbbbb@ |@@@@@ @@ @@@s@@@ @@ f@@ f@@@@ఠ)all_chars w%3x%<@͊A@@@@@cS@>@@@KS@9 V@డ$List#map͓?K͔?O@ ͗?P͘?S@@o@@@@ S@@!@@A@ɠ@@@?*@@@=@@<@@;3ͦͥͥͦͦͦͦͦ@ @@@@࣠@ A@ఠ!p ͿThTi@A@@ S@O @@@TjTk@@ E @@TgTl@@@@ N@@S @@ @@ఐ"!pTvTw@!@"@#@@"3@ ,@@@(pat_descTxT@+ @@Ô@ @rK@ZS@X@Ġ(Constant@Ġ*Const_char  @ఠ!c @%A@@@@@_4@@@@@@@@`:@@@ @@2;@@2;@@@ఐ!c'(@@@@@3&%%&&&&&@G@@@@34@@GP@@GP@@@ ภ<=@@@@@@@g]@C@@_@@@AETp @@3A@@AAAAA@a@@@HTbI@@@@@MT@nT@m @@ఐ0#envZ[@@@l@@@@ .@A@_%/@@Aఠ*find_other jk@}A@@@?@@@%S@t@S@wž@@@D@@@CU@.@@@=S@x@@{@@z3΂΁΁΂΂΂΂΂@ @@@@@࣠@!i AΕΖ@ΨA@@)3ΔΓΓΔΔΔΔΔ@5@0@-,@@yT@u@@vT@s@7@8@@@@@@$imax Aήί@A@@;3έάάέέέέέ@&E@@@@@@@@డ*,-@@@@\S@&S@S@S@@ @@@@@@@3@!-^@$@%@@@@ఐM!i*+@-@@r@@ఐA$imax.2@@@x@@@@d@@@V@#@డf%raise8=@0@@@0@@@V@@@5@@ภ)Not_found>G@@@@0'@@@V@F@@@@G@@ఠ"ci $Yk%Ym@7A@@$charB@@@V@3+**+++++@^@@@డͣ$Char#chr>Yp?Yt@ BYuCYx@@@#intA@@@$@@@@@@(char.mlicc@@,Stdlib__CharB@@@@@@@3@@@@@0@@ఐؠ!ijYykYz@@@=@@0@@D>@A@oYg@@డ$List#mem~π~@ σ~τ~@@<[@@@a@@@U@@<\ @@@<[@@@@@@@3ϒϑϑϒϒϒϒϒ@yr@s@t@@@@ఐ"ciϤ~ϥ~@ @@@@ఐ:)all_charsϱ~ϲ~@*@@<2@@@V@ V@%@@> @@1@@@ V@+@ఐa*find_other@2@@@`@[Z@@ @@ ;@@డF@s@u@@r@@@@r@@@@@o@@@@n@@@@@@@V@@ఐe!i@D@@b@@A"@@@@@@$W@(W@'q@@  @@W@#v@@ఐl$imax@E@@@@P@@@ఐΠ(make_pat%&@B@@@@@@@0@ɽ@@@/ɸ@@@-@@,@@+@@*@@ภ-Tpat_constantAB @%ภ*Const_charJ K@]ఐ0"ciTU@@@a@@@MV@OV@N@@_ `@@;@@@GV@L@@gh@@U@E@@ఐ!dwx@@@@(pat_type~&@Ɇ @@@@@?V@TV@Q@@ఐ"!dД'Е(@@@!@'pat_envЛ)М0@ɚ @@.@@@>V@YV@V@@ @@,@Ч~ @@0@: @@1y@Ъ'@@{@A@@@@;:@@a@@`S@^@@@г@@Aఠ)try_chars &о>Pп>Y@A@@@X@@@@S@m@@@@S@n@@oS@i@@@hS@c@@@vS@d@@f3@I@@@@ĠɃeseu@ɂ@@@@,3@X8@3@@eT@b@6@7@@@@@డ%omega(Patternseye@ ee@@@@-@Ġ@@ఠ"c1 '@1A@@S3@2@@@@ఠ"c2 (+,@>A@@X @@01@@@g@a@@p@ఠ$rest )?@@RA@@П}S@k@@@q&@@@ @@'@@@ఐꠐ*find_otherTU@@@@A@@@}@ȢȠ@@@|@@@{@@@z@@y@@x3dccddddd@|S@M@NG@A@B4-@.@/@@@@డ$Char$codeрс@ фх@@@@@@E@@@@@ǐ)%identityAA @@@E_F_ @@DA@@@@@@@@@@@@:@@ఐ"c1ѭѮ@B@@G@@ѱѲ@@BG@@@@W@Q@@డ/$Char$code@ @@J@@@@@@J@@@@@q@@ఐ"c2@x@@~@@@@7@W@@@@@S@@Ġ)Not_found  (@@@@@@@@@@@ఐJ)try_chars ,  5@@@@I0@@@@ఐؠ$rest 6 :@@@VS@@@@@@@@@@@B@@AK *!>\ @@@ @@@cJ@@S@7@@@(>H@@ఐt)try_chars2HR3H[@B@@@ɠ@m@@@۠@r@@@@@@@@l@@@@@(@@ภ1R\jSA*@a ]\m@@@@@S@S@ S@ E@@zm\on\r@@@@@S@S@S@ V@@' @@@@@@S@S@a@ภh҉\u7A`@A ғ\x@@8S@S@$S@#x@@ZҠ\zҡ\}@@5S@S@&S@%@@ @@2S@S@'@ภҳ\aA@p ҽ\@@,S@2S@S@=@@ @@,S@1S@?@ภA@` @@,S@JS@TS@S@@~@@,S@KS@VS@U@@ @@,S@IS@W@ภAޠ@డ$Char#chr@@@۰@@@@@@n@@@m@@l@@@01@@@@@uT@wT@v@@3 @@TS@b@xT@t@@డѴ$Char#chrOP@ ST@@@@@@@@|2@@@{@@z=@@fg@@$@@@T@T@M@@! @@|S@c@T@T@@p@@|S@aS@Y@ภA.A@/A@@@@dS@f@@6A@@@@LS@`m@@=A@@@@4S@Ht@@DA@@@@S@0{@@KA@(@@@S@@@ӥ\hS@@:.@@@S@@@{Z@@S@@]@@@^@@*@S_@@@Ġ(ConstantӼӽ@cĠ)Const_int@Ŋ@@@Ō@@@y3@@@@@@ @@s@@@z@@@ @@@@@@@ఐ4build_other_constant@@@@@ɉ@@R@ŭ@@@R@A@@@ ::@@K@ @@@ K@R@A@@@@!!A@@͓-K@@@@@=@͢<@@@@@@@@@ͩ3@@@@@@@@@@@@@@@Z@@@Ġ(Constant78@ޠĠ)Const_int@A&@ఠ!i +I'J(@\A@@ @@@3KJJKKKKK@e@@@@@R)@@@@@@@@ @@r@@@ఐ!i^-_.@@@@@w3]\\]]]]]@x@@@@h1i2@@@@@ ภ0q=rB@/@@@ @@@'@x6@@)@@A ,{  @@@} ~C@@@@@S@S@@@@ఠ!i -ԔDZԕD[@ԧA@@@@@ภ-Tpat_constantԞD_ԟDl@ภ)Const_intԧDmԨDv@lఐ!iԱDwԲDx@@@@@3԰ԯԯ԰԰԰԰԰@'@@@@ԸDy@@@@@T@ @@!@@ @@A/DQ @@@DPDz@@@Ր@@S@S@{@@@{{@@S@@@డH$succ{{@@Eu@@@vEy@@@u@@t(%succintAA @@@*+_+_*+_+@@l@@@@@@@@@@@@/@@ఐ!d{ {@ @@<@@ఐ렐#env{{@ְ@@'I@@;@@@Ġ(Constant#$@ʠĠ+Const_int32,-@Ɵ@12@@ơ@@@310011111@K@@@@@ @@@@@@@@ @@5@@5@@@ఐ_4build_other_constantEF@@@@@@R@R@@@@iR@A@ @@ ̡̡@_@K@@@@K@_R@A@@@@!!A@@-K@@@@@@ <@@@@@@@@@3@@@@@@@@@@@@@@@Z@@@Ġ(Constant՞՟@EĠ+Const_int32էը@ఠ!i .հձ@A@@"@@@I3ղձձղղղղղ@@@@@@չ@@\@@@J@@@ @@r@@@ఐ!i@@@@@w3@@@@@  @@@@@ ภė@Ė@@@p@@@Q'@@@)@@A  / @@@@@@@@BS@XS@W@@@ఠ!i 034@A@@@@@ภ-Tpat_constant8E@ภ+Const_int32FQ@ǁఐ!iRS@@@@@3@2'@@@@T@@@@@cT@h @@!@@ @@A/'* @@@))*U@@@Ր@@AS@mS@l{@@_i:Vb;Vd@@S@n@@డԱ%Int32$succLVeMVj@ PVkQVo@@@%int32N@@@2@@@1@@0@)int32.mliR  R  7@@-Stdlib__Int32K@@@@@@@@@@@@9@@ఐ!dyVpzVq@@@F@@ఐ\#envֆVrևVu@G@@S@@E@@@Ġ(Constant֔v~֕v@;Ġ+Const_int64֝v֞v@Ǿ@֢v֣v@@@@@3֢֢֢֢֢֢֡֡@@@@@@ @@K@@@@@@ @@@@@@@ఐР4build_other_constantֶַ@@@@@a@@jR@@@@R@ƐA@@@ @@pK@r@@@tK@R@A@@@@!!A@@k-K@@@@@@z<@@@@p@@@@@Ё3@@@@@@@@@@@@@@@Z@@@Ġ(Constant@ɶĠ+Const_int64@9ఠ!i Z!"@4A@@A@@@3#""#####@=@@@@@*@@@@@@@@ @@r@@@ఐ!i67@@@@@w354455555@P@@@@@A@@@@@ ภIJ@@@@@@@'@P@@)@@A} [S @@@UV@@@@@S@S@(@@@ఠ!i \lm@A@@@@@ภ-Tpat_constantvw'@Zภ+Const_int64(׀3@Ƞఐ!i׉4׊5@@@@@3׈ׇׇ׈׈׈׈׈@'@@@@א6@@k@@@ T@ @@!@@ @@A/ט  @@@ך כ7@@@Ր@@S@S@{@@_j׫ 8D׬ 8F@@S@@@డ"%Int64$succ׽ 8G׾ 8L@  8M 8Q@@@%int64O@@@@@@@@@)int64.mliR  R  6@@-Stdlib__Int64K@@@@@@@c@@@b@@a9@@ఐx!d 8R 8S@@@wF@@ఐ͠#env 8T 8W@@@ S@@E@@@Ġ(Constant X` Xh@ʬĠ/Const_nativeint Xi Xx@ݠ@ Xy Xz@@@@@3@-@@@@@ @@ʼ@@@@@@ @@@@@@@ఐA4build_other_constant' ~( ~@h@@@@@4@R@@@@R@A@@@ σσ@A@K@@@@K@R@}A@@@@!!A@@ܠ-K@@@@@@<@@@@@@@@@~3@@@|@@{@@z@@y@@x@@w@@vZ@@@Ġ(Constant؀ ؁ @'Ġ/Const_nativeint؉ ؊ @Xఠ!i ؒ ؓ @إA@@`@@@3ؔؓؓؔؔؔؔؔ@@@@@@؛ @@>@@@@@@ @@r@@@ఐ!iا ب @@@@@w3ئإإئئئئئ@@@@@ر ز @@@@@ ภyغ ػ @x@@@R@@@'@ @@)@@A   @@@  @@@@@S@S@(@@@ఠ!i   @A@@@@@ภ-Tpat_constant  @ˠภ/Const_nativeint  !@ɿఐ!i " #@@@@@3@'@@@@ $@@@@@T@ @@!@@ @@A/   @@@    %@@@Ր@@S@S@{@@_n&2&4@@S@@@డד)Nativeint$succ.&5/&>@ 2&?3&C@@@)nativeintM@@@@@@@@@-nativeint.mliX  X  @@1Stdlib__NativeintK@@@@@@@ @@@ @@ 9@@ఐ預!d[&D\&E@s@@F@@ఐ>#envh&Fi&I@)@@zS@@E@@f@Ġ(ConstantvJRwJZ@Ġ,Const_stringJ[ـJg@ɪ@لJhمJi@@ɬ@@@3لككللللل@@@@@ @ɭ@@@@@@ɩɦ@@@@@@@@@@@;@@@@@@'@@@@@@@ఐ4build_other_constant٦mw٧m@@@@@Q@@R@+@@@R@0A@2@@ @@K@@@@K@R@'A@1@@@""A@/@\.K@.@@@-@@k=@@@*@]@@)@@@(r3@@@&@@%@@$@@#@@"@@!@@ i@@@Ġ(Constant@̧Ġ,Const_string  @4ఠ!s @%A@@<@@@^3@.@@@@@@@@@@_ @@%&@@?<@@@a@@@`@@@./@@@@@b@@@4@@@@@డئ&String&lengthAB@ EF@@@&stringQ@@@D @@@D@@Dڐ.%string_lengthAA @@@#a(($a(Z@@"D@@@@@@@h@@@g@@f3baabbbbb@}[T@U@V@@@@ఐb!stu@ @@0@@@oV@qV@p@@> @@@@ڃڄ@@l@@@ ภKڌڍ@J@@@$@@@uy@ړ@@{@@A ږ @@@ژڙ@@@@@TS@|S@{@@@ఠ!i گڰ@A@@*@@@ภ-Tpat_constantڹ)ں6@ภ,Const_string7I7U@డ7&String$make7V7\@ 7]7a@@@'@@@D@$charB@@@D@@@D@@D@@D@N  N  =@@A@@@@=@@@@@@@@@@@@@@3@TM@N@O@@@@ఐ[!i 7b 7c@ @@Z@@j7d7g@@9@@@U@U@ @@L @@H@@@@U@(@డ$none(Location17h27p@ 57q67u@@@@^@@@T@T@C@ภ$NoneG7vH7z@@@@da@@@@@@T@V@@T7HU7|@@0@@@T@^@@@@_@@A]  @@@_ `7}@@@@@SS@S@O@@@o~p~@@S@@@డ$succ}~~~@@@@@@@@@@@@@@ఐ !dے~ۓ~@@@ @@ఐu#env۟~۠~@`@@@@@@@Ġ(Constantۭۮ@TĠ+Const_float۶۷@3@ۻۼ@@5@@@3ۻۺۺۻۻۻۻۻ@@@@@@ @@d@@@@@@ @@@@@@@ఐ預4build_other_constant@@@@@z@@iR@@@@_R@A@@@ ,,@@oK@q@@@sK@/R@ِA@@@@""A@@Յ.K@@@@@/@Ք=@@@ܠ@@@@@@՛3@@@@@@@@@@@@@@@[@@@Ġ(Constant)*@РĠ+Const_float23@̯ఠ!f ;<@NA@@̷@@@ 3=<<=====@W@@@@@D@@@@@@@@ @@s@@@డں/float_of_stringR S@@@@@@@B@@@@@3XWWXXXXX@s(!@"@#@@@@ఐ/!fjk@ @@8@@@V@V@@@# @@@@y1z2@@9@@@ ภA܂=܃B@@@@@@@@!F@܉6@@H@@AŶ ܌ @@@܎܏C@@@@@S@(S@'@@@ఠ!f ܥDZܦD[@ܸA@@3ܤܣܣܤܤܤܤܤ@@@@@@ภ-Tpat_constantܰD_ܱDl@ภ+Const_floatܹDmܺDx@6డ-/string_of_floatDzD@@@@@s@@@r@@q@hWhWhWh|@@{@@@@@@@=@@@<@@;3@@@:@;@@@@ఐG!fDD@ @@@@DyD@@n@@@9@FU@C@@ID@@@@@3T@8!@@Q@@"@@A`DQ @@@DPD@@@0%@@S@IS@H@@#0.0@@?R@`R@DS@Js@@࣠@!f A*+@=A@@R@@@@డۡ"+.9:@@`@@@@+@@@/@@@@@@@)%addfloatBAg@@@@f<<g<@@@* + @@)D@@- . @@@7@2@@M@@ @@ఐ !pB %C &@I@ @!@@J3A@@AAAAA@_*@@@(pat_descL 'M /@׌ @@{K@S@ @Ġ%Array]!5E^!5J@Rఠ#am' f!5Lg!5O@yA@@Z@@@'@ఠ#len t!5Qu!5T@އA@@b@@@5@@@|!5U@@.7@@.7@@డڴڶކ!5^އ!5_@ڳ@@@}@@@W@@ڴ@@@@@@@3ސޏޏސސސސސ@Q6/@0@1)"@#@$@@@@ఐ栐"amޤ!5[ޥ!5]@@@@@ఐK#am'ޱ!5`޲!5c@@@)X@!@@@@+@@@X@'@ఐO#len!5g!5j@,@@1@@"k{"k|@@@@@@@ ภ͔"k"k@͓@@@m@@@@"k@@@@@A  @@3@@@@ "k@@@@@T@T@@@ఐɠ#env##@@@@@@@@A@@@Aఠ*try_arrays à$$@A@@@@@@!S@ؔVT@@@ @@@ T@@@@S@@@3@6JC@D@E@@@࣠@!l A+$,$@>A@@&3*))*****@2@-(@@T@@0@1@@@@  @@డݬ$List#memG%H%@ K%L%@@L#@@@PS@"S@S@S@S@@L(@@@L'@@@@@@@3^]]^^^^^@5A]@8@9@@@@ఐH!lp%q%@ @@j@@ఐ+all_lengths}%~%@`@@LP6@@@U@U@%@@B @@@@@U@+@ఐ*try_arraysߗ%ߘ%@h@@@@@9@@డP=P?ߧ%ߨ%@P<@@@P<@@@@P9@@@P8@@@@@@@T@@ఐ!l%@]@@`@@A"%@@PW@@@V@V@o@@%%@@V@t@@A@@u@ఐً(make_pat'''@@@@@ف@@@@z@@@u@@@@@@@@@@@ภ*Tpat_array')'3@ѠఐJ"am'5 '7@ @@@@@U@U@@ఐ &omegas'9'?@ע@@@@@@@@@@@@@@@@ఐ !l5'@6'A@Ұ@@/@@@@ݚ@@@@@@@@@U@#V@@@I'(J'C@@8T@ @@ఐ砐!dY'DZ'E@q@@@(pat_type`'Fa'N@h @@@@@U@9U@6@@ఐ !dv'Ow'P@@@ @'pat_env}'Q~'X@| @@@@@U@>U@;$@@ @@x%@% @@|'@` A@@@@AS@@`@@@$@@ఐ*try_arrays(\f(\p@k@@@؄@@@G&@@@F@@@E@@@D@@C3@~@@@@@(\q(\r@@ؠ@@@RS@TS@S@@% @@ K@O@2 @@@ @@ @@)s{)s|@@@@@@@డ%omega(Patterns)s)s@ )s @ @ @@ @@@Azz  @@ @yy @@ 3@@@@@@Ayy @@  @  A@!K@ @A@ @  @ ݠAఠ,has_instance Š++@A@@@U:@@@@@@K@]@@@K@,K@K@%K@@@3@!!9!2@!3@!4@@@࣠@!p A++@.A@@&3@3@.%@@L@@1@2-has_instances @ލ:K@@@@@@@K@2K@@@L@@<7=7@@OA@@@@%$@@ఐ4!pL+M+@V@1@2@@W3KJJKKKKK@2>@@@(pat_descV+W+@ږ @@؞dO@@c@K@K@@Ġ,Tpat_variantn,o,@ఠ!l Ƞw,x,@A@@@@@3yxxyyyyy@.@@@@,,@@z@@@@@@@@@@ఠ!r ɠ,,@A@@@@@@@@#@@@4,@@J%@@J%@@ఐѠ)is_absent,,@|@@@@@@@àȿ@@@@@@@@@~@@}@@|3@sQJ@K@L3,@-@.@@@@ఐY!l,,@@@@@@O@O@@@ఐN!r,,@!@@@@@@@@O@O@1@@F@@g@@@O@7@ภм,,@л@@@?@Ġ(Tpat_any--@@@@@@@@Ġ(Tpat_var-- @(@ - !- @@#@@@@@@!@@@@@@@@@@@@@@@@@@@@@%@@@Ġ-Tpat_constant=->-@!@B-C-@@@@@@@@ @@@@@@9@@@Ġ,Tpat_variantQ-"R-.@@V-0W-1@@}@@@@Ġ$Noneb-2c-6@@@@@[ ٧@@@@@@@@@@@s-7t-8@@@@@@@@@@@,}-9@@%@@%@@o@@&@@@ภ5-=-A@4@@@ @Ġ*Tpat_alias.BF.BP@ܠఠ!p ʠ.BR.BS@A@@@@@P@@@@3@Y@@@@.BT.BU@@@@@ @@.BV.BW@@@@@@@@@@.BX.BY@@@@@@@.BZ.B[@@@@@%@@@<.B\@@w'@@w'@Ġ,Tpat_variant.B_.Bk@ @.Bm.Bn@@@@@9@Ġ$Some.Bo.Bs@V!p.Bt.Bu@A@@OS@@@P@@@@@W<@@@@@@@@@\@@.Bv .Bw@@@@@@@@h@@@:.Bx@@j@@j@@@@k@@@ఐ*,has_instance.B|.B@@@@) @@3@@@@@@@ఐ!p/.B0.B@ @@7@@@@1@Ġ'Tpat_or=/>/@5ఠ"p1 ̠F/G/@YA@@ठQK@ @@@3KJJKKKKK@@@@ఠ"p2 ͠X/Y/@kA@@ච@@@@@c/d/@@FE@@@@@@@@@0m/@@@@@@@డv/w/@@@@@@@@@@@@@@@@@@3@8G@@A@B6/@0@1@@@@ఐ,has_instance//@w@@@@@@@ఐ`"p1//@@@_@@@'@@@@(@@ఐǠ,has_instance//@@@@@@9@@ఐq"p2//@A@@&@@@J@@@@K@@;@@L@Ġ.Tpat_construct00@@00@@ݠ@@@%@@@$3@@@@@00@@@@@& @ఠ"ps Π00@A@@à_D@@@;@@@:@@@9P@'!@@00@@@@@@.@@@-@@@,@@@@/@@+@@@*>@@@M+0@@@@@@@Ġ*Tpat_array4050@@90:0@@@@@8R@I"psD0E0@WA@@F\@@@I0@@^@@^@@m@@_@@@ఐ)-has_instancesT1U1@-@@@+@@3TSSTTTTT@ c\@]@^@@@@ఐj"psf1g1@ @@9@@@@h@Ġ*Tpat_tuplet2u2"@ఠ*labeled_ps Р}2#~2-@A@@%@@@@R@@@Q@@@@T@@@S@@P@@@O3@I@@@@@'@@B@@B@@@ఐy-has_instances212>@}@@@{o@@3@Z2+@,@-@@@@డ!$List#map2@2D@ 2E2H@@̘@@@@@ܠ@@@@@@O@@5K@@@@O@@@O@O@@@@ @@@ @@@@@@@C@@డ^#snd2I2L@@@!a@y@!b@w@@~@@}'%field1AA%@@@# nn$ nn9@@"@@@@N5@@P@m@@ఐ*labeled_ps 2M!2W@w@@Mb@@@P@P@@@,2?-2X@@K@@@@@/@Ġ+Tpat_record;3Y]<3Yh@ఠ#lps ѠD3YjE3Ym@WA@@@@@@d@@@c@@@@e@ⷠܜ@@@g@@@f@@b@@@a3`__`````@@@@@i3Ynj3Yo@@@@@h @@@4o3Yp@@ @@ @@@ఐN-has_instancesy3Ytz3Y@R@@@PD@@ 3yxxyyyyy@/@9@:@;@@@@డ$List#map3Y3Y@ 3Y3Y@@m@@@@@?=@@@1@@@0O@#@<@@@2O@$@K@4@@@3O@%@@&O@O@@@@&@@@̠ @@@@@@@J@@࣠@ A@@3Y3Y@@63@[@@@@@3Y3Y@@2@@ఠ!x Ӡ3Y3Y@A@@7@@3Y3Y@@@P@G@B@@(@@  @@ఐ!x3Y3Y@N@@@@O3@"@@@3Y3Y@@@rR@@!P@-P@,6@@ఐՠ#lps3Y3Y@@@F@@@ P@5P@.@@%3Y&3Y@@K@P@@@@(Q@Ġ)Tpat_lazy4454@ఠ!p Ҡ=4>4@PA@@㛠݀@@@p@@@o@@@ @@@@@@@ఐ_,has_instanceR5S5@2@@@^U@@;3RQQRRRRR@ @@@@@@ఐ'!pd5e5@ @@nK@@@@@?@@ @@l@@@Ao+ @@n3kjjkkkkk@ @@@W A@@}t@@K@W@@@w+@UUBA@@C@@RF@@3{zz{{{{{@s@@@@Ġ!88@ @@@@`3@o@@@@@ภE88@D@@@] @Ġw99@vఠ!q ՠ9 @A @@yK@3@@@@ఠ#rem ֠9@A@@@@@@@@@@@@@డ-#%99@"@@@"@@@ @!@@@ @@@ @@@@3@4.@/@0("@#@$@@@@ఐ,has_instance99@Ű@@@@@@@ఐM!q99@@@M#@@@@$@@ఐ٠-has_instances99$@ݰ@@@@@'5@@ఐ_#rem9%9(@=@@K@+D@@@@E@@5@@F@@AF װ7 @@@ @@@@@K@@@@#7@@@Aఠ+satisfiable ؠ0R1R@CA@@@ʠ͠e@@@RK@d@@@f@@@eK@@ 䦠ލ@@@K@@@@@@@K@@@@dK@@@@@@࣠@#pss AhRiR@{A@@63gffggggg@NB@=@0@@L@@@L@@D@E@@@@@@"qs ARR@A@@>3@&R@@@@@@@@ఐ.#pssR R@@@`3@R@@@@@Ġ8SS@7@@@@o3@@@@@p@@@ఐ-has_instancesSS)@@@@u@@@@@@@@@@@@@@@@ఐN"qsS*S,@6@@*@@!@@x+@@T-/T-0@@B@@B@@@ఐc"qsU5?U5A@K@@N@ĠVGMVGO@@@@@K@@K@@@ภִVGSVGX@ֳ@@@S@ĠڰWY`WYb@٠ఠ!q ۠ WY_ @A @@K@y@ఠ"qs ܠWYd@(A@@u@@@@@@@@@@@@@ РA'General(Patterns2Xhu3Xh}@ 6Xh~7Xh@@@365566666@82@3@4-'@(@)@@@@A3;::;;;;;@@@ @3=<<=====@@@డ*strip_varsLXhMXh@D@@@D@@@@@@@@@3RQQRRRRR@@@@@డ7$viewdXheXh@/@@@N@@@&_@@@%@@$@@ఐo!qyXhzXh@=@@o%@@@@t@@@@NV@2-@@!8@@q@@@1@WXh@@3@O@@@(pat_descXhXh@ϰ`@@"@@QR@R@"Or@ఠ"q1 ݠYY@A@@ @@@3@v@@@@ఠ"q2 ޠYY@A@@@@@@@@YY@@@@@’@@@‘@@YY@@@'@@@@“(@Р@@@@s@@r@@ @t@@q@ @p@@@@v@@#@x@%@w@@u @ @1@z@ @:@|@<@{@@E@~@G@}@@y@@@]@Ã@_@Â@@e@Ä@@k@Å@@Á@m@À@@s@Æ@@@{@Ç@@@É@@@Ê@Ѡ@@Ì@@Ë@@È@@@Ï@@Î@@@Ð@@@Ò@@Ñ@@Í䐐@@Ó@@@oA@>@Y@@B@@„@@D@@@”@@@డ*DFZZ@C@@@C@@@@B@@@A@@@@@@@3@.'@(@)@@@@@@ఐ+satisfiableZZ@v@@@@@@"@@!@@ఐ#pssZZ@n@@%@@ภZZ@֠ఐ^"q1Z @5 @@|@@@3<@ఐ"qsZ@װ@@wK@*@@@.T@@R@@)@@<@@i*@A@\@@డP#not]BO]BR@a@@@a@@@Ăa@@@ā@@Ā3@@@@@@@ఐṠ,all_coherent]BT]B`@@@@ᴠ厠@@@ď@@@Ď@@@č@@@Č@@ċ"@@ఐQ,first_column!]Bb"]Bn@@@@L@@;@@@IJT@Ğ@@@@Ĵ@@@ijT@Ģ@@ġ@론@@@ĵT@ģ@@Ġ@@@ğR@@@ĝ@@Ĝ[@@ఐ점#pssX]BoY]Br@e@@ԅ@@9@4@@Į@+@@ĭ@@@ĬU@ĶU@į|@@p]Baq]Bs@@#HT@ę@@@ĘT@ĹU@ī@@}]BS~]Bt@@bv@@@ĉ@ĿT@ė@@ @@@@@S@Ĉ@ภP^z^z@O@@@r@A@+a@@ఐ}=build_specialized_submatrices5b6b1@p@@}@d@@@œ@@@Œ@A@ŕA@Ŕ@~@@@ő@@@@@@Ő@@@ŏ@@@Ŏ}gϧ@@@Ō@@@ŋ@@Ŋ@@ʼn@@ň3a``aaaaa@t@@@@@}డ!@sb>tbA@5@@@5@@@ž@5@@@Ž9@@@ż@@Ż@@ź @@ఐ"q0bBbD@*@@~O@@@ŮT@T@4@@ఐ8#pssbEbH@@@=@@@+@@@ů@@ŭ@@@Ŭ@@@ūT@T@Y@@@@}ˠ@@@T@ũ`@"@@@A@`$@@డ<#notcL[cL^@d̰@@@d@@@d@@@@@3@<9@;@: @@@@@@ఐag*full_matchcL`cLj@Wڰ@@@N@@@@@腠@@@@@@蠠@R6y^@@@@@@S@@@@@@@@@@@@@9@@ภ߰ cLk!cLp@@@@~@@@T@I@@ఐk'constrs2cLq3cLx@Q@@Ѡ@~@@@T@@=@@@@@T@T@i@@IcL_JcLy@@eB@@@@T@s@@ @@@@@S@y@ఐ1+satisfiableadbd@@@@0@!@@@@@@ఐȠ'defaultrdsd@@@CK@gK@zK@@@ఐn"qsdd@G@@@K@@@)@@2@డ$List&existsff@ ff@@I@@@@@d@@@R@4@3@);`@5@6/Z@)@*@@@@డ#nothh@f@@@f@@@Rf@@@Q@@P@@ఐ-is_absent_pat.h/h@@@@鷠@@@^@@@]\@@@\@@[7@@ఐu!pGhHh@@@@D@@KhLh@@fD@@@Y@jW@eN@@> @@@@@N@kV@XV@@ఐ 8+satisfiablehi.ii9@@@@ 7@ ( @@n@@mi@@ఐ#pssyi:zi=@q@@v@@డ!@j>j>@8@@@8@@@ƢV@y@@@{@8 @@@z;͠@@@x@@w@@v@@ఐ1simple_match_argsj>Tj>e@@@@5V@@@Ƒ@@@Ɛ@>_@@@Ə@@@Ǝ@@@@ƍ@@@ƌ@@Ƌ@@Ɗ@@Ɖ@@ఐ!pj>fj>g@Ͱ@@-@@డ$Head%omega(Patternsj>hj>p@ j>qj>u@@j>vj>{@ @zN @@@@@Ʃ@@ภ闰j>|j>~@@@@8}@@@ƇW@ƶX@ơX@ƴ@@c @@  @@ఐ "qsj>j>@ܰ@@8@@@ƆW@ƸW@Ʒ@@%j>S&j>@@ K@ƅ#@@@@ $@@@@@@@U@L*@1g2j>@@@@@@1@@0S@S@f@@ఐ'constrsFkGk@e@@@@@/S@S@r@@ @@K@MS@.@WcLX@@ @Y_Zl@@ @\]BL@@@@@ @'Variant@ఠ!l ߠpmqm@A@@e@@@3rqqrrrrr@ <@@@@@|m}m@@gf@@@@@@@@ఠ!r mm@A@@lj@@@@@@!@@mm@@@+@#@@@,@Р㐐@@@@@@@@ @@@ÿ@ @þݐ@ܐ@@@Ġ@٠@#@@%@@@à֐@@1@Ƞ@Ӡ@:@@<@ɠ@Р@E@@G@@@Ǡ̐@ˠ@ʠ@]@@_@Р@@e@Ҡ@@k@@@@m@Π@@s@@@͠@{@ՠ@@@נ@@@ؠ@@@@@@@֠@@@@@ܠ@@@ޠ@@@@@@@۠@@@@@ýA@@}m@@ @@ @@@@@  @@ఐٱ)is_absentmm@\@@@٬@@@@٣ٟ@@@@@@@@@@@@@3@ h81@2@3@@@@@@ఐ@!lmm@@@@@@S@S@@@ఐ7!rmm@!@@נ@@@@@@S@S@1@@F@@G@@@S@7@ภᜰmm@@@@ ?@&@@'@&%@@@8@@@7@!@@@9@@6@@@5S@ x@РBA@@?@@@@@砠@>@ @@@@ @堠<@;@:@@렠@87@#@@%@@@ꠠ5@4@1@@21@:@@<@@/-@E@@G@@@+@*@)'@]@@_@@"@e@@ @k@@@@m@@@s@@@@{@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@@@A@g@nnA@n@@1S@/ X@@ @ \@@@@@@@;@@@@=@@@<@@:S@ t@#@  t@@@@@@@?@@@@A@@@@@@@@C@@@B@@>S@ @D@A @@@@@@@@H@@@G@@@@I@@@@J@@F@@@E@@@@K@@DS@ @Gn@k @ސ@@@@@LS@& @Ry@v @@*@@@@@T@@@S@@@@U@@@@W@@@V@@RS@' @s@ @@I@@@@XS@- @|@ @Р@]n&HAؐ&@@@A@@@ @$@ @%@ @&@ @'@ @(@ @)@&Simple$view(Patternsnn@ nn@@n@ @@@ :@$view nn@AN@@i@@0@j@@ G@@_@@@k J@@@@ఠ!q o o @ A@@hР*)@('@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@  @@@ @@@@@@@@@@@@@ @@@@@@@@@@ @@@ @@@@@@ @@@ϐ@Π@@@@@@@@@@@Ġ@@@@@@@@@@@@@@@{@@S@B@@@AS@3@ S@@@@@ҡ(pat_desco 'o /@ఐڠ$viewo 2o 6@@@@٠@@@ S@@Ԡՠ@@@@,@@@@-@v@@@.@@+@@@*S@#@̠a@@@4S@1@ʠ\@@@:S@7@Ƞ@@@@S@=@@ఐ ؠ!qo  o !@ @@ X@o o 8@@[@A@o @@@ఠ#pss p<Jp<M@ A@@V@@ @@@`@~}@@@b@@@a@@_@o@@@c@@^@@@]S@C3@@9@:@;@@@ఐ2simplify_first_col$p<P%p<b@p@@@@@@M@@@O@@@N@@G@@@I@@@@K@@@J@@H@!@@@L@@G@@@F@@E:@@ఐ#pss\p<c]p<f@װ@@)G@@<@@fH@A@ap<F@@@@ఠ"hq pqjxqqjz@ A@@~@@@ǀS@k3tssttttt@b@@@@@@ఠ%qargs qj|qj@A@@@@@ǂ@@@ǁS@l@@" @@@"@@@o@డ$Head+deconstruct(Patternsqjqj@ qjqj@@qjqj@ @  @@@@@@v@@@@s@87@@@u@@@t@@r@@qR@@ఐ!qqjqj@@@@@@ǩT@LJd@@5@@@p@^@@T@m@A@qjt@@డ[#notrr@l@@@l@@@l@@@@@3@@@{@|@}@@@@ఐƠ,all_coherentrr@@@@@@@@@@@@@@@@@@$@@ภ*r+r@ఐĠ"hq4r5r@5@@?@@@6<@ఐt,first_columnDrEr@;@@@o@@^@@@ST@?@Ѡ@@@U@@@TT@C@@B@Ġ-@@@VT@D@@A@@@@u@@@>@@=s@@ఐ#pss{r|r@@@ߨ@@9@4@@O@+@@N@@@MU@WU@P@@O@@eT@3@@@5T@ZU@L@@rr@@OpT@)@@@(T@2@@rr@@m@@@@`T@'@@ @@'@@@aS@@ภ|ss@{@@@f@@ఠ"q0 uu@A@@@@@ȁS@e3@@@@ఐ )discr_patuu(@@@@@@@o@z@@@@@i@nm@@@@@@S@m@@l@a@@@S@n@@k@@@j@@h@@g6@@ఐ6!qu)u*@@@;@@@ȫT@ȉH@@ఐ2#pss&u+'u.@@@@@g@B@@Ȅ@9@@ȃ@@@ȂT@T@i@@`@@mj@A@?u@@ఐ+satisfiableIv2@Jv2K@ݰ@@@@ @@@@3KJJKKKKK@S@@@@@@ఐӠ;build_specialized_submatrix_v2M`v2h@A@@@A@@@0@@@/@?۠6T@[@@@fS@1@K@eS@)A@5A@4@$@@@3@@@2@@@8@@@.@@@-@6@@,@/@@+@@@*1+@@@(@@'@@&@@%S@డ!@v2uv2x@@'@@@@'A@@@b@@"G@@@aCK@@@`@@_@@^p@@ఐ"q0v2yv2{@z@@@@@h@@ఐ栐#pssv2|v2@a@@s@@@@@qT@O@Π@@@Q@@N@@@M@@@LT@uT@n@@v2Lv2@@K@K@@డs!@ w w@@@@@@:@@ɬS@Ƀ@@@Ʌ@@ @@@ɄDO@@@ɂ@@Ɂ@@ɀ@@ఐ11simple_match_args.w/w@(@@@@@@ɛ@@@ɚ@@@@ə@@@ɘ@ m@@@ɗ@@@ɖ@@ɕ@@ɔ@@ɓ@@ఐ"q0VwWw@@@a@@@ɱ @@ఐ"hqfwgw@g@@q@@@ɷ@@ఐ%qargsvwww@v@@@q@@@ɑT@U@ɫU@ɿU@ɽ5@@X@@ 6@@ఐz"qsww@S@@A@@@ɐT@T@K@@ww@@WK@ɏP@@X@@IQ@tx@@L@r@@L@@@M.@G@@N@@@Q@@@AXho@@S3@p@@@@@AU59 @@V @@@AR @@X @IA@@@p_@@t@@sK@qK@@@R@@@Aఠ7list_satisfying_vectors t|t@A@@@_b@@@K@<@@@>@@@=K@v@:; @@@Դ@@@Գ@@@ԵK@y}K@Ӗ@@@ӘK@z@@}@@|3@@@@࣠@#pss Att@A@@53@A@<@/"@@{L@w@@xL@u@C@D@@@@@@"qs Att@(A@@=3@&Q@@@@@@@@ఐ.#pss'(@@@_3%$$%%%%%@Q@@@@@Ġ̰67@@@@@n343344444@@@@@o@@@ఐ-has_instancesEF@@@@ @@@ʏ@@@ʎ@@@ʍ@@@ʌ@@ʋ@@ఐP"qsbc@8@@,@@!@@@@@ʦP@ʗ2@ภOpqAHఐh"qs z@O @@C@ภBA@ A@K@ZK@fK@ʘK@ʨ@@@ʬO@ʱW@@!@@$ @@@ʫ]@ภ2@1@@@O@ʵh@@@j@@@@@@@@@ఐ"qs@@@@ĠV@U@@@@@@@@@ภ^  @]@@@@Ġ議  @謠ఠ!q   @A@@=K@aK@YK@ʚ@@@ʙK@ʺ@ఠ"qs   @A@@T@@@ʼ@@@ @@!@@!@@@ Р 'General(Patterns / 7@  8 ?@@@3@D=@>@?.'@(@)@@@@A3@@@ @3@@@డ*strip_vars+ K, U@#@@@#@@@@@@@@310011111@@@@@డ7$viewC AD E@@@@-@@@>@@@@@@@ఐ{!qX FY G@=@@z%@@@@S@@@@V@-@@!8@@P@@@1@Wh V@@3dccddddd@O@@@(pat_descn Wo _@`@@@@R@@"Or@ఠ"q1 etev@A@@@@@R3@v@@@@ఠ"q2 ewey@A@@@@@S@@@eze{@@@@@U@@@T@@ese|@@@'@@@@V(@Р@@@@6@@5@@ @7@@4@ @3@@@@9@@#@;@%@:@@8됐@@1@=@@:@?@<@>@@E@A@G@@@@<ᐐ@@ߠ@]@F@_@E@@e@G@@k@H@@D@m@C@@s@I@@BҐ@{@Jϐ@@@L@@@M@@@O@@N@@Kΐ@͠@@R@@Q@@@S@Ơ@@U@@T@@PÐ@@V@@@2A@@ep@@!@@G@@#@@@W@@@డ !@@D@@@D!K@@@@@D@@@G @@@@@@@3@4-@.@/%@@ @@@@ఐ7list_satisfying_vectors@ǰ@@@@@@@@@@ఐߠ#pss@@@%@@ภ̰@껠ఐd"q1 @5 @@a@@@<@ఐ"qs@ݰ@@\"K@@@@T@T@P@@@@K@U@@E@@#V@@ఐS7list_satisfying_vectors@@@@R@C6@@@@i@@ఐ0#pss)*@@@av@@ภ45@ ఐ"q2> @ @@@@@@ఐW"qsK@.@@sK@ @@@T@T@@@XY@@K@@@E@@t@@@@u@#Any@Р@@@@]@@\@@ @^@@[@ @Z@@@@`@@#@b@%@a@@_@@1@d@@:@f@<@e@@E@h@G@g@@c@@@]@m@_@l@@e@n@@k@o@@k@m@j@@s@p@@i~@{@q|@n@@s@b@@t@]\@@v@@u@@r{@zx@@y@@x@u@@z@sr@@|@@{@@wpo@@}@@@YA@@?@@@@@ˇ3>==>>>>>@)@@@@@@@ˉ@@@@ఠ#pss QR @dA@@@@j@@@9@۠@@@;@@@:@@8@̠K@AK@ΤK@=@@@<@@7@@@6S@@ఐ2simplify_first_col @а@@@t@@@&@@@(@@@'@@@@@"@@@@$@@@#@@!@ !@@@%@@ @@@@@"@@ఐà#pss #@@@/@@<@@i0@A@@@డ5#not'6'9@tŰ@@@t@@@Ft@@@E@@D3@@@@@@@ఐ,all_coherent';'G@@@@s@@@S@@@R@@@Q@@@P@@O"@@ఐ6,first_column'I'U@@@@1@@ @@@vT@b@@@@x@@@wT@f@@e@@@@yT@g@@d@@@c7@@@a@@`[@@ఐ점#pss='V>'Y@e@@j@@9@4@@r@+@@q@@@pU@zU@s|@@U'HV'Z@@HT@]@@@\T@}U@o@@b':c'[@@u[@@@M@̓T@[@@ @@@@@̈́S@L@ภ vaowaq@ @@@K@aK@jK@͈@@ఠ"q0 @A@@@@@ͥS@͉3@@@@ఐȠ)discr_pat@İ@@@@@@͓@8@@@@@͍@,+@@@9@@@8S@͑@@͐@S@@@:S@͒@@͏@@@͎@@͌@@͋6@@డ&Simple%omega(Patterns@ @@@ @ @@ @@@T@ͭZ@@ఐ#pss@@@@@y@T@@ͨ@K@@ͧ@@@ͦT@;T@4{@@r@@|@A@@@@ఠ$wild @-A@@@[K@?K@>S@@@JS@E7Ơ K@b@@@dU@N@@@[S@F@@GS@A@@BS@?354455555@c@@@@@࣠@.default_matrix AHI@[A@@*3GFFGGGGG@7PQY@@@@@  @@!p A\]@oA@@53[ZZ[[[[[@!A@@@@@@@@డ$List#maprs@ vw @@N@@@@U@PN@@Q@訠@@@O莠W@@@M@@L@@K3@+7b@.@/@@@@࣠@"qs A@A@@!3@@@@@@@ภߐ@ఐX!p @& @@3@*!8@@@@@ఐ&"qs@ @@B @@@@S@@@e@ @@@P@@]V@jV@i/@@ఐ7list_satisfying_vectors/F@ڰ@@@@@@m@@lW@@ఐ.default_matrixGU@@@d@@ఐ"qsVX@ܰ@@sK@ts@@.@@u@@@@a@A@S@y@A@@ఐ^=build_specialized_submatriceskk@@@[@=@@@·@@@Ά@HT@Ϋ@@@ζS@΁A@ΉA@Έ@@@@΅@@@@'@@΄@ @@΃@@@΂H∠'@@@΀@@@@@~@@}@@|3BAABBBBB@3,@-@.@@@డ!@TkUk@Hΰ@@@HΠ9@@@β@Hɠ?@@@αLC@@@ΰ@@ί@@ή @@ఐ蠐"q0qkrk@7@@0@@@΢T@μT@λ4@@ఐ4#psskk@@@@@@t'@@@Σ@@Ρ@@@Π@@@ΟT@T@νY@@@@@@@Ξ@@@Νb@ঠ'defaultAఠ @ A@I*@@@@@@3@~@@@'constrs@Ġi@h@@@@@@@@蠠@(IO@@@@@@@@@@@&@@@@@9I`@@@@@@@@@U@7@@EIl@@@@@@@@@C@@@ఐ$wild,>,B@ʰ@@@@ @@@<@@@;@@:@@93@if@h@g@@@@ఐp'default-,C.,J@ @@K@G@@ఐg%omega<,K=,P@@@d@@@I"@@2@@Z#@ঠ'defaultOQcPQjAXఠ @g!A@㝠IĠ:@@@@@@@'constrseQlfQs@iĠGnQ|oQ~@F@ఠ!p {Qx|Qy@"A@@7@@@;@@@QzQ{@@ΠIk@@@@@@I@@Qw$@@@@@@Q@@,Q@@@(@!@@&V@(@@@)U@c@@@@@k@j@@@#@J$@@@%@@@$@@"@@@!y@'constrs QQ@#AY)@@@'QvQ@@#@@@QaQ@@ܠJC@@@/@@@.@@@-U@*@@(JO@@@2@@@1@@@0@@@@ఠ+for_constrs @$A@@@w}@@@UU@Rg(@@@X@@@WW@Z@@@cU@S@@TU@Q3  @@@@@YS@W@T@@@࣠@k AĠw%&@w@@@@+3#""#####@8,-@@@@@  @@డ$List'flatten=>@ AB@@@!a@?@@@@$@@@@#Q @@@@"@@@!@5@@R@!@@@^@@@\@@@[dc@@@Y@@X3gffggggg@D@@@@డ$List#map}~@ @@Y@@@@@@@@ X@{@tX@|@@}X@lS@@@eX@mX@ϗX@j@@m@ʠ@@@k밠@@@i@@h@@g@@@࣠@ A@ఠ!p @%A@@4@@ఠ#pss @&A@@9@@@@@G@B@@@@ @@ఐ̠-is_absent_pat % 2@虰@@@n@@@χ@@@φ@@@υ@@τ3@<i@6@71c@+@,@@@@ఐD!p 3 4@@@w@@"@@{@@@ϓ[@ώ@ภ:T:V@@@@z @@ఠ)witnesses t t@2'A@@K@#K@[[@Ϙ3$##$$$$$@5@@@ఐ n7list_satisfying_vectors34@ 3@@@ m@ ^ Q@@ϛ@@Ϛ@@ఐy#pssDE@N@@@@డ!@S T!@KͰ@@@K͠@@@\@Ϧ@@@Ϩ@K͠ @@@ϧO@@@ϥ@@Ϥ@@ϣB@@ఐz1simple_match_argswx@q@@@!@@@Ͼ@@@Ͻ@ *@@@ϼ@@@ϻ@i@@@Ϻ@@@Ϲ@@ϸ@@Ϸ@@϶l@@ఐࠐ!p@@@y@@డ$Head%omega(Patterns @ @@@ @ @@@@@@@ภb@a@@@LJ}@@@ϴ]@^@^@@@c @@ @@ఐ "qs"$@ Ȱ@@LU@@@ϳ]@]@@@%@@ hK@ϲ@@@@ @A@t@@@ఠ!p CaCb@(A@@f@@@[@3@@@@@@డ*$Head0to_omega_pattern(PatternsCeCm@ "Cn#Cr@@'Cs(C@ @f @@@5@@@f@@@@@)@@ఐ~!p=C>C@H@@6@@#@@:7@A@BC]@@డ$List#mapPQ@ TU@@,@@@@ Z@VZ@@@@툠 @@@n @@@@@@@3eddeeeee@aoh@i@j@@@@ఐ(set_argsyz@M@@@ؠ@@@+@@@*@ @@@,@@@)@@(@@'%@@ఐ!p@/@@gC@@@?5@@@@@@@@T@@@S@@@UA @@@R@@QI@@ఐ)witnesses@@@V@@q@@+X@ϖX@"Z@@@@@@@ " @@.@@@@H9@@yY@bY@a@@ఐ'constrs@İ@@\@@@xY@hY@cz@@@@Q@@@dX@lY@w@@@@@A@U@p@A@@ఐxv*full_match#-@n@@@]@@@z@ѡ@@@@x@@@w@aM@@@Е@@@ДT@y@@v@@@u@@@t@@s@@r3"!!"""""@81@2@3@@@@ภ2.33@@@@@@@ЌU@А@@ఐ'constrsD4E;@-@@@ @@@ГU@Њ@@@@Љ@@@ЈU@ЖU@Б3@@\@@@@@НU@Ї9@ఐt+for_constrsiAjL@B@@@z@@@Тmj@@@С@@@Р@@ПR@@ภ{MO@{@@@{@@@ЫU@Яb@@!@@eK@Щe@ఐ!pUsUt@@@S@@@вw@(pat_descUuU}@ @@I@@еU@ж@Ġ)Construct@i@@@h@@@м@@@ @@b@@@н@@e@@@о@@@డ7!@TjTk@NI@@@NI MK@V@@@@@NH @@@R@@@@@@@@@ఐؠ$wild'+@@@@@@@@@@@@@@@@@ఐ'default , 3@@@K@@@ఐN%3build_other_constrs5H@Iٰ@@@G@@@@@@@@yN@@@@@@X@@@@@@@F@@@@@@@@@@@@@!@@ఐ'constrsRISP@;@@@@@@Y@ @6@@ @@@ Y@Y@A@@ఐ!prQsR@\@@@@@ Y@Y@U@@}4~S@@٠ K@@@@^@@@@N@@@W@#X@g@@ఐ+for_constrsTlTw@s@@@|@@@(7@@@'@@@&@@%@@ภ|4TxTz@|3@@@|5@@@1X@5@@!@@O)@@@W@6X@/@@@@ @@{{@@n@@@@@q@@@@@@ఐ$wild@@@@@w@@@;@@@:@@9@@8@@ఐ'default@߰@@K@F@@డ%omega(Patterns@   @@@@4@@@H@@8@@*@@@AUg@@-@ @@@@@0@@@Aky@@23@@@@@@4@r@@7@!'3@@@ b@@: @'Variant@ఠ!l 56@HA@@*@@@376677777@ "@@@@@AB@@,+@@@@@@@@ఠ!r RS@eA@@1/@@@@@@!@@^_@@@+@#@@@,@Р@@@@̄@@̃@@ @̅@@̂@ @́@@@@̇@@#@̉@%@̈@@̆@@1@̋@@:@̍@<@̌@@E@̏@G@̎@@̊@@@]@̔@_@̓@@e@̕@@k@̖@@̒@m@̑@@s@̗@@̐@{@̘@q@@̚@e@@̛@`_@@̝@@̜@@̙~@}{@@̠@@̟@x@@̡@vu@@̣@@̢@@̞sr@@̤@@@̀A@@ B@@@@˺ @@@@@ @@ఐv)is_absent R  S@!@@@q@@@@hd@@@@@@@@@@@@@3 a ` ` a a a a a@N81@2@3@@@@@@ఐ@!l u v@@@@@@S@S@@@ఐ7!r  @!@@@@@@@@S@S@1@@F@@ @@@S@7@ภ8  @7@@@?@@ @@@@@@@@@@@@@@@@@S@^@Р@@@@̫@@̪@@ @̬@@̩@ @̨@@@@̮@@#@̰@%@̯@@̭@@1@̲@@:@̴@<@̳@@E@̶@G@̵@@̱@@@]@̻@_@̺@@e@̼@@k@̽@@̹@m@̸@@s@̾@@̷ᐐ@{@̿ސ@@@@@@ @@@@@@@ݐ@ܠ@@@@Ơ@@@Ƞ@ՠ@@@@@@ŠҐ@@@@@̧A@,@ & ;A@3@@S@>@@ @B@Đ@ @@@@@@ @@@@@@@@S@Z@#@ Z@@ @@@@@@@@@@@@@@@@@@@@@S@{@D@A{@@ @@@@@@ @@@ @@@@ @@@@ @@ @@@@@@@@@S@@Gn@k@@ @@@@S@@Ry@v@@ @@@@@@@@@@@@@|{@@@@@@@@S@@s@@w@ @x@@@S@@|@@Рd@cJ"n됐HƐA&@@@A@V@@@$@@%@@&@@'@@(@@)@&Simple$view(Patterns ~' /@  0 6@@ 7@ @@@ @$view  ? C@ AN@@,@@0@-@@-@@$@@@.0@@@@ఠ!q  GU GV@ )A@@-Р@@@@1@@@0@@@@2@@/@@@.@㐐@@@@4@ߠ@@@6@@@5@@3ڐ@@@@8@֠@@@:@@@9@Ѡ@@@<@@@;@@7ː@ʠ@ɠ@@@A@@@@@@@@B@@@@C@@?@@@>@@@@D@@=@@@E@@@@H@@@G@@@@I@@@@K@@@J@@F@@@L@@-@@@@@,S@u@@@tS@ 3 M L L M M M M M@9@@@@@(pat_desc ^Gb _Gj@ఐڠ$view gGm hGq@@@@@@@SS@P@@@@@_@@@@`@;@@@a@@^@@@]S@V@&@@@gS@d@!@@@mS@j@Q@@@sS@p@@ఐʠ!q G[ G\@@@X@ GY Gs@@[@A@ GQ@@@@ఠ"hq  w w@ *A@@@@@ҌS@w3        @u)"@#@$@@@@ఠ%qargs  w w@ +A@@KJ@@@Ҏ@@@ҍS@x@@" @@@"@@@{@డ$Head+deconstruct(Patterns w w@  w w@@ w w@ @Z @@@'@@@҂@@@@@@@@ҁ@@@Ҁ@@~@@}R@@ఐ!q "w #w@\@@I@@@ҵT@ғd@@5@@@p@^@@T@ҋm@A@ 4w@@@ఠ#pss  ? @@ R,A@@ @@X@@@8@ɠ@@@:@@@9@@7@ @@@;@@6@@@5S@3 ^ ] ] ^ ^ ^ ^ ^@@@@@@@@ఐ 2simplify_first_col q r@@@@ a@@@%@@@'@@@& ݠ@@@@@!@@@@#@@@"@@ @ !@@@$@@@@@@@<@@ఐ#pss  @@@I@@<@@hJ@A@ @@డ "#not  @@@@@@@E@@@D@@C3        @c@@@@@@ఐ,all_coherent  @װ@@@`@@@R@@@Q@@@Py@@@O@@N"@@ภذ  @Ǡఐ<"hq  @@@@@@i:@ఐ9,first_column  @@@@4@@#@@@ӆT@r@@@@ӈ@@@ӇT@v@@u@ ]@@@ӉT@w@@t@@@s:@@@q@@pq@@ఐ#pss@A@{@@m@@9@4@@ӂ@+@@Ӂ@@@ӀU@ӊU@Ӄ@@O@@ eT@f@@@hT@ӍU@@@cd@@pT@\@@@[T@e@@no@@g@@@L@ӓT@Z@@ @@@@@ӔS@K@ภ(*@@@@@@ఠ"q0 @P@R@-A@@@@@ӵS@ә3@@@@ఐϠ)discr_pat@U@^@˰@@@@@@ӣ@?@@@@@ӝ@32@@@I@@@HS@ӡ@@Ӡ@&@@@JS@Ӣ@@ӟ@@@Ӟ@@Ӝ@@ӛ6@@ఐ6!q@_@`@@@@@@T@ӽH@@ఐ#pss@a@d@&@@@@g@B@@Ӹ@9@@ӷ@@@ӶT@KT@Di@@`@@mj@A@@L@@డ w$List#maphthx@ hyh|@@@@@@BR@UFK@ԲR@S@@V@L @@@T2 @@@R@@Q@@P3)(()))))@j@@@@@@ఐE(set_args=h~>h@@@@ @@@i@@@h@ @@@j@@@g@@f@@e%@@డs$Head0to_omega_pattern(Patternsghhh@ khlh@@phqh@ @p @@@~@@@Ԁq @@@@@~N@@ఐ"q0hh@X@@@@@ԕV@ԚV@ԙb@@hh@@q:@@@Ԕh@@h}h@@@ @@@ԯ@@@Ԯ@@@԰8 @@@ԭ@@Ԭ|@@ఐ7list_satisfying_vectors@@@@@@@Ը@@Է@@ఐ=;build_specialized_submatrix@@@:@ƫ@@@@@@@WE U@@@@T@K@T@ĐA@АA@@ m@@@@@@@@@ @@@@@@Ƞ@6@@Ǡ@/@@@@@+@@@@@@@@@@{డ!@ @W@@@WA@@@@WG@@@[WK@@@@@@@@@ఐ"q045@@@?@@@ @@ఐ#pssDE@@@ݠ@@`@@@ U@ꠠ@8@@@@@頠@@@@@@U@U@ 6@@ef@@K@;@@డ!@uIvJ@W@@@W@@@GT@@@@ @W @@@[@@@@@@@_@@ఐǜ1simple_match_args+<@“@@@ "C@@@6@@@5@ +L@@@4@@@3@Nj@@@2@@@1@@0@@/@@.@@ఐ1"q0=?@@@@@@L@@ఐ"hq@B@m@@@@@R@@ఐ%qargsCH@|@@Xar@@@,U@\V@FV@ZV@X@@X@@ @@ఐ"qsKM@߰@@Xl@@@+U@^U@]@@*N@@}K@*@@  O@@%@@@@K@`@+:P]@@{@@@+}@i@@,@@@-R@k@@0@@@A )@@23@@@@@@A @@5@@@A @@7@%A@@Z@K>@@?@@>K@<'@@@(tt@@@:Aఠ(do_match 5V^6Vf@H.A@@@ Ϡ Ҡ j@@@K@ٺ@@@ټ@@@ٻK@A@ 8@@@֤K@S@@@RK@D@@@K@E@@H@@G3WVVWWWWW@\@@@࣠@#pss AhVgiVj@{/A@@13gffggggg@m=@8@+ @@FL@B@@CL@@@?@@@@@@@@"qs AVkVm@0A@@93@&M@@@@@@@@ఐ"qsVvVx@J@@@@K3@@@@Ġ 8~~@ 7@@@@Y3@@@@@Z@@@ఐJ#pss@*@@w @Ġ@Ġ Y @ W@@ @@K@پK@ؗK@ؙK@_K@]*@@@@/@@@a2@@@@@3@@3@@@ภ@@@@;@@@@C@@C@@@ภ@@@@K@@@A@@N@Ġհ@Ԡఠ!q  @1A @@K@Ur@ఠ"qs @"2A@@o@@@W@@@@@@@@@@ Р ;'General(Patterns,-@ 01@@@30//00000@71@2@3-'@(@)@@@@A354455555@@@ @ 376677777@@@డ*strip_varsFG@>@@@>@@@փ:@@@ւ@@ց3LKKLLLLL@@@@@డ7$view^_@)@@@H@@@֗Y@@@֖@@֕@@ఐn!qst@=@@n%@@@@n@@@֐@֭T@֣-@@!8@@k@@@֏1@W@@3~~@O@@@(pat_desc@ ɰ`@@@@ְP@ֱ@"Or@ఠ"q1 @3A@@@@@3@v@@@@ఠ"q2  "@4A@@@@@@@@#$@@@@@@@@@@%@@@'@@@@(@Р@@@@׏@@׎@@ @א@@׍@ @׌ @ @ @@ג@ @#@ה@%@ד@@ב@@1@ז@@:@ט@<@ח@@E@ך@G@י@@ו@@@]@ן@_@מ@@e@נ@@k@ס@@ם@m@ל@@s@ע@@כ퐐@{@ףꐐ@@@ץ@@@צ@ˠ@@ר@@ק@@פ鐐@@@׫@@ת@@@׬@@@׮@@׭@@שސ@@ׯ@@@׋A@8@@@<@@@@>@@@@@@డ$>@)E)G@=@@@=@@@@<@@@;@@@@@@@3@.'@(@)@@@@@@ఐ(do_match)/)7@p@@@@@@@@@@ఐ#pss)8);@h@@%@@ภ)?)A@Рఐ^"q1)= @5 @@v@@@)<@ఐ"qs)C@װ@@qK@@@@!R@2R@1P@@)<)D@@K@ U@@E@@V@@ఐ(do_match-)H.)P@@@@@@@6@@5i@@ఐ٠#pss>)Q?)T@@@v@@ภ2I)XJ)Z@!ఐ"q2S)V @ @@@@@C@ఐP"qs`)\@(@@ K@>@@@BR@LR@K@@m)Un)]@@#K@A@@E@@@@@@@#Any@Р@@@@׶@@׵@@ @׷@@״@ @׳@@@@׹@@#@׻@%@׺@@׸@@1@׽@@:@׿@<@׾@@E@@G@@@׼@@@]@@_@Š@@e@Ǡ@@k@@@@m@à@@s@@@ @{@ʠ@@@̠@w@@͠@rq@@@@@@ˠ@@@@@Ѡ@@@Ӡ@@@@@@@Р@@@@@ײA@@T^bU^f@@@@#3SRRSSSSS@#@@@@@@@%@@@Aఠ3remove_first_column fjxgj@y6A@@@@X@@@WQ@U@@@TQ@Oנܠ @@@eQ@`@@@dQ@P@@R@@Ġh@gĠp@o@@@'3@i=@8+@@QR@N@;@<@@@ఠ"ps @7A@@ ;@@@Z@@@%@@C@ఠ#rem +@8A.@@P@@@[%@@@@@W&@@@ภ@ఐ'"ps @&@'@( @@U3@:1!@@@@@ఐ}3remove_first_column@E@@@{n@@g@@ఐ6#rem@@@Q@k!@@.@@~"@@&@@#@@@@a@@@ภ@@@@i@@A2 j@@@@@@@@|Q@{3      @q@@@@@jp @@ఐ堐(do_match@@@@@@@@@~@@ఐǠ3remove_first_column-. @@@@ĠǠK@ٿK@؊@@@،@@@؋ @@@؉@@@؈@@؇@@ఐ렐#pssP Q@˰@@@@TU@@K@ٽK@ؖK@ؔ@@ఐU"qsef@.@@K@ؚ@@Q@@@\@@@@H@@@@@T@@@S@@@@U@@R@@@QQ@+ @Рΐ͠@̠@@@@@ܠ@@ @@@@ @ڠȐ@ǐ@@@ࠠ@Ġ@#@@%@@@ߠ@@1@䠠@@:@@<@堠@@E@@G@@@㠠@@@]@@_@젠@@e@@@k@@@@m@ꠠ@@s@@@頠@{@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@hi-A@@@MQ@K@@ @@@H@@@@@W@@@@Y@@@X@@VQ@0@#@ @@`@@@@@[@@@@]@@@\@}@@@_@@@^@@ZQ@4'@D@A'@{@@@|@{y@@@d@@@c@r@@@e@o@@@f@@b@@@a@k@@@g@@`Q@:Q@Gn@kQ@j@@k@@@hQ@B\@Ry@v\@L@@@MK@@@p@@@o@F@@@q@CB@@@s@@@r@@nQ@C}@s@}@>@@?@@@tQ@I@|@@РJ+@*鐐nHAd&@@@*A@@@@$@@%@@&@@'@@(@@)@Q&Simple$view(PatternsEF!@ I"J(@@N)@ @@@@$view T1U5@g5AN@@ׅ@@0@׆@@@@@@@ׇ@@@@ఠ!q j9Ck9D@}9A@@Р@@@@د@@@خ@@@@ذ@@ح@@@ج@@@@@ز@@@@ش@@@س@@ر@@@@ض@@@@ظ@@@ط@@@@غ@@@ع@@ص@@@@@ؿ@@@ؾ@@@@@@@@@@ؽ@@@ؼ@@@@@@ػ}|@@@à[@ZX@@@@@@Š@S@@@Ǡ@PO@@@@@@@@ĠKJ@@@@@ث@@@@تQ@@@@Q@؛3@@@@@@^(pat_desc%9P&9X@ఐڠ$view.9[/9_@@@@ef@@@Q@@`a@`@@@ݠ@^@@@ޠ@@@@@@@@@Q@@X@@@Q@@V@@@Q@@T@@@Q@@@ఐi!qn9Io9J@8@@iX@r9Gs9a@@[@A@u9?@@@@ఠ"q0 eoeq@:A@@˒@@@ Q@3@u)"@#@$@@@@ఠ%qargs esex@;A@@@@@ @@@ Q@@@" @@@"@@@@డ$Head+deconstruct(Patternse{e@ ee@@ee@ @! @@@@@@@@@@@LK@@@@@@@@@@R@@ఐ!qee@\@@@@@3R@d@@5@@@p@^@@٘R@ m@A@ek@@@ఠ#pss @A6specialize_and_exhaust "@;K@)@K@,@K@/K@0@@1L@-@@.L@*@@+L@@{39=|39S@@?A@@@@@Aנ@@@M@@@LM@Jг&option@г$Path@@@@@@@E @@@@@@G@@@@@@@@Q@@@P@@  @@#pss $A@AA@@ 3@@@I@@@@@@!n %A@BA@@ 3@!@@@@@@@@ఐ&#pss@@@/3@!@@@@@Ġ  @@@@@>3@@@@@?@@@డj#Seq&return  @     @@@!a@oA@@@@@@'seq.mli^66^67 @@+Stdlib__SeqX@@@@GNJ@@@x@@w-@@ఐ&omegas0 1 @@@@@@@۔@@@ۓ@@@ے@@ۑH@@ఐy!nI J  @a@@U@@M N  @@~K@K@K@mK@K@ۛa@@T @@b@Ġ ;b  c  @ :Ġj    @@@ @@#K@bw@@q  @@Π @@@f@@@ @@@@@@@డ#Seq%empty    @      @@!a@q@@@@{Z66|Z66@@zW@@@@Ġ !$ !.A xĠ  !' !)@ ఠ!p & !% !&@CA@@zK@'K@1K@k3@@@@ఠ"ps ' !* !,@DA@@"@@@m@@@+ !-@@K@h@ĠͰ 3Ag@@ 4A@1 @@@q@@@ !#:@@"!@@"!@@@ఐɠ2exhaust_single_row !2 !D@Ͱ@@@@@@@@۵@@۴@@۳@@۲3@ E>@?@@5.@/@0@@@@ఐ#ext !E !H@8@@K@ܕK@ܗK@@@ఐ_!p !I !J@ @@^$@@ఐ["ps !K !M@,@@K@2@@ఐ[!n+ !N, !O@C@@d?@@K@@_@@ఠ#pss (9 PR: PU@LEA@@U@@U@@@ఐܠ6specialize_and_exhaustF P[G Pq@@@@@@@@@@@@3JIIJJJJJ@h@@@@@@ఐn#ext\ Pr] Pu@@@?@@ఐ0#pssi Pvj Py@@@@@ఐ!nv Pzw P{@@@*@@4@@+@@@A{@@@A@@ՠ@@@$@@@#@@@@"@@!@@ K@@@@@{{10@/2@@x@Y@Q@I<@@:@@9@@8@@73@ 0@@@࣠@#ext )A}}@FA@@3@@@@@@@!p *A}}@GA@@|3@@@@@@@@@"ps +A}}@HA@@3@@@@@@@@@!n ,A}}@IA@@3@@@@@@@@@డV#Seq(flat_map'h'h@ 'h'h@@@@!a@/!b@@@@&@@%@9@@@$=@@@#@@"@@!@iVViVW@@r@'"@@@@]Q@t@@@sQ@OR K@@@@Q@M@@@Q@@P@_@@@Nc@@@L@@K@@J343344444@]i@`@a@@@@@Ġ$SomeJ)K)@Pఠ!p -S)T)@fJA@@63RQQRRRRR@@@@@@@@=@@@@ఠ-sub_witnesses .c*d*@vKA@@U@z3dccddddd@1K@@@@@ఐϠ'exhaustu*v*@v@@@Π@@@܀@@@@@@@~@@}@@|@@ఐꠐ#ext**@԰@@t)@@ภy**A rఐߠ"ps *@ư @@]=@ภlA?@ A@ iK@ܚ@@@ܞV@ܣL@@*@@K@ޱK@_K@ܝS@@డ0!-**@@@@@@b@@@f@@@@@@@'%subintBA@@@@5,~,~5,~,@@o@@@@@@@ܩ@@@@ܨ@@@ܧ@@ܦ@@ܥ@@ఐ%!n**@°@@@@A * *@@9@@@ܴW@ܸW@ܷ@@ * *@@K@ݏK@ܵW@ܳ@@@@G@A@ * @@డ#Seq#map &+ '+@  *+ ++@@@@!a@C!b@A@@@j @@@n @@@@@@@@-A3A3.A3AW@@,a@#@@@@T@ܿ(T@ܽ@@@ @@@ܾ @@@ܼ@@ܻ@@ܺ3 V U U V V V V V@@@@@@@࣠@#row /A l+ m+ @ LA@@#3 k j j k k k k k@@@@@@@ภa x+ y+@Pఐ/!p +  +@@@d3        @+";@@@@@ఐ'#row + +@ @@F@@@@&k@@@@ + +@@@TR@@U@U@1@@ఐH-sub_witnesses + +$@P@@GS@@@@ݠc@@@C@@@@@@yO@Ġ$None ,%- ,%1@@@@@@@@@ఠ+p_witnesses 0 / /@ MA@@U@ |@ఐr6specialize_and_exhaust / /@v@@@t@q@nm@@@@@@@@ఐJ#ext / /@4@@@@ภٰ / /AҠภ!/!/AڠఐX!p ! /@? @@@ภ԰A@ A@ seK@#@@@'V@,@@$@@K@&@ภ#+A@$,A@ K@@@@!V@1@@!0/6@@zK@ @@A!:/!;/@@+V@2@@c@@@A@!@/@@డ#Seq#map!N0!O0@ !R0!S0@@(@@@@ T@97Q@kT@7@@:@ @@@8 @@@6@@5@@43!e!d!d!e!e!e!e!e@2@@@@@@࣠@%p_row 1A!{0!|0 @!NA@@%3!z!y!y!z!z!z!z!z@@@@@@@డ!@!0!0@i@@@iK@T@_@@@a@i @@@`lΠ @@@^@@]@@\3!!!!!!!!@8/J@&@'@@@@ఐ6%p_row!0!0@ @@W@@ఐ&omegas!0!0@C@@@@@@s@@@r@@@q@@p+@@డ @!0 !0!@@@@@@@݂@@@@݁@@@݀@@@@~F@@ఐ!n!0!0@@@S@@A!0"!0#@@/@@@ݍY@ݑY@ݐc@@"0"0$@@@@@|@ݒY@݌m@@R @@i}@@@lW@ݓX@zv@@j@@w@"0"0%@@@@@WU@ݖU@ݕ@@ఐ^+p_witnesses"+0&",01@@@]@@@@]@@@U@@@@@A ` 2"6( @@@"8("9127@@@$n@@@p@@oR@R@3"?">">"?"?"?"?"?@ @@@@U @@@v/@@@nz(@@@m@@l @@డ $List&to_seq"`'hj"a'hn@ "d'ho"e'hu@@@!a@=@@@A}&Stdlib#Seq!t@@@A|@@A{@ -G/G/ -G/GO@@ G@#@@@ɠ@@@(Q@@@@ @@@@@O@@ภz"'hw"'hAsภ$Some "'h{@쩠ఐ!p"'h|"'h}@@@ql@@@@)Q@)o@ภ֘"'hAภ$None"'h@@ @@;Q@4@ภ֋ /A^@ 0A@"*IS@+@@@0R@9@@9A@"3RS@ @@@%R@/@@"'hvB@@v[@@@R@$@@I@@r'2@@@C@@@B@@@@K@@@@@MA@@@@@@@}@@|@@{@@zK@vS@@@#}}@@@@@@@@=@@<@@;3########@@@@࣠@#ext 3A#39T#39W@#,OA@@3########@ @@@@@@#pss 4A#(39X#)39[@#;PA@@3#'#&#&#'#'#'#'#'@0@@@@@@@@!n 5A#939\#:39]@#LQA@@3#8#7#7#8#8#8#8#8@@@@@@@@@@ఠ#pss 6#L4`f#M4`i@#_RA@@"@@e@@@ު@֠@@@ެ@@@ޫ@@ީ@"Ǡ@@@ޭ@@ި@@@ާO@ލ3#k#j#j#k#k#k#k#k@4@@7@8@@@ఐ2simplify_first_col#|4`l#}4`~@Ȱ@@@l@@@ޗ@@@ޙ@@@ޘ"@@՟@@@ޓ@@@@ޕ@@@ޔ@@ޒ@#!@@@ޖ@@ޑ@@@ސ@@ޏ:@@ఐ#pss#4`#4`@w@@EG@@<@@fH@A@#4`b@@డ"-#not#5#5@@@@@@@޷@@@޶@@޵3########@a@@@@@@ఐ,all_coherent#5#5@ @@@k@@@@@@@@@@@@@@"@@ఐ .,first_column#5#5@ @@@ )@@@@@P@Ӡ@ыъ@@@@@@P@@@֠@#~d@@@P@@@@@@ /@@@@@[@@ఐ預#pss$55$65@e@@ b@@9@4@@㠠@+@@@@@Q@Q@|@@$M5$N5@@HP@@@@P@Q@@@$Z5$[5@@S@@@޾@P@@@ @@@@@O@޽@డ"#Seq%empty$t8:>$u8:A@ $x8:B$y8:G@@@@K@@@@@@ఠ"q0 7$D~$D~@$SA@@֚@@@O@3$$$$$$$$@@@@ఐˠ)discr_pat$D~$D~@ǰ@@@@@@ @;@@ּ@@@@/.@@@߰@@@߯O@@@@$" @@@߱O@ @@@@@@@@@6@@డ&Simple%omega(Patterns$D~$D~@ $D~$D~@@$D~$D~@ @7 @@@@@FP@$Z@@ఐ#pss$D~$D~@)@@@@y@T@@@K@@@@@P@߲P@߫{@@r@@|@A@%D~@@ఐn=build_specialized_submatrices%E%E@@@k@M@@@@@@@l rP@@@@O@߽A@ŐA@@@@@@Р@@@&@@@@@߿@@@߾W&@@@߼@@@߻@@ߺ@@߹@@߸3%Q%P%P%Q%Q%Q%Q%Q@@@@@@డ#!@%cE%dE@lݰ@@@lݠ8@@@@lؠ>@@@pB@@@@@@@ @@ఐ"q0%E%E@*@@?@@@P@P@4@@ఐH#pss%E%E@İ@@-@@@܃@@@@@ݠ@@@@@@P@P@Y@@@@@@@@@@b@ঠ'default%F%FAఠ 8@%TA@m9@@@@@@3%%%%%%%%@~@@@'constrs%F%F@Ġx%F%F@w@@@@@@@@$@7m^@@@&@@@%@@#@@@"&@@@%F%F@@Hmo@@@,@@@+@@@*Q@'7@@Tm{@@@/@@@.@@@-C@@@@ఠ-sub_witnesses ;&!HUa&"HUn@&4WA@@ UQ@W3&"&!&!&"&"&"&"&"@a^@`@_@@@ఐ 'exhaust&3HUq&4HUx@ 4@@@  @@@]@@@\@ @ y s@@[@@Z@@Y@@ఐ7#ext&MHUy&NHU|@!@@ )@@ఐ'default&ZHU}&[HU@3@@ K@n8@@డ$&jHU&kHU@@@@ @@@u@@@@t@@@s@@r@@qS@@ఐN!n&HU@@@ _@@A"&HU@@@@@S@S@n@@&HU&HU@@ AS@s@@h@@ t@A@&HU]@@@ఠ"q0 <&I&I@&XA@@T@@@Q@3&&&&&&&&@@@@@@డ$Head0to_omega_pattern(Patterns&I&I@ &I&I@@&I&I@ @R @@@@@@}@@@@@)@@ఐW"q0&I&I@@@@@@R@R@=@@* @@A>@A@&I @@డ%b#Seq#map&J&J@ 'J'J@@װ@@@@ P@ K@P@@@@ ? @@@ C @@@@@@@3''''''''@jxq@r@s@@@@࣠@#row =A'*J'+J@'=YA@@%3')'('(')')')')')@@@@@@@ภ'6J'7J@ఐ"q0'@J @& @@ 3'='<'<'='='='='=@*!<@@@@@ఐ&#row'MJ@ @@F @@@@ P@@@@@'WJ'XJ@@@VT@@Q@Q@1@@ఐH-sub_witnesses'iJ'jJ@@@GS@@p@@ e@@@C@@@@ @@ L@ঠ'default'K'KAఠ 9@'UA@͠nZ@@@<@@@;9@'constrs'K'KAఠ :@'VA@]@\@@@G@o|@@@I@@@H@@F@@@E\@@@'K'K@@ o'@@@O@@@N@@@MQ@Jm@@̠ o3@@@R@@@Q@@@Py@@@@ఠ-try_non_omega >'L!'L.@'ZA@@@@@@@Q@@ 5Q@@@Q@  %T=@ #@6K@wK@@@@@@@Q@@@@ Q@@@Q@3((((((((@@@sp@r@q@@@࣠@%^ DA@ఠ!p @(L0(L1@(0[A@@:3((((((((@M(%L(&Wy@@@@@ఠ#pss A(/L2(0L5@(B\A@@E@@(4L/(5L6@@@S@N@@@@ @@ఐ0-is_absent_pat(IM9F(JM9S@ @@@!Ҡ@@@@@@$w@@@@@3(S(R(R(S(S(S(S(S@9Bu@<@=1o@+@,@@@@ఐJ!p(gM9T(hM9U@@@@@"@@@@@ S@@డ&#Seq%empty({N[g(|N[j@ (N[k(N[p@@ @@+@@ఠ-sub_witnesses B(P(P@(]A@@ S@3((((((((@<@@@ఐ 'exhaust(Q(Q@ @@@  @@@@@@@ @  @@@@@@@@ఐ#ext(R(R@@@ N'@@ఐ#pss(R(R@k@@4@@డ'<  (T-(T.@ @@@ @@@+@ @@@* @@@)@@(@@'O@@డ'W(T)(T*@@@@@@@=@@@@<@@@;@@:@@9j@@డ's$List&length)S)S@ )S)S@@@@@!B@@@pV@N@@@M@@@L@@K@@ఐ31simple_match_args)0S)1S@*@@@"@@@_@@@^@" @@@]@@@\@"!o@@@[@@@Z@@Y@@X@@W@@ఐ;!p)XS)YS@@@t@@డ!y$Head%omega(Patterns)mS)nS@ )qS )rS @@)vS)wS@ @Ұ @@ۂ@@@w@@ภ")S)S@"@@@&v@@@UW@X@oX@@@)S)S@@ @@@@*@@@I@W@T @@ఐq!n)T+)T,@7@@ 3@@@@ @@@7@V@G@@A)T/)T0@@ @@@6U@U@.@@)S)T1@@ jU@53@@*@@ 4@A@)P@@@ఠ!p C)VAQ)VAR@)^A@@@@@S@3))))))))@UN@O@P@@@డ!$Head0to_omega_pattern(Patterns)VAU)VA]@ )VA^)VAb@@)VAc)VAs@ @ @@@@@@@@@@@)@@ఐ!p*VAt*VAu@@@,6@@#@@:7@A@*VAM@@డ(#Seq#map*#Wy*$Wy@ *'Wy*(Wy@@ @@@@ R@3********@"@@@@ఐx*full_match+Z+Z@@@@_@@@X@@$ @@@V@@@U@ cr@@@s@@@rT@W@@T@@@S @@@R@@Q@@P5@@ภ+1Z+2Z@@@@@@@jU@nE@@ఐ'constrs+CZ+DZ@9@@@ @@@qU@h@=@@g@@@fU@tU@oe@@Y@@@@@N@{U@em@@డ)#not+mZ+nZ@e@@@e@@@d@@@~@@}@@ఐ-should_extend+Z+Z @@@@Ƞ@@@@@@@$$@%!>@@@@@@⍠@ sw@@@@@@U@@@@@@!B@@@@@@@@@ఐ#ext+Z +Z @@@P@@ఐ*'constrs+Z+Z@@@$`@@@@V@⢠@:@@@@@V@V@@@+Z+Z@@@@@@V@@@{ @@ ?@@@M@U@@@@@d@@@T@L@డ*e#Seq%empty,[(,[+@ ,[,,[1@@~@@Q@@ఠ-sub_witnesses G,]AQ,]A^@,&`A@@GT@G@ఐ|'exhaust,"]Aa,#]Ah@#@@@{z@@@@@@@w@hb@@@@@@`@@ఐ &#ext,<]Ai,=]Al@ @@m@@ఐ 'default,I]Am,J]At@@@@K@|@@డ*  ,Y]Aw,Z]Ax@ @@@@@@@ @@@ @@@@@@@@@ఐ =!n,s]Av@ @@@@A",|]Ay@@ @@@V@V@@@,]Au,]Az@@V@@@h@@@A@,]AM@@ఐl+build_other,^~,^~@K@@@۠@@@@@@@ˠ@޴@@@@ t @@@@@@T@@@@@@$@@@@@@@3,,,,,,,,@@@@@@@ఐ #ext,^~,^~@ @@b@@ఐ<'constrs,^~,^~@ϰ@@@@@@@;@@@@@ U@U@.@@W@@%@@@ 2@Ġ%Empty,_,_@@@@@+@@@3,,,,,,,,@B@@@-_@@%)@@@ @@@డ-+fatal_error-b4D-b4O@ð@@@@@@)cV@(@@'@@0Parmatch.exhaust-"b4Q-#b4a@@-%b4P-&b4b@@@@@.V@0V@/-@@ @@z.@ఠ!p H-9ccq-:ccr@-LaA@@%b@@@"@@%e@@@#@@@డ+#Seq#map-Pdv-Qdv@ -Tdv-Udv@@ *@@@@U@7U@5@@8@ @@@6 @@@4@@3@@23-e-d-d-e-e-e-e-e@70@1@2@@@@࣠@$tail IA-{dv-|dv@-bA@@#3-z-y-y-z-z-z-z-z@@@@@@@ภ p-dv-dv@_ఐX!p-dv-dv@'@@3--------@+";@@@@@ఐ'$tail-dv-dv@ @@F@@@@&5@@@]@-dv-dv@@@TR@@UV@cV@b1@@ఐ-sub_witnesses-dv@@@R@@m@@>@@@A-^~@@ @5@@ @-Z@@ @A@Q@@A@@డ,9#Seq(flat_map-l)4-l)7@ -l)8-l)@@@@@@@!@@@@@@@R@@@@R@&@@@R@@@@@@@+ @@@/@@@@@@@3.--.....@Ec\@]@^@@@@@Ġ$Some.nUc.nUg@ఠ*constr_mat K.nUh. nUr@.2cA@@>@@@@@D@@@ఐT-try_non_omega.-nUv..nU@l@@@@>@@@Ҡ@M@@i&РG@@@@@@@@3.>.=.=.>.>.>.>.>@?*a@$@%@@@@ఐ1*constr_mat.PnU.QnU@ @@n@@'@@c@@@@Ġ$None.`o.ao@@@@@^@@@ఐĠ)try_omega.lo.mo@g@@@@@@' @@@@@@@@w@@ภ.o.o@@@@@@@ V@$@@!@@9@@A L.mAL @@@.mAK.o@@@Ǡ@@@@@S@HS@F3........@@@@@ @@@Ϡ@@@Ӡ@@@@@ @@డ-$List&to_seq.k.k!@ .k".k(@@ Y@@@ Y@@@@栠@vC @@@@@@@@T@@@@R@@@@ m@@@@@G@@డ-X!@.j .j @vj@@@vj2S@@@@@vg@@@z2 @@@@@@@h@@డ-z$List#map/j/j@ /j/j@@@@@@VT@\T@@@@L@@@2 @@@@@@@@@࣠@*constr_mat MA/<j/=j@/OdA@@3/;/:/:/;/;/;/;/;@;@@@@@@ภ$Some/Ij/Jj@Oఐ*constr_mat/Sj/Tj@5@@@@63/R/Q/Q/R/R/R/R/R@S$@@@@@@@@@@/_j/`j@@@FE@@U@U@'@@ఐԠ'constrs/qj/rj@g@@Z@@@U@U@@@h @@v@@@T@U@E@@ภl/j /jAeภ$None /j@@ @@S@@ภ` A(3@ A@.U@@@@T@ @@/j @@w@@@T@@@$@@ L@@@S@T@z@@@@ H@}@@@@w7 @@@ @@@@@@@@@@@@@C@@K@}@@@|@J@@@K@@e@@@A/EM@@g3////////@ @@@/9HO/p@@k N@/5@@ i P@ -@@ j v@ A@@~@{@xw@@@@@@K@ @@@/399@@e@ @ఠ'exhaust N/r/r@0eA@@@[Z@@@@@@K@@((@@@@@@@@@K@ @Y@@@K@X(T@@@P@$@@@tK@@@K@ @@ K@@@K@30.0-0-0.0.0.0.0.@6@@@࣠@#ext OA0?r0@r@0RfA@@>@@@@#pss PA0Mr0Nr@0`gA@@?30L0K0K0L0L0L0L0L@UO@@@@@@@@!n QA0^r0_r@0qhA@@?30]0\0\0]0]0]0]0]@S@@@@@@@@డ.#Seq#map0vt0wt@ 0zt0{t@@P@@@@)\N@YP@G@@@FP@&^@@'@@@@%g@@@#@@"@@!300000000@4@u@7@8@@@@@Ġ0u0uA}ఠ!x R 0u@0iA @@*@Ġ A)J@@ A@04@@@L'@@@0u@@<)@@@ఐ!x0u 0u @A@@@@300000000@5!@@@@0v 0v @@O<@@@ ภ0v  0v %@@@@&p@@@RI@0v @@K@@A  S0t @@@0t0v &@@@j@@DQ@\Q@[300000000@W@@@@x @@@q@@@C"@@@B@@A @@ఐ^'exhaust1s1s@@@@]\@@@@@@@))@@@@@@@@@@S@@@P0)M@@@@@@@@@@@@@@@A@@ఐ#ext17s18s@@@5N@@ఐ#pss1Ds1Es@@@5[@@ఐ!n1Qs1Rs@@@1h@@Q@@0)@@@@@@@@@t@@]|@@7u@#}A@aK@1@A@1er@@@4Aఠ1pressure_variants T1rV^1sVo@1jA@@@a@@@iK@G@@@HK@@**)@@@ K@#@@@%@@@$K@'+@@@mK@@@@@311111111@@@@@@࣠@%tdefs UA1Vp1Vu@1kA@@3311111111@?@:@1"@@L@@@L@@A@B@@@@@@Ġ*U1ÁÅ1ÁÇ@*T@@@@=311111111@$M@@@@@@@ภ 1ÁÎ1ÁÓ@ @@@9 @Ġ1ÔÚ1ÔÜ@Ġ*r1ÔØ @*p@@ @@ZK@'K@K@"@@1ÔÝ@@1D @@@*@@@@@h+@@@ภ!1Ôá1Ôå@!@@@a3@ఠ#pss V1æê1æí@2lA@@|311111111@?@@@@@@ఠ#pss W2 óý2 ó@2mA@@1n@@%@@@@ߖߕ@@@!@@@ @@@1@@@"@@@@@O@32+2*2*2+2+2+2+2+@o9@3@4@@@ఐԠ2simplify_first_col2<ó2=ó@ƈ@@@*Ӡ*֠,@@@ @@@@@@ 1@@_@@@@Р@@@ @@@ @@@1!@@@ @@@@@@@:@@ఐw#pss2tó2uó@D@@G@@<@@fH@A@2yóù@@డ0#not22@}@@@}@@@,|@@@+@@*322222222@a@@@@@@ఐ(V,all_coherent22@@@@(Q,+(L@@@9@@@8@@@7(D@@@6@@5"@@ఐ,first_column22@@@@@@@@@\P@H@KJ@@@^@@@]P@L@@K@2>X@@@_P@M@@J@@@I@@@G@@F[@@ఐ預#pss22 @e@@"@@9@4@@X@+@@W@@@VQ@`Q@Y|@@3 3 @@(HP@C@@@BP@cQ@U@@33 @@@@@3@iP@A@@ @@@@@jO@2@ภ"߰3.3/@"@@@@@ఠ"q0 X3</;3=/=@3OnA@@J@@@O@n33@3?3?3@3@3@3@3@@@@@ఐ{)discr_pat3O/@3P/I@w@@@v@@@x@+@@l@@@r@ߠ@@@@@@O@v@@u@2Ҡ@@@O@w@@t@@@s@@q@@p6@@డ+&Simple%omega(Patterns3/J3/R@ 3/S3/Y@@3/Z3/_@ @FW @@@@@P@Z@@ఐ#pss3/`3/c@@@,B@@y@T@@獠@K@@@@@P@ P@{@@r@@|@A@3/7@@ఐ=build_specialized_submatrices3gu3gĒ@@@@@갠+@@@1@@@0@{JVP@U@@@`O@+A@3A@2@á@@@/@,@@@&@@.@@@-@@@,G&@@@*@@@)@@(@@'@@&344444444@w@@@@@Sడ2{!@4gğ4gĢ@{@@@{8@@@\@{>@@@[SB@@@Z@@Y@@X @@ఐ"q040gģ41gĥ@*@@@@@LP@fP@e4@@ఐ8#pss4DgĦ4Egĩ@@@,ݠ@@@3K@DK@VK@N@@@M@@K@@@J@@@IP@nP@g^@@ @@n@@@H@@@Gg@ঠ'default4yįĻ4zįAఠ Y@4oA@Ǡ{@@@@@@344444444@@@@'constrs4į4į@Ġ--4į4į@-,@@@@Z@Y@@@蒠@|@@@@@@@@@@@&@@@4įĹ4į@@ý|$@@@@@@@@@Q@7@@ɠ |0@@@@@@@@@C@@@ఐc1pressure_variants4į4į@*@@@b@WH@@@@344444444@a^@`@_@@@@ఐE%tdefs4į4į@'@@t@@ఐu'default4į4į@@@tK@@@'@@h @ঠ'default55  Aఠ Z@5 pA@V|}3@@@@@@@'constrs5 5A"ఠ [@56qA@@@@@赠@x|U@@@@@@@@@@@5@@@5<5=@@I|f@@@@@@@@@Q@F@@U|r@@@@@@@@@R@@@Aఠ-try_non_omega \5b,5c9@5urA@@@-@@@٠@Q@@@Q@@@@Q@)@@@Q@@@35z5y5y5z5z5z5z5z@{vs@u@ta^@`@_@@@@Ġ#g5E^5E`@#f@ఠ"_p ]5EV5EX@5sA@@,355555555@!C@>,@@R@@A@B@@@@ఠ#pss ^5EY5E\@5tA@@;@@5EU5E]@@@F@D@@@ఠ#rem _5Ea5Ed@5uA@@5"\@@@+@@@@@c,@@@@ఠ"ok `5h~5hŀ@5vA@@MK@4K@SK@K@T@355555555@FOt@I@J=q@7@8*#@$@%@@@ఐ1pressure_variants5hŃ5hŔ@G@@@@te@@@@@@ఐ_%tdefs6hŕ6hŚ@A@@$@@ఐb#pss6hś6hŞ@+@@1@@"@@2@A@6hz@@డ4*}*66@*|@@@*|@@@@*{@@@+R@@@@@@@36)6(6(6)6)6)6)6)@M_X@Y@Z@@@@ఐ۠-try_non_omega6=6>@@@@@@@@ఐ#rem6L6M@f@@Q@#@@@@$@@ఐ"ok6\6]@.@@1@@#@@T@4@N@@@Ġ/6j6k@.@@@@@@@ภ&#6r6s@&"@@@@@A a6w<@@@@@@@@Q@36x6w6w6x6x6x6x6x@@@@@@6$ @@ఐ*full_match6&60@u@@@*@@@&@-@0 ,A@@@$@@@#@~@@@O@@@NP@%@@"@@@!,E@@@ @@@@366666666@@@@@డ5(226768@2@@@LK@=@2@@@<@@;@@:@@ఐ0%tdefs62@@@^#@@ภ$None6<@ @!@@iK@I0@@616=@@+C@@@8@JR@E:@@ఐѠ'constrs6>6E@v@@@ƿ@@@MQ@6@g@@5@@@4Q@PQ@KZ@@@@@@@WQ@3`@ఐ-try_non_omega7KY7Kf@}@@@/@@@@iP@]@@@\@@@[+@@@Z@@Y@@ఐ'constrs7=Kg7>Kn@@@/֠@#@@@f@@@eQ@lQ@g@@3@@pQ@d@డ5337[olj7\oNJ@3@@@P@r@3@@@q@@p@@o@@ఐ͠%tdefs7qoǃ7roLj@@@@@ภ$None7}oNj7~oǏ@@@@K@~@@@@@@@Q@z@ఐ1pressure_variants7Ǖǣ7ǕǴ@@@@@@@@@@@ภ$None7Ǖǵ7Ǖǹ@@@@,K@@@ఐ'default7ǕǺ7Ǖ@0@@.K@@@%@@"@@ఠ$full b77@7wA@@-\@@@Q@+@ఐJ*full_match77@@@@,1@@@@u@1h-@@@@@@閠@5\@@@@@@Q@@@@@@-@@@@@@@\@@ภ'88@'@@@,a@@@R@l@@ఐ'constrs88@@@@@@@R@驠@=@@@@@R@R@@@Y@@e@A@8-@@@ఠ"ok c8889@8KxA@@,@@@Q@38<8;8;8<8<8<8<8<@@@@@@ఐ$full8M18N5@ @@@@@Q@38P8O8O8P8P8P8P8P@@@@ఐ-try_non_omega8_;M8`;Z@@@@0@%@@@Q@Ġ@@@@@@,@@@@@!@@ఐZ'constrs8;[8;b@@@1@#@@@@@@R@R@<@@3@@T=@@ঠ'constrs8~Ȗ8~ȝ@ఠ/partial_constrs d8~Ƞ8~ȯ@8yA@@k@j@@@ޠ@(4S@@@@R@@@@R@@@@@@@@A8~Ȕ8~ȴ@@Ҡ@@@@ఐ&=build_specialized_submatrices8ȷ8ȷ@H@@#@︠1@@@@@@@**A@A@@Ȣ@@@@1@@@@@頠@B@@@@@HI@@@@@@@@@@@@@Qడ7y!@9ȷ9ȷ@@@@X@@@@^@@@Qb@@@@@@@@@ఐ"q09.ȷ9/ȷ@(@@@@@S@!S@ @@ఐn,mark_partial9D9E@@@@!o@@\@@@'@͠@@@)@@@(@@.@1@@@+@@@*@@-@@@,!r@@!@@@&@@@%@@@$@@#9@@ఐx#pss9 9#@@@!@@eS@ZT@@@{@@@S@[T@A@@G@R@C@@F@@@ET@OT@Hh@@99$@@2B@@@@@@@@@@@S@WT@=@@@@̠@@@]S@@A@9~Ȑ@@ఐp-try_non_omega9:L9:Y@3@@@2i@ɘ@@@oQ@c@n@@b@@@a.?@@@`@@_399999999@HA@B@C@@@@ఐO/partial_constrs9:Z9:i@ @@2@&@@@l@@@kR@rR@m@@6@@R@j!@: cx: j}@@@:.@@@A@:@@ @ఐ'constrs: ɏɩ:!ɏɰ@@@@@@@{@uR@@@}@@@|@@z@@@y3:3:2:2:3:3:3:3:3@@@@@@@ఐ%tdefs:Dɏɲ:Eɏɷ@@@@@(@@@)@@@~@@Ġ2:]ɽ:^ɽ@2@@@@ @@@@ꗠ@٠@@@@@@@@@@@3:p:o:o:p:p:p:p:p@=@@@@@:zɽ:{ɽ@@ @ @@"@@@#@ @@@@@@@::@@O@N@@@ꦠ@@@@@@@@@@@@/@@Ġ$None::@@@@@ 7@<@@%@@@'@ @@C@@C@@\ @@@}@|@@@굠@6@@@@@@@@@@@고@ \@@_@@@ภ[::@Z@@@@@@Q@WQ@tn@@Ġ(ɰ:: @(Ƞ@ఠ!d e::@;zA@@ʹ@@@@@@;; @@Pw-@@@@@@@@;;@@@@@@@@; ; @@:|@@@@ܠ@rO@@@@@@@@@@@@@@#@@@@@@ᠠ@e@@@@@@@@@@@@@Ġ$Some;S;T@Yఠ#env f;\;]@;o{A@@ K@jK@+@@@@@ @.@@T @@@5@ @@5@@@1@0@@@ꠠ@à@@@@@@@@@@@蠠@$@@P@@@ఐ!d;0;1@@@@@O@@@3;;;;;;;;@dE>@?@@@@@(pat_desc;2;:@4@@1I@@T@@Ġ'Variant;@R;@Y@&bঠ(type_row;@\;@dA3&(&k@@@&*@@C3&a&`@@@&A&[@&X3&U&T@@A&A&N@&K3&H&G@@B&A&6@&3&A&!@&ఠ g@;|A@@&4@@@ &1@@@ @@>@@A;@Z;@i@@&@@@ V@ F@@@,@@1@@@ J@@1@@@M@@@@ఠ#row h;mʃ;mʆ@<}A@@&S@@@V@3;;;;;;;;@a0-@/@.@@@ఐ6(type_row<mʉ<mʑ@ @@@&m@@@&j@@@@@@@ภ<mʒ<mʔ@@@@&@@@W@#'@@@@+(@A@<#m @@డ:<.@ఐ預"ok=!cq="cs@@@EP@@@@@@@@@@@=*oǀ @@ @=,# @@@ @@ @@@A=/go@@ 3=+=*=*=+=+=+=+=+@ *@@@=2)=3t}@@  @=5@@  @ @@  @@A >=8Vx@@@ A@@ @  @@@@K@ @@@=AVV@@@ A+&answer iK=L;@=M;F@@;@@$Used j@@=VIK=WIQ@@=iA&Unused k@@=_̆̈=`̆̐@@=rA(Upartial l<۠;'pattern@@@@@@@@=t=u@@=A@@A@@@@@=x;;@@@@=~A@#++=IM)@(@@@,@#((=̆̊&@%@@@)@#%%==@@г'$list=!@г+)Typedtree==@2==@@@:3========@ `;@@@A@@@@@3@@@1@@ @@@C 7@@@@9@@A@5@@58@3========@ @@A+.usefulness_row mL=ͬͱ=ͬͿ@@;@@&no_ors n@@=2;'pattern@@@@@@흰==@@=A#ors o@@=D;'pattern@@@@@@==@@=A&active p@@=V;'pattern@@@@@@==@@>A@@A@@@@@=ͬͬ=@@@@>A@#;;0=@/@@Ш@г>$list>>@гCD> > @@J3>>>>>>>>@ d];@@@A@@@@@!@@@@@@@@T @@W@@ @M@#II>>@=@@Ш@гL$list>#>$@гQR>+>,@@X @@@]! @@`@@$@V@#RRG>5@F@@Ш@гU$list>>P@гYZ>E>F@@`:@@@e;Z@@h@@>@^@@A@Z@@ZY@3>G>F>F>G>G>G>G>G@>@@@ఠ(make_row q>Xko>Ykw@>kA@@@~@@@@@@M@@@@M@@@M@3>j>i>i>j>j>j>j>j@b@@@࣠@"ps sA>|kx>}kz@>A@@ 3>{>z>z>{>{>{>{>{@->kk>kϜ@@@@@  @@ະ3"@@@@@@3@@A@A@3@@B@A@@A@ǡ&no_ors>kχ>kύ@ภ75>kώ>kϐ@74@@@@@@@@@N@3>>>>>>>>@,8N@/@0@@@#ors>k~>kρ@ภ7Q>kς>kτ@7P@@@@@@@@@N@@6&active>kϒ>kϘ@ఐ]"ps>kϙ>kϛ@+@@y.@@@>k}V@@r0@`WA@M@^@A@[@[Z@p@ఠ)make_rows t>ϞϢ>Ϟϫ@>A@@@'@@@*@@@)N@@@@M@' @@@(N@@@@M@@@M@3????????@@@@@@࣠@#pss vA?ϞϬ?Ϟϯ@?-A@@,3????????@9?"ϞϞ?#Ϟ@@@@@  @@డ=$List#map?3Ϟϲ?4Ϟ϶@ ?7ϞϷ?8ϞϺ@@'@@@@H9@@@'gM@@@'MB@@@ @@ @@ 3?D?C?C?D?D?D?D?D@,8Z@/@0@@@@ఐ(make_row?VϞϻ?WϞ@J@@@xw@@@&@@@%@@@$@@#@@ఐX#pss?oϞM@%N@@(@@?O@@o)@YPA@M@-W@A@T@TS@j@ఠ&is_var w?? @?A@@@p@@@fM@/5%@@@M@0@@1M@.3????????@@@@@@࣠@!p yA??@?A@@3????????@)??]l@@@@@  @@ Р7'General(Patterns?? @ ?!?(@@@3????????@&2D@)@*@@@@A3????????@@@@?3????????@@@డ*strip_vars?4?>@Ѱ@@@@@@E@@@D@@C3????????@@@@@డ5$view?*?.@ټ@@@@@@Y@@@X@@W@@ఐh!p@/@0@<@@%@@@@@@@R@oS@e-@@!8@@@@@Q1@U@?@@3@@@@@@@@@M@@@(pat_desc@@@H@9\^@@ٯ@@rO@s@#Any@Рlk@ji@@@@@@h@ @@@@ @f@e@d@@@ba@#@@%@@@_@^@1@@\[@:@@<@@YW@E@@G@@@U@T@SQ@]@@_@@L@e@ @J@k@@@@m@@H@s@@@FE@{@ŠC@5@@Ǡ@)@@Ƞ@$#@@@@@@ƠB@A?@@@@̠@<@@Π@:9@@@@@@ˠ76@@@@@A@ڑ@ANPANT@@ږ@@@@ژ@@@@@@ภ0ðANXAN\@0@@@@@A]_A]`@@ګ@@@ @@ڮ@@@ @@@ภ/A(]g@/@@@@@@AA+@@@A@M@@A@@@@ఠ-is_var_column zA;nrA<n@ANA@@@6@@@N@@@@M@)@@@M@@@M@3ANAMAMANANANANAN@@@@@@࣠@"rs |AAanЀAbnЂ@AtA@@"3A`A_A_A`A`A`A`A`@/AinnAj@@@@@  @@డ?$List'for_allAzЅЇA{ЅЋ@ A~ЅЌAЅГ@@*B@@@@>*>@@@@@@78F@@@*=@@@@@@@3AAAAAAAA@.:R@1@2@@@@࣠@!r }AAДНAДО@AA@@_3AAAAAAAA@@@@@@@ఐ!rAДШAДЩ@p@@@@q3AAAAAAAA@(@@@&activeAДЪAДа@/ @@ߠ@@@@@@@Ġ/AжнAжп@/ఠ!p ~Aжм @AA @@@@@(@@Aж@@AA@@@ @@@3@@@ @@  @@@ @@@ ;@@@@@ @@@ B@@@ఐ&is_varBжBж@@@@@@@7@@@@@3B B B B B B B B @W:4@5@6@@@@ఐA!pBжBж@ @@@@@%S@.S@-@@# @@*@@@@Ġ:ɰB3B4@:@@@@SR@@@@@@@@ZY@@@@@@@@@ ภ1 BKBL@1 @@@7@@@3@BR@@,@@@ABTДТ @@+ @@@=3BSBRBRBSBSBSBSBS@@@@BZДИB[@@@+@@@@@O@AO@?@@ఐ"rsBo@ܰ@@.@@@@"@ A@4M@E@A@ @  @#Aఠ'or_args B#+B#2@BA@@@?9@@@@@@M@G@?M@[@@@M@J@? @@@M@K@@N@@M3BBBBBBBB@Roh@i@j@@@࣠@!p AB#3B#4@BA@@/3BBBBBBBB@;@6@/@'@@LN@H@@IN@F@A@B@@@@@@ఐ#!pB#=B#>@N@ @!@@O3BBBBBBBB@!-@@@(pat_descB#?B#G@< @@:$\Q@@[@M@YM@V@Ġ'Tpat_orBMOBMV@ఠ"p1 BMXBMZ@CA@@@[k@@@`3CBBCCCCC@/@@@ఠ"p2 C M[CM]@C A@@@k{@@@a@@CM^CM_@@@@@c@@@b@@@.C"M`@@D@@D@@@@ఐ1"p1C.MdC/Mf@0@1@2@@3C-C,C,C-C-C-C-C-@^<,%@&@'@@@@ఐ2"p2C?MgC@Mi@ @@@@@@@@@@z@Ġ*Tpat_aliasCSjlCTjv@ఠ!p C\jxC]jy@CoA@@@:@@@p@@@o@@CjjzCkj{@@@@@q@@Crj|Csj}@@@@@s@@@r@@C~j~Cj@@@@@t@@CjрCjс@@@@@u@@@9Cjт@@@@@@@ఐ'or_argsCjчCjю@@@@@ @@@@@3CCCCCCCC@KD@E@F@@@@ఐR!pCjяCjѐ@ @@(@@@@o@@CёѓCёє@@@@@@@ ภ2CёѯCёѴ@2@@@9Y@@@@CёѨ@@@@@AC#7 @@@;@3@@3CCCCCCCC@@@@!A@@P@G@?@@@@M@'@@@C##@@@<@ఠ&remove CC@CA@@@@@@M@@@@M@@@M@3CCCCCCCC@G@@@࣠@!r AD D @DA@@3DDDDDDDD@X'DD2@@@@@  @@ఐ!rD D!@0@@@@13DDDDDDDD@$@@@&activeD*D+@ @@JI@@@@@@@Ġ2D=D>@2@DB@@\@@@"@ఠ#rem DM@D_A@@Cl@@@@@@3@@@ @@ut@@@@@@;@@|{@@@@@@B@@@ະޠ@@@@@@P@@@@@@@@P@@&activeDD@ఐA#remDD@A@B@C@@@@@@@@P@3DDDDDDDD@xT @@@@ఐ!rDD@@@ @DD@@@Ġ=JDD@=I@@@@Ԡ@@@@@@@@۠@@@@@@@@@ ภ3D-@3@@@:c@@@@D&@@@@@AD@@3DDDDDDDD@@@@A@M@@A@@@ݠ@ఠ-remove_column D48D4E@DA@@@-@@@N@@@@M@-@@@N@@@@M@@@M@3DDDDDDDD@N@@@@@࣠@"rs AE4FE4H@E$A@@(3EEEEEEEE@5E44E4]@@@@@  @@డC$List#mapE*4KE+4O@ E.4PE/4S@@-@@@@D9@@@-^I@@@-DB@@@@@@@3E;E:E:E;E;E;E;E;@,8V@/@0@@@@ఐb&removeEM4TEN4Z@J@@@@@@@@@@@@@ఐT"rsEb4[I@!J@@w$@@;K@@k%@ULA@}M@S@A@P@PO@f@ఠ*push_no_or Et҇ҋEu҇ҕ@EA@@@@@@fM@@@@cM@@@M@3EEEEEEEE@@@@@@࣠@!r AE҇ҖE҇җ@EA@@3EEEEEEEE@)E҇҇E@@@@@  @@ఐ!rE҇ҠE҇ҡ@2@@@@33EEEEEEEE@$@@@&activeE҇ҢE҇Ҩ@% @@ՠ@@@ @@@ @Ġ3EҮұEҮҳ@3ఠ!p EҮҰ @EA @@@@@(@ఠ#rem EҮҶ@EA@@E=@@@@@@9@@@ @@@@@@@@A@@  @@@@@@H@@@ະo&no_orsFҮFҮ@ภ$FҮFҮ@3ߠఐ@!pFҮ @?@@@A @@W@@@4P@UN@O@P@@@࣠@!r AFF @FA@@3FFFFFFFF@)FFRf@@@@@  @@ఐ!rFF@2@@@@33FFFFFFFF@$@@@&activeFF@b @@  @@@}@@@|@Ġ4ްG #G %@4ݠఠ!p G " @G A @@ *@@@(@ఠ#rem G (@G-A@@Fz :@@@@@@9@@@ @@ C B@@@@@@A@@ J I@@@@@@H@@@ະ | {@@@@@@P@@#orsGH 5GI 8@ภ&8GO <GP >@5'ఐK!pGY ; @J@K@L @@ @@@P@P@P@3G`G_G_G`G`G`G`G`@{^QK@L@M@@@ఐ!r#Gs ?@%@@@#orsGy @Gz C@,@@Fܠ#@@@P@P@@@, @@ (@@@P@&@&activeG FG L@ఐ#remG MG P@4@@  @@@@@@P@A@@ఐࠐ!rG .G /@ư@@L@G ,G Q@@O@Ġ@SGRTGRV@@R@@@@ ݠ @@@@@@@@  @@@@@@@@@ ภ6GRa@6@@@=l@@@@GRZ@@@@@AG @@ 3GGGGGGGG@@@@A@+M@ @A@ @  @ @ఠ.push_or_column G hlG hz@HA@@@0 @@@N@@@@M@0  @@@N@@@@M@@@M@3HHHHHHHH@JaZ@[@\@@@࣠@"rs AH h{H h}@H-A@@(3HHHHHHHH@6H# hhH$ hӓ@1push_no_or_column@@@@ @@డF$List#mapH6 hӀH7 hӄ@ H: hӅH; hӈ@@0@@@@G<@@@0jL@@@0PE@@@@@@@3HGHFHFHGHGHGHGHG@/;Y@2@3@@@@ఐ'push_orHY hӉHZ hӐ@M@@@ @@@ @@@@@@@ఐW"rsHn hӑK@!L@@z$@@;M@@n%@XNA@M@ V@A@RఠT UH{ ӔӘH| Ӕө@HA@@@0 @@@.N@@@@#M@ 0 *@@@-N@@@@"M@ @@M@3HHHHHHHH@@@@࣠@"rs AH ӔӪH ӔӬ@HA@@&3HHHHHHHH@@@@@@@డG$List#mapH ӔӯH Ӕӳ@ H ӔӴH Ӕӷ@@0@@@@=2@@@0B@@@0Ӡ;@@@@@@@3HHHHHHHH@3O@*@+@@@@ఐh*push_no_orH ӔӸH Ӕ@@@@ v@@@+ y@@@*@@)@@ఐO"rsH ӔH Ӕ@"@@q%@@<@@e&@QA@wM@1O@A@H ӔӔ@@ @Aఠ=simplify_first_usefulness_col I I @IA@@@A @@@M@9@@@8M@3Hu@@.@@@Ϡ@@@@@@@@@R@ؠ@ @@@@@@@@M@4@@63I3I2I2I3I3I3I3I3@.QJ@K@L@@@@@@ĠAݰIG IH @A@@@@>3IEIDIDIEIEIEIEIE@J@E:@@5N@2@H@I@@@@@ภAIV IW @A@@@B@Ġ79I` Ia@78ఠ#row Ii Ij @I|A@@\M@;3IiIhIhIiIiIiIiIi@$@@@ఠ$rows IvIw@IA@@H֠@@@=@@@@@s@@@ఐ!#rowI"I%@ @!@"@@!3IIIIIIII@F,@@@@@&activeI&I,@ @@  @@@H@@@G@ĠB?I28I2:@B>@@@@ ɠ @@@Q@@@P3IIIIIIII@%@@@ @ Ѡ @@@S@@@R@@@ ภ8I2EI2J@8@@@?Z@@@h@I2>@@@Ġ7IiqIis@7ఠ!p IioIip@IA@@ @@@[U@ఠ"ps IitIiv@IA@@IJ @@@]@@@\g@@@ @@  @@@_@@@^o@@  @@@a@@@`v@@@@ఠ*add_column JzԄJzԎ@J!A@@@@@R@j@ = <@@@@@@R@o@I@@ @@@R@@@R@z@@@~R@tBҠ@@@|R@u@@vR@p@@qR@k@@lR@i3J?J>J>J?J?J?J?J?@oh@i@jb[@\@]@@@࣠@!p AJTzԏJUzԐ@JgA@@B3JSJRJRJSJSJSJSJS@OJ\zԀJ]Ԙ@@@@@  @@"ps AJhzԑJizԓ@J{A@@N3JgJfJfJgJgJgJgJg@!Y@@@@@@@@!k AJyzԔJzzԕ@JA@@R3JxJwJwJxJxJxJxJx@b@@@@@@@@ภ)pJԘԾJԘ@8_@ఐD!pJԘԡJԘԢ@)@@3JJJJJJJJ@(p@@ @@@@ະ   @@@@@@U@@  ޠ @@@@@@U@@ %&activeJԘԯJԘԵ@ఐ`"psJԘԸJԘԺ@H@@0@@ఐg#rowJԘԦJԘԩ@F@@f;@JԘԤJԘԼ@@>@@JԘԠJԘԽ@@R@C@ఐm!kJԘ@J@@M@@@@Cx@@@}R@A@R@@A@@ఐ1simplify_head_patJJ@R@@@@ @@@򳠠@zy@@@@@@@@@ . -@@@@@@Q@@Q@A@A@A@@@@@@@@@@@@@@@3K#K"K"K#K#K#K#K#@ @@@@@Bఐ'*add_columnK5K6@ @@@@ Y X@@@@@@@J@,@ @@@@@@@@C @@@@@@@@@.@@ఐ!pK`Ka@@@L@@@R@R@B@@ఐ"psKtKu@.@@hQ@Q@@ఐ=simplify_first_usefulness_colKK@;@@@~s@@b@@ఐ$rowsKK@@@M@q@@KK@@t@@@@u@B@@Z@@@AK@@@@A4 K @@@ @@@@@M@^@@@K @@@s@ఠ+make_vector K;?K;J@KA@@@ U@@@M@- @@@N@@@@M@@@M@`@࣠@!r AK;KK;L@KA@@3KKKKKKKK@,K;;K;`@@@@@  @@డJW$List#revK;OK;S@ K;TK;W@@+̰@@@+̠7@@@-F;@@@@@3KKKKKKKK@(4I@+@,@@@@ఐ=!rL;XL;Y@@@X@&no_orsL;Z9@  :@@+[@@@O@O@ @@3C@@`!@MDA@lM@K@A@H@HG@@ఠ+make_matrix L4bfL5bq@LGA@@@4d @@@N@@@@M@4Q-@@@@@@N@@@@M@@@M@3LQLPLPLQLQLQLQLQ@ @@@@@࣠@"rs ALdbrLebt@LwA@@,3LcLbLbLcLcLcLcLc@9LlbbLmbՎ@@@@@  @@డJ$List#mapL}bwL~b{@ Lb|Lb@@4Y@@@@H=@@@4M@@@4F@@@@@@@3LLLLLLLL@,8Z@/@0@@@@ఐꠐ+make_vectorLbՀLbՋ@J@@@:@@@-@@@@@@@@@@ఐX"rsLbՌM@%N@@(@@?O@@s)@YPA@M@W@A@T@TS@j@ఠ)union_res LձյLձվ@LA@@@@@@EM@@ M@ M@@@ M@@@M@3LLLLLLLL@@@@@@࣠@"r1 ALձտLձ@MA@@ 3LLLLLLLL@-LձձL#"P@@@@@  @@"r2 AMձMձ@MA@@*3MMMMMMMM@!7@@@@@@@@@ఐ-"r1MձMձ@@@I3MMMMMMMM@"B@@@@@@ఐ("r2M(ձM)ձ@ @@N@@@@@]@U@@@@Ġ&UnusedMBMC@;p@@@@@@ABA@A@@@@@@yM@@3MHMGMGMHMHMHMHMH@1@@@@@MRMS@@{M@M@@ @@MZM[@@@@@@@ @@@@Mj Mk @@"@!@@Ġ&UnusedMv Mw @4@@@@#@-@@M{ M| @@@@ @@6@ @6@@*@@@@@@=@@@ภ&UnusedM M @N@@@F@@Ġ$UsedM!M!@;Q_@@@@BA@AP@@M@@@@\@![@@@M!M!@@X@"c@@@@@@ @@&j@@@@@@'p@@@ఐĠ"r2M! M!@@@z@@@M"M"@@@)@@Ġ$UsedM"M"@<@@@@@*@@@@@@ @@.@@@@@@/@@@ఐ "r1M"M"!@@@@@Ġ(UpartialN#"$N#",@;@A@BA@A@@ఠ"u1 N#"-N#"/@N%A@@@@@9@@@8@@@ @@@1@@Ġ(UpartialN(#"1N)#"9@!ఠ"u2 N1#":N2#"<@NDA@@͠@@@>@@@= @@@ @@@2#@@9@@@&@ @@?*@@@,@@@@0@@@ภ(UpartialNR#"@NS#"H@KడL!@N^#"LN_#"M@ذ@@@ؠ@@@MQ@hQ@bQ@R@@@T@ܠ@@@S@@@Q@@P@@O3NuNtNtNuNuNuNuNu@`oh@i@jQJ@K@L@@@@ఐw"u1N#"J,@ -@@,@@@`R@cR@a@@ఐl"u2>N#"O@ @@@ @@@@_R@fR@d-@@N#"I@@ED@@@LQ@gR@^7@@`@@8@@@ANձ@@g@A@M@@A@@@נ@ఠ0extract_elements N&vzN&v֊@NA@@@b@@@M@N.j@@@@@@M@@@M@3NNNNNNNN@ @@@@@࣠@"qs AN&v֋N&v֍@NA@@ 3NNNNNNNN@-N&vvN.Qc@@@@@  @@Aఠ&do_rec N'֐֚N'֐֠@OA@@@Na#@@@O@9@@@=O@@G O@@@@O@Nv@@@O@@@@O@@@@@3OOOOOOOO@9E[@<@=@@@࣠@$seen AO1'֐֡O2'֐֥@ODA@@23O0O/O/O0O0O0O0O0@>@9@0(@@P@@@P@@@@A@@@@@@ĠG߰OI(ֱַOJ(ֱֹ@G@@@@<3OGOFOFOGOGOGOGOG@$L@@@@@@@ภGOT(ֱֽOU(ֱֿ@G@@@? @Ġ=7O^)O_)@=6ఠ!q Og) @OyA @@UO@3OfOeOeOfOfOfOfOf@@@@ఠ#rem Os)@OA@@NҠ@@@@@@@@k@@@ภ.iO,.O,0@=Xະ&no_orsO*O*@డM!@O*O*@@@@O@O@'O@O@O@O@@@@@@@@@@@@@@@3OOOOOOOO@kUO@P@QJD@E@F@@@@డN/$List*rev_appendO*O*@ O*O*@@@E!a@?@@@@@E @@@@E@@@@@@@@@@@9ttdd9utd@@9sP@$@@@O@@@@@@@@ @@@@@@@J@@ఐ۠$seenP *P *@@@ W@@ఐ#remP*P*@_@@>-@@@T@T@l@@X @@@@@S@T@u@@ఐR"qsP6*P7*@@@n@&no_orsP=*P>*@ @@@@@S@S@@@ @@@@@S@@#orsPU+PV+@ภHP\+P]+@H@@@@@@@@@R@ @ס&activePn,!Po,'@ภTPu,+Pv,-A>Mఐ!q P,,@Ȱ @@@ภGAI@ A@O@@@R@-@@P,*@@@@@R@@@@P*@@{@ఐ&do_recP-19P-1?@m@@@@@@1@@0@@ภ/P-1BP-1D@>ఐT!qP-1A @ @@S@ఐ$seenP-1H@x@@@@P-1@P-1I@@O@<@@ఐc#remP-1JP-1M@@@O@F&@@:@@'@@F@@(@@A:  P'֐֨ @@@ A@@@@@@@O@@@@P'֐֒@@ఐ&do_recP.QSP.QY@@@@PS@@@@@@@I @@@P`@@@@@@@@@@3QQQQQQQQ@@@@@ภIQ.QZQ.Q\@I@@@Pu5@@@@@@O@ @@ఐH"qsQ,.Q]Q-.Q_@ @@d$@#orsQ3.Q`D@ E@@Iˠ @@@O@O@ 2@@LN@@l3@WO@@m@YPA@yM@W@A@T@TS@j@ఠ)transpose QN1}ׁQO1}׊@QaA@@@IN@R@o@@@M@@@@M@ PƠ @@@@@@M@@@M@3QjQiQiQjQjQjQjQj@@@@@@࣠@"rs AQ}1}׋Q~1}׍@QA@@+3Q|Q{Q{Q|Q|Q|Q|Q|@8Q1}}Q7*@@@@@  @@ఐ"rsQ1}זQ1}ט@?@@@@@3QQQQQQQQ@"@@@ĠJ7Q2מנQ2מע@J6@@@@N3QQQQQQQQ@@@@@O@@@ ภ@kQ2מ׭Q2מײ@@j@@@GD@@@'@Q2מצ@@O@Ġ?Q3׳׶Q3׳׸@?ఠ!r Q3׳׵ @QA @@pM@;M@6@ఠ#rem Q3׳׻@QA@@Q2@@@ D@@@@@E@@E@@@@ఠ!i Q4׿Q4׿@QA@@9JM@A@@@CQ@-@@@:Q@(3QQQQQQQQ@c82@3@4,&@'@(@@@డPn$List#mapR 4׿R 4׿@ R 4׿R4׿@@9@@@@"Q@/(@@0@:>@@@.:$1@@@,@@+@@*3RRRRRRRR@)@@@@࣠@!x AR/4׿R04׿@RBA@@<@@@@ภR:4׿R;4׿A@ఐ!x RD4׿@1@@ @@23RBRARARBRBRBRBRB@Q!@@@ภ AJ@ A@Qb@@@ES@J@@RW4׿@@Jh@@@D@R]4׿R^4׿@@@Pw@@Q@@@@@@@ATE @@@@@@@@3TTTTTTTT@ ~@@@@@@ఐ$rowsT=ش:@ ;@@MX%@@@$@@@#R@(R@%@@3H@@pM@!@@K@@s@@@AU9,IM@@u@WNA@M@KU@A@R@RQ@hAఠ2every_satisfiables ɠUDX`UDXr@U1A@@@M@@@'M@@@@M@N@@@@M@Qc@@@$M@R@@a@@`3U6U5U5U6U6U6U6U6@@@@@@࣠@#pss AUIDXsUJDXv@U\A@@)3UHUGUGUHUHUHUHUH@6@1@(#@@SN@O@@PN@L@8@9*every_both @w@@@@@@>`7@@@@@@@@@@@V@@ఐ'#pssVmI 1VnI 4@ΰ@@Lc@@VqI $VrI 5@@O O N@@@@@@@@@T@U@u@@ఐ ؠ+make_vectorVI 7VI B@ 8@@@(@@@7ܠ@@@@@@@@@@ఐ"qsVI CVI E@@@y@@VI 6VI F@@#rTM@@@@@@@@@T@U@@@@@31@@@T@@ภ$UsedVJLVVJLZ@ '@@@ @@@@ภ&UnusedVLhrVLhx@ @@@S@@VI @@@@VMyVMyڀ@@@@@@@@@ @@@@@@@@@@డUd$List+fold_right2VNڪڲWNڪڶ@ WNڪڷWNڪ@@@@!a@>@!b@>@#acc@>@@@@@@@@@@Lʠ@@@@@LѠ@@@@@@@@@@@@@@@@@@@"4"4@"F"@@@c@1,@@@@M@M@M@&M@S@ @M@AM@;M@M@M@M@?S@ @M@M@S@@@@@@@ @8$@@@ @7@@@ @@@@@@@@@@@࣠@#pss AWoOWpO@WA@@?f@@@@"qs AW}OW~O@WA@@B3W|W{W{W|W|W|W|W|@P@@@@@@@@!r AWOWO@WA@@D3WWWWWWWW@V@@@@@@@@ఐ!rWOWO@U@@@@V3WWWWWWWW@@@@Ġ&UnusedWPWP@ n@@@@e3WWWWWWWW@@@@@f@@@ภ&UnusedWPWP@ x@@@o @@WQWQ@@w!@@w!@@@ఐV"qsWR-WR/@>@@/@&activeWR0WR6@G @@@@@>@@@==@ĠWS<MWS<OAE ఠ!q Ҡ WS<N@XA @@@@@GU@Ġ AP@@ A@W\@@@M@@@Lc@@@XS<L@@&%@@@O@@@Nl@ @-,@@@Q@@@Ps@@@@@ఠ"q1 ӠX%TSiX&TSk@X8A@@UOj@@@q@@@p\@[3X-X,X,X-X-X-X-X-@E?@@@A@@@@ఠ"q2 ԠX=TSlX>TSn@XPA@@U@@@r\@\@@# @@@#@ @@_@ఐ֠'or_argsXWTSqXXTSx@@@@UO@@@d@@@f@U @@@c@UǠ@@@e@@b@@a?@@ఐ!qX{TSyX|TSz@I@@@@@xO@@+@@@_@I@@]@oX@A@XTSe@@@ఠ%r_loc ՠXU~۔XU~ۙ@XA@@NM@M@3XXXXXXXX@ny@z@{ib@c@d@@@ఐO*every_bothXU~ۜXU~ۦ@S@@@Q@N@G@8+@@@@@@@@@@ఐU#pssXU~ۧXU~۪@@@@&@@ఐT"qsXU~۫XU~ۭ@<@@3@@ఐ"q1XU~ۮXU~۰@<@@n@@@ఐ"q2XU~۱XU~۳@H@@jM@@@@@`N@A@XU~ې@@ఐ ,)union_resXV۷XV۷@ @@@ '@@@@@@@@3XXXXXXXX@dqj@k@l@@@@ఐ!rYV۷YV۷@n@@@@ఐ%r_locYV۷YV۷@@@@@(@@@3@@@@@@@Y'WY(W@@FE@@@U@@@T@ @ML@@@W@@@V@@@ ภGY>WY?W@G@@@N@@@@YEW@@@@@AYGR' @@@@@AYIO @@@YKOYLW@@@@@  @@%@@$@@#T@T@J@@ఐ堐/extract_columnsYcX YdX@(@@@A@@@@@@@@@@A|R @@@@@@@@@@@@@@@ఐC#pssYXYX@@@h@@ఐ"qsYXYX!@@@h@@YX YX"@@o@@@"T@U@@@ఐ 0extract_elementsYX$YX4@A@@@J@@@YP@@@@@@@@@@ఐ1"qsYX5YX7@@@@@YX#YX8@@@@@!T@U@@@ภ$UsedYY9CYY9G@ ?@@@T@@@@@@@@AYGYZHO@@@ĠG˰Y[PSY[PU@Gʠఠ!q ͠Y[PR @Z A @@@@@N@ఠ#rem ΠZ[PX@ZA@@Yg'@@@@@@_@@@ @@0/@@@@@@g@@76@@@@@@n@@@ РRD'General(PatternsZ5\\lZ6\\t@ Z9\\uZ:\\|@@@3Z9Z8Z8Z9Z9Z9Z9Z9@JD@E@F>8@9@:@@@@A3Z>Z=Z=Z>Z>Z>Z>Z>@@@ @Z3Z@Z?Z?Z@Z@Z@Z@Z@@@@డ*strip_varsZO\\܈ZP\\ܒ@G@@@G@@@C@@@@@3ZUZTZTZUZUZUZUZU@@@@@డ7$viewZg\\~Zh\\܂@2@@@Q@@@b@@@@@@@ఐ!qZ|\\܃Z}\\܄@=@@h@@@V@V@,@@  @@~@@@@V@4@@(?@@{@@@8@^Z\\ܓ@@3ZZZZZZZZ@V@@@(pat_descZ\\ܔZ\\ܜ@Sٰg@@,@@R@@#Any@Р鐐@@@@@@@@ @@@@ @@␐@@@@ߠ@#@ @%@ @@ܐ@@1@ @٠@:@@<@ @֠@E@@G@@@ Ґ@Ѡ@Р@]@@_@@@e@@@k@@@@m@@@s@@@Ð@{@@@@@@@@@@@@@@󿐐@@@!@@ @@@"@@@$@@#@@󴐐@@%@@@A@@[]ܢܨ[]ܢܬ@@@@3[[[[[[[[@I@@@@@@@@@@ఐ[-is_var_column[^ܻܰ[^ܰ@@@@QH3@@@@@@DP@@@@@@@ఐi#pss[^ܰ[^ܰ@@@+@@@@8'@@@S@1@ఐ2every_satisfiables[` [` )@s@@@@@@@@A@@ఐ-remove_column[` +[` 8@N@@@Cq@@@@@@Cx@@@@@@@@`@@ఐ#pss[` 9[` <@R@@m@@[` *[` =@@M@(M@tM@vM@LM@NM@M@M@M@@@ఐ*&remove\` ?\` E@@@@@@@@@@@@@@ఐ"qs\*` F\+` H@{@@@@\.` >\/` I@@M@M@M@M@M@M@M@ZM@[M@M@M@T@@@@@@ఐ42every_satisfiables\Rcݕݟ\Scݕݱ@@@@3@(#@@@@@@ఐ預1push_no_or_column\ecݕݳ\fcݕ@+@@@D@@@@@@Dy @@@@@@@@@@ఐ<#pss\cݕ\cݕ@@@a@@\cݕݲ\cݕ@@M@@@ఐ"*push_no_or\cݕ\cݕ@Ӱ@@@0@@@3@@@@@@@ఐ"qs\cݕ\cݕ@@@}'@@\cݕ\cݕ@@}T@,@@b@@~-@\^ܸܰ@@/@"Or@ఠ"q1 ֠\d\d@\A@@>@@@S3\\\\\\\\@@@@@ఠ"q2 נ\d\d@\A@@<@@@T@@@\d\d@@:9@@@V@@@U@@\d\d@@@'@@@@W(@Р76@54@@@,@@+@3@ @-@@*@ @)1@0@/@@/@-,@#@1@%@0@@.*@)@1@3@'&@:@5@<@4@$"@E@7@G@6@@2 @@@]@<@_@;@@e@=@@k@>@@:@m@9@@s@?@@8@{@@@@@B@@@C@@@E@@D@@A @  @@H@@G@@@I@@@K@@J@@F@@L@@@(A@\@]d@@`@@H@@b@@@X@@@డ\JR@RB]f$]f&@R?@@@R?@@@@R>@@@S@@@@@@@3]]]]]]]]@0)@*@+!@@@@@@ఐ<"q1^f^f@@@y@@@@'pat_loc^f ^f@WC @@V@@@!@%@(Location^f^f@)loc_ghost^!f^"f#@@3)loc_ghostV@@@$boolE@@@@@B3)loc_start &Stdlib&Lexing(position@@@@@@ @AVZVZ@@VA@3'loc_end&Lexing(position@@@@@A@AV[V[7@@VB@)@AV\8:V\8J@@WC@N0@@R@@@S@"S@ h@@ఐ"q2^gg'1^hg'3@t@@@@@%|@'pat_loc^qg'4^rg';@W @@W,@@@1@-@(Location^g'<^g'D@)loc_ghost^g'E^g'N@@c!@@R@@@S@2S@0@@ @@;@@@3S@@ఐ 2every_satisfiables^jޣޭ^jޣ޿@ P@@@ @ t o@@6@@5@@ఐ51push_no_or_column^jޣ^jޣ@w@@@Fܠ N@@@B@@@AFŠ U@@@@@@@?@@>@@ఐ #pss^jޣ^jޣ@ /@@ @@^jޣ^jޣ@@M@J@@ఐn*push_no_or^jޣ^jޣ@@@@ |@@@S @@@R@@Q@@ఐ _"qs^jޣ^jޣ@ H@@  @@^jޣ^jޣ@@T@Y@@b@@ @ఐ 점2every_satisfiables_ m)_ m;@ @@@ @  @@^@@] @@ఐ/.push_or_column_m=_mK@@@@GH @@@j@@@iG1 @@@h@@@g@@f?@@ఐ #pss_:mL_;mO@ @@ L@@_>m<_?mP@@=M@rQ@@ఐ'push_or_NmR_OmY@B@@@ @@@{ @@@z@@yh@@ఐ ˠ"qs_cmZ_dm\@ @@ 5u@@_gmQ_hm]@@-T@z@@b@@ 6{@_me@@ 8}@'Variant@ఠ!l ؠ_n^n_n^o@_A@@u@@@3________@I@@@@@_n^p_n^q@@wv@@@@@@@@ఠ!r ٠_n^r_n^s@_A@@|z@@@@@@!@@_n^m_n^t@@@+@#@@@,@Р@@@@S@@R@@ @T@@Q@ @P@쐐@@@V@@#@X@%@W@@U搐@@1@Z@@:@\@<@[@@E@^@G@]@@Yܐ@۠@ڠ@]@c@_@b@@e@d@@k@e@@a@m@`@@s@f@@_͐@{@gʐ@@@i@@@j@@@l@@k@@hɐ@Ƞ@@o@@n@@@p@@@r@@q@@m@@s@@@OA@@`n^d@@@@ @@@@@ @@ఐG)is_absent`n^z`n^߃@Fl@@@G@@@@GG@@@@@@\@@@@@@@3````````@u81@2@3@@@@@@ఐ@!l`n^߄`n^߅@@@G@@@S@S@@@ఐ7!r`n^߆`n^߇@!@@GG@@@@@@S@S@1@@F@@=W@@@S@7@ภ&Unused`oߟߧ`oߟ߭@@@@ @@7@`@8@76@@@@@@ɠ@2@@@@@@@@S@@РSR@QP@@@z@@y@O@ @{@@x@ @wM@L@K@@}@IH@#@@%@~@@|F@E@1@@CB@:@@<@@@>@E@@G@@@<@;@:8@]@@_@@3@e@@1@k@@@@m@@/@s@@@-,@{@*@@@@@@@  @@@@@@)@(&@@@@@#@@@! @@@@@@@@@@@vA@x@ap߮ߴap߮A@@@S@_@@ @c@@a@@@@@͠@ @@@@@@@@S@{@#@ {@ @a@@ @@@Ѡ@ @@@@@@Ҡ@@@@@@@@@S@@D@A@@b@@@@@@@@@٠@@@@۠@@@@@@@@@נ@@@@@@S@@Gn@k@@b0@@@@S@@Ry@v@ѐ@b;@@Ҡ@@@@@@堠@@@@砠@Ƞ@@@@@@@@S@@s@@Ð@bZ@@@@S@@|@@Рϐ@nn7HA鐐&@@@A@@@@$@ @%@!@&@"@'@#@(@$@)@Z&Simple$view(Patternsbp߮ߵbp߽߮@ bp߮߾bp߮@@bp߮@ @@@A@$view ڠbp߮bp߮@bAN@@@@0@@@N@@p@@@Q@@@@ఠ!q ۠bqbq@cA@@\yР;:@98@@@@@@@4@@@@@@@@0@/@.@@@@+*@@@@@@@@&@%@@@@"!@@@@@@ @@@@@@@@@@@@@@@@@ɠ@ @@@ˠ@ @@@@@@@@Ǡ@@@@@@Ơ@@@Π@ߠ@@@@@@Р@@@@Ҡ@ՠ@@@@@@@@ϠА@@@@@@@@@S@@@@S@3cccccccc@ a@@@@@\㡠(pat_desccqcq@ఐڠ$viewcqcq@@@@\\@@@S@@\\@\@@@@\@@@@_@@@@@@@@S@@\ݠ]r@@@S@@\۠]m@@@S@@\٠_@@@S@@@ఐ !qcqcq@ @@&@@@[@cqcq@@ ^@A@cq@@@ఠ#pss ܠds.:d s.=@dA@@cj@@!@@@"@@@@$@@@#@@!@%@@@%@@ @@@S@3d&d%d%d&d&d&d&d&@B;@<@=@@@ఐ1=simplify_first_usefulness_cold7s.@d8s.]@@@@\Π%@@@@@@c@@V@@@ @Ǡ@@@@@@@@ @%@@@@@ @@@ @@ 5@@ఐ$#pssdjs.^dks.a@˰@@IB@@7@@`C@A@dos.6@@@@ఠ"hq ݠd~teqdtes@dA@@@@@@S@+3dddddddd@]~@@@@@@ఠ$args ޠdteudtey@dA@@  @@@B@@@AS@,@@" @@@"@@@/@డ\$Head+deconstruct(Patternsdte|dte@ dtedte@@dtedte@ @ @@@@@@6@@@@3@FE@@@5@@@4@@2@@1R@@ఐ!qdtedte@@@ @@@iT@Gd@@5@@@p@^@@T@?m@A@dtem@@డci#notewew @@@@@@@@@@@@3eeeeeeee@@@{@|@}@@@@ఐZԠ,all_coherentew ew@M @@@ZϠ^Z@@@@@@@@@Z@@@@@$@@ภD!e8we9w@SఐĠ"hqeBweCw@5@@M@@@<@ఐM,first_columneRweSw+@LI@@@M}@@l@@@T@@ߠ@@@@@@T@@@@' @@@T@@@@@@M@@@@@r@@ఐ#pssew,ew/@@@M@@8@3@@@*@@@@@ U@U@@@N@@edT@@@@T@U@ @@ewew0@@[\oT@@@@T@@@ew ew1@@ۯ@@@@ T@@@ @@B4@@@!S@@ภ&Unusedex7Aex7G@@@@@@ఠ"q0 ߠez[iez[k@eA@@@@@AS@%3eeeeeeee@@@@ఐ)discr_patez[nez[w@@@@@@@/@^@@ @@@)@|{@@@@@@S@-@@,@'@@@S@.@@+@@@*@@(@@'5@@ఐ2!qf!z[xf"z[y@@@H@@@kT@IG@@ఐ+#pssf3z[zf4z[}@@@^̠@@f@A@@D@8@@C@@@BT@T@h@@_@@li@A@fLz[e@@ఐ82every_satisfiablesfV{fW{@@@@7@,'@@@@3fXfWfWfXfXfXfXfX@R@@@@@@ఐࠐ;build_specialized_submatrixfl|fm|@N@@@N^@@@@@@@(@@@\S@ZM@YS@A@A@@` \.@@@@@@@_$@@`!\B@@@@@@@3@@젠@,@@@@@_;+@@@@@@@@@P@࣠@"ps Af}f}@fA@@^@@@ @@@3ffffffff@i@@@@  @@!r Af}f}@fA@@Y3ffffffff@y#_@@@@@@@!@"@@@@@@ະ(Y)))(@@@R@@@QV@N@(_)")!@@@X@@@WV@T@(i&activeg}g}@డes!@g } g } @@@@)2@@@0V@MV@EV@5@@@7@@@@6T@@@4@@3@@23g"g!g!g"g"g"g"g"@S_@V@W@@@@ఐ|"psg4}g5} @_@@+@@@CW@FW@D@@ఐ}!rgK} gL} @$@@'@&activegR}gS}@(° @@àI@@@BW@KW@H6@@* @@)}J@@@/W@A=@@ఐ!rgl}gm}@E@@H@gp}gq}@@K@gs}gt}@@@V_@@@@@@@A@@@T@eT@a@@ఐ"q0g|g|@3@@@@@i9@@ఐ#pssg|g|@@@`9@@@@@rT@@>@@@?@@ @@@ T@vT@o_@@g|g}@@M@ @@ະ)<* * @@@@@@S@@)B**@@@@@@S@@)L&activeg~.g~4@డfV!@g~Rg~S@h@@@h*@@@S@S@S@@@@@l@@@7@@@@@@@@@ఐ1simple_match_argsh~5h~F@@@@a]@@@@@@@a]@@@@@@@`U@@@@@@@@@@@@@@ఐe"q0h>~Gh?~I@@@I@@@@@ఐР"hqhN~JhO~L@A@@Y@@@@@ఐ̠$argsh^~Mh_~Q@P@@ޠv@@@T@U@U@U@@@X@@ @@ఐp#remhx~Thy~W@8@@@@@T@T@&@@n @@*@@@T@-@@ఐ"qsh~&h~(@@@d8@h~%h~X@@g;@@C@@c@hyHUhYd@@f@hw@@f@@@g@1@@hu@@@k@@@Ah\\`hel@@n @@@AhDX|@@p@^A@@@|w@@@@M@`@@@hDXX @ZZ'&@%(@@W@T@M@>1@@e@@d@@c@@b3hhhhhhhh@@@@࣠@#pss Ahh@hA@@m3hhhhhhhh@@@@@@@"qs Ahh@hA@@w3hhhhhhhh@@@@@@@@@"q1 Ahh@hA@@3hhhhhhhh@@@@@@@@@"q2 Ahh@i A@@3hhhhhhhh@@@@@@@@@@ఠ#qs1 i i@i A@@*@@@R@3iiiiiiii@%@@@@@ະ*+a+`@@@@@@R@@*+Z+Y@@@@@@R@@*&activei8i9@ภi?i@AWఐc"q1 iI@J @@5@ภAa@ A@h+p@@@@@@R@E@@i\@@+|+{@@@@@@R@P@@ఐ"qsinio@@@ [@iris@@c^@A@iu@ఠ#qs2 i~i@iA@@+@@@DR@q@ະ*+Ϡ+@@@=@@@M@3@@@2M@b@@@:M@@@*@@)3mmmmmmmm@g@@@࣠@!p Amumu@mA@@/3mmmmmmmm@z=@8@-"@@N@@@N@@?@@'le_pats @Fk7FM@@@@@@@M@@FkGGM@@@@@@@M@ EM@!@@"N@@@N@@mm@@n A-le_tuple_pats @F@FP@@@$R@@@@M@@kpM@@@@@@@@@M@#@FǠ@F!@@@M@@kM@@@@@@@@@M@&M@'@@(N@$@@%N@@n;n<@@nNA@@@@~@@!q AnHunIu@n[A@@3nGnFnFnGnGnGnGnG@@@@@@@@@@ఐ!pn`na@@@3n^n]n]n^n^n^n^n^@$@@@@@(pat_descnjnk@g @@eS@@@@M@<@@ఐ=!qnn@@@"@(pat_descnn@gɰ @@eϠS@@@@M@?3@@nn@@@0@@@A<@@Ġ(Tpat_varnn@e@nn@@e@@@O3nnnnnnnn@V@@@@ @ee@@@Q@@@P @@@e@@@R@@@@@fM@M@kM@dM@(M@H@C@Ġ(Tpat_anynn@F@@@@$@@nn@@'@@@nn@@dM@M@M@7M@xM@9@D8@@ @@@-@@@W?@@@3@@@XE@@@ภ^oo@^@@@WM@@Ġ*Tpat_aliasoo@F]ఠ!p oo@o0A@@l{f`@@@j@@@i3o#o"o"o#o#o#o#o#@@@@@o,o-@@Fc@@@k @@o4o5@@FdFb@@@m@@@l@@o@oA@@Fe@@@n@@oHoI@@Fg@@@o%@@@:oN@@@Z)@@@oUoV@@q@[1@@F@@@@ @@p8@@@@@@q>@@@ఐࠐ&le_patooop@@@@@@@@@3oqopopoqoqoqoqoq@_X@Y@Z@@@@ఐf!poo@ @@@@ఐK!qoo@-@@@@%@@@@@oo@@@s3oooooooo@?@@@@Ġ*Tpat_aliasoo@Fఠ!q oo@oA@@mf@@@@@@@@oo@@F@@@%@@oo@@FF@@@@@@1@@oo@@F@@@9@@oo@@F@@@A@@@9o@@@tD@@I@@@K@@@K@@@Q@@@Q@@@ఐm&le_patoo%@6@@@l@_T@@+@@*3oooooooo@UN@O@P@@@@ఐS!pp&p'@İ@@~@@ఐi!qp(p)@@@z@@%@@r@@Ġ-Tpat_constantp/*.p0*;@Aఠ"c1 p8*<p9*>@pKA p<*?@@A@@@3p;p:p:p;p;p;p;p;@@@@@@@@y@@@Ġ-Tpat_constantpL*ApM*N@A0ఠ"c2 pU*OpV*Q@phA pY*R@@A2@@@@@@@@v@ @@2@@@#@ @@'@@@)@@@-@@@డnllpu*jpv*k@l@@@U6@@@RQ@<@l@@@;@@:@@93pp~p~ppppp@#SK@M@N7/@1@2@@@@ఐUd-const_comparep*Vp*c@Qа@@@b@@@I@UY@@@H@@G@@F@@ఐt"c1p*dp*f@'@@b@@@SS@US@T2@@ఐk"c2p*gp*i@:@@S@WS@VC@@3@@LD@@@p*lp*m@@WR@XO@@?@@%P@@Ġ.Tpat_constructpnrpn@D@pnpn@@DD@@@@@@3pppppppp@@@@ఠ"c1 pnpn@q A@@D@@@@ఠ"ps qnqn@qA@@IנnghL@@@@@@@@@%@@qnqn@@D@DDD@@@@@@@@@@D@@@@@@@@B@@@Qq3n@@k@F@@Ġ.Tpat_constructq>nq?n@EB@qCnqDn@@E=E;@@@@@@\@ఠ"c2 qSnqTn@qfA@@E@@@@j@ఠ"qs qanqbn@qtA@@J2n h@@@@@@@@@@@qsnqtn@@EI@EHEGEE@@@@@@@@@נ@EB@@@@@@@@@@@Pqn@@@@@@@@b@ @@@@@h@@@@@@డpffqq@f@@@f@@@^@f@@@]f@@@\@@[@@Z3qqqqqqqq@W@@@@ng@h@iaZ@[@\@@@@డo,equal_constr*Data_typesqq@ qq@@6&@@@e@@@p@e@@@o6G@@@n@@m@@l.@@ఐ"c1qq@5@@e@@@|S@~S@}B@@ఐ"c2rr@G@@f @@@{S@S@V@@> @@fj@@@j@S@z^@@ఐK'le_patsr r!@O@@@M@?3@@@@q@@ఐ+"psr1r2@w@@Z~@@ఐݠ"qsr>r?@@@W@@"@@N@@t@@@@Ġ,Tpat_variantrQrR@Dఠ"l1 rZr[@rmA@@D@@@3r\r[r[r\r\r\r\r\@@@@Ġ$Somerirj@=@@@@Lq[k@@@@>@@@=@@@<Y@@t =qt =r@@F!F@@@@@@@?e@@@2t=s@@/@i@@z@@@D@ @@Ap@@@J@@@Bv@@@డrp\p^t.wt/w@p[@@@FZ@@@Q@@p\@@@@@@@3t8t7t7t8t8t8t8t8@@@yr@s@tZS@T@U@@@@ఐ"l1tNw}tOw@@@@@ఐn"l2t[wt\w@@@F@@@$@@@@%@@Ġ,Tpat_varianttptq@F@tutv@@F@@@R@@t}t~@@Muqܠk@@@U@@@T@@@S@@tt@@FF@@@W@@@V@@@'t@@@D@@Ġ,Tpat_varianttt@FӠ@tt@@F@@@b@@tt@@Mrk@@@e@@@d@@@c @@tt@@FԠF@@@g@@@f@@@'t@@@E@@]@@@9@ @@h#@@@?@@@i)@@@ภctt@c@@@21@@Ġ*Tpat_tuplett@Eఠ*labeled_ps tt@u A t@@M@EE@@@|@@@{@rglL@@@~@@@}@@z@@@y3uuuuuuuu@@@@@@(@@N@k@@Ġ*Tpat_tupleu!u"@E@ఠ*labeled_qs u*u+@u=A u.@@MӠ@EBEA@@@@@@@rl~@@@@@@@@@@@2@@@'@@`@l5@@\@@@8@ @@<@@@>@@@B@@@ఐc-le_tuple_patsu`ua@g@@@e@F.@@@@3ubuauaububububub@vn@p@qE=@?@@@@@@ఐ~*labeled_psuvuw@@@w@@ఐY*labeled_qsuu@@@c@@'@@ @@Ġ)Tpat_lazyuu(@Dఠ!p u)u*@uA@@rl@@@@@@3uuuuuuuu@F@@@@@ @@@@@Ġ)Tpat_lazyu,u5@Eఠ!q u6u7@uA@@sm@@@@@@ @@@ @@@#@@8@@@&@ @@*@@@,@@@0@@@ఐS&le_patu;uA@@@@R@E:@@@@3uuuuuuuu@RK@L@M3,@-@.@@@@ఐZ!puBuC@@@sUfM@@@@@@ఐM!qv Dv E@ @@shjM@ @@@+@@3 @@f,@@Ġ+Tpat_recordv#FJv$FU@DѠఠ"l1 v,FWv-FY@v?A@@DҠ@DѠD@@@@@@@D@@@@sm@@@@@@@@@@@3vHvGvGvHvHvHvHvH@@@@@vQFZvRF[@@D@@@ @@@4vWF\@@@ @@Ġ+Tpat_recordvbF^vcFi@Eఠ"l2 vkFkvlFm@v~A@@E@EE@@@@@@Ϡ@E @@@Ѡ@sޠm@@@@@@@@@@@?@@vFnvFo@@E @@@G@@@3vFp@@@K@@v@@@E@ @@R@@@K@@@X@@@@@ఠ"ps vt~vt@v A@@Wn@@@7@@@6R@3vvvvvvvv@_@@]V@W@X@@@@ఠ"qs vtvt@v A@@Xn@@@9@@@8R@@@( @@@(@@@!@ఐXl,records_argsvtvt@Px@@@o@EE@@@C@@@BR@"@d @@@#@o+@@@@@!@@@ @o@EE@@@`@@@_R@@d*@@@@oH@@@@@@@@@Xq(@@@@Xw@@@@@@@@@u@@ఐ"l1w?tw@t@~@@oؠ@W@d[@@@?@@@>@@@=S@GS@@@@ఐ"l2w_tw`t@@@o@Z@d{@@@<@@@;@@@:S@dS@]@@@@@Š@@@zS@5@A@wtz @@ఐ 'le_patsww@ @@@ @  @@}@@|3wwwwwwww@@@@@@@@@ఐ점"psww@@@ M@@@ఐ᠐"qsww@@@ M@#@@+@@ $@6@@ @@Ġ*Tpat_arrayww@Dఠ#am1 ww@wA@@D@@@ p@ఠ"ps ww@w A@@Du;o @@@@@@@@@ @@@'w@@ "@ @@Ġ*Tpat_arrayww@DȠఠ#am2 ww@x A@@D@@@ @ఠ"qs x x @x A@@DѠumoR@@@@@@@@@ @@@'x@@ 5@ @@]@@@9@ @@ @@@?@@@ @@@డvllx4x5@l@@@l@@@@l@@@mh@@@@@@@3x?x>x>x?x?x?x?x?@ z@{@|tm@n@oQJ@K@LD=@>@?@@@@డvttxXxY@t@@@E&@@@R@@t@@@@@@@#@@ఐ#am1xqxr@*@@0@@ఐ#am2x~x@5@@$S@?@@@@l@@@@S@G@@డvllxx@l@@@l@@@@l@@@m@@@@@@@b@@డwtߠtxx@tް@@@Du@@@S@@t@@@@@@@|@@డw5$List&lengthxx@ xx@@Dr@@@Drv9p@@@@@@T@@@@D@@@@@@@ఐ"psxx@@@D!@@@U@U@@@0 @@H@@డwu$List&lengthyy@ y y@@D@@@Dvyp^@@@@@@T@@@@D@@@@@@@ఐ("qsy4y5@@@DӠ!@@@U@U@@@0 @@U@@@s@@m@@@@T@@@ఐ 'le_patsyVyW@ @@@ @ u i@@@@@@ఐ"psygyh @@@ M@ (@@ఐj"qsyv!yw#@,@@ M@7@@&@@ 8@@@@m@@@@S@@@@@@ A@@@yW[yW\@@ @ 0@@@yW]yW^@@ @ 8@@ @@@@ @@ ?@@@@@@ E@@@డx#notyWcyWf@並@@@@@@@@@@@ Y@@ఐ+satisfiableyWhyWs@\@@@r_rbq@@@-@@@,@@@+@Fw7q@@@*@@@)@@@(oz@@@'@@&@@% @@ภ-ϰyWuyWyAgȠภ-װyWvyWxAgРఐ E!p zWw@  @@ o @ภ-ʰAr@ A@yir5@@@T@@@US@q @@%@@rrA@ ~@A@@@@S@JS@S @ภ-,4Ar@-5A@y@@@LS@ @@z-Wt=@@r @@@?S@I @@ภ.z<W{z=W}Ahఐ !q zFW|@  @@  @ภ.Ar@ A@yw M@@@@@@@S@ @@z[Wz@@Gw @ @=@@@h@@= @@@-@ @@Io@@@3@@@Ju@@@డyoo{6{7@o@@@o@@@\@o@@@[pj@@@Z@@Y@@X3{A{@{@{A{A{A{A{A@jd@e@f_Y@Z@[F@@A@B;5@6@7@@@@ఐ ̠&le_pat{[{\@ @@@ @  @@k@@j@@ఐ!p{l{m@#@@)@@ఐn!q{y{z@.@@n6@@"@@ 7@@ఐ 'le_pats{{@ @@@ @  @@@@J@@ఐ"ps{{@P@@ M@Y@@ఐ"qs{{@]@@ M@h@@&@@ i@@U@@ j@@@{{@@ @L@@@{{@@ @M @@ @@@@ @@P@@@@@@Q@@@ภk{{@k@@@ "@@@A{@@ 3{{{{{{{{@$@@@NA@@ @  @@@@M@P@@@{@    @  @@ @  @@.@@-3{{{{{{{{@&@@@࣠@*labeled_ps A{{ @|A@@3{{{{{{{{@=@@@@@@*labeled_qs A| | @|A@@ 3| | | | | | | | @M@@@@@@@@@ఐ(*labeled_ps|"#|#-@@@%3| ||| | | | | @"@@@@@@ఐ(*labeled_qs|1/|29@ @@@@@@@9@@@@@Ġj!|H?O|I?Q@j @ఠ'p_label |U?D|V?K@|hA@@RM@%M@7@@ఠ!p |d?M|e?N@|wA@@TM@E@@|k?C$@@@@ @@M@ఠ*labeled_ps 0|y?[@|A3@@{ؠ|M@@@@]@@@ @@@`@@Ġje|?i|?k@jd@ఠ'q_label |?^|?e@|A@@uM@(M@{@@ఠ!q |?g|?h@|A@@|M@@@|?]$@@@@ @@@ఠ*labeled_qs 0|?u@|A3@@|M@@@@@@@ @@@@@_ @@@K@ @@@@@Q@@@@@@డ{Gq=q?||@q<@@@q<@@@@q;@@@r@@@@@@@3||||||||@@@@@|@}@~c\@]@^UN@O@PA;@<@=@@@@డ{p&Option%equal} y} y@ }y}y@@C5@@@@ @ C1@@@@@@@@U@@@@U@@@C0@@@@@@@@@=@@డ{&String%equal}9y}:y@ }=y}>y@@C@@@`@@@@`#@@@C@@@@@@@`@@ఐ'p_label}Xy}Yy@e@@m@@ఐ̠'q_label}ey}fy@o@@z@@^@@q@@@@)S@@@డ{qڠqܰ}{}|@qٰ@@@q@@@/@q@@@.r@@@-@@,@@+@@ఐ&le_pat}}@Ѱ@@@@@@>@@=@@ఐD!p}}@@@C@@ఐ !q}}@@@ @@"@@ @@ఐȠ-le_tuple_pats}}@̰@@@@@@X@@W@@ఐ]*labeled_ps}}@@@M@_@@ఐ(*labeled_qs}}@@@M@`@@&@@@@U@@rC@@@@bS@9@@@@@@@}}@@@@@@~~@@@@@ @@@@ @@@@@@@@@@@ภmͰ~~@m@@@@@@A~ @@3~~~~~~~~@@@@&A@@'@@@@@M@(@@@~*@@@x@ఠ(get_mins ~7~8@~JA@@@@{@M@@M@-@@@M@֐A@M@ӐA@M@@vP@@@@/M@}@@@M@@@M@@@M@3~^~]~]~^~^~^~^~^@@@@࣠@"le A~o~p@~A@@43~n~m~m~n~n~n~n~n@A~w~x@@@@@  @@"ps A~~@~A@@13~~~~~~~~@!K@@@@@@@@Aఠ*select_rec ~ ~ @~A@@@}\@@@P@@w8N@@@P@P@@@@@3~~~~~~~~@%1X@(@)@@@࣠@!r A~  ~ !@~ A@@!3~~~~~~~~@-@(@$@@Q@@@Q@@/@0@@@@@@Ġwg~-3~-5@wf@@@@03~~~~~~~~@$;@@@@@@@ఐ(!r~-9~-:@ @@7 @Ġl~;B~;D@lఠ!p !~;A @!A @@P@3~~~~~~~~@!@@@ఠ"ps "~;F@"A@@~\@@@@@@@@a@@@డ}y$List&existsJUJY@ JZJ`@@.Ű@@@@S@.@@@@@@.  @@@.@@@@@@@3)(()))))@\D>@?@@93@4@5@@@@࣠@"p0 #AAJfBJh@T#A@@%3@??@@@@@@@@@@@@ఐ堐"leQJlRJn@ʰ@@3ONNOOOOO@'7@@@@@@ఐ#"p0aJobJq@ @@D@@ఐ}!pnJroJs@?@@}@@!@@'@sJatJt@@@[/@@@@@T@T@9@@ఐ"psJuJw@X@@/*r@@@T@T@e@@ @@\@@@T@T@ఐ *select_recxx@@@@ @@@@@d@@ఐ!rxx@߰@@q@@ఐà"psxx@@@P@@@$@@@ఐ:*select_rec@@@@9@3-@@@@@@ภ^Ȱ@mఐ!p @ @@@ఐ=!r@@@Y@@@@\P@@@ఐ"ps@԰@@cP@@@:@@`@ JR@@b@@Ai8 $ $ @@@W A@@x@rl@@ @@ P@ Y@@@  @@ఐ*select_rec!"@d@@@@@@@x@@@ @@@@3+**+++++@s@@@@ภxϰ9:@x@@@P@ @@ఐ*select_recJK@@@@ @@@$@x@@@% @@#@@")@@ภxab@x@@@x@@@P@6Q@.Q@4>@@ఐ"psxy@Ͱ@@%K@@|@@M@@]@@N@h@@ @A@EM@:@A@ @  @ Aఠ#lub %PXP[@$A@@@}w@@@M@{@@@zM@@@} M@@@@M@CM@D@@b@@a3@yr@s@t@@@࣠@!p *AP\P]@)A@@(3@8@3@*#@@EN@A@@BN@;@:@;%orlub &@~.DM@M@M@yM@@@@M@F@~?@@@M@I@LM@LNM@M@@NN@J@@KN@G@@HN@<@@@%A+record_lubs '@O@OO@@@@@@@O@@@@~m;@@@@@@@@M@O@ M@R!M@S@@TN@P@@QN@=@  ! @@3&A*tuple_lubs (@YР@QAd@@@'GM@@@@M@렠@~hM@@@@@@@@@M@U@Y@Y͠ Q@'@@@'3M@@~M@@@@@@@@@M@X@9@~ʠ@@@@@M@'N@@@'RM@Y@@ZN@V@@WN@>@vFJwFT@@'A$lubs )@ZO~ߠM@@@@@@@M@[@Z^~M@@@@@@@M@^~ @@@M@)@@@)M@_@@`N@\@@]N@?@#@@(A@@@@@@!q +AP^P_@*A@@3@ '@@@@@@@@@ఐ!pPhPi@@@;3@$1@@@@@(pat_descPjPr@{ @@yR@@@@M@y@@ఐ=!qPsPt@@@P"@(pat_descPuP}@{5 @@M@|*@@.@@@%@@@~1@@Ġ*Tpat_alias@YWఠ!p ,@*+A@@uyZ@@@@@@3@S@@@@&'@@Y]@@@ @@./@@Y^Y\@@@@@@@@:;@@Y_@@@@@BC@@Ya@@@%@@@:H@@~M@M@M@zM@vM@M@M@@6@@@\]@@M@M@v@B@@W@@@ @ @@I@@@&@@@O@@@ఐ점#lubz{@@@@@@@s@@r3|{{|||||@pi@j@k@@@@ఐw!p@ @@@@ఐꠐ!q@̰@@@@%@@@@@@@b@3@@@@@Ġ*Tpat_alias@Yఠ!q -@,A@@z@@@@@@@@@@Z@@@%@@@@ZZ@@@@@@1@@@@Z@@@9@@@@Z@@@A@@@9@@@D@@I@@@K@@@K@@@Q@@@Q@@@ఐy#lub@G@@@x@mf@@@@3      @@UN@O@P@@@@ఐf!p@c@@@@ఐi!q()@@@@@%@@@@Ġ(Tpat_any<=@[2@@@@@@Ġ(Tpat_varGH@zT@LM@@zO@@@@@@zMzH@@@@@@@@@zF@@@@@@@@!@@ab@@$@@@gh@@ @@@ @@@1@ @@@@@7@@@@@@ఐΠ!q@@@@@@@@E@@@Ġ(Tpat_any@[@@@@=@@Ġ(Tpat_var@z@@@z@@@@@@zz@@@@@@ @@@z@@@@@@@@!@@@@$@@6@@@8@+@@@@@>@1@@!@@@ఐ !p@@@0+@@Ġ'Tpat_or @Yޠఠ"p1 ."$@-A@@M@@@3@(@@@ఠ"p2 /%'@.A@@]/@@@@@ ( )@@YY@@@@@@@@@.*@@@ @@@+,@@@(@@:@@@@ @@/@@@@@@5@@@ఐf%orlub5469@j@@@h@Y@QO@@@@@@398899999@qVO@P@QG@@A@B@@@@ఐ^"p1M:N<@@@|@@ఐ["p2Z=[?@@@x@@ఐ!qg@hA@@@,@@6@@-@@@uBDvBE@@.@3tssttttt@@@@@Ġ'Tpat_orBFBM@Zzఠ"q1 0BOBQ@/A@@M@@@@@ఠ"q2 1BRBT@0A@@@@@+@@BUBV@@ZZ@@@@@@7@@@/BW@@R@;@@@@@@B@ @@B@@@H@@@H@@@ఐ%orlubB_Bd@@@@@@@@@@@@3@OH@I@J?8@9@:@@@@ఐW"q1BeBg@@@?V@@@@@ఐW"q2BhBj@@@Pg@@@'@@ఐO!pBkBl@L@@s4@@>@@`5@@Ġ-Tpat_constant@Uఠ"c1 2 @21A@@U@@@3!  !!!!!@W@@@@@@@@@@Ġ-Tpat_constant23@Vఠ"c2 3;<@N2A@@V@@@@@@@@@@@0 @@@"@ @@&@@@(@@@,@@డ[\@@@@j@@@Q@@@@@@@@@3eddeeeee@RK@L@M70@1@2@@@@ఐjJ-const_compare{|@f@@@w@@@@j?@@@@@@@@@ఐs"c1@'@@w@@@S@S@2@@ఐk"c2@:@@S@S@C@@3@@LD@@@@@WR@O@@?@@b.@@@R@U@ఐ!p@@@!_@@Ġ*Tpat_tuple@Uఠ"ps 4@3A@@^@UU@@@*@@@)@N}3@@@,@@@+@@(@@@'3@-@@@@@'@@@@@Ġ*Tpat_tuple @V'ఠ"qs 5@$4A@@^@V(V'@@@:@@@9@}d@@@<@@@;@@8@@@71@@@&@@@4@@Z@@@7@ @@=;@@@=@@@>A@@@@ఠ"rs LGH@ZKA@@M@'{M@M@M@3MLLMMMMM@yr@s@tIB@C@D@@@ఐ9*tuple_lubs`a@=@@@;@@@@@@@ఐ"psqr@@@H"@@ఐm"qs~@*@@5/@@"@@0@A@@@ఐ6(make_pat (@~@@@GM@Q@@0@@@@)@@@$@@@@@@@@@3@Sc\@]@^@@@@ภ*Tpat_tuple*4@VϠఐs"rs57@@@r@@)8@@.Q@@@ఐ!p9:@@@=-@(pat_type;C@ݰ @@t@@@ R@0R@-;@@ఐ6!pDE@3@@ZJ@'pat_envFM@ @@@@@ R@5R@2X@@p @@\M@ [@} @@X@@Ġ)Tpat_lazyNPNY@V`ఠ!p 6NZN[@*5A@@u~Z@@@K@@@J3@S@@@@@ @@@@@@Ġ)Tpat_lazy.N]/Nf@Vఠ!q 77Ng8Nh@J6A@@~z@@@S@@@R @@@ @@@A#@@8@@@&@ @@T*@@@,@@@U0@@@@ఠ!r M\lt]lu@oLA@@R@63]\\]]]]]@RK@L@M3,@-@.@@@ఐ⠐#lubplxql{@@@@@@@9@@8@@ఐj!pl|l}@@@ޠM@A@@@@(@@ఐ]!ql~l@0@@M@G@@@F;@@. @@<@A@lp @@ఐR(make_pat@ư@@@_M@gQ@Q@L@@@S@E@@@R@@@@P@@O@@N@@M3@_jc@d@e@@@@ภ)Tpat_lazy@Wఐz!r@@@y@@@@.Q@i@@ఐӠ!p@@@G,@@@}@@@|4@(pat_type@@@@@@bR@R@B@@ఐ!p@@@kP@@@@@@X@'pat_env@@@@@@aR@R@f@@~ @@M@`i@ @@@@Ġ.Tpat_construct89@\<ఠ#lid 8AB@T7A@@\=\;@@@l@@@k3GFFGGGGG@}@@@ఠ"c1 9TU@g8A@@\A@@@m@ఠ#ps1 :bc@u9A@@a3à@@@p@@@o@@@n%@@tu@@\J@\I\H\F@@@u@@@t@@@s@\C@@@v@@r@@@qB@@@W@@G@WF@@Ġ.Tpat_construct@\@@@\\@@@@@@\@ఠ"c2 ;@:A@@\@@@j@ఠ#ps2 <@;A@@a@@@@@@@@@@@@@\@\\\@@@@@@@@@@\@@@@@@@@@@@P@@@X@@@@@b@ @@@@@h@@@@@డ-,equal_constr*Data_types @   @@M_@@@}@@@@}@@@M@@@@@@@3@S@@@@@@{t@u@vng@h@i@@@@ఐޠ"c123@@@};@@@R@R@@@ఐ"c2FG@"@@}O@@@R@R@3@@I @@e@@@R@9@@ఠ"rs N`(a*@sMA@@M@)M@M@M@M@M@3jiijjjjj@R@@@ఐ$lubsy-z1@@@@@@@@@@@ఐ(#ps125@g@@ @@ఐڠ#ps269@r@@ +@@"@@,@A@$@@ఐO(make_pat=E=M@ð@@@\M@Q@@I@@@@B@@@=@@@@@@@@@3@c\@]@^@@@@ภ.Tpat_construct=O=]@]͠ఐ#lid=_=b@@@]Π]@@@R@R@@@@$@ఐ"c1=d=f@ǰ@@]@@@R@R@6@ఐ"rs=h=j@>@@A@ภ$None=l=p@TG@@@]ޠ@]ݠ]ܠ]@@@@@@@@@頠@]@@@@@@@@R@e@@#=N$=r@@zQ@j@@ఐ ~!p3s}4s~@{@@ y@(pat_type:s;s@B @@@@@R@#R@ @@ఐ !pPsQs@@@ @'pat_envWsXs@V @@@@@R@(R@%@@ @@ M@@ @@ @@Ġ,Tpat_variantst@\ఠ"l1 =|}@@=A@@@@@@@@@@@ @@c@@@@@@@@@(@ఠ#row ?@>A@@\ɠ\@@@@@@:@@@K@@v@>@@Ġ,Tpat_variant@\ఠ"l2 @@?A@@\@@@V@Ġ$Some@Tఠ"p2 A@@A@@G,@@@@@@q@@@ @@cR7@@@@@@@@@}@@@@]]@@@@@@@@@D @@@@@@@@V@ @@@@@\@@@@@డTV&'@S@@@]R@@@6Q@-@T@@@,@@+@@*30//00000@ k@@@@@@pi@j@kZS@T@U@@@@ఐΠ"l1J%@&@@@@ఐ"l2/V@1@@]}@@@9&@@@@g@@@@ఐd#row36@۰@@^0^+@@@{@@@zR@R@T@@%&8@@iQ@tY@@ఐ !p596:@ }@@ h@(pat_type<;=C@D @@@@@iR@R@v@@ఐ !pRDSE@ @@ @'pat_envYFZM@X @@@@@hR@R@@@ @@ M@g@ @@ @@Ġ,Tpat_variantuNPvN\@^ఠ"l1 B~N^N`@AA@@^@@@3@ @@@Ġ$NoneNaNe@V@@@@e@@@@@@@@@@ఠ$_row CNfNj@BA@@^^@@@@@@(@@@9Nk@@ f@,@@Ġ,Tpat_variantNmNy@^ఠ"l2 DNzN|@CA@@^@@@D@Ġ$NoneN}N@W@@@@eɠ0@@@@@@@@@Y@@NN@@^^@@@@@@e@@@2N@@ @i@@z@@@D@ @@p@@@J@@@v@@డm24@1@@@_0@@@Q@@2@@@@@@@3  @ G@@zs@t@u[T@U@V@@@@ఐ"l1$%@@@@@ఐo"l212@@@_Y@@@$@@@@i@@@R@*@ఐ !pDE@ @@ 4@@Ġ+Tpat_recordUV@\ఠ"l1 E^_@qDA@@\@\\@@@@@@@[@@@@Ѡ@@@@@@@@ @@@ 3zyyzzzzz@ @@@ఠ&closed F@EA@@\@@@@@@:@@ G@@@Ġ+Tpat_record@\Hఠ"l2 G@FA@@\I@\H\F@@@#@@@"@\C@@@$@@@@&@@@%@@!@@@ E@@@@\D@@@'M@@@3@@ n@Q@@|@@@E@ @@(X@@@K@@@)^@@@@ఠ"rs P@OA@@ M@M@3@ "@@pi@j@kUN@O@P@@@ఐ +record_lubs@ @@@ @  @@@@@@ఐ"l1@@@ M@&M@&M@)@@ఐ~"l2!"@/@@M@&M@:@@+@@ ;@A@* @@ఐݠ(make_pat45@Q@@@ bM@Q@@@@@@@@@ˠ@@@@@@@@@3FEEFFFFF@^jc@d@e@@@@ภ+Tpat_recordWX@]ఐz"rsab@@@y@ఐ堐&closedlm@{@@\@@@R@R@+@@wx@@@Q@0@@ఐ Ҡ!p @ ϰ@@ ?@(pat_type!)@ @@-@@@R@R@M@@ఐ !p*+@ @@\@'pat_env,3@ @@>@@@R@"R@j@@ @@M@m@ @@@@Ġ*Tpat_array464@@[ఠ#am1 H4B4E@GA@@[@@@7 @ఠ"ps I4G4I@HA@@[?$@@@:@@@9@@@8 @@@'4J@@ @+ "@@Ġ*Tpat_array4L4V@[̠ఠ#am2 J4X4[@IA@@[@@@C :@ఠ"qs K4]4_@#JA@@[ՠqV@@@F@@@E@@@D P@@@' 4`@@ @, T@@]@@@9@ @@G [@@@?@@@H a@@డ9av:ax@@@@@@@(@@@@'m@@@&@@%@@$3DCCDDDDD@ ~{@|@}un@o@pRK@L@ME>@?@@@@@@డ]ap^aq@@@@\+@@@BR@9@@@@8@@7@@6#@@ఐ#am1valwao@*@@0@@ఐ#am2arau@5@@$S@C?@@@@@@@4@DS@AG@@డɠ˰aa@Ȱ@@@[_@@@\R@I@@@@H@@G@@Fa@@డ$List&lengthaya}@ a~a@@[\@@@[\#@@@`@@@_S@V@@@U[@@@T@@S@@ఐ"psaa@@@[}!@@@]T@aT@^@@0 @@H@@డ_$List&lengthaa@ aa@@[@@@[cH@@@p@@@oS@f@@@e[@@@d@@c@@ఐ"qsaa@ϰ@@[!@@@mT@qT@n@@0 @@T@l@@s@@@@@3@rS@Q@@@@l@@@sR@2@@ఠ"rs QDE@WPA@@R@t3DCCDDDDD@@@@ఐ֠$lubsST@ڰ@@@@@@w@@v@@ఐ"psde@@@M@~ @@ఐc"qsst@$@@M@/@@&@@0@A@z@@ఐ-(make_pat@@@@M@Q@@'@@@@ @@@@@@@@@@@@3@S]V@W@X@@@@ภ*Tpat_array@]zఐ᠐#am1@e@@]@@@R@R@ @ఐ"rs@(@@~+@@@@@Q@0@@ఐ"!p@@@F?@(pat_type@ @@}@@@R@R@M@@ఐ?!p@<@@c\@'pat_env@ @@@@@R@R@j@@ @@eM@m@ @@a@@@@@@JH@@@@@@KP@@ @@@@ @@NW@@@@@@O]@@@డ%raise56 @L@@@L@@@R@@@p@@ภ%EmptyH I@:@@@_@@@R@@@@@@@@ARPb @@3NMMNNNNN@@@@ A@@@@@!@@!M@!@@@\PP@qp@or@@@@|z@@e@@d@@c3dccddddd@@@@࣠@"p1 RAuv@QA@@3tssttttt@@@@@@@"p2 SA "@RA@@3@@@@@@@@@!q TA#$@SA@@3@@@@@@@@@@ఠ"r1 U-5-7@TA@@ Q@!3@$@@@@@ఐ.#lub-:-=@@@@-@"@@!@@!@@ఐ["p1->-@@E@@ @@ఐH!q-A-B@*@@-@@"@@6.@A@-1@@$(pat_descN\Nd@ภ'Tpat_orNfNm@gఐS"r1NoNq@R@S@T@@S3@R]@@@ఐ#lub NrNu@M@@@~@sl@@"%@@"$@@ఐ"p2NvNx@@@> @@ఐ!q+Ny,Nz@{@@A-@@"@@.@ภ$None6N{7N@\x@@@hh@@@"@@@"P@">A@@CNeDN@@uP@"6@@@"8M@" P@" P@@@@"FP@"C@@@@@"R@~@@@"S@"@@@"T@@"Q@@@"PP@"I@x @@@"ZP@"W@v@@@"`P@"]@t8@@@"fP@"c@@ఐ!qNUNV@ް@@@NTN@@@Ġ%Empty@@@@@@@@"m@@@ఐ"r1@@@@@@FJ@@@@@@Ġ%Empty@@@@@@@@"t @@@ఐ8#lub@@@@7@,%@@"x@@"w@@ఐV"p2@>@@*@@ఐR!q@4@@7@@"@@8@@@')@@:@vA@@@@@@"@@"@@"M@"z@@@@@@@@@@g@@f3@U@@@࣠@"l1 VA    @UA@@3        @S@@@@@@"l2 WA  @-VA@@3@c%@@@@@@@@Aఠ'lub_rec X- . @@WA@@@@@@"Р@P@@@#P@"Ѡ@P@"@@"P@#6@@@#:P@"@P@"P@"@@"@@"3KJJKKKKK@3?7@6@7@@@࣠@"l1 YA^ _ @qXA@@/3]\\]]]]]@;@6@@@"Q@"@@"Q@"@=@>@@@@@@"l2 ZAw x @YA@@-3vuuvvvvv@&K@@@@@@@@@ఐ2"l1  @@@]3@"E@@@@@@ఐ("l2  @ @@Q@@@@@q@X@@"@@ĠI  @H@@@@P@#TP@#$P@#4P@"P@# P@"P@"@"3@5@@@@@  @@P@"@" @@@@@@ @@"@@@%@@@"@@@ఐp"l2  @T@@"@@@    @@=@"0@@Ġ   @@@@@1@";@@@@@@@@"B@@@@@@"H@@@ఐ"l1  @@@R@@Ġ$(%*@@ఠ$lid1 [12@DZA@@P@"@@ఠ$lbl1 \? @$@R[A@@P@"@@ఠ"p1 ]L%M'@_\A@@P@"@@R/@@@"@@ @@"@ఠ$rem1 ^=b.@t]A@@@0P@"@@@"@@@ @@@"@@ĠNu?vA@M@ఠ$lid2 _15@^A@@H@@ఠ$lbl2 `7;@_A@@P@@ఠ"p2 a<>@`A@@U@@0+@@@f@d@_@@"@ఠ$rem2 b9E@aA<@@}P@"@@@"(@@@ @@@"+@@j @@@T@ @@"2@@@Z@@@"8@@@డ;qqI_I`@q@@@z@@@"T@"@q@@@"@@"@@"3@Y@@@@@@@@p@j@ke@_@`Z@T@UF@@A@B@@@@ఐ$lbl1IRIV@@@ @'lbl_posIWI^@ @@/'@@ఐ$lbl2IaIe@'@@6@'lbl_posIfIm@ @@GU@"?@@#@@q@@@"U@"E@ภt+s,s@@ఐ$lid19s|:s@Q@@[@@ఐ$lbl1EsFs@\@@g@@ఐ"p1QsRs@g@@s@@Us{+@@P@"w@ఐ5'lub_rec6bs@8@@@3@@@#@@#@@ఐ$rem1rsss@@@P@# @@ఐ "l2ss@@@6@@Y@@6@@1@@QP@"@@@"@డrmro@rl@@@?@@@#T@#@rm@@@#@@# @@# @@ఐ$$lbl2@Ű@@s@'lbl_pos@^ @@@@ఐ$lbl1@߰@@@'lbl_pos@t @@6U@#@@#@@rI@@@#U@#@ภtȰ@@ఐk$lid2@@@@@ఐk$lbl2@ @@@@ఐk"p2@@@'@@ +@@P@#)+@ఐ預'lub_rec6@8@@@@@@#,@@#+;@@ఐˠ"l1&'@@@H@@ఐ$rem234@D@@zP@#3W@@Y@@X@@1@@T@##[@ภu+BC @@ఐ$lid1P Q @h@@r@@ఐ$lbl1\]@s@@~@@ఐܠ#lubjk@@@@@@@#A@@#@@@ఐ/"p1{|@@@.@@ఐ"p2@@@B@@"@@@@L@@VP@#H@ఐm'lub_recW'@7Y@@@k@RQ@@#K@@#J@@ఐH$rem1(,@@@P@#R@@ఐ $rem2-1@ʰ@@P@#S@@|@@p@@3@@T@#9@ @@@IO @@w@@@A @@y@kA@@@@@&@@&P@&m@@@ @@ఐ'lub_rec575>@x@@@;@eM@@@@M@&@@@@&@@@&@@@&@@@&@@&3@@@@@ఐ"l15?5A@@@ @@ఐ"l25B5D@@@@@:@@@E@@@ A@@@@@&@@&M@& @@@  @@@@@@@i@@h3#""#####@~@@@࣠@"ps cA4FU5FW@GbA@@332233333@|@@@@@@"qs dACFXDFZ@VcA@@3BAABBBBB@ @@@@@@@@@ఐ("psYFcZFe@@@23WVVWWWWW@"@@@@@@ఐ("qshFfiFh@ @@!@@@@@F@(@@&@@Ġnpnr@@@@@X@&3~~@(@@@@Ġ"ntnv@!@@@@E@& @@@@@@ @@&@@@@@@&@@@ภ9nzn|@8@@@C"@@Ġ}}@@ఠ'p_label e}}@dA@@M@&i@@ఠ!p f}}@eA@@M@&w@@}"@@@@ @@&@ఠ"ps g.}@fA1@@AM@&@@@&@@@ @@@&@@Ġΰ}}@͠@ఠ'q_label h}}@gA@@M@'KM@&@@ఠ!q i}}@$hA@@M@'@@}$@@@@ @@'@ఠ"qs j0&}@8iA3@@M@&@@@'@@@ @@@&@@_ @@@K@ @@'@@@Q@@@'@@డ&Option%equalMN@ QR@@^w@@@@@^s@@@'"@@'!@@' @p @@@'@pޠ@@@'^r@@@'@@'@@'@@'3hgghhhhh@@@@@@@yr@s@tkd@e@fWQ@R@S@@@@డ&String%equal@ @@^a@@@{m@@@'B@{r@@@'A^a@@@'@@@'?@@'>0@@ఐ砐'p_label@5@@=@@ఐ'q_label@?@@J@@k@@u,@@@'LR@'2P@ภw@@ఐ'p_label@^@@f@@ఐP#lub@@@@O@D=@@'X@@'Wx@@ఐ"!p@|@@!@@ఐ렐!q@@@@@"@@X@@@@M@'o@ఐ蠐*tuple_lubs@@@@@@@'r@@'q@@ఐ>"ps !@@@M@'y@@ఐ "qs/0@@@M@'z@@&@@@@5@@@@@@A@@@'@@@H I @@@'@@ @@@@ @@' @@@@@@' @@@డ%raisebc@y@@@y@@@'R@'~@@'}@@ภ%Emptyuv@g@@@@@@'R@'!@@@@"@@@AF] @@@M A@@[@=$@@)@@)M@)O@@@FF@@@@@@@k@@j3@@@@࣠@"ps kA$&@jA@@#3@@@@@@@"qs lA')@kA@@#3@5@@@@@@@@@ఐ("ps24@@@G3@";@@@@@@ఐ("qs57@ @@G@@@@@[@N@@)@@Ġð=@=B@ ఠ!p m=? @lA @@sM@)1@ఠ"ps n=D@mA@@^@@@)?@@@@@@)B@@Ġ=G=I@ఠ!q o=F @+nA @@M@)W@ఠ"qs p%=K@7oA@@@@@)e@@@@@@)h@@= @@@-@ @@)o@@@3@@@)u@@@ภy*A=WB=Y@ఐ#lubM=ON=R@@@@@@@)@@)3ONNOOOOO@jd@e@f_Y@Z@[F@@A@B;5@6@7@@@@ఐt!pg=Sh=T@@@t@@ఐ[!qt=Uu=V@@@[#@@+@@$@ఐ$lubs=Z=^@ @@@@@@)@@)5@@ఐ"ps=_=a@;@@M@)D@@ఐ}"qs=b=d@H@@M@)S@@&@@T@@\@@U@@@ eg eh@@5@)@@@ ei ej@@.@)@@ @@@@ @@)@@@@@@)@@@ภg en ep@f@@@: @@@A,@@<3@@@@9A@@\@OD@@* @@*M@*;@@@@@ @7@ఠ1pressure_variants q))@pA@@@@@@*QM@*"@%)@@@*OQ@*`@@@*lM@*'$unitF@@@*6M@*(@@*)M@*#@@*$M@*!3        @T@@@࣠@%tdefs rA))@/qA@@,@@@@$patl sA*)+)@=rA@@13)(()))))@s=@@@@@@@@డ&ignore<*=*$@@!a@;@@@\@@['%ignoreAAd@@@b``c``@@at@@@@@@@*LO@*/N@@@*.@@*-3VUUVVVVV@.:a@1@2@@@@ఐi1pressure_variantsj*&k*7@i@@@eT@@@*?@@@*>@  @@@*=@@@*<@@@*;@@@*:@@*9@@*8+@@ภ$Some+8E+8I@eఐ%tdefs+8J+8O@k@@3@A@@@@+8D+8P@@e@@@*PQ@*W @@డ$List#map,Q^,Qb@ ,Qc,Qf@@@@@@Z@@@*NQ@*Q@*tQ@*^@@*a@@@@*_ڠ@@@*]@@*\@@*[{@@࣠@!p tA,Ql,Qm@sA@@L@@@@ภOΰ,Qr,Q{AǠఐ!p ,Qs@@@ @@3@!@@@ภO,QuA۠ఐ8%omega  ,Qz@߰ @@M@*M@*~@ภOذ (A@ )A@wT@*x@@@*}S@*%@@2A@ Q@*r@@@*vS@*|-@@*,Qq;@@@@@*u3@0,Qg1,Q|@@@6v@@*mR@*R@*@@ఐ$patlB,Q}C,Q@@@H@@F,Q]G,Q@@ޠ@@@*MQ@*R@*k@@Q*%R,Q@@@@@@J@9A@eM@*G@A@X)@@@J@ఠ (pressure_variants_in_computation_pattern ue.f.@xtA@@@Q@@@+M@*@L|נ+computation@@@+ P@+@@@+P@*@@@*M@*@@@+M@*@@*M@*@@*M@*3@@@@@@࣠@%tdefs wA..@uA@@33@@.;@@@@@  @@$patl xA..@vA@@>3@!J@@@@@@@@@ఠ'add_row y//@wA@@@)5@*@@@*P@*@g P@*@@@*P@*P@*@@*P@*@@*P@*3@,8l@/@0@@@࣠@#pss {A//@xA@@&3@3/2@@@@@  @@%p_opt |A//@yA@@/3@!=@@@@@@@@ఐ%p_opt00@@@@@@A3@@@@Ġ$None#1$1@ge@@@@P3!  !!!!!@@@@@Q@@@ఐD#pss.1/1@)@@S @Ġ$Some;2<2 @gAఠ!p }D2 E2 @WzA@@mP@*2@@@@@t3@@t3@@@ภ|8O2P2@'ఐ!pY2Z2@@@@@3XWWXXXXX@G@@@ఐ}#pssg2r@as@@ @@t@@ @@@Ak0v@@F@wA@P@*~@A@{@@@ఠ'val_pss ~}4$~4+@{A@@ߠ'pattern@@@+.P@+ @@@+*P@*3@@@@@@@ఠ'exn_pss 4-44@|A@@@@@+BP@+4@@@+>P@*@@,@@@,@@@*!@డ!$List*fold_right57;57?@ 57@57J@@Mذ@@@@M@@Q@7@@+ZP@*P@* @@*@@*@Mڠ^@@@*@@@*@@*@@*3@N@@@@࣠@#pat A57P57S@}A@@ta@@@@? A@ఠ$vpss 57U57Y@~A@@P@*3@w"@@@@@@ఠ$epss 57[57_@"A@@vP@*@@57T57`@@@@ @@*@@ @@@@ఠ"vp .6cn/6cp@AA@@c@@@+@@@+T@*376677777@:E>@?@@5.@/@0@@@@ఠ"ep I6crJ6ct@\A@@~@@@+@@@+T@*@@X6cmY6cu@@@,@@@*$@డz-split_patterni6cxj6c@@Ƞ@@@ @@@@E@@@@@@@3@@@@@@@@@@@uuuuS@@@%$@@@@@@*@@@*@g@@@*@@@*@U@@@*@@@*@@*@@*o@@ఐ͠#pat6c6c@@@=|@@P@@@@t@@+U@+@A@6ci @@@ఐ 'add_row77@B@@@1R@@@+@iX@@@+! @@+@@+3@@@@@@@@@ఐ$vpss77@@@@@ఐ͠"vp77@@@iA@@@++T@+/T@+-'@@7 @@(@@ఐO'add_row77@@@@sx@@@+3@i\~@@@+5 @@+2@@+1B@@ఐ$epss+7,7@@@O@@ఐ"ep8797@W@@i~@@@+?T@+CT@+Ad@@2 @@e@@u @@@Ơ@@@+Dl@@@@M57KN8@@@@@@*@@*Q@+KQ@+I@@ఐ$patla8b8@@@@@@ภp8q8@@@@P@+T@@ภ|8}8@@@@P@+X@@88@@P@+Y@@@@@A@4 @@ ఐ1pressure_variants::@@@@{@@@+b@Ġ@@@+a@@@+`@@@+_@@+^@@+]3@2+@,@-@@@@@@ఐ%tdefs::@@@M@@ఐG'val_pss::@@@@@@+o@@@+nQ@+tQ@+r*@@?@@@@@+vP@+m0@ఐ1pressure_variants;;@S@@@@@@+}@@@@+|@@@+{@@@+z@@+y@@+xM@@ఐf%tdefs;; @K@@Z@@ఐs'exn_pss ; h@ai@@8:@@@+@@@+P@+P@+q@@9u@@r@v@@s@w@@@(x@@>@yA@M@+@A@}@}|@Aఠ.initial_matrix ,F-F@?A@@@Ơ@+M@+@@@+M@+@@@+M@+ڠ @@@+M@+@@@+M@+@@+3HGGHHHHH@@@@@@@ĠZG[G@@@@@+3XWWXXXXX@7@2#@@+N@+@5@6@@@@@ภiGjG@@@@+@ĠLsH tH @Kঠ)has_guard~HH@8Ġ6HH@5@@@@V@@@+3@.@@@@@HH @@XP@+@ఠ#rem H H@A@@hM@+@@@+@@@ @@p@@@ఐ.initial_matrixHH"@N@@@~o@@+3@T@@@@@@ఐ%#remH#H&@ @@M@+@@@@@ĠI'HI'J@ঠ'patternI'=I'D@ఠ!p I'EI'F@A@@M@+3@@@@)has_guardI',I'5@ĠI'6I';@@@@@@@@+@@@I'+I'G@@M@+@ఠ#rem I'KI'N@A@@b@@@+(@@@@@)@@@ภI'VI'X@ภTI'SI'UAఐE!p "I'T@C@D@E @@D3      @O*#@$@%@@@ภT A@A@@@@+O@+@@7I'R@@M@+@ఐ.initial_matrixDI'YEI'g@@@@@@+$@@ఐQ#remSI'hTI'k@-@@$M@+3@@@@4@@#@@5@@A \F @@@ @@@0!@@,M@,@@@cF@@@Aఠ4initial_only_guarded pOqO@A@@@ ݠ@,7M@,@@@,M@,@@@,M@,  @@@,9M@,1@@@,5M@, @@, @@Ġ1PP@0@@@@(3@B4@/ @@, N@, @2@3@@@@@ภ@PP@?@@@(@ĠQQ@ঠ)has_guardQQ@yĠQQ@@@@@@@@,3@.@@@@AQQ@@UP@,@ఠ#rem QQ!@A@@9eM@,@@@,@@@ @@m@@@ఐ|4initial_only_guardedR%+R%?@N@@@{l@@,+3@T@@@@@@ఐ%#remR%@R%C@ @@M@,/@@@@@Ġ SD] SD_@ঠ'patternSDJSDQ@ఠ#pat SDTSDW@1A@@M@,3@@@@@A%SDH&SD\@@M@,@ఠ#rem 0SD`1SDc@CA@@@@@,!@@@@@@@@ภ'>Tgs?Tgu@ภV%FTgnGTgrAఐ2#pat PTgq@0@1@2 @@13NMMNNNNN@<*#@$@%@@@ภV A@A@@@@,;O@,@@@eTgm@@M@,:@ఐ4initial_only_guardedrTgvsTg@԰@@@@@,B$@@ఐQ#remTgTg@-@@M@,F3@@@@4@@#@@5@@A O @@@ @@@ @@,vM@,u@@@O@@@@ఠ2contains_extension \#'\#9@A@@@ @@@,M@,x$boolE@@@,M@,y@@,zM@,w@࣠@#pat A\#:\#=@A@@3@%)\##a@@@@@  @@డ.exists_pattern]@B]@P@@@R@@@0@@@@@@[@@@9@@@@@@@@ rOrO rOr@@U@@@@@j@@@,@@@,@@,@r@@@,P@@@,@@,@@,~3@?K]@B@C@@@@@ঠ(pat_desc__g__o@SĠ(Tpat_var__p__x@(@ __z!__{@@#@@@,%@ঠ#txt.__~/__@f+*extension*5__6__@@8__9__@@.@@@,R@,?@@@@__}A__@@<9@@@,R@,@@@,K@@N__O__@@:@@@,S@@@9T__@@@@@,@@@,\@@@]__f^__@@@@@,b@@@ภg__h__@@@@@@@,m@@q`r`@@@@@,v@@@ภ:{`|`@9@@@~@@A ^QV@@@^QU`@@@@@@,@@@,@@,O@-O@-@@ఐߠ#pata@@@@@@@@A@M@-@A@@@~@ఠ0do_check_partial cc@A@@$pred@@@@.M@-&optionL)Typedtree/general_pattern @@@:M@92@@@9@ v"?v"E@@r*@@@r*@@@. rS@@@.@@.@@ఐ"psv"Fv"H@@@@@v"9v"I@@@@@-@.X@.@@ @@ߠ@@@.@@@.@@@@@A@u @@ఐ0counter_exampleswdnwd~@ @@@@@@@.73@ @@@@ภZwdwd@Y@@@$unitF@@@.OU@.S@@  @@$node&U@.L@ @.N @Ġ#Seqxx@#Nilxx@@;#Nil!a@@@@ @@@@AA@Ab46b4;@@@B@@@@@,*@@@.^3@H@@@@1/@@@._@@@ภ%Total!x"x@;%Total@@@AB@@AF]%<G]%C@@@C@@  @@"@Ġ#Seq7y8y@$Cons<y=y@@;$Cons=@;q?@@@@B@AA@A1c<>2c<Q@@@0C@ఠ!v SyTy@fA@@W@.c@ఠ%_rest _y`y@rA@@@@@.k@@@1hy@@@@@.l@@@@@.m@@@ డ)is_active(Warningszz@ zz@@ǰ@@@@@@.~@@@.}@@.|3@F?@@@A;4@5@6@@@@ภ(Warningszz@-Partial_matchzz@@;-Partial_match@*Format_doc!t@@@ )@AC[n@Avv@@@W@డ*Format_doc#Doc%empty*Format_doczz@ zz@@zz@ @*Format_doc#Doc!t@@@1@4utils/format_doc.mliM  M  +@@ ~@@@>@@@2mW@2l\@@zz@@.@@@.W@.d@@u@@k@@@2vW@.j@@ఠ&errmsg |&|,@A@@3@@@@@@2@@2<@@ఐ#doc~a~a@F@@3.@@@2@@@2Y@2Y@2T@@E@@ZU@A@~am@@ డ$'fprintf*Format_doc@ @@@u@@@/@[&format!a@/@@@/$unitF@@@/@@@/@@/@@/@,-Q@@4y@)$@@@@@@2@!@*Format_doc'printeriY@9@@@9X@8X@2@pX@2$ @@@9OX@9MX@2@@2X@2@@2X@2@@@2=@@@2@@@2+@@2@@23DCCDDDDD@@@@@@@ఐܠ#fmtVW@ @@@@@2Y@2Y@2@@ภ8CamlinternalFormatBasics:&Format<mnA;&Format8CamlinternalFormatBasics'format6!a@3!b@3!c@3!d@3!e@3!f@3@@@7@'#fmt$ @@@7ݠ&stringQ@@@7@B@@A@A*@@@r@ภؠ(Open_box;(Open_box%!a@6 !b@6!!c@6"!d@6#!e@6$!f@6%@@@6@"@@@6@AA@BAAH Q SI  @@@O@ภ&Format֠ภ.String_literal;.String_literal!a@4 !b@4!!c@4"!d@4#!e@4$!f@4%@@@7L@@@@7Mߠ'#@@@7N@BKAYAA$}$}$%@@@k@#@@@@@8gY@8jY@8iH@ภ/h-End_of_formatj.;-End_of_format!f@4Ƞ!b@4ɠ!c@4ʠ!e@4ˠ@@@7@@@@AYAA .. ./!@@@Dy@@N@$Z@8XN@@9NX@2X@8X@81Y@8BY@8SY@8eX@2X@8Y@82Y@8CY@8TY@8f  Z@8\Z@8]@@@8hY@8t@@y@OZ@8F)Z@8JZ@8K@@@8UY@8d@#@@Y@@@8VY@8wY@8v@@@Z@86B234Z@8:+Z@8;@@@8DY@8R@@@*Z@8$O?@CX@8Y@8!?@@٠ZX@8{X@8X@8aZ@8cZ@8fZ@8@@@8Y@8:@@@jq@@@84Y@8E@@"@uZ@7̠@@@8Y@80R@'@[%a4@4@@@@8 Y@8Y@8^@@;:@@@@@2Y@8g@@డ%Style.as_inline_code$Misc@ @@@ @@'printer!a@8@@@8@@@8@@8@-PP-PQ1@@@#@@@@@@9Ǡ@@@9@@9@@డ(Printpat*top_pretty(Printpat@ @@*Format_doc'printerJ!k@9'@@@9/@@@9.@3typing/printpat.mliUkkUk@@(PrintpatD@ @@]X@@@9:@@@99@@*+@@@@ఐ㠐!v67@@@@@O@@@ ఐ(do_matchGH@۰@@@ޠw@@@9Y@@@9X@@@9W@GA@@@9V@@@9U@@@9T@@9S@@9R@@ఐ 4initial_only_guardedop.@ Ѱ@@@נ@@@9r@@@9qؠ@@@9o@@@9n@@9m;@@ఐN%casel/4@6@@H@@5@@*-@@@9j@@@9iY@9Z@9zW@@ภ`79Aఐ_!v 8@ @@]k@ภ`zAM@ A@G@@@9@@@9Y@9{@@6@@ZG@@@9h@@@9gY@9@@'@@D@@@9Y@9f@డ'fprintf*Format_doc?M?W@ ?X?_@@@@@l@@@9@'@@@:cX@:bX@9|@@@9@@@9@@@9@@9@@9@@ఐ#fmt?`?c@Ű@@@@@9Y@9Y@9@@ภ#dt$dAภ.Formatting_lit ;.Formatting_lit!a@4o!b@4p!c@4q!d@4r!e@4s!f@4t@@@7h@.formatting_lit@@@7i($ @@@7j@BQAYAA)()())@@@q@ภ=%Break?M;%Break@@@6@@@@6#intA@@@6@@@6@C@GC@A|  |  9@@@@@"@,m@m@@@@:%Y@:)Y@:(M@@x@$@@@:&Y@:+Y@:*X@@@(@@@:'Y@:-Y@:,c@@@\@@@:Y@:$h@ภOlk 4(However, some guarded clause may match this value.)@@P@@@:>Y@:AY@:@|@ภc43@@7X@9X@: X@:X@:=Z@:/b@@@9Y@:Y@:Y@:<@@@:?Y@:K@@@TZ@: @@@:Y@:;@@@`%Z@9&'()@@@: Y@:@ 6@,(However, some guarded clause may match this value.)@@g@@@: Y@:NY@:M@@@@ 3<@@@9Y@:@@6@@$@@ @@&@ ఐ 2contains_extension'(@ @@@@@@:h @@@:g@@:f@@ఐ預!v<=@@@@@@@@@@:Y@:n@డ'fprintf*Format_docRS@ VW@@g@@@@@@:@g)9@@@;X@;X@:@@@:h@@@:@@@:@@:@@:+@@ఐ#fmt~@5@@@@@:Y@:Y@:?@@ภ(a'b pA&ภ3lpm oภ;t7u6@@8@@@:Y@:Y@:g@@"@>@@@:Y@:Y@:r@@-@B@@@:Y@:Y@:}@@4@v@@@:Y@:@ภiAภqIѠภyQtภRYQ@Y@UX@:X@:X@:X@;KX@:Z@;@@@:Y@:Y@:Y@; Y@;Y@;+Y@; Y@;Y@;,Z@;"#Z@;#@@@;-Y@;8@ @@{@@@;.Y@;;Y@;:@@@7Z@;+ Z@;>Z@;@@@;Y@;*@@@LDZ@:8+,IY@:K@@@; Y@;@ภ HMatching over values of extensible variant types (the *extension* above)@@@@@;LY@;OY@;N @ภ)-*,ภ12@@@@@;iY@;mY@;l$@@@@@@;jY@;oY@;n/@@@@@@;kY@;qY@;p:@@@3@@@;`Y@;h?@ภ&_C`B must include a wild card pattern@@'@@@;Y@;Y@;S@ภ:swtvภB{>|="@ @@@@@@;Y@;Y@;o@A*@F@@@;Y@;Y@;z@@5@J@@@;Y@;Y@;@@<@~@@@;Y@;@ภqI:in order to be exhaustive.N@N@r@@@;Y@;Y@;@ภ]ภƠ)Close_boxf;)Close_box@@@@GC@APz Qz @@@~@@m@@@@;Y@;@ภ۠szr@z@v)X@;_X@;X@;X@;X@;Z@;)Y@;JY@;^Y@;Y@;Y@;Y@;ʠZ@;@@@;Y@;@@@!Z@;"#Z@;%&@@@;Y@;@@@,Z@;"-.Z@;01@@@;Y@;@@@7Z@;s-89Z@;v;<@@@;Y@; @@@BZ@;Q8CmZ@;TFG@@@;aY@;@@@͠vZ@;=CwzZ@;@z{@@@;MY@;]'@@@ڠvi=kl@@@; Y@;I2@@@Z@:ؠ@@@:Y@;>@@@Z@:@@@:Y@:J@ @,@[Matching over values of extensible variant types (the *extension* above)@,must include a wild card pattern@ in order to be exhaustive.@]@@@@@:Y@;Y@;V@@  @@A@@@:Y@:_@@W@@E`@@@@Gb@ డ'fprintf*Format_doc@ @@ϰ@@@D@@@;@Ϡ+@@@<{X@< X@;T@@@;@@@;@@@;@@;@@;@@ఐl#fmt@@@m@@@< Y@< Y@< @@ภɠʰAภԠ נภܠ@@@@@@?@@60@4@1@@@@ఐ$path(;(?@@@@@ఐe!x(@(A@@@e!@@7@@f@@@=Q@='@ఐZ%paths(G(L@*@@M@=2@ภMY M[@ఐ!xMX @? @@D@ఐ(add_pathMc@@@@@ @@=@@=T@@ఐ$path.Md/Mh@۰@@a@@ఐ#rem;Mi<Ml@h@@$M@=p@@8@@q@@0@@ M@=t@E(. @@$v@@AG @@@ A@@:@5-@@=@@=M@=@@@P@@@(@ఠ/extendable_path =]nr^n@pA@@@~@@@?5M@=)[@@@=M@=@@=M@=3jiijjjjj@3@@@࣠@$path ?A{n|n@A@@3zyyzzzzz@D'nn+@@@@@  @@డ#not@)@@@)@@@=)@@@=@@=3@)9@ @!@@@@డ,.@+@@@+@@@=@*@@@=)@@@=@@=@@=@@డ$same$Path@ @@@@@@@@=@@@@=@@@=@@=@@=C@@ఐp$path@M@@P@@డ&Predef)path_bool&Predef@ @@$Path!t@@@>@1typing/predef.mliO t tO t @@&Predef_@@@-@@@=Q@>Q@>~@@Q@@@@@=@>Q@=@@డ,-@@@@@@@>@@@@>@@@>@@>@@>@@డ<$same$PathLM@ PQ@@:@@@m@@@>@r@@@>:@@@>@@>@@>@@ఐ$pathkl@а@@ @@డ)path_list&Predef|}@ @@!t@@@>@U  U  @@~e@@@@@@>R@>R@>@@K@@@@@>@>R@>@@డ,.@+@@@+@@@?@*@@@?)@@@>@@>@@>@@డ$same$Path@ @@@@@@@@?@@@@?@@@?@@?@@?C@@ఐp$path@M@@P@@డ)path_unit&Predef@ @@!t@@@>@P  P  @@`@@@'@@@?S@?"S@?!x@@K@@@@@? @?#S@?@@డ$same$Path+ , @ /0@@@@@L@@@?)@Q@@@?(@@@?'@@?&@@?%@@ఐҠ$pathJK@@@@@డb+path_option&Predef[\@ _`*@@`!t@@@>@^V  _V  &@@]f@@@@@@?4S@?8S@?7@@K@@@@@? @?9S@?3@@@@@@@>@?:R@? @@:&@@@@@=@?;Q@>@@ @@+@@@=@?@A@@@,Aఠ6collect_paths_from_pat |-5-K@A@@@@@@@@@@@@M@?@@@@@@@@@@M@?CM@?D@@?G@@?F3@jc@d@e@@@࣠@!r }A-L-M@A@@'3@3@.@'@@?EN@?A@@?BN@??@5@6@@@@@@!p ~A-N-O@A@@53@&C@@@@@@@@ఐ!p-X-Y@H@@@@I3@!@@@(pat_desc-Z-b@F @@NVR@@@U@@M@?UM@?R@Ġ.Tpat_constructhjhx@"@#hy$hz@@@@@?e@@@?d3'&&'''''@,@@@ঠ(cstr_tag6h}7h@Ġ-Cstr_constantBhCh@ @GhHh@@ @@@?m @@@ @@@@@?n$@Ġ*Cstr_blockVhWh@@[h\h@@@@@?r4@@@ @@@@@?s8@@# @@@@@?t<@Ġ,Cstr_unboxednhoh@@@@@@@@?wH@@uhvh@@@@@?xN@@@{h||h@@h@@@?zR@?yV@ఠ"ps @A@@Z@@@?}@@@?|@@@?{l@@@@q@pom@@@?@@@?@@@?@j@@@?@@?@@@?~@@@@@@@@@@@ఠ$path @A@@x @@@@oR@@_3@G@@A@B@@@ఐx;9get_constructor_type_path@va@@@x6@@@@e@x0@@@@dx)@@@@c@@@b@@@a@@ఐ !p@@@>+@(pat_type@ @@x[@@@@qS@@vS@@s9@@ఐ*!p@@@[H@'pat_env @ @@xm@@@@pS@@{S@@xV@@K @@ZW@A@" @@డ$List)fold_left01@ 45"@@/@@@@M@@@Q@@@@@@@@@@/@@@@ @@@@@@~@@@}3CBBCCCCC@@@@@@@ఐ6collect_paths_from_patU#)V#?@@@@ @"@@@@@@R@@@@ఐ/extendable_pathl@Jm@Y@@@@ @@@@-c@@@@@@@/@@ఐ$path@Z@^@9@@ @@@@S@@S@@C@@  @@@@@@S@@I@ఐ(add_path@d@l@^@@@ @@@@@6@@@@ @@@@@@@@@@d@@ఐ$path@m@q@n@@ S@@S@@u@@ఐ!r@r@s@۰@@@@1@@M@@@ఐ !r@y@z@@@,@@F@{@@@@ఐ\"ps||@@@0@@@@R@@R@@@@ @@@ @@2(@Ġ(Tpat_any@@@@@@@@Ġ(Tpat_var @@@@@@@?@@@@@@?@@@?@@@ @@@?@@@@@@@@@%@@@Ġ-Tpat_constant/0@@45@@@@@? @@@ @@1@@1@@9@@2@Ġ,Tpat_variantCD@t@HI@@o@@@?!@Ġ$NoneTU@@@@@M@@@?@@@?@@@?6@@ef@@zu@@@?@@@?B@@@,o@@gD@@gD@@o@@hE@@@ఐ!rxy@@@O@Ġ*Tpat_tuple@ఠ"ps @A@@6@@@@?@@@?@@@@?@@@?@@?@@@?3@@@@@@'@@@@@@@డ$List)fold_left@ @@1@@@@Q@@@@ݠ@@@@@@@@Q@@㠠@#Q@@@@@Q@@@@@@@@@@1@@@@@@@@@@@@@3@\U@V@W@@@@࣠@!r A@A@@43@@@@@@@J A@@@@83@$E@@@@@@ఠ!p @%A@@<@@@@@N@E@@@@@ @@ఐ6collect_paths_from_pat*+@W@@@@zq@@@@@@3,++,,,,,@+%Z@@ @@@@ఐL!r>?@7@@|@@ఐ9!pKL@@@t@@%@@@PQ@@@@@@@@@@R@@R@@a@@ఐ!rde@x@@@@ఐ㠐"psqr @@@2)@@@@R@AR@@@@ @@@Ġ*Tpat_array!#!-@\@!/!0@@W@@@?3@@@@ఠ"ps !2!4@A@@n@@@?@@@?@@@?S@?@@@$!5@@@@@Ġ.Tpat_construct!8!F@@!H!I@@@@@?@@@?1@ঠ(cstr_tag!L!T@sĠ.Cstr_extension!U!c@+@!d!e@@+@@@?L@@@+@@@?Q@@@ @@@@@?U@@@!K!f@@@@@?T@?]@\"ps!h!j@ A@@Yg@@!l!m@@Ӡ@ҠѠ@@@?@@@?@@@?@@@@?@@?@@@?@@@b!n@@@@@@@@@@@డ$List)fold_left'qu(qy@ +qz,q@@2@@@@Q@A @Q@A @@A@@A @@2 @@@A @@A @@A@@A3<;;<<<<<@B@@@@@@ఐ6collect_paths_from_patNqOq@{@@@@@@A"@@A!@@ఐ!r_q`q@s@@!@@ఐѠ"pslqmq@+@@3$?@@@AR@A(R@A%6@@Q @@7@Ġ+Tpat_record@0ఠ#lps @A@@1@0.@@@@ @@@@ @+@@@@ @@@@@@@@@ @@@ @@@@3@@@@@@@-@@@@ @@@4@@ @@ @@@డ)$List)fold_left@ @@3@@@@$Q@A1@@vt@@@Ag@@@AfQ@AK@s@@@AhQ@AL@5Q@AM@@ANQ@A3@@A5@@A4@ @3!@@@A2&@@A0@@A/@@A.3@qj@k@l@@@@࣠@!r A@A@@;3@@@@@@@\ A@@@@?3@$L@@@@@@@ !@@= @@ఠ!p *+@=A@@B@@/0@@@[@R@M@@AP @@  @@ఐ6collect_paths_from_patDE@q@@@@@@AU@@AT3FEEFFFFF@3'b@!@"@@@@ఐT!rXY@?@@@@ఐ;!pef @@@|@@%@@@jk @@@@@@AD@@ACR@AbR@A`i@@ఐ!r~    @@@@@ఐ#lps    @@@4C@@@ABR@AkR@Ad@@ @@@Ġ,Tpat_variant    @Ԡ@    @@@@@@3@@@@Ġ$Some  !  %@ఠ!p   &  '@A@@@@@@3S@@!@@@@ @@@ @@ )@@@@$@@@@#@@@@"*@@  )  *@@@@@@&@@@@%6@@@A  +@@8@@8@Ġ*Tpat_alias  .  8@68!p  :  ;@A@@S5@@@@2P@@  <  =@@7@@@@4X@@  >   ?@@86@@@@6@@@@5d@@  @  A@@9@@@@7l@@  B  C@@;@@@@8t@@@5"  D@@v@@v@@@@w@@@ఐ6collect_paths_from_pat- H L. H b@Z@@@@}t@@Ar@@Aq3/../////@5|u@v@w@@@@ఐu!rA H cB H d@U@@@@ఐ!pN H eO H f@@@M@Az@@@Ay#@@+ @@$@Ġ'Tpat_orb g ic g p@Zఠ"p1 k g rl g t@~A@@ɠM@@E@@@@J3pooppppp@u@@@ఠ"p2 } g u~ g w@A@@۠@@@@K@@ g x g y@@kj@@@@M@@@@L@@@0 g z@@@@@@@ఐ6collect_paths_from_pat ~  ~ @ɰ@@@@@@A@@A3@?8@9@:.'@(@)@@@@ఐ6collect_paths_from_pat ~  ~ @@@@ @@@A@@A@@ఐ!r ~  ~ @ٰ@@%@@ఐg"p1 ~  ~ @.@@/f@@@A6@@ ~  ~ @@9@@ఐi"p2 ~  ~ @A@@Cz@@@AJ@@R@@.K@Ġ)Tpat_lazy    @Jఠ!p     @A@@_D@@@@U@@@@T @@@ @@ @@ @@@ఐp6collect_paths_from_pat    @C@@@o@f]@@A@@A3@"@@@@@@ఐ^!r*  +  @>@@@@ఐ6!p7  8  @@@M@A@@@A#@@+ @@$@@@AB-R @@3>==>>>>>@C@@@v A@@@@@Di@@DhM@Dfx@@@L--@@@@ఠ0do_check_fragile Y  Z  @lA@@@@@@EM@Dk@6ѠР@@@DQ@D@@@DQ@D@@@DQ@D@@@DM@Dp@$8@@@EBM@ET@@@E[M@EA@@@E@M@Du2@@@DM@Dv@@DwM@Dq@@DrM@Dl@@DmM@Dj3@@@@࣠@#loc A    @A@@J3@W    @@@@@  @@%casel A    @A@@U3@!a@@@@@@@@#pss A    @A@@K3@i@@@@@@@@@ఠ$exts     @A@@w&@@@D@@@DQ@Dz3@)j@ @!@@@డa$List)fold_left    @     @@6ǰ@@@@%Q@D@@@D@@D@@6@@@D @@D~@@D}@@D|3@(@@@@࣠@!r A#  $  @6A@@;@@@@!c A1  2  @DA@@30//00000@J0@@@@@@@@ఐ6collect_paths_from_patC  D  @p@@@ڠ'b@@@D@@@D@@@@D@@@D@@D@@D3SRRSSSSS@$0@'@(@@@@ఐE!re  f  @0@@`@@ఐF!ct  u  @@@@'pattern{  |  @: @@ &@@<@@'@    @@@@@@D@@DR@DR@D@@ภ(    @'@@@Q@D@@ఐ預%casel  !  &@Ѱ@@:@@@@@A@  @@ఐѠ$exts * 2 * 6@@@Ұ@@F'@@@D@@@D3@ @@@Ġ\ < @ < B@[@@@@['@@@D@@@D3@@@@ @c'@@@D@@@D@@@ภ3_ < F < H@3^@@@J@@ I M I N@@z(@@@D@@@D4@ @( @@@D@@@D;@@@ఐ6#pss I X I [@@@}G@Ġ  a g  a i@@@@@>@@>@@@ภ3 a m a o@3@@@F@Ġ p x  p z@ఠ"ps ( p v @:A @@M@E\M@Ds@@1 p {@@ @@@D{@@@@@|@@|@@@డ$List$iterD  E  @ H  I  @@@@!a@?y$unitF@@@@<@@@;@ @@@@: @@@@9@@@8@@@7@@@U@&!@@@@(@@@ET@D@@@D@@D@ @@@D@@@D@@D@@D3zyyzzzzz@]W@X@Y@@@@࣠@#ext A    @A@@&3@@@@@@@@ఠ)witnesses     @A@@ՠ@@@E>@@@E=W@E3@0'C@@@@@ఐ'exhaust    @!@@@@@@E@@@E@Z]!u@@@E@@@E@@@E@ @@@E@@@E@@@E@@E@@E@@E1@@ภ$Some    @ఐe#ext    @D@@G@@    @@NT@ET@ED@@@ECX@EJS@@ఐB#pss      @@@`@@డ$List&length    @ "  #  @@@@@@@@ES@@@ER@@EQ@@ఐ"ps9  :  @@@@@=  >  @@w@@@E?@E]Y@EZ@@ @@@A@H   @@ఐ)witnessesT  U  @@@@@@@@Ef@@@Ee3ZYYZZZZZ@ @@@@ภ4i  j  @4@@@@@@EX@E@@  @@@@@E{X@E}@ @E@Ġ#Seq    #@#Nil  $  '@@@@ @@@@@E@@@E;@@@@@E@@@EB@@@డn-prerr_warning(Location + ; + C@  + D + Q@@@@@n@@@E@@@@E@@@E@@E@@Ed@@ఐ)#loc R d R g@@@oq@@ภ(Warnings h { h @-Fragile_match h  h @@;-Fragile_match@&stringQ@@@ $@A@[n@Arr @@@'S@డ'$name$Path h  h @  h  h @@%paren&optionL@&stringQ@@@)'@@@(@@'@@@&@*7@@@%@@@$@@#@@"@'F  'F  @@*=P@-(@@%#@ @@@E@@@E@@E@@@E@*S@@@E@@@E@@E@@E@;ภ5@@>@;@@@E8@@@E@@E@@@E@@ఐҠ#ext_ h ` h @@@@@c h d h @@@@@E@EZ@E @@m h zn h @@K@@@EY@E@@@@!@@@E@Ġ#Seq    @$Cons    @@M@    @@@@@E5@@@Ġ@@@E@@@E>@@@@@@@@E@@@EF@@@@@E@@@EM@@@ภ63    @62@@@?U@@@A  @@b@@@FZ@r@@ @    @@@Uo@@@E@@EU@FU@F2@@ఐ$exts  !@"@@zk@@@EU@FU@F[@@+@@EG@@@A I R-@@G @@@A * ,/@@I@:0@@J@:1A@M@F8@A@5@54@I@ఠ,check_unused  = A = M@A@@@@@@@JCM@J=@LL@@@IpW@I@@@IV@J:@@@JDM@J@X@JF@@@JEM@JAA@JBM@J>A@J?M@F@C!P@G@@@L@@@L@@@LM@F=@@@L0M@F@@FM@F@@FM@F343344444@ g@@@@@࣠@$pred AG = NH = R@ZA@@T3FEEFFFFF@aO = =P _r@@@@@  @@%casel A[ = S\ = X@nA@@;3ZYYZZZZZ@!k@@@@@@@@డn  o  @@@@@@@F@@@@F@@@F@@F@@F3yxxyyyyy@ ,]@#@$@@@@డ)is_active(Warnings‘ [ `’ [ h@ • [ i– [ r@@ְ@@@@@@F@@@F@@F3œ››œœœœœ@#@@@@ภ(Warnings­ [ s® [ {@.Redundant_case² [ |³ [ @@;.Redundant_case@@@D[n@Ayegyew@@@Z@@ @@@@@FQ@F!@@2@@D@@@F@FQ@F)@@డ?$List&exists    @     @@r@@@@M@L&M@G P@Fr@@@F@@F@r@@@Fr@@@F@@F@@Fz@@࣠@"vc A    @A@@$i@@@@ఐ"vc    @2@@@@33@@@@,needs_refute     @ذ @@r@@@GR@G @(  )  @@@Jr@@@G@@GQ@GQ@G@@ఐ堐%casel=  >  @@@@@g@@@@@F@GQ@G@@ @@@@@GP@F@Aఠ&do_rec X  Y  @kA@@@¼@@@Is@@@IrP@K*@@@K.P@G@֠O@@@GP@G-@@@G.P@G(@@@G'P@G8@@@G>P@G@@G @@G3ÁÀÀÁÁÁÁÁ@@@@࣠@$pref AÒ  Ó  @åA@@83ÑÐÐÑÑÑÑÑ@D@?@2 @@GQ@G@@GQ@G@F@G@@@@@@Ġ@ê  ë  @?@@@@>3èççèèèèè@$R@@@@@@@ภ87õ  ö  @86@@@7 @Ġÿ + -@ঠ'pattern  @ఠ!q    @A@@]3@)@@@)has_guard   Aఠ @A@@@@G2@,needs_refute  "@ఠ&refute  # )@ A@@@@@G6'@@@   *@@T@G,,@ఠ#rem   .  1@A@@iP@G*@@@G7<@@@ @@=@@@@ఠ"qs 5C5E@0A@@P@GB@@@GDT@G@3#""#####@_@Y@ZMJ@L@K=6@7@8+$@%@&@@@ภx65I75KAఐn!q @5J@ @@@ภxA@ A@ç(@@@GFT@GK'@@P5H@@.@@@GE-@A@V5? @@ @ఠ#pss eewfez@xA@@ǠP@IvP@HUP@G@@@GU@GM3pooppppp@N^W@X@Y@@@ఐFL(get_minsăL_ĄLg@Cٰ@@@@Y@@@G@@@G@@@GW@G^@t:@@@GbA@GaA@G`@2@@@G_@@@G]@@G\@@G[3@@ఐVݠ'le_patsIJLhijLo@V@@@@@@G@@@G@@@G@!@@@G@@@G@@@G"@@@G@@G~@@G}]@@P @@@gN@@@Go5R@@@Gn@@Gmh@@డT$List&filter 3 7@  8 >@@n@@@@ʠ@@@G@@@G@@@GX@Gw@@@G@@G@v@@@G@@@G@@G@@G@@ఐC'compats! @" G@Ӱ@@@@?@@@G@@@G@@@G@>=@@@G@@@G@@@G@@@G@@G@@G@@ఐ."qsK HL J@ְ@@l/P@IP@HP@H~P@G@@@G@@@G[@G[@G@@b ?c K@@@3qp@@@G@@@G@@@G@@@G@@G@@@@@@@@G@@@G@@G @@డ$List#revŏŐ@ œŔ@@i@@@i*P@H @@@H @@@H @@H -@@ఐ$prefŬŭ@@@Q:@@!@@MP@H"P@H@@@HW@HX@HG@@.Z@@SV@@@GV@H!W@HP@@7@@[Q@A@es@@@ఠ!r @A@@y@@@H?U@H-3@g|u@v@w@@@ఐpɠ2every_satisfiables@p@@@~@@@H4@@@H3@@@@H2y#@@@H1@@H0@@H/ @@ఐ)make_rows@t@@@2,+@@@HI@@@HH@@@HG@@@HF@@@HE@@HDC@@ఐà#pss()@M@@U@@@HTW@HXW@HWX@@45@@̠@@@HB@@@HAV@HiW@HRf@@ఐ(make_rowMN@A@@@on@@@Ho@@@Hn@@@Hm@@Hl@@ఐI"qsfg@@@@@@Hx@@@HwW@HzW@Hy@@uv@@@@@H@@HW@Hv@@ @@@A@ƀ @@డꠐƋ@\ƌ@^@@@@@@@H@@@@H@@@H@@H@@H3ƖƕƕƖƖƖƖƖ@@@@@@@డנٰƩ@Sƪ@T@ְ@@@y@@@HU@H@@@@H@@H@@H@@ఐ!r@Q@R@'@@*@@ภ&Unused@U@[@y@@@#V@H8@@@@1@@@H@HV@H@@@ఐ&refute@_@e@@@?@@@HU@HU@HT@@. @@d@@@HU@HZ@ภ;|@k@m@;{@@@A@@@KT@Hg@@ఠ!r  ss@ A@@z>@@@IU@H3@{@@@@ఠ$skip !"@4A@@@@@HV@H@డś23@@@@@@@H@@@@H@@@H@@H@@H,@@డŶ{}MN@z@@@z@@@HW@H@{@@@H@@H@@HF@@ఐ!rfg@˰@@S@@ภ&Unusedrs@z0@@@#X@Ha@@@@@@@H@HX@Hi@@డ NJNj @ @@@ @@@H@ @@@H @@@H@@H@@H@@డǥǦ@@@@@@@H@@@@H@@@H@@H@@H@@డ)#not@=@@@=@@@I=@@@I@@I@@ఐࠐ&refute @@@=@@@I Z@I Z@I @@  @@>@@@H@I Z@I@@డ\!#@ @@@P@KEP@HY@I@!@@@I@@I@@I@@ఐ}$pref  @_@@@@ภ@@@@"P@I@@@@t@@@H@IZ@I@@%&@@@@@H@IY@H@@డƢ#not:!3;!6@>2@@@>2@@@I#>1@@@I"@@I!/@@డƹӠհP!>Q!@@Ұ@@@@@@I0@@@@I/@@@I.@@I-@@I,J@@ఐt&refutej!7k!=@=@@@@@IZ@I=^@@డ#)is_active(WarningsȄ!Aȅ!I@ Ȉ!Jȉ!S@@#ɰ@@@#@@@IB#@@@IA@@I@~@@ภ(Warningsȟ!TȠ!\@0Unreachable_caseȤ!]ȥ!m@@;0Unreachable_case#@@@P[n@A#i#i @@@#F@@ @@#@@@II[@IM@@1@@0@@@I;@IN[@IH@@Ƚ!n@@>@@@I*@IOZ@I:@@ @@A@@@H@IPY@I)@@@@I@@@H@IQX@H@@p@@@A@@@ఐ$skiprr@@@@@Y@@@ISU@IR3@P @@@ఐ!!rrr@X@@U@IT @@ఠ#sfs @A@@gh@@@Io@@@In@@@ImV@IU3@*@@@ఐY7list_satisfying_vectors@@@@N@@@I_@@@I^@@@I]@Ȍƍr@@@I\@@@I[@@@IZ͠@@@IY@@IX@@IW+@@ఐ䠐#pssIJ@n@@@@@IqW@IuW@It@@@ఐA"qs^_@@@ZW@IW@IQ@@H@@^R@A@g @@డŠŢrs@ş@@@ ؠq@@@I@@@IU@I@ ť@@@I@@I@@I3ɁɀɀɁɁɁɁɁ@@@@@@@ఐ#sfsɓɔ@ @@@@ภ4ɞɟ @3@@@*U@I@@@@@@@IV@I#@ภ&Unusedɯ&ɰ,@|m@@@,@@ఠ#sfs ɽ2Fɾ2I@A@@ˠV@I@@@IV@I3@C@@@డ<$List#mapL^Lb@ LcLf@@@@@@w"V@I@@@IV@I$@@I@ @@@I-@@@I@@I@@I3@n@@@@@ĠL LrLtAڠఠ!u   Ls@A @@&@ĠL  A§@@ A@q0@@@I%@@@Lq@@8'@@@ఐ!u"Lx#Ly@=@@@@`3!  !!!!!@!@@@@,L|-L}@@K:@@@ ภ5L6L@@@@@@@IG@<L@@wI@@Ai ?Lh @@@ALgBL@@@f@@IW@IW@I@@ఐQ#sfsSLTL@Ͱ@@z@@@IW@IW@Ij@@ @@@A@`2B @@@ఠ!u kl@~A@@ˠfP@I@a@IV@I3qppqqqqq@@@@@@ఐ-*orify_manyʂʃ@-`@@@@@@I@@@I@@I@@ఐܠ#sfsʙʚ@#@@22@@@IW@IW@I.@@# @@4/@A@ʦ @@@ఠ'pattern ʱ ʲ@A@@;@@@J9V@I3ʶʵʵʶʶʶʶʶ@FVO@P@Q@@@P@J@'pat_loc%@ఐ!q()@@@`@'pat_loc*1@ @@@@@JV@J*@ @ @@@J$@ @@@J%@Ư@@@J&@@J#@@@J"V@J@Ě@@@J,V@J)@ĕ@@@J2V@J/@@@@J8V@J5@@ఐ!u@`@@c@ 2@@lf@A@"@@ఐꠐ$pred.6L/6P@ϰ@@ :3,++,,,,,@w@@@@@@ఐH&refute>6Q?6W@@@ D@@ఐ'patternK6XL6_@@@ H@@!@@ 8@Ġ$NoneYewZe{@@@@@ E+@@ E+@@డ#notfege@A^@@@A^@@@JKA]@@@JJ@@JI@@@ఐ&refute{e|e@N@@Au@@@JRX@JTX@JST@@  @@@@@JUX@JQZ@ డZ-prerr_warning(Location˚ ˛ @ ˞ ˟ @@&@@@Z@@@J\@&@@@J[&~@@@JZ@@JY@@JX~@@ఐ預!q˻ ˼ @@@E@'pat_loc  @ @@@@@JhY@JoY@Jl@@ภ(Warnings  @0Unreachable_case  @@8@ @@&@@@JgY@Js@@L @@F@@@JtX@Jf@ภ$Used  @~P@@@@@@Jw@^@@@@    @@ @@ @@@ఐ5!r  @l@@@@@A 6F@@@@@R@h@@@@@F@ @@H@ @@@r @@@> @@@A@s@@ఐ!r  "6! "7@@@@@O@@@J{3"!!"""""@ @@@Ġ&Unused3=M4=S@~@@@@a@@@J343344444@@@@@e@@@J@@@డ -prerr_warning(LocationJWiKWq@ NWrOW@@'3@@@ @@@J@'3@@@J'.@@@J@@J@@J&@@ఐ!qkl@@@@5@'pat_locrs@ŧ @@/@@@JW@JW@JC@@ภ(Warningṡ̈@.Redundant_casě̍@@ @ @@'l@@@JW@J\@@L @@T@GL_@Ġ(Upartiaḷ̢@~ఠ"ps ̫̬@̾A@@GF@@@J@@@J@@@ @@@@@J@@@@@J@@@డ/$List$iter@ @@ @@@@l@@@JV@J @@@J@@J@  @@@J @@@J@@J@@J3@B;@<@=@@@@࣠@!p A  @ A@@&3@@@@@@@డ-prerr_warning(Location % -@ .;@@'@@@@@@J@'@@@J'@@@J@@J@@J3@;2N@)@*@@@@ఐ;!p0<T1<U@@@]@'pat_loc7<V8<]@l @@@@@JY@JY@J @@ภ(WarningsL<^M<f@0Redundant_subpatQ<gR<w@@;0Redundant_subpat(`@@@E[n@A(z(z@@@([@@ @@(8@@@JY@J@@@V@@@@@JY@JF@hi<x@@@@@@J@@JW@JW@Jw@@ఐҠ"ps}y~y@@@(@@@JW@JW@J@@ @@@Ġ$Used͓͔@@@@@@@@Jr@@@@@Ju@@@ภB#͢͡@B"@@@}@@@Aͥ "0@@m@@@@ͨ@N@@@*@@@ @@ 6@Ġ%Empty͵Ͷ@.@@@@̴@@@K F@Ġ)Not_found@@@@@@@@K  R@@@@@@@K  V@@@ ภ@@@@j@@@K c@@@D e@@@O[@@ h@ఐ )has_guard@ @@]@@@KS@K y@ఐ &do_rec  @ a@@@ @  }@@K@@K @@ఐ y$pref    $@ [@@  @@ఐ #rem % (@ @@ P@K @@$@@  @ఐ ͠&do_rec%8D&8J@ @@@ @  @@K"@@K! @@ภ48O58Q@ ภ<8M Aఐ s!q E8N@  @@  @ภ A@ A@ͬ P@K0@@@K4T@KD @@W8L$@@ P@K3 @ఐ Ӡ$pref-b8U@ /@@  @@e8Kf8V@@ P@K- @@ఐ j#rems8Wt8Z@ E@@ P@KF @@T@@  @z@@  @@@  @ ' @@  U@@A    @@@  A@@ '@  @@K@@KP@K @@@Έ  @@ఐ :&do_recΒ _cΓ _i@ @@@,@@@L@@@L@@@L@6 ~@@@L@@@L@@@LC.@@@L@@L@@K3ήέέήήήήή@ @@@@ภRμ _jν _l@Q@@@V@@@L@@@L@@@LP@L"@@ఐ ~%casel _m @ W @@ %@@G @@ P@L(@T @@ V@@ [ ] @@ X@  A@ M@L4 @A@ @  @ @ఠ+irrefutable &&@A@@@Q8@@@LRM@LX@@@LWM@L6U@@@LNM@L7@@L8M@L53@   @ @ @@@࣠@#pat A&&@&A@@"3@/&&@@@@@  @@ఐa&le_pat(&)&@ab@@@̇l@@@LB@@@LA@̐u@@@L@@@@L?Ð@@@L>@@L=@@L<3;::;;;;;@*6N@-@.@@@@ఐ=#patM&N&@ @@[@@ఐDž%omegaZ&?@,@@@ǁ@@@Le@@8D@@^ @NEA@pM@LxL@A@I@IH@_@ఠ(inactive o(  p( @ςA@@'partial+p@@@LM@Lz@ޠ@@@QM@Q@@@QM@L$@@@LM@L@@LM@L{@@L|M@Ly3ύόόύύύύύ@@@@@@࣠"" A&ϟ( Ϡ( @ϲA@@*3ϞϝϝϞϞϞϞϞ@9ϧ(  ϨF@@@@@Ϫ(  @@#pat Aϴ( ϵ( "@A@@63ϳϲϲϳϳϳϳϳ@!B@@@@@@@@ఐ)'partial)%-)%4@@@P3@J@@@@@Ġ'Partial*:>*:E@*Z@@@@`3@@@@@a@@@ภ*:I*:N@@@@U @Ġ%Total+OS+OX@(@@@@v&@@v&@@@Aఠ$loop ,bp,bt@ A@@@[@@@@M@@@MR@L]@@@NR@L@@L4@࣠@#pat A,bu,bx@+A@@3@T)@$@@LS@L@'@(@@@@  @@ఐ#pat0-{1-{@4@@@@53/../////@%@@@(pat_desc:-{;-{@z @@ǂBU@M@A@MR@LR@L@Ġ)Tpat_lazyT.U.@@Y.Z.@@͵ǚ@@@L@@@L3]\\]]]]]@.@@@@@ @@'@@'@Ġ*Tpat_arrayl.m.@?Ġ'Mutableu.v.@;'Mutableˆ,mutable_flag@@@@@@AB@@A~gWugW~@@@S@@@@@K@@@L%@@Њ.Ћ.@@M@@@L@@@L@@@L5@@@,И.@@\7@@\7@@F@@]8@@@ภ^П/Р/@]@@@@@Ġ(Tpat_anyа0б0@@@@@vQ@@vQ@Ġ(Tpat_varл0м0@Ƞ@00@@@@@Lc@@@Ǽ@@@L@@@Ll@@@Ǻ@@@Lq@@@@@r@@r@@%@@s@Ġ,Tpat_variant00 @@00@@ @@@L@Ġ$None00@0@@@@N3@@@L@@@L@@@L@@00@@@@@L@@@L@@@, 0@@@@@@[@@@@@ภ1)1-@@@@ @Ġ-Tpat_constant2.82.E@ఠ!c &2.F'2.G@9A@@@@@L3(''(((((@@@@@@@@@@@@@ఐ!c83Qc93Qd@@@@@@@@M|3:99:::::@ @@@Ġ,Const_stringW4jxX4j@@\4j]4j@@@@@M"@@@@@@M'@@ @}@@@M@@@M0@@@@@H@@@M4@@4@Ġ)Const_int{5|5@@@р5с5@@B@@@MF@@@ @@^@@@MJ@@J@@3 @@b@@@MN@Ġ*Const_charѕ5і5@è@њ5ћ5@@â@@@M`@@@ @@x@@@Md@@d@@M @@|@@@Mh@Ġ+Const_floatѯ5Ѱ5@,@Ѵ5ѵ5@@.@@@Mz@@@ @@@@@M~@@~@@g @@@@@M@Ġ+Const_int3266@<@66@@>@@@M@@@ @@@@@M@@@@ @@@@@M@Ġ+Const_int6466@@66@@@@@M@@@ @@@@@M@@@@ @@@@@M@Ġ/Const_nativeint66@̠@66@@@@@M@@@ @@@@@M@@@@ @@@@@M@@@ภŰ66@@@@@@@A2.K7@@@Ġ*Tpat_tuple$8 %8*@Cఠ"ps -8+.8-@@A@@ՠ@DC@@@L@@@L䠠@ϛɀ@@@L@@@L@@L@@@L3DCCDDDDD@@@@@@'@@@@@@@డн$List'for_allX91=Y91A@ \91B]91I@@ @@@@@xw@@@M@@@MU@Mˠ@vU@M@@MU@M.@@@M@@M@(@@@M-@@@M@@M@@M3}||}}}}}@O[T@U@V@@@@࣠@ A@@Ҕ91Pҕ91Q@@,3ґҐҐґґґґґ@@@@@ఠ!p Ơҟ91RҠ91S@ҲA@@. @@Ҥ91Oҥ91T@@@@@7@@M@@ @@ఐ$loopҷ91XҸ91\@@@@@@M3ҷҶҶҷҷҷҷҷ@;#J@@@@@@ఐ*!p91]91^@ @@W@@@@@91J91_@@@r@@@M@@MV@MV@MC@@ఐ"ps91`91b@a@@ȗ@@@MV@MV@Ml@@ @@Y@Ġ.Tpat_construct:cm:c{@@:c}:c~@@@@@L@@@L3@@@@@ :c:c@@@@@L @ఠ"ps :c:c@,A@@|a@@@M@@@M@@@MW@L!@@-:c.:c@@@@@@M@@@M@@@M@@@@M@@L@@@L>@@@MH:c@@ @@@ @@Ġ*Tpat_arrayQ:cR:c@$Ġ)ImmutableZ:c[:c@;)Immutable@@@@B@@A^gWk_gWt@@@mR@@@  @@+@@@M^@U"psm:cn:c@ӀA@@Rh@@@!r:c@@6j@@6j@@y@@7k@@@డ$List'for_allӁ;ӂ;@ Ӆ;ӆ;@@I@@@@U@MG@@@M@@M@A @@@MF@@@M@@M@@M3ӖӕӕӖӖӖӖӖ@h@@@@@@࣠@!p AӬ;ӭ;@ӿA@@#3ӫӪӪӫӫӫӫӫ@@@@@@@ఐà$loopӼ;ӽ;@@@@@@N3ӼӻӻӼӼӼӼӼ@'7@@@@@@ఐ%!p;;@ @@D@@@@@;;@@@N@@@M@@MV@N V@N .@@ఐϠ"ps;;@M@@ɜe@@@MV@NV@NX@@s @@D@Ġ*Tpat_alias<<@Iఠ!p  < <@A@@gN@@@M>W@M'@@@M&3@@@@@<<@@Q@@@M( @@"<#<@@RP@@@M*@@@M)@@.</<@@S@@@M+@@6<7<@@U@@@M,%@@@<<<@@'@@'@Ġ,Tpat_variantE<F<@v@J< K< @@q@@@M79@Ġ$SomeV< W<@\V!p^<_<@qA@@ѼS@@@M=P@@@@@]Ġ˩@@@MA@@@M@@@@M?\@@u<v<@@@@@MC@@@MBh@@@:<@@Cj@@Cj@@@@Dk@@@ఐ$loopԊ=&ԋ=*@n@@@@@N3ԊԉԉԊԊԊԊԊ@\@@@@@@ఐ!pԜ=+ԝ=,@ @@R@N@@@N@@ @@@Ġ+Tpat_record԰>-7Ա>-B@^ఠ$ldps àԹ>-DԺ>-H@A@@_@^\@@@M\@@@M[@Y@@@M]@,@@@M_@@@M^@@MZ@@@MY3@@@@@>-I>-J@@[@@@M` @@@4>-K@@ @@ @@@డW$List'for_all?O[?O_@ ?O`?Og@@@@@@@@@@Ny@@@NxU@N:@@@@NeU@N;@U@N<@@N=U@N'@@@N)@@N(@ʠ"@@@N&@@@N%@@N$@@N#3@qj@k@l@@@@࣠@{ A@@6@h|7@h}@@4332233333@@@@@ఠ#lbl ɠA@hB@h@TA@@6 @@ఠ!p ʠM@hN@h@`A@@;@@R@h{S@h@@@T@K@F@@N?$@@  @@డŠǰf@hg@h@İ@@@@@@NI@@@@NHʚ@@@NG@@NF@@NE3qppqqqqq@T<k@6@71e@+@,@@@@డѴѶՆ@hՇ@h@ѳ@@@D@@@NdX@NZ@Ѵ@@@NY@@NX@@NW@@ఐ`#lblա@hբ@h@*@@.@'lbl_mutը@hթ@h@c @@5@@ภ)Immutableմ@hյ@h@Z@@@,Y@NhC@@@@@@@NU@NiY@NbK@@ఐԠ$loop@h@h@@@@@@Nk\@@ఐ!p@h@h@d@@i@@@@j@@@@@@@@NpX@NSp@@hv@h@@@@@@N7@@N6V@NtV@Nr@@ఐC$ldpsAA@ذ@@˰@@@N5V@N}V@Nv@@ @@@Ġ'Tpat_orBB@ ఠ!p ĠBB@.A@@y R@Md@@@Mi@ఠ!q Š,B-B@?A@@ӊ@@@Mj@@7B8B@@@@@Ml@@@Mk @@@/AB@@@@@@@డԳʩʫJCKC@ʨ@@@ʨ@@@N@ʧ@@@N~@@@N@@N@@N3UTTUUUUU@(F?@@@A6/@0@1@@@@ఐr$loopkClC@O@@@qh@@N@@ఐ_!pzC{C@@@נ^@@@N'@@@@z(@@ఐ$loop֎C֏C@r@@@@@N9@@ఐq!q֝C֞C@A@@@@@NJ@@@@K@@;@@L@@@A֧-{ @@F@ A@@@@QR@Q@@@֮,bh@@ఐ$loopָE ֹE @@@@@@@Q@@@Q@@@Q@@Q3@@@@@ఐ!#patEE@ @@S@@@@IR@Q@+O\2@@M@@@A)%'4@@O@35A@jM@R<@A@9@98@N@ఠ-check_partial ̠WW@A@@@@@@@R3;36<@@@R@@@R@@@R@@RM@R@@@@S.M@R @OŠwt[@@@SLM@S-@@@S,@@@S+@@@S*M@R3@@@SSM@R@@RM@R @@RM@R@@R M@R3'&&'''''@@@@@@࣠@$pred A:W;W@MA@@K398899999@XBWC` @@@@@  @@#loc ANWOW@aA@@I3MLLMMMMM@!b@@@@@@@@%casel A_W`W@rA@@Q3^]]^^^^^@]@@@@@@@@@ఠ#pss ѠrX sX@ׅA@@Ԡ ڠhM@R`@@@R_M@R@@@R&@@@R%Q@R3׃ׂׂ׃׃׃׃׃@&2y@)@*@@@ఐ7h.initial_matrixהXוX@77@@@+!@@@R@@@R6)@@@R@@@R@@R!@@ఐW%casel׳X ״X%@+@@.@@#@@?/@A@׸X@@@ఠ#pss ҠY)/Y)2@A@@%Q@@@R^Q@R0@@@R@Q@R+3@Lg`@a@b@@@ఐY(get_minsY)5Y)=@W5@@@@@@@@R4A@R3A@R2@Ё&@@@R1O*@@@R/@@R.@@R-$@@ఐj,'le_patsY)>Y)E@j0@@@ӠcH@@@RW@@@RV@@@RU@pU@@@RT@@@RS@@@RRq@@@RQ@@RP@@RON@@ఐ#pss+Y)F,Y)I@X@@Ġi@@@RAR@RkR@Ric@@X @@nd@A@8Y)+ @@@ఠ%total ӠCZMSDZMX@VA@@4>@@@RQ@Rl3GFFGGGGG@z@@@@@ఐ40do_check_partialXZM[YZMk@&.@@4@Є@@@R~44Ϥ@@@R}@@@R|@@@R{@@Rz@%@@@Ry@נП@@@Rx@@@Rw@@@Rv@:.@@@Ru@@@Rt@@@Rs4@@@Rr@@Rq@@Rp@@Ro@@RnC@4ݐఐb$predؙZMmؚZMq@G@@P@@ఐ[#locئZMrاZMu@C@@]@@ఐW%caselسZMvشZM{@+@@j@@ఐ#pssZM|ZM@t@@Yb:t@@@R@@@R@@@RR@RR@R@@{@@@A@ZMO@@ డJ@B\\@?@@@?@@@R@>@@@R@@@R@@R@@R3@@@@@@@డh-/\\@,@@@4@@@RR@R@-@@@R@@R@@R@@ఐՠ%total\\@'@@*@@ภ%Total$\%\@2@@@#S@R8@@@@͇@@@R@RS@R@@@డ4)is_active(WarningsA\B\@ E\F\@@4@@@4@@@R4@@@R@@R`@@ภ(Warnings\\]\@-Fragile_matcha\b\@@ j\@@l\m\@@@@@SS@SS@S@@v\w\@@4@@@RS@S@@=@@@@@R@SS@R@@n@@@@@SR@R@ఐ;0do_check_fragileٔ^ٕ^@[@@@O@@@S@RO@@@S@@@S@@@S@@@S@AJ;\@@@S@@@S @@@S N8@@@S @@S @@S @@S@@ఐ|#loc^^@d@@@@ఐx%casel^^@L@@@@ఐ#pss^^@@@z;@@S)@@@S(@@@S'R@S@R@S>@@]_@@T@@@SRQ@SQR@S& @@[ @@  @ఐ %total`@@@@ @@@5@@@@@7@S@@@A@M@SY@A@@@㠰@ఠ,pattern_vars Ԡ&&&&@-A@@@~׌@Z@@@ZM@S[#Set!t@@@ZM@S\@@S]M@SZ3-,,-----@MF@G@H@@@࣠@!p A@&&A&'@SA@@"3?>>?????@/H&&I&'3@@@@@  @@డ*#Set'of_list%Ident]&'^&'@ a&' b&' @@f&' g&'@ @@$listKG#elt@@@U@@@@U?M@@@U>@@U=@1Tai2Ta@@,IdentifiableP@$@@@@@@UK@@@UJ_@@@UI@@UH3ڈڇڇڈڈڈڈڈ@JVn@M@N@@@@డح0pat_bound_idents)Typedtreeڠ&'ڡ&'@ ڤ&' ڥ&'0@@@!k@ }@@@ր!t@@@@@@ @@ @tttt>@@)@"@@@@@@Z@@@Z@@@Z@@ZB@@ఐ!p&'1&'2@L@@O@@&'@@vs@@@Z@@@ZO@ZP@Z\@@@@]@A@M@[@A@@@A+'amb_row M++++@@;@@#row @@r'pattern@@@[@@@[ ++ +,@@A'varsets @@ڄ#Set!t@@@[@@@[+, +,!@@2A@@A@@@@@#++$+,#@@@@6A@#,,!+++@ @@Ш@г/$list4++5+,@г45<++=++@@;398899999@+$@%@&O;@@@A@@@@@"@@@@@ @@@F @@I@@[ @?@#;;-L+, @,@@Ш@г>$listU+,V+, @гC%Identb+,c+,@Kf+,g+,@@Ok+,l+,@ @@Y0 @@@^1@@a@@[ 4@T@@A@P@@PO@3nmmnnnnn@4@@@ఠ5simplify_head_amb_pat ɠ,%,)ۀ,%,>@ےA@@@^@@@`MN@[=@@@@`L@@@`KN@[B*add_column@@@@@^ࠠ@"!@@@^@@@^@@^N@^@@@@_N@^@@@[WN@^N@^ΐA@^N@^ːA@^N@^ȐA@^N@[G@v@@@`JN@[L@۠@@@`I@@@`HN@[Q@"N@[V!@@[XN@[R@@[SN@[M@@[NN@[H@@[IN@[C@@[DN@[>@@[?N@[<3@@@@࣠@4head_bound_variables A,%,?,%,S@A@@p3@},%,%..@@@@@  @@'varsets A,%,T,%,[@A@@{3@!@@@@@@@tt Ax,%,],%,g@*A@@|3@@@@@@@,%,\@@!p A),%,h*,%,i@<A@@^3(''(((((@@@@@@@@@"ps A:,%,j;,%,l@MA@@f398899999@r@@@@@@@@!k AK,%,mL,%,n@^A@@j3JIIJJJJJ@z@@@@@@@@Aఠ%simpl Ѡ^,q,{_,q,@qA@@@;@@@^U@[\@ɠ[@@@_@@@_U@[_@w]@@@[U@[b@@@@_@@@_U@[e@U@[hU@[i@@[o@@[n@@[m@@[l@@[k3܆܅܅܆܆܆܆܆@=I@@@A@@@࣠@4head_bound_variables Aܙ,q,ܚ,q,@ܬA@@93ܘܗܗܘܘܘܘܘ@E@@@=@6@3@,*@@[jV@[f@@[gV@[c@@[dV@[`@@[aV@[]@@[^V@[[@S@T@@@@@@'varsets Aܾ,q,ܿ,q,@A@@W3ܼܼܽܽܽܽܽܽ@&2a@)@*@@@@@@!p A,q,,q,@A@@]3@k@@@@@@@@"ps A,q,,q,@A@@g3@q@@@@@@@@!k A,q,,q,@A@@m3@{@@@@@@@@డ'General$view(Patterns,,,,@ ,,,,@@,,,,@ @v @@@x@@@[w@@@[@@[3@0<@3@4@@@@ఐe!p1,,2,,@M@@@@5,,6,,@@w*@@@[@(pat_desc>,,?,,@~ @@]@@[[@[#@%Alias@ఠ!p נY,,Z,,@lA@@Ղ^$@@@[3\[[\\\\\@=@@@@ఠ!x ؠj,,k,,@}A@@^.^-@@@[@@@v,,w,,@@^0^/@@@\@@@\@@@݄,,݅,,@@^2^1@@@\*@@@ݏ,,ݐ,,@@^4^3@@@\4@@ݖ,,ݗ,,@@@?@0@(@@@@\C@Рv䐐v@vv@@@]@@]@v@ @]@@]@ @]vߐ@_T@_S_P@@]@x_P_O@&@]@(@]@X_P_O@0@]@@]v@Вv@=@]@vv@G@]@I@]@@]v@Ыv@V@]!@v8v@`@]#@b@]"@șvȕv@m@]%@o@]$@@] v@v@vvv@@]*@@])@v@@]+@ov@@],@@](@@]'@v@@]-@@]&v됐ցv@@].v鐐@֎w@@]0@֕w@@]1@w̠w@@]3@@]2@@]/v됐@+vvv@@]6@@]5@Bv@@]7@vv@@]9@@]8@@]4_w@R@@];@G@@]<@C_q@ @]>@ @]=@@@@]?@;@@]@@@]:w vw @!@]A@@@]A@_k@,,G@@_o@(@[@@_q@@@\@@@ఐ%simpl,,,-@O@@@@@@z@qo@@]@@]@@]@@]@@]3@@@@@@@@@డ#Set#add%Ident,-,-@ ,-,- @@,- ,-@ @@@@@T\@@@@T[@@@TZ@@TY@@TX@@+Stdlib__SetF@@@@@@@]@ @@@]@@@]@@]@@]C@@ఐܠ!xF,-G,-@K@@@@@^]@^U@@ఐ 4head_bound_variablesX,-Y,-&@@@b@@\,-],-'@@]@^ g@@ఐ'varsetsj,-(k,-/@@@t@@ఐ!pw,-0x,-1@}@@@@@^*@@ఐ"ps߇,-2߈,-4@@@ @@ఐ!kߔ,-5ߕ,-6@p@@@@@@@#Var@ఠ!x ٠ߪ-7-C߫-7-D@߽A@@@@@\M3߬߫߫߬߬߬߬߬@@@@@@߶-7-E߷-7-F@@a0@@@\O@@@\N@@@-7-G-7-H@@@@@\P@@-7-B-7-I@@@!@@@@\Q"@Рyy@yy@@@]H@@]G@/@ @]I@@]F@ @]Ey @a@.@@]K@-a{@#@]M@%@]L@,@+@]N@@]Jy)@*@7@]P@y&)@@@]R@B@]Q@@]Oy#@(@N@]T@y '@W@]V@Y@]U@&%@b@]X@d@]W@@]Sy@y@$#@z@]]@|@]\@"@@]^@!@@]_@@][@@]Z@ @@]`@@]Yy @@]ay@@@]c@@@]d@y@@]f@@]e@@]by@@@]i@@]h@@@]j@x@@]l@@]k@@]ga@i@@]n@^@@]o@Za@@]q@@]p@W@@]r@R@@]s@@]my$@@]t@@@]DA@a@-7-=*@@a@@\BE@@a@@@\RH@@@ఐ%simpl-M-S-M-X@e@@@@@@@@@^7@@^6@@^5@@^4@@^33        @kd@e@f@@@@డ#Set#add%Ident&-M-Z'-M-_@ *-M-`+-M-c@@/-M-d0-M-g@ @ @@@@@@^P@@@@^O@@@^N@@^M@@^L1@@ఐ!xJ-M-hK-M-i@;@@@@@^j]@^iC@@ఐƠ4head_bound_variables\-M-j]-M-~@@@P@@`-M-Ya-M-@@7@@@^bV@@ఐ'varsetso-M-p-M-@@@c@@డُ%omega(Patterns-M--M-@ -M--M-@@ٍ@@٭@@@^|@@ఐ"ps-M--M-@@@@@ఐ!k-M--M-@~@@@@@@@"Or@ఠ"p1 ڠ----@A@@S@@@\3@@@@@ఠ"p2 ۠----@A@@\@@@\@@@----@@{*^@@@\@@@\@@----@@@'@@@@\(@Р{'{&@{%{$@@@]{@@]z@C@ @]|@@]y@ @]x{!@c@B@@]~@Ac@#@]@%@]@@@+@]@@]}{=@>@7@]@{:=@@@]@B@]@@]{7@<@N@]@{4;@W@]@Y@]@:9@b@]@d@]@@]{-@{,@87@z@]@|@]@6@@]@5@@]@@]@@]@4@@]@@]{3@@]{@2@@]@1@@]@{0@@]@@]@@]{@/.@@]@@]@-@@]@{,@@]@@]@@]c@}@@]@r@@]@nc@@]@@]@k@@]@f@@]@@]{8+@@]@@@]wA@c@--*@@c@@\K@@c@@@\N@@@ఐ%simpl----@y@@@@@@@@@^@@^@@^@@^@@^3@rk@l@mc\@]@^@@@@ఐ4head_bound_variables2--3--@p@@@@ఐ'varsets?--@--@l@@@@ఐ"p1L--M--@(@@@@@^/@@ఐ"ps\--]--@g@@<@@ఐ %simplk--l--@ΰ@@@ @@@@@@^@@^@@^@@^@@^U@@ఐ점4head_bound_variables---.@@@!b@@ఐԠ'varsets-.-. @@@'o@@ఐԠ"p2-.-.@w@@/@@@^@@ఐϠ"ps-.-.@@@2@@ఐˠ!k-.-.@@@4@@---.@@5@@@@6@}@@}@}}@@@\@@@\͠@!@@@\@@\@@@\\@\@Р}"}!@} }@@@]@@]@>@ @]@@]@ @]}@e@=@@]@<e@#@]@%@]@;@+@]@@]}8@9@7@]@}58@@@]@B@]@@]}2@7@N@]@}/6@W@]@Y@]@54@b@]@d@]@@]}(@}'@32@z@]@|@] @1@@]Ġ@0@@]@@]@@]@/@@]@@]}.@@]Ǡ}@-@@]ɠ@,@@]ʠ@}+@@]@@]@@]Ƞ}@*)@@]@@]Π@(@@]Р@} '@@]@@]@@]͠e@x@@]Ԡ@m@@]ՠ@ie@@]@@]֠@f@@]ؠ@a@@]@@]Ӡ}3&@@]@@@]A@e@....2A@e@@\\@\@~%@* @@~%@@@(@@@\֠@~#&@@@\@@@\@@\\@\@B#@ @~ @@@'@@@\ڠ@~%@@@\@@@\۠@"!@@@\@@@\@@\\@\!@cD@A!@~@@@~@"!@@@\@@@\⠠@@@@\䠠@@@@\@@\@@@\ࠠ@@@@\@@\\@\K@n@kK@~@E@@@@\\@\V@y@vV@}@P@@@@@\@@@\@@@@\@}ݠ@@@\@@@\@@\\@\w@@w@}ؐ@o@@@@\\@\@@@Р~䐐ޠ~Ő@~Đ~~n~LH~'A}&@@@\A@{@@@$@@%@@&@@'@@(@@)@&Simple$view(Patterns....&@ ..'..-@@...@ @@@@$view ܠ..6..:@AN@@] @@0@] @@@@f@@@] @@@ఐ *add_column.>.D.>.N@ ְ@@ g3@@@@@@@డ)$Head+deconstruct(Patterns.>.P.>.X@ !.>.Y".>.]@@&.>.^'.>.i@ @ @@@N@@@^@;@@@^Ӡ@@@@^@@@^@@^@@^9@@߄(pat_descK.>.sL.>.{@ఐf$viewT.>.~U.>.@N@@|J@@@_3]@_V@ߐߑ@@@_]@_@ߋߌ@ߋ@@@_@߉@@@_@-@@@_@@_@@@_]@_@߃@@@_]@_@߁@@@_]@_@C@@@_]@_@@ఐ ͠!p.>.l.>.m@ @@ &@.>.j.>.@@@@@^]@_@@.>.O.>.@@ @@ຠ3  @@@[; @@@3  @@A@A @ @A @ #row....@ఐ 堐"ps....@ Ͱ@@ H@'varsets....@ภŻ....@Ԫఐ F4head_bound_variables....@ @@ {@ఐ ,'varsets....@ @@ @@@@ ܠ @@@_@@@_\@_@@@....@@ >@@ఐ !k....@ ݰ@@ |@@@@ {@@@A,,@@ }3@ @@@ pA@@ @ @ @ @  @@`&@@`%@@`$@@`#@@`"U@` x@@@,q,s@@ఐ  %simpl ..!..@ @@@ @@@`2@憠 @@@`1@@@`0@@@@`/@ 9 8@@@`.@@@`-@  @@`,@@`+@@`*@@`)@@`(3<;;<<<<<@ @@@@ఐ \4head_bound_variablesL..M..@ A@@ @@ఐ U'varsetsY..Z..@ >@@ @@ఐ @!pf..g..@ (@@ (@@ఐ <"pss..t..@ $@@ 5@@ఐ 8!k.. @  @@ A@@c @@ B@n @@  @  A@ N@`j @A@ @  @ A+&signed N2222@А!a@`m3@  # @ @ ;@@`k@@`l@B@A@GG@BB@@@2223 @@@@ A@@2222@@咠А!b@`n2222@@@;' @B(Positive ސ1O@`o@@2222@@ A(Negative ߐO@`q@@22*@@ A@@A@YY@@@@@@1@@@.@#22@@А!a L22@@@@ @#2223@@А!b!Y23 I@@@@!@@A@K@@KJ@3@[@@Aఠ6simplify_first_amb_col 3 33 3+@ A@@@ [@@@`O@`஠@@@aO@`@@@`O@`@@@`O@`@@@`O@`~煠@@>@@@a@@@@a@@@a@@aR@a @4 @@@aR@aĠ章3O@`@@@aAO@a@@@a@@a@@@aO@`@@`3QPPQQQQQ@@@@@Ġb373;c373=@@@@@\3`__`````@h@cE@@`P@`}@f@g@@@@@ภq373Ar373C@@@@M@ĠT{3D3q|3D3s@SĠ(Negative3D3I3D3Q@;y͐@@`|@AA@B@A@@Ġ)3D3R3D3T@(@@@@|1@@@@@O@`3@Ġ(Positive3D3W3D3_@;@A@@B@A@@֠ঠ#row3D3b3D3e@ĠH3D3h3D3j@G@@@@  @@@`@@@`W@@A3D3`3D3o@@T@`\@@@$@@+]@@3D3H3D3p@@.`@@3D3t3D3u@@&6@@@`i@@@ @@j@@@ ภו3D33D3@ה@@@n@@@`w@3D3z@@y@Ġ־3333@ֽĠ(Negative3333@hĠϰ3333@Πఠ!n 3333@ A@@3@@@@ఠ"ns  33 33@A@@k@@@`@@@3333@@O@`@@@+@@ O@`@ఠ#rem "33#33@5A@@肠@@@`'@@@=@@"(@@@@ఠ*add_column 533633@HA@@@@@`R@`@@`R@`@誠@@K@`@@@`R@`@@`R@`@@@`R@`@@@`R@`@@`R@`@@`R@`@@`R@`3cbbccccc@q@k@lf_@`@aPI@J@K@@@࣠@!n Az33{33@A@@A3yxxyyyyy@N3333@@@@@  @@"ns A3333@A@@M3@!X@@@@@@@@!k A3333@A@@W3@a@@@@@@@@ภȖ3333@ׅ@ఐD!n3333@)@@3@(u@@ @@@@ภ(Negative3333@CఐH"ns3333@0@@@@@@~R@`@@3333@@R@` @ఐJ!k33d@'e@@*@@f@@{@@@`/@tkA@R@`r@A@o@ఐ1simplify_head_pat3333@~U@@@@ @@@a@}|@@@a@@@a@@a@Q@`@O@a8Q@`A@`A@`A@`@@@@`@@@@`@@`@@`@@`3      @@@@@@?ఐ*add_column234334 @ @@@ O@aR@a&@+R@a)@霠@@9O@a(@@@a0@@a/@@@a1@@@a.@@a-@@a,@@a+0@@ఐ`!n_34 `34 @@@=@@ఐa"nsl34 m34@@@ J@@ఐx6simplify_first_amb_col{34|34'@@@@wY@@aC[@@ఐh#rem34(34+@@@O@aGj@@3434,@@km@@@@}n@@@m,@Ġt4-4S4-4U@sĠ(Positive4-414-49@ঠ#row4-4<4-4?@Ġ؏4-4C4-4E@؎ఠ!p 4-4B @A @@@@@`3@`@@@ఠ"ps 4-4G@A@@,@@@`@@@`@@@ @@٠@@@`@@@`@'varsets4-4I4-4PA4ఠ @A@ܠ@@@`@@@`/@@@4-4:[@@O@`3@@@U^@@O@`6@ఠ#rem f4-4X@Ai@@a@@@`D@@@f@@E@@@@ఠ*add_column 4\4f4\4p@'A@@@@@a^R@aI@@abR@aN@ꉠ@@*@ac@@@adR@a_@@a`R@aY@@@a]R@aSՠ@@@a[R@aT@@aUR@aO@@aPR@aJ@@aKR@aH3BAABBBBB@@@~@@eb@d@cQK@L@M@@@࣠@!p A[4\4q\4\4r@nA@@C3ZYYZZZZZ@Pc4\4bd4\4@@@@@  @@"ps Ao4\4sp4\4u@A@@O3nmmnnnnn@!Z@@@@@@@@!k A4\4v4\4w@A@@Y3~~@c@@@@@@@@ภw4\44\4@f@ఐD!p4\4{4\4|@)@@3@(w@@ @@@@ภ(Positive4\4~4\4@ ఐH"ps4\44\4@0@@@@@@R@ae@@4\4z4\4@@R@af @ఐJ!k4\4d@'e@@*@@f@@\@@@a\/@tkA@R@amr@A@o@ఐ[5simplify_head_amb_pat4444@>@@@@@@a@@@@@a@@@aP@@@@@a~@lk@@@a@@@a@@a}@F@@@a|@Q@auA@a{A@azA@ay@@@@ax@@@@aw@@@av@@@at@@as@@ar@@aq@@ap@@ao3@ @@@@@@డ#Set%empty%Ident044144@ 444544@@944:44@ @@@@TW@@ E@@@@@@aR@aR@a.@@ఐf'varsetsS44T44@@@붠H@@@a@@@aR@aR@aF@ƐఐW*add_columnk44l44@P@@@@@+@Р@K@m94@@@a@@a@@@a@@@a@@a@@a@@al@@ఐҠ!p4444@G@@}@@@aR@aR@a@@ఐؠ"ps4444@Z@@@@@a@@@aR@aR@a@@ఐ6simplify_first_amb_col4444@Z@@@@@a@@ఐ̠#rem4545@@@O@a@@4445@@@@@@@u@@@@A 3 3.@@@@@@@@cO@c{@@@3 3  @@@A++stable_vars O5%5*5%55@@;@@#All @@585:585?@@ A$Vars #Set!t@@@c@@5@5B 5@5W@@A@@A@@@@@ 5%5%@@@@A@#585<@@@@ @#5@5D5@5H@@г%Ident'5@5L(5@5Q@&+5@5R,5@5U@@*05@5V(@ )@@33-,,-----@L;@@@A@@@@@+@@@)@@.@@@@0@@A@,@@,/@s@ఠ,stable_inter C5Y5]D5Y5i@VA@@@h@@@cP@c@ P@c P@c@@cP@c@@cP@c3TSSTTTTT@sm@@@࣠@#sv1 Af5Y5jg5Y5m@y A@@3eddeeeee@,n5Y5Yo55@@@@@  @@#sv2 Az5Y5n{5Y5q@!A@@)3yxxyyyyy@!6@@@@@@@@@ఐ-#sv15Y5z5Y5}@@@H3@"A@@@@@@ఐ(#sv25Y55Y5@ @@M@@@@@\@T@@c@@Ġ#All5555@;o@@@c@@@@AA@A@@@@@@v@c3@/@@@@ఠ"sv 5555@"A@@z@c@@@@@@@@c@@@@"sv5555@#A@@@c&@@Ġ#All5555@7@@@@P@c@c4@@@@@@ @@c;@@;@@E @@@@@@cB@@@ఐ@"sv 55 55@?@@@A@@3        @}J@@@@Ġ$Vars55 55@;&f@$A@AA@A@@ఠ"s1 *55+55@=$A@@/@@@c@@@@@@c@@Ġ$Vars<55=55@ఠ"s2 E55F55@X%A@@J@@@c@@@@@@c@@1 @@@"@ @@c@@@(@@@c@@@ภ$Varsb55c55@CడC#Set%inter%Identv55w55@ z55{55@@5555@ @@Z@@@Tn@_@@@Tmb@@@Tl@@Tk@@Tj@@dJ@@@@i@@@c@n@@@cq@@@c@@c@@c3@|u@v@wb[@\@]@@@@ఐ"s15555@@@@@@cU@cU@c@@ఐ}"s25555@!@@@@@cU@cU@c-@@55_@@@@@c@cU@c6@@tg@@7@@@A5Y5ti@@3@E@@@tkA@P@dr@A@o@on@@ఠ&reduce 5555@&A@@@@@@dWP@d8@P@d:@@dK@@dJP@d@瓠P@d!@@@d P@dP@d@@dP@d@@dP@d3@@@@@@࣠@!fA5555@('A@@)3@65566/@@@@@  @@Ġ羰(55)55@@@@@,3&%%&&&&&@>@@@@@@@డ+invalid_arg755856@@@@@!a@@@@Zf[f:@@YB@@@@@@@d,JT@d+@@d*%@@&reduceX56Y56 @@[56\56@@%@@@d1T@d3T@d29@@. @@_:@ĠEl66m66@Dఠ!xu66 @(A @@P@d#3uttuuuuu@O@@@ఠ"xs66@)A@@@@@d%@@@@@@@@డ$List)fold_left6666@ 6666(@@hb@@@@@@@d<@@d;@@hZ@@@d9@@d7@@d6@@d53@?9@:@;3-@.@/@@@@ఐ!f66)66*@@@@@ఐT!x66+66,@@@T@@ఐT"xs66-@&@@h@@@dIT@dNT@dM3@@J@@4@@A 55@@@A@P@d[@A@@@ᠰAఠ2matrix_stable_vars6169616K@*A@@@荠F@@@f_藠/@@@hP@f\@@@f`@@@f^@@@f]P@d]@@@f0P@d^@@d`3@3,@-@.@@@࣠@!mA#616L$616M@6+A@@.3"!!"""""@:@5@@d_Q@d\@8@9@@@@  @@ఐ!m9616V:616W@C@@@@D387788888@#@@@ĠްH6]6aI6]6c@@@@@R3FEEFFFFF@@@@@S@@@ภ#AllR6]6gS6]6j@@@@E @Ġ9`6k6a6k6@8Ġ(Positivek6k6ql6k6y@͠ঠ#rowv6k6{w6k6~@ Ġ}6k6~6k6@@@@@@@@dv@@@du3@J@@@@A6k6z6k6@@P@fcP@e+P@dP@dP@dpV@dm@@@-@@P@fbP@f+P@e*P@dP@djP@dh@Ġ(Negative6k66k6@$ĠH6k66k6@G@@@@P@fdP@e,P@dP@dzP@dy8@@@ @@(9@@6k6p6k6@@+<@@6k66k6@@&3U@d@@@dT@d|I@@@6k6o6k6@@L@*empty_rows6k66k6@,Al@@@d@@X@@X@@@ 2Negative_empty_rowU6666@#@@@A66@@.A@@@@@ @3@"@ @@@@ఠ+get_varsets 7'717'7<@/A@@@T@@@dV@d駠}@d@@@dV@d@@@dV@d  @@@d@@@dV@d@@dV@d3@2A;@@@@Ġ(Negative17H7R27H7Z@ఠ!n :7H7[;7H7\@M0A@@+398899999@CB7'7-C 8O8d@@@@@@ @@=@@@  డ큰Q77R77@~@@@CV@d@{@@@d@@d@@d3WVVWWWWW@(L@"@#@@@@ఐ/!ni77j77@ @@Y@@ภ t77u77@ @@@dV@d@@z77{77@@@@@dZ@d%@77@@lV@@@dY@d,@డ%raise7778@R@@@R@@@dY@d@@d?@@ภ2Negative_empty_row7878@;@@@d@@@A@A@@@ @@R@@@dY@dV@@"@@W@2@@X@Ġ(Positive88 88(@ ఠ!p 88)88*@1A@@V@dV@d3@@@@@@@@@@@  డC 8.8H8.8I@@@@@@@d@@@dY@d@  @@@d@@d@@d3@.'@(@)@@@@ఐ7!p8.8B8.8C@@@6@#row8.8D8.8G@ W @@%@@ภꤰ8.8J8.8L@@@@2Y@d&@@8.8A8.8M@@Ί@@@dZ@d.@8.8:@@l@@@dY@d5@ఐf!p+ 8O8[, 8O8\@>@@eA@'varsets2 8O8]@  @@G@@@H@@Aa 77'7?@@@@@5V@e365566666@@@@A@@డ$List#mapK 8h8zL 8h8~@ O 8h8P 8h8@@'@@@@V@e JI@@@e)@@@e(V@e @@e @ڊ@@@e p@@@e@@e@@e3gffggggg@Irk@l@m@@@@ఐy+get_varsetsy 8h8z 8h8@ @@@ n@@@e%P@feP@e @@@e&@@@e$}|@@@e#@@@e"@@e!)@@ఐȠ*empty_rows 8h8 8h8@@@̠R@@@eW@e.W@e->@@` @@ڳU@@@eC@Ġ2Negative_empty_row 88 88@@@@@@@@e43@S@@@ 88@@ʠ@@@e7@@@e6@@@e5@@@ภ#All 88 88@@@@@ఠ,rows_varsets 88 88@2A@@֠@@@e=@@@e<@@@e;@ @@@@e@@@@e?@@@e>@@@@ఠ2stables_in_varsets 88 89@3A@@e@@@e@@@eX@eF3        @70@1@2@@@ఐ5&reduce 99 99@@@@@X@eJ@@@eM@@eL@뼠 @@@eK @@eI@@eH@@డ$List$map2> 99? 99@ B 99C 99#@@@@@@!@@@eZ@ed@(@@@eZ@eb-@@@eZ@e`@@ef@@ee@@@@ec@@@@ea@@@e_@@e^@@e]@@e\Z@@డJ#Set%inter%Ident} 99$~ 99)@  99* 99-@@ 99. 993@ @ @@@a@@@e@f@@@ei@@@e@@e@@e@@ 99 994@@@t@@@e@@@e@}@@@e@@@eT@@@e@@@e@@e@@e@@ఐݠ,rows_varsets 995 99A@@@V@@@eWY@eY@e@@ @@@A@ 88 @@ภ$Vars 99 99@డF$List)fold_left 99 99@  99 99@@l@@@@@@@eW@e@@@@eW@e @@e@@e@@l @@@e@@e@@e@@e3@@@@@@@డ#Set%union%Ident 99 99@  99 99@@ 99  99@ @@@@@Ti@@@@Th@@@Tg@@Tf@@Te@@I@@@@ @@@e@@@@e@@@e@@e@@e>@@డ#Set%empty%IdentQ 99R 99@ U 99V 99@@Z 99[ 99@ @! @@3@@@e`@@ఐg2stables_in_varsetsk 99l 99@j@@m#@@@eX@eX@eu@@w 99x 99@@x@@@@-@@@e|@@@nm@@@A 8h8n 99@@q@@@@r^@66@@t3~~@@@@ఠ!m 99 99@-A@@V@@V@@@@ఠ+is_negative 9: 9:@4A@@@ @e@e@@@eT@eE@@@eT@e@@eT@e3@w*@$@%@@@@Ġ(Negative ::( ::0@ ;@ ::1 ::2@@3@0 9: :;:X@@@@@@@@*@@@ภ䅰 ::6 :::@@@@)@Ġ(Positive :;:E :;:M@ A@ :;:N :;:O@@>T@e @@@ @@D!@@@ภ㭰 :;:S"@@#@@B(@@A 9:&@@@'@@ST@f .@A@+@డj$List'for_all :\:e :\:i@   :\:j  :\:q@@Ͱ@@@@sS@f@@@f@@f@Š @@@f@@@f @@f @@f 3@m@@@@@@ఐ+is_negative, :\:r- :\:}@ @@@ !P@f$~P@f%@@@f(@@@f'@@f&@@ఐ!mG :\:~H :\:@@@Q+@@F@@ѿ@@@f-T@f1@ภ#AllV ;;W ;;@@@@G:@@ఠ!md ;;e ;;@w5A@@Ơ@@}@@@fV@@@@fX@@@fW@@fU@ s@@@fZ@@@f[@@@fY@@fT@@@fST@f13@q@@@ఐ 6simplify_first_amb_col ;; ;;@ 5@@@1 @@@f@;@@@f=@@@fA@@@f?@@@f>@@@@@f7@65@@@f9@@@f8@@f6@ @@@f;.)@@@f<@@@f:@@f5@@@f4@@f3H@@ఐS!m ;; ;;@/@@U@@L@@|V@A@ ;;@@డ[#not ;; ;;@k@@@k@@@fik@@@fh@@fg3@@@@@@@ఐĠ,all_coherent  ;; ;;@@@@뿠@@@fv@@@fu@@@ft@@@fs@@fr"@@ఐ\,first_column, ;;- ;;@#@@@W@@F@@@fU@f@@@@f@@@fU@f@@f@@@@@fR@@@f@@@fU@f@@f@@@fe$@@@f@@fc@@ఐ!mk ;;l ;;@m@@ޘ@@A@<@@f@3@@f@@@fV@fV@f@@ ;; ;;@@6PU@f@@@fU@fV@f@@ ;; ;;@@l@@@fp@fU@f~@@ @@@@@fT@fo@ภ#All ;< ;< @@@@P@f@@ఠ+submatrices ==% ==0@6A@@ @@@h>1V@h6@@@h@@@h@@@h@@@hT@f3@@@@@ఠ*extend_row =3=C =3=M@7A@@@>Z@@@fU@f@@@fU@f@>@@@g U@f>iU@f@@@fU@f@@@fU@fQ@@@g U@fBC@@@fU@f@@@fU@f@@fU@f@@fU@fG@࣠@'columnsA" =3=N# =3=U@58A@@C3!  !!!!!@)P* =3=?+ ==@@@@@  @@Ġ(Negative6 =a=q7 =a=y@ఠ!r? =a=z@ =a={@R9A@@F3>==>>>>>@*c@!@"@@@@@@@U@@@ภ(NegativeM =a=N =a=@Ǡడ!@Y =a=Z =a=@>Ӱ@@@>Ӡ_@@@f@>Πe@@@fBi@@@f@@f@@f3gffggggg@*3r@-@.@@@@ఐZ'columnsy =a=z =a=@6@@@@ఐG!r =a= =a=@@@@@ =a= =a=@@z @@@@@!@Ġ(Positive == ==@ఠ!r == ==@:A@@U@gU@f3@b@@@@@@@@@@ภ(Positive == ==@ຠ#row == ==@డ,!@ == ==@?>@@@?>@@@f@?9@@@fC@@@f@@f@@f3@?8@9@:@@@@ఐŠ'columns == ==@@@@@ఐU!r == ==@@@T@#row == ==@N @@?k@@@fY@gY@f.@@" @@ !@@@fY@f5@Z@@@g @@@g X@g@@ఐ!r ==  ==@H@@K@# ==@@U@fN@@y@@!O@@AR( =3=X@@@A@KU@g*@A@@@ఠ"q06 !==7 !==@I;A@@D@@@gGU@g+3:99:::::@Bjc@d@e@@@ఐw)discr_patK !==L !==@s@@@r@@@g5@@@h@@@g/@۠@@@g@@@gU@g3@@g2@b@@@gݠՠt@@@g@@@gU@g4@@g1@@@g0@@g.@@g-@@@డ&Simple%omega(Patterns !=> !=>@  !=>  !=>@@ !=> !=>@ @ [ @@@@@gqV@gOd@@ఐI!m !=> !=>@@@F@@@\@@gJ@S@@gI@@@gHV@gV@g@@z@@@A@ !==@@@ঠ'default ">>- ">>4A{ఠ@>6 ">>=A{ఠ@=A@@@@@g@1V@g@@g@@@g@@@ ">>+ ">>?@@9@@@g&@ఐn=build_specialized_submatrices #>B>P #>B>m@{@@k@M@@@g@@@g@NNA@gA@g@@@@g@ɠ@@@@@g@f@@g@@@gPڐm@@@g@@@g@@g@@g@@g`@ఐ~*extend_rowY #>B>oZ #>B>y@@@@@Ӡ^@@@h,@@@h0@W@@@h.@ؠ@@@h/@@@h-c@@@h*D@@@h+@@@h)@@h(@@h'@@ఐS"q0 #>B>z #>B>|@@@H@@@hV@h?V@h>@@ఐ9!m #>B>} #>B>~@@@6@@@ @@@h@@h@@@h@@@hV@hIV@h@@@@@Ġ@@@hOV@h@A@ ">>'#@@@ఠ+non_default $>> $>>@>A@@٠ɠ!@@@hqAJ@@@hr@@@hp@@@hoU@hU@@@hbU@hP3@@@@@@@@డ^$List#map $>> $>>@  $>> $>>@@հ@@@@@@@@hnU@hi@>U@hg@@hkU@hW?@@hX@;@@@hV!H@@@hT@@hS@@hR6@@డ#snd' $>>( $>>@1@@@)Z@@hdV@hjG@@ఐ8'constrs8 $>>9 $>>@O@@e=@@@hcV@hsV@hl\@@K @@s]@A@E $>> @@ఐlȠ*full_matchQ %>>R %>>@c;@@@@@@h}@@@@@h{@@@hz@۳`@@@hA@@@h@@@h@@@hT@h|@@hy@@@hx@@@hw@@hv@@hu3|{{|||||@@@@@@@ภK %>> %>>@J@@@@@@hU@h@@ఐ'constrs %>> %>>@@@=@f@@@hU@h@H@@h@@@hU@hU@h3@@d@@)@@@hU@h9@ఐ+non_default &>> &>>@@@@ C@ภٳ '>? '>?@袠ఐ'default '>? '>?@@@T@hX@ఐ+non_default '>? '>?$@`@@D0T@h@@@hT@hT@hm@@ @@7T@hp@ %>>@@9r@@@: @5@@;@0@@<@@@='@A@ ==!@@@ఠ-submat_stable )?l?z )?l?@?A@@jP@hP@dT@h@@@hT@h3  @e^@_@`@@@డ$List#map# )?l?$ )?l?@ ' )?l?( )?l?@@@@@@ 6T@h%@@h@Y@@@h?.@@@h@@h@@h(@@ఐ R2matrix_stable_varsE )?l?F )?l?@ @@@ Q :@@h7@@ఐ+submatricesT )?l?U )?l?@A@@だ/@@@hU@hU@hL@@= @@WM@A@a )?l?v @@డ$List)fold_lefto *??p *??@ s *??t *??@@t:@@@@mS@h@qS@h@@h@@h@@t6 @@@h@@h@@h@@h3@w@@@@@@ఐS,stable_inter *?? *??@ @@@N@@@h@@@h@@h@@ภ#All *?? *??@ @@@T@h%@@ఐ-submat_stable *?? *??@/@@tpC@@@hT@hT@h:@@U @@I;@d @@J@ < < +??@@M@ ;;@@"@ ;; ,?@@@%=@ :\:b@@ ?@@@ @@@A616P@@  @ A@@  @@iP@i @@@6161 @@@ Š@ఠ3pattern_stable_vars  .@@ .@@@@A@@@t@@@j @@@j S@j@@@j!P@i@ @@@jSP@i@@@jP@i@@iP@i@@iP@i3@ @@@࣠@"ns"A .@@ .@@@)AA@@-3@ : .@@ 1@i@@@@@@  @@!p#A* .@@+ .@@ @=BA@@.3)(()))))@!D@@@@@@@@ఐ I2matrix_stable_vars< /@#@%= /@#@7@ @@@Ӡ4 @@@iݠs@@@i@@@i@@@i@@@i@@@i@@i3RQQRRRRR@*6Z@-@.@@@@డ$List)fold_leftj 0@8@=k 0@8@A@ n 0@8@Bo 0@8@K@@u5@@@@ m @@@j @@@j@@@jS@jS@j@@@j@@j@@u=@@@j@@j@@j@@j 9@@࣠@!m$A 0@8@Q 0@8@R@CA@@,3@K@@@@@@!n%A 0@8@S 0@8@T@DA@@3@[>@@@@@@@@ภۤ 0@8@c 0@8@e@ꓠภ(Negative 0@8@X 0@8@`@>ఐ$!n 0@8@a 0@8@b@@!@"@@3@".@@@@@@^S@jS@j5S@j6 @ఐH!m 0@8@f 0@8@g@2@@p@@#@@yS@j-@@@j0@ 0@8@L 0@8@h@@@@@@j#@@j"T@j>T@j<V@@ภ߰ 1@i@q 1@i@Aؠภ(Positive   1@i@y@jຠa#row 1@i@ 1@i@@ภ 1@i@ 1@i@Aఐ!p % 1@i@@Ͱ @@'@ภA@ A@3P@j[@@@j\T@jj@@6 1@i@@@"::@@@jRT@jZ@'varsetsC 1@i@{D 1@i@@ภJ 1@i@K 1@i@@@@@">"=@@@js@@@jrT@jy@@@W 1@i@zX 1@i@@@S@jS@jOS@jG@@`@@S@jJ @ภ(gA@hA@ǠS@jA@@@jET@j@@r 1@i@pr@@S@j1S@jD@@ఐm"ns 1@i@ 1@i@@R@@,@@ 0@8@<f@@@@Jg@@@qhA@P@jo@A@l@lk@@ఠ.all_rhs_idents& 7AA  7AA@EA@@@)Typedtree*expression@@@oP@j#~@@@oP@j@@jP@j3@ @@@@@࣠@#exp(A 7AA 7AA@FA@@!3@. 7AA CBB@@@@@  @@@ఠ#ids) 8A!A' 8A!A*@GA@@#@@@jR@j@@@jR@j3@".E@%@&@@@డS#ref 8A!A- 8A!A0@U@@@@@@j@@j@@డ#Set%empty%Ident 8A!A1 8A!A6@   8A!A7  8A!A:@@ 8A!A; 8A!A@@ @ְ @@84@@)@@>5@A@ 8A!A#@@ Р-Tast_iterator-Tast_iterator$ 9ADAO% 9ADA\@@ 3#""#####@J^W@X@Y@@@@A3&%%&&&&&@@@. 9ADAJ @@ @3+**+++++@@@@ఠ)expr_iter,; :A`Af< :A`Ao@NHA@@@-Tast_iterator(iterator@@@m+S@lt@@@@m*S@ly>@@@lS@lz@@l{S@lu@@lvS@ls3VUUVVVVV@0@@@࣠@$iter.Ag :A`Aph :A`At@zIA@@(3feefffff@A5o :A`Abp ?BFB}@@@@@  @@#exp/A{ :A`Au| :A`Ax@JA@@.3zyyzzzzz@!?@@@@@@@@ఐ#exp ;A{A ;A{A@A@@@@B3@!@@@(exp_desc ;A{A ;A{A@ @@@@@l @Ġ*Texp_ident <AA <AA@;*Texp_ident!@$Path!t@@@#locү!t@@@@@@m1value_description@@@@C@A_@A@D@@@@7@ఠ$path0 <AA <AA@KA@@,@@@lJ@ఠ$_lid1 <AA <AA@LA@@1/@@@l@@@l\@ఠ&_descr2 <AA <AA@ MA@@6@@@lj@@@U <AA@@ @@@lo@@ @@@lr@@@డw$List$iter =AA =AA@  =AA =AA@@?ΰ@@@@$@@@lW@l?@@@l@@l@?̠ @@@l?@@@l@@l@@l3*))*****@aZ@[@\TM@N@OC<@=@>@@@@࣠@"id3AD =AAE =AA@WNA@@*3CBBCCCCC@@@@@@@డ":=T =AAU =AA@@e!a@@@@m@dY@@@l@@k@@j*%setfield0BA@@@@@@@@@@%M@@@lY@l@@@l@@@@l@@l@@l3|{{|||||@SFf@=@>@@@@ఐ#ids =AA =AA@f@@桠"@@@lZ@lZ@l@@డz#Set#add%Ident =AA =AA@  =AA =AA@@ =AA =AA@ @  @@@%J@@@l@%@@@l%@@@l@@l@@lF@@ఐ"id =AA =AA@P@@S@@డH"$ =AA =AA@!@@@%@@@l[@l[@l@@@l@@ln@@ఐ)#ids =AA@а@@ @@@l\@l\@l@@% @@@@X @@%@@@l@@{@@@@@@lZ@l@ =AA =AA@@@@@@@l@@lX@mX@l@@డg%heads$Path* =AA+ =AB@ . =AB/ =AB@@@iK@@@2$listK%Ident!t@@@1@@@0@@/@gL 6 6gL 6 R@@i\S@!@@@id@@@m@@@m@@@m@@m(@@ఐ$patha =ABb =AB @0@@i@@@mY@mY@m<@@l =AAm =AB @@AW@@@lX@mY@m G@@e @@!/@@} ?BFBL~ ?BFBM@@@@@l@@@@@l@@@డo0default_iterator-Tast_iterator ?BFBQ ?BFB^@  ?BFB_ ?BFBo@@W@@@lr@8typing/tast_iterator.mliHvvHv@@Zv@ @@b@@@m@m@$expr ?BFBp ?BFBt@3$exprm@@@lq@r@@@k@@@@k$unitF@@@k@@k@@k@@N3)attribute@@@@k@0)attribute@@@k@@@k@@k@@k@@@@A9Y:Y@@D@3*attributes,@@@@k@F*attributes@@@k+@@@k@@k@@k@@A)@AOZPZ@@E@3*binding_opB@@@@k@\*binding_op@@@kA@@@k@@k@@k@@B?@Ae[f[F@@F@3$caseX@@@@k@t$case!k@j@@@k^@@@k@@k@@k @@k@@C]@A\GK\Gr@@G@31class_declarationv@@@@k@1class_declaration@@@ku@@@k@@k@@k@@Ds@A]sw]s@@H@31class_description@@@@k@1class_description@@@k@@@k@@k@@k@@E@A^^@@I@3*class_expr@@@@k@*class_expr@@@k@@@k@@k@@k@@F@A__@@J@3+class_field@'@@@k@+class_field@@@k@@@k@@k@@k@@G@A`#`P@@4K@3/class_signature@=@@@k@/class_signature@@@k@@@k@@k@@k@@H@AaQUaQ@@JL@3/class_structure@S@@@k@/class_structure@@@k@@@k@@k@@k@@I@Abb@@`M@3*class_type@i@@@k@*class_type@@@k@@@k@@k@@k@@J@Acc@@vN@36class_type_declaration@@@@k@*6class_type_declaration@@@k@@@k@@k@@k@@K @A3d4d<@@O@30class_type_field&@@@@k@@0class_type_field@@@k%@@@k@@k@@k@@L#@AIe=AJe=x@@P@3#env<@@@@k@#Env!t@@@k>@@@k@@k@@k@@M<@Abfy}cfy@@T@U35extension_constructorU@@@@k@o5extension_constructor@@@kT@@@k@@k@@k@@OR@Axhyh @@V@3(locationk@@@@k@(Location!t@@@km@@@k@@k@@k@@Pk@Ai i :@@W@3.module_binding@@@@k@.module_binding@@@k@@@k@@k@@k@@Q@Aj;?j;r@@X@3/module_coercion@ @@@k@/module_coercion@@@k@@@k@@k@@k@@R@Akswks@@Y@32module_declaration@@@@k@2module_declaration@@@k@@@k@@k@@k@@S@All@@,Z@33module_substitution@5@@@k@3module_substitution@@@k@@@k@@k@@k@@T@Amm .@@B[@3+module_expr@K@@@k@+module_expr@@@k@@@k@@k@@k@@U@An / 3n / `@@X\@3+module_type@a@@@k@ +module_type@@@k@@@k@@k@@k@@V@Ao a eo a @@n]@37module_type_declaration@w@@@l@"7module_type_declaration@@@k@@@k@@k@@k@@W@A+p  ,p  @@^@3,package_type@@@@l@8,package_type@@@l@@@l@@l@@l@@X@AAq  Bq  @@_@3#pat4@@@@l @P/general_pattern!k@k@@@l :@@@l @@l@@l @@l@@Y9@A_r  `r  F@@`@3)row_fieldR@@@@l@l)row_field@@@lQ@@@l@@l @@l @@ZO@Aus G Kvs G t@@a@3,object_fieldh@@@@l@,object_field@@@lg@@@l@@l@@l@@[e@At u yt u @@b@30open_declaration~@@@@l@0open_declaration@@@l}@@@l@@l@@l@@\{@Au  u  @@c@30open_description@@@@l@0open_description@@@l@@@l@@l@@l@@]@Av  v  @@d@3)signature@@@@l$@)signature@@@l#@@@l"@@l!@@l @@^@Aw ! %w ! N@@&e@3.signature_item@/@@@l)@.signature_item@@@l(@@@l'@@l&@@l%@@_@Ax O Sx O @@@@d@@Af} Q Ug} Q @@k@3.type_extensionY@@@@lJ@s.type_extension@@@lIX@@@lH@@lG@@lF@@eV@A|~  }~  @@l@3.type_exceptiono@@@@lO@.type_exception@@@lNn@@@lM@@lL@@lK@@fl@A    @@m@3)type_kind@@@@lT@)type_kind@@@lS@@@lR@@lQ@@lP@@g@A@  @  =@@n@3-value_binding@ @@@lY@-value_binding@@@lX@@@lW@@lV@@lU@@h@AA > BA > s@@o@3.value_bindings@ @@@la@@(rec_flag@@@l^@-value_binding@@@l`@@@l_@@l]@@@l\@@l[@@lZ@@i@AB t xB t @@=p@31value_description@F@@@lf@1value_description@@@le@@@ld@@lc@@lb@@j@AC  C  @@Sq@3/with_constraint@\@@@lk@/with_constraint@@@lj@@@li@@lh@@lg@@k@AD  D 4@@ir@30item_declaration@r@@@lp@0item_declaration@@@lo@@@ln@@lm@@ll@@l@A&E59'E5p@@s@@A*g+g@@U@:@@@@@@m@6@@@m@@@m@@m@@mH@@ఐ$iter ?BFBu ?BFBy@f@@U@@ఐz#exp ?BFBz@b@@a@@a@@b@@@A ;A{A@@3@d@@@A@S@m5@A@@@ఠ(iterator4 ABB ABB@OA@@@@@oS@m63      @@@@@@O@@@@mh@P@@@mgN@@@mf@@me@@mdS@m^@J@@@@mt@K@@@msI@@@mr@@mq@@mpS@mj@E@@@@m@F@@@mD@@@m~@@m}@@m|S@mv@@@ @@@mS@m@A@@m@@@m?@@@mS@m@@m@@mS@m@:@ @@@m@;@@@m9@@@m@@m@@mS@m@5@1@@@m@6@@@m4@@@m@@m@@mS@m@0@B@@@m@1@@@m/@@@m@@m@@mS@m@+@S@@@m@,@@@m*@@@m@@m@@mS@m@&@d@@@m@'@@@m%@@@m@@m@@mS@m@!@u@@@m@"@@@m @@@m@@m@@mS@m@@@@@m@@@@m@@@m@@m@@mS@m@@@@@m@@@@m@@@m@@m@@mS@m@@@@@m@@@@m@@@m@@m@@mS@m@ @@@@n @@@@n  @@@n@@n@@nS@n@Z$expr ABB ABB@ఐݠ)expr_iter ABB ABB@ @@@@@@mV@@@@mUF@@@mT@@mS@@mR@$@@@@n@%@@@n#@@@n@@n@@nS@n@@@@@n(@ @@@n'@@@n&@@n%@@n$S@n@@ @@@n4@@@@n3@@@n2@@n1@@n0S@n*@@@@@n@@@@@n?@@@n>@@n=@@n@@@nX@ @@@nW@@@nV@@nU@@nTS@nN@@O@@@nd@@@@nc@@@nb@@na@@n`S@nZ@@`@@@np@@@@no@@@nn@@nm@@nlS@nf@@q@@@n|@@@@n{@@@nz@@ny@@nxS@nr@@@@@n@@@@n@@@n@@n@@nS@n~@@@@@nS@n@@@n@@@n@@@nS@n@@n@@nS@n@@@@@n@@@@n@@@n@@n@@nS@n@@@@@n@@@@n@@@n@@n@@nS@n@ߠ@@@@n@@@@n@@@n@@n@@nS@n@ڠ@@@@n@@@@n@@@n@@n@@nS@n@ՠ@@@@n@@@@n@@@n@@n@@nS@n@Р@ @@@n@@@@n@@@n@@n@@nS@n@ˠ@ @@@n@@@@n@@@n@@n@@nS@n@Ơ@ "@@@o@@@@o@@@o@@n@@nS@n@@ 3@@@o@@@@o @@@o @@o @@o S@o@@ D@@@o@@@@o@@@o@@o@@oS@o@@ U@@@o,@@@@@o)@@@@o+@@@o*@@o(@@@o'@@o&@@o%S@o@@ s@@@o8@@@@o7@@@o6@@o5@@o4S@o.@@ @@@oD@@@@oC@@@oB@@oA@@o@S@o:@@ @@@oP@@@@oO@@@oN@@oM@@oLS@oF@@ @@@o\@@@@o[@@@oZ@@oY@@oXS@oR@@ @@@on@@@@@ok@@@@om@@@ol@@oj@@@oi@@oh@@ogS@o^@@ @@@oz@@@@oy@@@ox@@ow@@ovS@op@@ @@@o@@@@o@@@o@@o@@oS@o|@@ @@@o@@@@o@@@o@@o@@oS@o@@డ .0default_iterator-Tast_iteratorS ABBT ABB@ W ABBX ABB@@@@ @@@oS@oS@m]T@c ABBd ABB@@\W@A@f ABB@@ ఐo(iteratort BBBu BBB@n@o@p@@ 5@@@o@o3xwwxxxxx@p~ @@@$expr BBB BBB@հ@@@ C@@@o@ @@@o@@@o@@o@@o@@ఐ(iterator BBB BBB@)@@ _@@@oT@oT@o*@@ఐ #exp BBB BBB@ Ұ@@ 7@@A@@@@@oS@o=@డ+ CBB CBB@@@@Ӡ #R@o@@@o@@oP@@ఐ #ids @  @@@@@oS@oS@oc@@ @@d@n @@e@} @@@ u !@@ @ 9ADAF #@@3@ @@@  %@@ @ / &A@ PP@o -@A@ *@ * )@ @@ఠ8check_ambiguous_bindings5 EBB EBC@ PA@@@sE@@@r@@@rS@r@@@rP@o@@@rP@o@@oP@o3        @ h  }@ ~@ @@@ Рdl(Warnings " FCC # FCC&@@ 3 !   ! ! ! ! !@@@@@A3 " ! ! " " " " "@ @@ * FCC@@ @3 ' & & ' ' ' ' '@@@@ఠ%warn06 7 GC*C0 8 GC*C5@ JQA@@dx@@@oR@o3 ; : : ; ; ; ; ;@@@@ภ>Ambiguous_var_in_pattern_guard G GC*C8 H GC*CV@;>Ambiguous_var_in_pattern_guarddU@$listKHl@@@ d@@@ c@Ae[n@Adj-/dj-^@@@dG@ภ b GC*CW c GC*CY@@@@@@@o@@@oR@o.@@( @@d@@@o2@A@ s GC*C,@@࣠@%cases7A  HC]Cc  HC]Ch@ RA@@3 ~ } } ~ ~ ~ ~ ~@]RK@L@M@@@@@@డr)is_active  IClCs  IClC|@dӰ@@@d@@@od@@@o@@o3        @(@@ @@@@ఐt%warn0  IClC}  IClC@(@@d@@@oS@oS@o@@# @@*@@@oS@o@@ఠ*check_case8  JCC  JCC@ SA@@@af@@@p@@@pS@p@@@pS@o@O#@@pS@o@@@oS@oS@o@@oS@o@@oS@o3        @P@@@࣠@"ns:A  JCC  JCC@ TA@@13        @a>  JCC  [FF@@@@@  @@$case;A  JCC  JCC@ !UA@@23        @!H@@@@@@@@ఐ$case  JCC ! JCC@C@@@@D3        @@@@ঠ%c_lhs 2 KCC 3 KCC@tఠ!p< : KCC ; KCC@ MVA@@\@@@o3 = < < = = = = =@@@@'c_guard I KCC J KCC@fĠ$None Q KCC R KCC@ԓ@@@@ml@@@o@@@o@@A \ KCC ] KCC@@~X@o@@@@@ภN e KCC f KCC@=ภL m KCC ADఐ  LCD  LCD@ XA@@@@@p@@@@@@@@p @@@p@@A  LCC  LCD@@@@@@@@ఠ#all?  MDD(  MDD+@ YA@@0@@@p9X@p!3        @LE@F@G-&@'@(@@@డ#Set%inter%Ident  ND.D<  ND.DA@   ND.DB  ND.DE@@  ND.DF  ND.DK@ @ @@@0@@@p'@0@@@p&0@@@p%@@p$@@p#0@@ఐ1,pattern_vars 5 ND.DM 6 ND.DY@/@@@ZS@pS@pD@@@pC1@@@pB@@pAK@@ఐ!p N ND.DZ O ND.D[@T@@@@@pX\@@ V ND.DL W ND.D\@@11@@@p;@pfZ@pRf@@ఐ ֠.all_rhs_idents k ND.D^ l ND.Dl@X@@@ @@@pn1H@@@pm@@pl}@@ఐ!g  ND.Dm  ND.Dn@@@ @@@p}Z@pZ@p~@@  ND.D]  ND.Do@@1f@@@p:@pZ@p|@@ @@@A@  MDD$ @@ డ #not  ODsD  ODsD@@@@@@@p@@@p@@p3        @@@@@@@డ#Set(is_empty%Ident  ODsD  ODsD@   ODsD  ODsD@@  ODsD  ODsD@ @@1@@@T$boolE@@@T@@T@1c@,b@@@@1@@@p @@@p@@p9@@ఐ#all  ODsD  ODsD@C@@1@@@pZ@pZ@pM@@  ODsD  ODsD@@@@@p@pZ@pW@@c @@{@@@pY@p]@ఐ23pattern_stable_vars  PDD  PDD@k@@@͠G@@@p@@@p@@@p@1&@@@p@@@p@@p@@p@@ఐB"ns 9 PDD : PDD@'@@o@@ఐ!p F PDD G PDD@L@@ @@@p@@7@@@@@p@Ġ#All [ QDD \ QDD@@@@@@@@p3 \ [ [ \ \ \ \ \@@@@@@@@p@@@ภ j QDD k QDD@@@@>@@@p@Ġ$Vars z RDE { RDE @[ఠ&stable@  RDE   RDE@ ZA@@@@@p@@@@@>@@@p@@A@@@p@@@@ఠ)ambiguousA  SEE+  SEE4@ [A@@2v@@@q[@p3        @' @!@"@@@డ#Set$diff%Ident  SEE7  SEE<@   SEE=  SEE@@@  SEEA  SEEE@ @@2@@@Tx@2@@@Tw2@@@Tv@@Tu@@Tt@2W@-L@@@@2@@@q@2@@@q2@@@q@@p@@p=@@ఐ#all  SEEF  SEEI@<@@2@@@q\@q\@qQ@@ఐ|&stable  SEEJ  SEEP@[@@2@@@q\@q"\@q!e@@R @@if@A@  SEE' @@డ #not  TETEi  TETEl@@@@@@@q&@@@q%@@q$3        @@@@@@@డ#Set(is_empty%Ident 9 TETEn : TETEs@  = TETEt > TETEw@@ B TETEx C TETE@ @s @@@3@@@q1s@@@q0@@q/,@@ఐ)ambiguous X TETE Y TETE@6@@34@@@q8\@q>\@q=@@@ c TETEm d TETE@@\@@@q-@q?\@q7J@@V @@@@@q@[@q,P@@ఠ#ppsB | UEE } UEE@ \A@@I@@@qt@@@qs[@qA3        @h@@@డ $List#map  VEE  VEE@   VEE  VEE@@v@@@@f@@@qk]@qT(@@@qj]@qR@@qU@ؠ@@@qS@@@qQ@@qP@@qO0@@డ$name%Ident  VEE  VEE@   VEE  VEE@@@@@@,P@@@+@@+@kRRkRg@@I@@@@@@@qh]@@@qg@@qf[@@L@@@E@@@q`D@@@q_@@q^f@@డ#Set(elements%Ident VEE VEE@  VEE  VEE@@  VEE VEE@ @@3@@@T$listK3@@@T~@@@T}@@T|@3@.N@@@@3@@@q{3@@@qz@@@qy@@qx@@ఐ)ambiguous8 VEE9 VEE@@@4@@@q]@q]@q@@? @@m3@@@q\@qv@@@qu\@q]@q@@M@@@A@R UEE@@@ఠ$warnC] WFF^ WFF@p]A@@i@@@q[@q3a``aaaaa@E@@@@@ภ>Ambiguous_var_in_pattern_guardo WFF!p WFF?@(ఐ#ppsy WFF@z WFFC@@@41@@@q@@@q[@q[@q!@@@@i@@@q%@A@ WFF@@డZ-prerr_warning(Location XFGF[ XFGFc@  XFGFd XFGFq@@i@@@Z@@@q@i@@@qi~@@@q@@q@@q3@JXQ@R@S@@@@ఐ !p XFGFr XFGFs@İ@@  @@@q@'pat_loc XFGFt XFGF{@@@@@@q[@q[@q$@@ఐ$warn XFGF| XFGF@.@@i@@@q[@q[@q8@@N @@@@@q@q[@q@@d@@@ TETE YFF@@ i@@ TETEf@@ k@@@R@@@A ODsD ZFF@@@@@qX@q@@ ODsD@@@ఐ"ns [FF@@@<@ @@=@u@@@@@A  JCC @@!3@@@@ A@FS@r@A@@డ &ignore ]FF ]FF@sް@@@L@@@r@@@r@@@rR@rt"@@@r@@r3*))*****@pi@j@k@@@@డ $List)fold_leftB ]FFC ]FF@ F ]FFG ]FF@@ @@@@/S@r@N@@r@@r@@U@@@r @@r@@r@@r+@@ఐ*check_cased ]FFe ]FF@5@@@@@@r@@@r@@@r@ @@@r@@@r@@r@@rN@@ภ ]FF ]FF@@@@iS@r[@@ఐ%cases ]FF ]FF@@@h@@ ]FF ]FF@@Lk@@@@S@rn@@@@@ IClCp@@@ HC]C_ @@P@r!@2 @@e@ FCC@@@A@ EBB@@@@  A@ ) @  ,@ _@@:@Z@ I@w@@@t@@LR@@ԋ@Ԉ@@Ԃ@@Z|@@R@Ҁ@ҔҎB@|@?_@ώ.@T@Pƪ@@@6@@@@2@b@A@B^@@ @8@qx@y"u^@us@sr@sr@r o@p'e@f c@d@^@[jd@@[bV@WR@S+PL@P]P@P;/@/$.@..@((@X@@{@@@*ވ@޷x@A@vpA@@GИ@в@͋@Ͷ{@N0@Vʯ@t@Ɏ-@S@@?@đ@b@Àl@@@@5@@@@^\@&@@@jh@><@@u}s@tp@pAp @nn@ml[@l^C@^h^3@]Z@ZZ@S"N<@NAr@A@@A9O@96K@6k5@@55A@5 (@((A@(("@##A@#N!@! x@  h@@@@@@@3@@@@P(Parmatchf@@e@@A2d@@A c@@N b@@9a@@tH`@@uı_@@pԱ^@@\ Z@@vHY@@ı"X@@%W@@(V@@7+U@@ӂ.T@@ꋱ1S@@~4R@@7Q@A2:P@@=O@@K@N@@CM@@ 0FL@@ZII@@̱LD@A`8dA@A`^d@@AeM@ H************************************************************************A@@A@L@ H BMMBM@ H OCaml CC@ H DD3@ H Xavier Leroy, projet Cristal, INRIA Rocquencourt  E44E4@ H FF@ H Copyright 1996 Institut National de Recherche en Informatique et GG@ H en Automatique. H Hg@ H %Ihh&Ih@ H All rights reserved. This file is distributed under the terms of +J,J@ H the GNU Lesser General Public License version 2.1, with the 1K2KN@ H special exception on linking described in the file LICENSE. 7LOO8LO@ H =M>M@ H************************************************************************CNDN5@ 6 Detection of partial matches and unused match cases. IP77JP7q@ #***********************************OjPj@ # Utilities for building patterns UkVk@ #***********************************[l\l@1*****************ab@1 Coherence check g@h@@1*****************mAnA@ A For some of the operations we do in this module, we would like (because it simplifies matters) to assume that patterns appearing on a given column in a pattern matrix are /coherent/ (think "of the same type"). Unfortunately that is not always true. Consider the following (well-typed) example: {[ type _ t = S : string t | U : unit t let f (type a) (t1 : a t) (t2 : a t) (a : a) = match t1, t2, a with | U, _, () -> () | _, S, "" -> () ]} Clearly the 3rd column contains incoherent patterns. On the example above, most of the algorithms will explore the pattern matrix as illustrated by the following tree: {v S -------> | "" | U | S, "" | __/ | () | --------> | _, () | \ not S | U, _, () | __/ -------> | () | | _, S, "" | \ ---------> | S, "" | ----------> | "" | not U S v} where following an edge labelled by a pattern P means "assuming the value I am matching on is filtered by [P] on the column I am currently looking at, then the following submatrix is still reachable". Notice that at any point of that tree, if the first column of a matrix is incoherent, then the branch leading to it can only be taken if the scrutinee is ill-typed. In the example above the only case where we have a matrix with an incoherent first column is when we consider [t1, t2, a] to be [U, S, ...]. However such a value would be ill-typed, so we can never actually get there. Checking the first column at each step of the recursion and making the conscious decision of "aborting" the algorithm whenever the first column becomes incoherent, allows us to retain the initial assumption in later stages of the algorithms. --- N.B. two patterns can be considered coherent even though they might not be of the same type. That's in part because we only care about the "head" of patterns and leave checking coherence of subpatterns for the next steps of the algorithm: ('a', 'b') and (1, ()) will be deemed coherent because they are both a tuples of arity 2 (we'll notice at a later stage the incoherence of 'a' and 1). But also because it can be hard/costly to determine exactly whether two patterns are of the same type or not (eg. in the example above with _ and S, but see also the module [Coherence_illustration] in testsuite/tests/basic-more/robustmatch.ml). For the moment our weak, loosely-syntactic, coherence check seems to be enough and we leave it to each user to consider (and document!) what happens when an "incoherence" is not detected by this check. sCt@ Given the first column of a simplified matrix, this function first looks for a "discriminating" pattern on that column (i.e. a non-omega one) and then check that every other head pattern in the column is coherent with that one. yz@ 4 only omegas on the column: the column is coherent. 5@5*********************@5 Compatibility check @5*********************   9@  Patterns p and q compatible means: there exists value V that matches both, However.... The case of extension types is dubious, as constructor rebind permits that different constructors are the same (and are thus compatible). Compilation must take this into account, consider: type t = .. type t += A|B type t += C=A let f x y = match x,y with | true,A -> '1' | _,C -> '2' | false,A -> '3' | _,_ -> '_' As C is bound to A the value of f false A is '2' (and not '3' as it would be in the absence of rebinding). Not considering rebinding, patterns "false,A" and "_,C" are incompatible and the compiler can swap the second and third clause, resulting in the (more efficiently compiled) matching match x,y with | true,A -> '1' | false,A -> '3' | _,C -> '2' | _,_ -> '_' This is not correct: when C is bound to A, "f false A" returns '2' (not '3') However, diagnostics do not take constructor rebinding into account. Notice, that due to module abstraction constructor rebinding is hidden. module X : sig type t = .. type t += A|B end = struct type t = .. type t += A type t += B=A end open X let f x = match x with | A -> '1' | B -> '2' | _ -> '_' The second clause above will NOT (and cannot) be flagged as useless. Finally, there are two compatibility functions: compat p q ---> 'syntactic compatibility, used for diagnostics. may_compat p q ---> a safe approximation of possible compat, for compilation ;;!O!Q@ D Invariant: fields are already sorted by Typecore.type_label_a_list ###$@: same label on both sides %%%%@; Variables match any value -'/'/-'/'N@6 Structural induction 0''0''@ / Constructors, with special case for extension 7((7((@5 More standard stuff :)0)0:)0)I@ ^ Due to (potential) rebinding, two extension constructors of the same arity type may equal g.?.?h.{.@/ Empty pattern j..j..@ &**************************************l..l..@ & Utilities for retrieving type paths m..m./@ &**************************************n//n//H@ $ May need a clean copy, cf. PR#4745 p/J/Jp/J/r@:**************************{00{00@: Utilities for matching |00|00@:**************************}00}00@4 Check top matching 0001@ " extract record fields as a whole 2223@ A Build argument list when p2 >= p1, where p1 is a simple pattern 4444@ \ Consider a pattern matrix whose first column has been simplified to contain only _ or a head constructor | p1, r1... | p2, r2... | p3, r3... | ... We build a normalized /discriminating/ pattern from a pattern [q] by folding over the first column of the matrix, "refining" [q] as we go: - when we encounter a row starting with [Tuple] or [Lazy] then we can stop and return that head, as we cannot refine any further. Indeed, these constructors are alone in their signature, so they will subsume whatever other head we might find, as well as the head we're threading along. - when we find a [Record] then it is a bit more involved: it is also alone in its signature, however it might only be matching a subset of the record fields. We use these fields to refine our accumulator and keep going as another row might match on different fields. - rows starting with a wildcard do not bring any information, so we ignore them and keep going - if we encounter anything else (i.e. any other constructor), then we just stop and return our accumulator.  7f7f ;;@ 1 N.B. we could make this case "simpler" by refining the record case using [all_record_args]. In which case we wouldn't need to fold over the first column for records. However it makes the witness we generate for the exhaustivity warning less pretty. <<=>@ short-circuiting: clearly if we have anything other than [Record] or [Any] to start with, we're not going to be able refine at all. So there's no point going over the matrix. ??@@J@ X In case a matching value is found, set actual arguments of the matching pattern. @~@~@@@ ! case any is used in matching.ml !+FF"+FG@  Given a matrix of non-empty rows p1 :: r1... p2 :: r2... p3 :: r3... Simplify the first column [p1 p2 p3] by splitting all or-patterns. The result is a list of pairs ((pattern head, arguments), rest of row) For example, x :: r1 (Some _) as y :: r2 (None as x) as y :: r3 (Some x | (None as x)) :: r4 becomes (( _ , [ ] ), r1) (( Some, [_] ), r2) (( None, [ ] ), r3) (( Some, [x] ), r4) (( None, [ ] ), r4) '/GhGh(CILIO@9 the rows are non-empty! -NJK.NJK+@ ` Builds the specialized matrix of [pss] according to the discriminating pattern head [d]. See section 3.1 of http://moscova.inria.fr/~maranget/papers/warn/warn.pdf NOTES: - we are polymorphic on the type of matrices we work on, in particular a row might not simply be a [pattern list]. That's why we have the [extend_row] parameter. 3TKK4\MM@ The "default" and "specialized" matrices of a given matrix. See section 3.1 of http://moscova.inria.fr/~maranget/papers/warn/warn.pdf . 9fNINI:hNN@  Consider a pattern matrix whose first column has been simplified to contain only _ or a head constructor | p1, r1... | p2, r2... | p3, r3... | ... We split this matrix into a list of /specialized/ sub-matrices, one for each head constructor appearing in the first column. For each row whose first column starts with a head constructor, remove this head column, prepend one column for each argument of the constructor, and add the resulting row in the sub-matrix corresponding to this head constructor. Rows whose left column is omega (the Any pattern _) may match any head constructor, so they are added to all sub-matrices. In the case where all the rows in the matrix have an omega on their first column, then there is only one /specialized/ sub-matrix, formed of all these omega rows. This matrix is also called the /default/ matrix. See the documentation of [build_specialized_submatrix] for an explanation of the [extend_row] parameter. ?nOFOF@S<S>@  insert a row of head [p] and rest [r] into the right group Note: with this implementation, the order of the groups is the order of their first row in the source order. This is a nice property to get exhaustivity counter-examples in source order. ESSFU U @ if no group matched this row, it has a head constructor that was never seen before; add a new sub-matrix for this head KUIUOLUU@ , insert a row of head omega into all groups QVVRVV@ note that calling insert_omega here would be wrong as some groups may not have been formed yet, if the first row with this head pattern comes after in the list WX XXXX@  [discr] comes from [discr_pat], and in this case subsumes any of the patterns we could find on the first column of [rows]. So it is better to use it for our initial environment than any of the normalized pattern we might obtain from the first column. ]Z;ZC^[([d@ _ groups are accumulated in reverse order; we restore the order of rows in the source code c[[d[\'@; Variant related functions i\\j\]@ = mark constructor lines for failure when they are incomplete o^^p^^C@ ; fixed=false means that this tag is not explicitly matched u``#v``b@> this unification cannot fail {aa|aa@ Check whether the first column of env makes up a complete signature or not. We work on the discriminating pattern heads of each sub-matrix: they are not omega/Any. b{b{c(c*@ 8 closing=true, we are considering the variant as closed eeee@ 2 m=true, do not discard matched tags, rather warn fyffyf@ Y Written as a non-fragile matching, PR#7451 originated from a fragile matching below. %hBhB&hh@ 0 build a pattern from a constructor description 7jj7jj@ - build an or-pattern from a constructor list DlYlYDlYl@ . Only explode when all constructors are GADTs OnJnROnJn@ K Sends back a pattern that complements the given constructors used_constrs sswswssws@ / Split constructors to put constant ones first |uu|uu7@; Auxiliary for build_other wwwx @ X Builds a pattern that is incompatible with all patterns in the first column of env yyyhyj@ / let c = {c with cstr_name = "*extension*"} in zXzbzXz@) PR#7330 zXzzXz@- | Reither _ @ / This one is called after erasing pattern info @  Core function : Is the last row of pattern matrix pss + qs satisfiable ? That is : Does there exists at least one value vector, es such that : 1- for all ps in pss ps # es (ps and es are not compatible) 2- qs <= es (es matches qs) --- In two places in the following function, we check the coherence of the first column of (pss + qs). If it is incoherent, then we exit early saying that (pss + qs) is not satisfiable (which is equivalent to saying "oh, we shouldn't have considered that branch, no good result came come from here"). But what happens if we have a coherent but ill-typed column? - we might end up returning [false], which is equivalent to noticing the incompatibility: clearly this is fine. - if we end up returning [true] then we're saying that [qs] is useful while it is not. This is sad but not the end of the world, we're just allowing dead code to survive. ;**Q@  While [satisfiable] only checks whether the last row of [pss + qs] is satisfiable, this function returns the (possibly empty) list of vectors [es] which verify: 1- for all ps in pss, ps # es (ps and es are not compatible) 2- qs <= es (es matches qs) This is done to enable GADT handling For considerations regarding the coherence check, see the comment on [satisfiable] above. zXs@ / first column of pss is made of variables only +@ P activate this code for checking non-gadt constructors @ (****************************************___@ ( Look for a row that matches some value @ (****************************************@ i Useful for seeing if the example of non-matched value can indeed be matched (by a guarded clause) RT@ b [pss] will (or won't) match [q0 :: qs] regardless of the coherence of its first column.   0@ n let print_pat pat = let rec string_of_pat pat = match pat.pat_desc with Tpat_var _ -> "v" | Tpat_any -> "_" | Tpat_alias (p, x) -> Printf.sprintf "(%s) as ?" (string_of_pat p) | Tpat_constant n -> "0" | Tpat_construct (_, lid, _) -> Printf.sprintf "%s" (String.concat "." (Longident.flatten lid.txt)) | Tpat_lazy p -> Printf.sprintf "(lazy %s)" (string_of_pat p) | Tpat_or (p1,p2,_) -> Printf.sprintf "(%s | %s)" (string_of_pat p1) (string_of_pat p2) | Tpat_tuple list -> Printf.sprintf "(%s)" (String.concat "," (List.map string_of_pat list)) | Tpat_variant (_, _, _) -> "variant" | Tpat_record (_, _) -> "record" | Tpat_array (Mutable, _) -> "array" | Tpat_array (Immutable, _) -> "immutable array" in Printf.fprintf stderr "PAT[%s]\n%!" (string_of_pat pat) @ Now another satisfiable function that additionally supplies an example of a matching value. This function should be called for exhaustiveness check only. @  Shortcut: in the single-row case p :: ps we know that all counter-examples are either of the form counter-example(p) :: omegas or p :: counter-examples(ps) This is very interesting in the case where p contains or-patterns, as the non-shortcut path below would do a separate search for each constructor of the or-pattern, which can lead to an exponential blowup on examples such as | (A|B), (A|B), (A|B), (A|B) -> foo Note that this shortcut also applies to examples such as | A, A, A, A -> foo | (A|B), (A|B), (A|B), (A|B) -> bar thanks to the [get_mins] preprocessing step which will drop the first row (subsumed by the second). Code with this shape does occur naturally when people want to avoid fragile pattern matches: if A and B are the only two constructors, this is the best way to make a non-fragile distinction between "all As" and "at least one B". &cg@ h note: calling [exhaust] recursively of p would result in an infinite loop in the case n=1 #-5?$.q@ { We're considering an ill-typed branch, we won't actually be able to produce a well typed value taking that branch. )6*79@  Assuming the first column is ill-typed but considered coherent, we might end up producing an ill-typed witness of non-exhaustivity corresponding to the current branch. If [exhaust] has been called by [do_check_partial], then the witnesses produced get typechecked and the ill-typed ones are discarded. If [exhaust] has been called by [do_check_fragile], then it is possible we might fail to warn the user that the matching is fragile. See for example testsuite/tests/warnings/w04_failure.ml. /:UY0CC}@ / first column of pss is made of variables only 5G!6GT@ Q cannot occur, since constructors don't make a full signature ;`<a 3@  Lazily compute witnesses for all constructor submatrices (Some constr_mat) then the wildcard/default submatrix (None). Note that the call to [try_omega ()] is delayed to after all constructor matrices have been traversed. AfBi@ ( Another exhaustiveness check, enforcing variant typing. Note that it does not check exact exhaustiveness, but whether a matching could be made exhaustive by closing all variant types. When this is true of all other columns, the current column is left open (even if it means that the whole matching is not exhaustive as a result). When this is false for the matrix minus the current column, and the current column is composed of variant tags, we close the variant (even if it doesn't help in making the matching exhaustive). Gx((HRT@  The order below matters : we want [pressure_variants] to be called on all the specialized submatrices because we might close some variant in any of them regardless of whether [ok] is true for [pss] or not MŢŴNƓ@ " Yet another satisfiable function SˀˀTˀ˦@ This time every_satisfiable pss qs checks the utility of every expansion of qs. Expansion means expansion of or-patterns inside qs Y˨˨Z79@0 Useful pattern _Iq`I̅@1 Useless pattern ĕ̮f̆@ " Mixed, with list of useless ones kl@ this row type enable column processing inside the matrix - left -> elements not to be processed, - right -> elements to be processed qrͩͫ@ G let pretty_row {ors=ors ; no_ors=no_ors; active=active} = pretty_line ors ; prerr_string " *" ; pretty_line no_ors ; prerr_string " *" ; pretty_line active let pretty_rows rs = prerr_endline "begin matrix" ; List.iter (fun r -> pretty_row r ; prerr_endline "") rs ; prerr_endline "end matrix" w  xSU@/ Initial build }WW~Wj@ 4 Useful to detect and expand or pats inside as pats @ - Standard or-args for left-to-right matching "@< Just remove current column ѶѶѶ@ # Current column has been processed ___҆@9 the rows are non-empty! 2K2h@9 Back to normal matrices :@; Standard union on answers ՑՑՑհ@? propose or pats for expansion %RR%Ru@3 idem for matrices 0ee0e|@ Core function The idea is to first look for or patterns (recursive case), then check or-patterns argument usefulness (terminal case) ?BTV@ * qs is now partitioned, check usefulness Fٝ١Fٝ@0 no or-patterns HH @ n or-patterns -> 2n expansions MyڅMyک@ , forget about ``all-variable'' columns now __ @ / otherwise this is direct food for satisfiable bWabWݔ@ 8 syntactically generated or-pats should not be expanded i\fi\ޢ@; this is a real or-pattern ll@/ Ah Jacques... n^ߋn^ߞ@> standard case, filter matrix r r-@ S The handling of incoherent matrices is kept in line with [satisfiable] uv@ ; This function ``every_both'' performs the usefulness check of or-pat q1|q2. The trick is to call every_satisfied twice with current active columns restricted to q1 and q2, That way, - others orpats in qs.ors will not get expanded. - all matching work performed on qs.no_ors is not performed again. nn@ ? le_pat p q means, forall V, V matches q implies V matches p 111t@ . In all other cases, enumeration is performed $$$V@ [select_rec] removes the elements that are followed by a smaller element. An element that is preceded by a smaller element may stay in the list. We thus do two passes on the list, which is returned reversed the first time.  @ v lub p q is a pattern that matches all values matched by p and q may raise Empty, when p and q are not compatible LN@ Thanks god, lub is commutative BmB@<****************************#ss #s@< Exported variant closing %$&$@<****************************+%,%@< Apply pressure to variants 1'2'@;***************************7=8=2@; Utilities for diagnostics =>33>>3R@;***************************C?SSD?Sr@ L Build up a working pattern matrix by forgetting about guarded patterns IAttJD@ X Build up a working pattern matrix by keeping only the patterns which are guarded OKmmPN@6**********************UWVW@6 Exhaustiveness check [X\X@6**********************aYbY@ ; Whether the counter-example contains an extension pattern g[h["@ ( This can occur - For empty matches generated by ocamlp4 (no warning) - when all patterns have guards (then, casel <> []) (specific warning) Then match MUST be considered non-exhaustive, otherwise compilation of PM is broken. menl$0@/***************swwtw@/ Fragile check yz@/***************@ % Collect all data types in a pattern @ Actual fragile check 1. Collect data types in the patterns of the match. 2. One exhaustivity check per datatype, considering that the type is extended.     @>******************************    @> Exported unused clause check     @>******************************    ;@ p prev was accumulated in reverse order; restore source order to get ordered counter-examples }@ : First look for redundant or partially redundant patterns ss@ # Do not warn for unused [pat -> .]   ?@ + Do not refine if either: - we already know the clause is unused - the clause under consideration is not a refutation clause and either: + there are no other lines + we do not care whether the types prevent this clause to be reached. If the clause under consideration *is* a refutation clause then we do need to check more carefully whether it can be refuted or not. @> Then look for empty patterns @ #Format.eprintf "%a@." pretty_val u;@?*******************************"tt"t@? Exported irrefutability tests ##@?*******************************$$@?*******************************NNB@? Exported exhaustiveness check OCCOCf@?*******************************PggPg@ P Fragile check is performed when required and on exhaustive matches only. RU@ #***********************************b  b 4@ # Ambiguous variable in or-patterns c55c5\@ #***********************************d]]d]@ b Specification: ambiguous variables in or-patterns. The semantics of or-patterns in OCaml is specified with a left-to-right bias: a value [v] matches the pattern [p | q] if it matches [p] or [q], but if it matches both, the environment captured by the match is the environment captured by [p], never the one captured by [q]. While this property is generally well-understood, one specific case where users expect a different semantics is when a pattern is followed by a when-guard: [| p when g -> e]. Consider for example: | ((Const x, _) | (_, Const x)) when is_neutral x -> branch The semantics is clear: match the scrutinee against the pattern, if it matches, test the guard, and if the guard passes, take the branch. However, consider the input [(Const a, Const b)], where [a] fails the test [is_neutral f], while [b] passes the test [is_neutral b]. With the left-to-right semantics, the clause above is *not* taken by its input: matching [(Const a, Const b)] against the or-pattern succeeds in the left branch, it returns the environment [x -> a], and then the guard [is_neutral a] is tested and fails, the branch is not taken. Most users, however, intuitively expect that any pair that has one side passing the test will take the branch. They assume it is equivalent to the following: | (Const x, _) when is_neutral x -> branch | (_, Const x) when is_neutral x -> branch while it is not. The code below is dedicated to finding these confusing cases: the cases where a guard uses "ambiguous" variables, that are bound to different parts of the scrutinees by different sides of a or-pattern. In other words, it finds the cases where the specified left-to-right semantics is not equivalent to a non-deterministic semantics (any branch can be taken) relatively to a specific guard. f&&@  Row for ambiguous variable search, row is the traditional pattern row, varsets contain a list of head variable sets (varsets) A given varset contains all the variables that appeared at the head of a pattern in the row at some point during traversal: they would all be bound to the same value at matching time. On the contrary, two variables of different varsets appeared at different places in the pattern and may be bound to distinct sub-parts of the matched value. All rows of a (sub)matrix have rows of the same length, but also varsets of the same length. Varsets are populated when simplifying the first column -- the variables of the head pattern are collected in a new varset. For example, { row = x :: r1; varsets = s1 } { row = (Some _) as y :: r2; varsets = s2 } { row = (None as x) as y :: r3; varsets = s3 } { row = (Some x | (None as x)) :: r4 with varsets = s4 } becomes (_, { row = r1; varsets = {x} :: s1 }) (Some _, { row = r2; varsets = {y} :: s2 }) (None, { row = r3; varsets = {x, y} :: s3 }) (Some x, { row = r4; varsets = {} :: s4 }) (None, { row = r4; varsets = {x} :: s4 })  '5'5 ++@  To accurately report ambiguous variables, one must consider that previous clauses have already matched some values. Consider for example: | (Foo x, Foo y) -> ... | ((Foo x, _) | (_, Foo x)) when bar x -> ... The second line taken in isolation uses an unstable variable, but the discriminating values, of the shape [(Foo v1, Foo v2)], would all be filtered by the line above. To track this information, the matrices we analyze contain both *positive* rows, that describe the rows currently being analyzed (of type Varsets.row, so that their varsets are tracked) and *negative rows*, that describe the cases already matched against. The values matched by a signed matrix are the values matched by some of the positive rows but none of the negative rows. In particular, a variable is stable if, for any value not matched by any of the negative rows, the environment captured by any of the matching positive rows is identical. ..22@9 Compute stable bindings 5555#@ D if at least one empty row is negative, the matrix matches no value 6667&@ c All rows have the same number of columns; if the first row is empty, they all are. !7`7l"77@ 7 The stable variables are those stable at any position ' 9E9O( 9E9@ optimization: quit early if there are no positive rows. This may happen often when the initial matrix has many negative cases and few positive cases (a small guarded clause after a long list of clauses) - ::. ;L;~@ If the column is ill-typed but deemed coherent, we might spuriously warn about some variables being unstable. As sad as that might be, the warning can be silenced by splitting the or-pattern... 3 <<'4 <=@ 5 A stable variable must be stable in each submatrix. 9 (?(?2: (?(?k@ h All identifier paths that appear in an expression that occurs as a clause right hand side or guard. ? 3@@@ 5AA@ 0 Use default iterator methods for rest of match.E >B BF >B BE@@*./ocamlopt)-nostdlib"-I(./stdlib"-I1otherlibs/dynlink"-g0-strict-sequence*-principal(-absname"-w8+a-4-9-40-41-42-44-45-48+-warn-error"+a*-bin-annot/-strict-formats"-I&typing"-I%utils"-I'parsing"-I&typing"-I(bytecomp"-I,file_formats"-I&lambda"-I*middle_end"-I2middle_end/closure"-I2middle_end/flambda"-I=middle_end/flambda/base_types"-I'asmcomp"-I&driver"-I(toplevel"-I%tools"-I'runtime"-I1otherlibs/dynlink"-I-otherlibs/str"-I4otherlibs/systhreads"-I.otherlibs/unix"-I8otherlibs/runtime_events2-function-sections"-c F/home/ci/builds/workspace/main/flambda/false/label/ocaml-ubuntu-latest ?>3210/.-,+*)('&%$#"! @@0*렸7-eqx/3@@@0>n{T8cئ%Btype0kWfDN8FN5Build_path_prefix_map0z HkGs8CamlinternalFormatBasics0%FU(Q/Tu0CamlinternalLazy0&͂7 Pˆ*Cmi_format0_j~GB0 Ր0k#GW30I'Ue`wq]Ѡ#Env0J=,Wu*Errortrace0>"+$? QNL(1R*Format_doc0]mWϓ:Mݠ%Ident0ki8' x%+Š,Identifiable0~ܽǞ+)Load_path0I@18 ~(Location0a7cK_H%9)Longident0s `7mɕc0Z1X=_c+Outcometree0euWS~d栠 07~Oo)Parsetree0Uҩ=p>*%"e$Path0(|r>8۠dwx0\0/:tN*$UРb0QA#ln)Primitive0²~$xzT෠j0*=\v2쏠%Shape0mA;HXߠ&Stdlib0-i8Q"L{v;-Stdlib__Array0?3$( Q&.Stdlib__Buffer08APF< t.,Stdlib__Char0ym7~txv.Stdlib__Digest0l!LHgErζ .Stdlib__Domain0Bj|5s)ڠ.Stdlib__Either0Vy`u~c à.Stdlib__Format0ɢb tLir/Stdlib__Hashtbl0ѱN][/!-Stdlib__Int320 u&-Stdlib__Int640l-J ~m-۠,Stdlib__Lazy0* -S$.)"0D.Stdlib__Lexing0e<.V ,Stdlib__List0eXԶ4r+Stdlib__Map0hؤ5O8% By1Stdlib__Nativeint0Q:38Yh$ce𬠠.Stdlib__Option0J'%>Ty!s.Stdlib__Result06 ]/J+Stdlib__Seq0nwzG&amg+Stdlib__Set0kb'G|PIF(.Stdlib__String0su0]Bǎώ"Z .Type_immediacy0A^abOhՠ0ebDשZ0R.z78m)Unit_info0ڀh%(/Value_rec_types0`4xiVC(Warnings0mJɒkgr@]ˑ]@<F@ylz@@0d0S~@==C^h@@@ªfpb0b:gg@Nڑܸ@@  @\‘\@@oΑoذXX@@@@@@0:@@_Y_cbb@NN@@ȗȡ@@RR##*4@{{&@@@is@QQ@@'t'~@p\pf}}@đΰvπؑ@@E@<$<.ںڐ@BL@@2"ܑ7A@@N ɑ @@@@:D@  I@OO@77@=#=-.@Xb@̕ڔ@@NNñϰϺ@QQTLTVIS@@@ӑ@@"Mi@0:@@@l٘lx@@AK@XY@Бڰ̡̫"@abF@zz@@r|K@C@Wa@YFYPBLC@@b-b7 ʰAK@u)[ϑ@@##eeSSAK@"%"//͑/װ]}@6@@>>JJ'@+ɑ+ӰZd@@***4[[@[7[A%||&@@BL@@yCyM@.8@I/I9Q[ku@%@@@@װg@cc@@@!! ӑ@ȊI@@PR@ D@@@@@@(@@@@AB@@@AF@@@i@f@@@ABx@Bu@@@Wx@Wu@@@ABd@d@@@CD<@9@@@<@9@@@J@J@@@ABJ@J@@@@@@@AC@@@@@@@@ @@@@ABDEAo@^CX@@@VCP@@@ABoCk@@@C@@.@+@@@Ay@y@@@~@~@@@}E@}B@@@ABCõ@ò@@@Y@Y@@@A,@)@@@ @@@@ABDF@@