diff --git a/compiler/catala_utils/string.ml b/compiler/catala_utils/string.ml index 3a2301d4..02ea9f29 100644 --- a/compiler/catala_utils/string.ml +++ b/compiler/catala_utils/string.ml @@ -48,6 +48,12 @@ let to_camel_case (s : string) : string = last_was_underscore := is_underscore); !out +let remove_prefix ~prefix s = + if starts_with ~prefix s then + let plen = length prefix in + sub s plen (length s - plen) + else s + let format_t = Format.pp_print_string module Set = Set.Make (Stdlib.String) diff --git a/compiler/catala_utils/string.mli b/compiler/catala_utils/string.mli index fbf40cff..de785f37 100644 --- a/compiler/catala_utils/string.mli +++ b/compiler/catala_utils/string.mli @@ -39,4 +39,10 @@ val to_camel_case : string -> string (** Converts snake_case into CamlCase after removing Remove all diacritics on Latin letters. *) +val remove_prefix : prefix:string -> string -> string +(** [remove_prefix ~prefix str] returns + + - if [str] starts with [prefix], a string [s] such that [prefix ^ s = str] + - otherwise, [str] unchanged *) + val format_t : Format.formatter -> string -> unit diff --git a/compiler/dcalc/from_scopelang.ml b/compiler/dcalc/from_scopelang.ml index e6a34095..b28eddba 100644 --- a/compiler/dcalc/from_scopelang.ml +++ b/compiler/dcalc/from_scopelang.ml @@ -148,7 +148,7 @@ let tag_with_log_entry (l : log_entry) (markings : Uid.MarkedString.info list) : 'm Ast.expr boxed = let m = mark_tany (Marked.get_mark e) (Expr.pos e) in - Expr.eapp (Expr.eop (Unop (Log (l, markings))) m) [e] m + Expr.eapp (Expr.eop (Log (l, markings)) [TAny, Expr.pos e] m) [e] m (* In a list of exceptions, it is normally an error if more than a single one apply at the same time. This relaxes this constraint slightly, allowing a @@ -417,7 +417,7 @@ let rec translate_expr (ctx : 'm ctx) (e : 'm Scopelang.Ast.expr) : Expr.eifthenelse (translate_expr ctx cond) (translate_expr ctx etrue) (translate_expr ctx efalse) m - | EOp op -> Expr.eop (Expr.translate_op op) m + | EOp { op; tys } -> Expr.eop (Operator.translate op) tys m | EErrorOnEmpty e' -> Expr.eerroronempty (translate_expr ctx e') m | EArray es -> Expr.earray (List.map (translate_expr ctx) es) m diff --git a/compiler/dcalc/interpreter.ml b/compiler/dcalc/interpreter.ml index d2e42f00..c67104d1 100644 --- a/compiler/dcalc/interpreter.ml +++ b/compiler/dcalc/interpreter.ml @@ -29,278 +29,114 @@ let log_indent = ref 0 (** {1 Evaluation} *) -let rec evaluate_operator - (ctx : decl_ctx) - (op : dcalc operator) - (pos : Pos.t) - (args : 'm Ast.expr list) : 'm Ast.naked_expr = - (* Try to apply [div] and if a [Division_by_zero] exceptions is catched, use - [op] to raise multispanned errors. *) - let apply_div_or_raise_err (div : unit -> 'm Ast.naked_expr) : - 'm Ast.naked_expr = - try div () - with Division_by_zero -> +let print_log ctx entry infos pos e = + if !Cli.trace_flag then + match entry with + | VarDef _ -> + (* TODO: this usage of Format is broken, Formatting requires that all is + formatted in one pass, without going through intermediate "%s" *) + Cli.log_format "%*s%a %a: %s" (!log_indent * 2) "" Print.log_entry entry + Print.uid_list infos + (match Marked.unmark e with + | EAbs _ -> Cli.with_style [ANSITerminal.green] "" + | _ -> + let expr_str = + Format.asprintf "%a" (Expr.format ctx ~debug:false) e + in + let expr_str = + Re.Pcre.substitute ~rex:(Re.Pcre.regexp "\n\\s*") + ~subst:(fun _ -> " ") + expr_str + in + Cli.with_style [ANSITerminal.green] "%s" expr_str) + | PosRecordIfTrueBool -> ( + match pos <> Pos.no_pos, Marked.unmark e with + | true, ELit (LBool true) -> + Cli.log_format "%*s%a%s:\n%s" (!log_indent * 2) "" Print.log_entry entry + (Cli.with_style [ANSITerminal.green] "Definition applied") + (Cli.add_prefix_to_each_line (Pos.retrieve_loc_text pos) (fun _ -> + Format.asprintf "%*s" (!log_indent * 2) "")) + | _ -> ()) + | BeginCall -> + Cli.log_format "%*s%a %a" (!log_indent * 2) "" Print.log_entry entry + Print.uid_list infos; + log_indent := !log_indent + 1 + | EndCall -> + log_indent := !log_indent - 1; + Cli.log_format "%*s%a %a" (!log_indent * 2) "" Print.log_entry entry + Print.uid_list infos + +(* Todo: this should be handled early when resolving overloads *) +let rec handle_eq ctx pos e1 e2 = + let open Runtime.Oper in + match e1, e2 with + | ELit LUnit, ELit LUnit -> true + | ELit (LBool b1), ELit (LBool b2) -> not (o_xor b1 b2) + | ELit (LInt x1), ELit (LInt x2) -> o_eq_int_int x1 x2 + | ELit (LRat x1), ELit (LRat x2) -> o_eq_rat_rat x1 x2 + | ELit (LMoney x1), ELit (LMoney x2) -> o_eq_mon_mon x1 x2 + | ELit (LDuration x1), ELit (LDuration x2) -> o_eq_dur_dur x1 x2 + | ELit (LDate x1), ELit (LDate x2) -> o_eq_dat_dat x1 x2 + | EArray es1, EArray es2 -> ( + try + List.for_all2 + (fun e1 e2 -> + match evaluate_operator ctx Eq pos [e1; e2] with + | ELit (LBool b) -> b + | _ -> assert false + (* should not happen *)) + es1 es2 + with Invalid_argument _ -> false) + | EStruct { fields = es1; name = s1 }, EStruct { fields = es2; name = s2 } -> + StructName.equal s1 s2 + && StructField.Map.equal + (fun e1 e2 -> + match evaluate_operator ctx Eq pos [e1; e2] with + | ELit (LBool b) -> b + | _ -> assert false + (* should not happen *)) + es1 es2 + | ( EInj { e = e1; cons = i1; name = en1 }, + EInj { e = e2; cons = i2; name = en2 } ) -> ( + try + EnumName.equal en1 en2 + && EnumConstructor.equal i1 i2 + && + match evaluate_operator ctx Eq pos [e1; e2] with + | ELit (LBool b) -> b + | _ -> assert false + (* should not happen *) + with Invalid_argument _ -> false) + | _, _ -> false (* comparing anything else return false *) + +and evaluate_operator : + type k. + decl_ctx -> + (dcalc, k) operator -> + Pos.t -> + 'm Ast.expr list -> + 'm Ast.naked_expr = + fun ctx op pos args -> + let protect f x y = + let get_binop_args_pos = function + | (arg0 :: arg1 :: _ : 'm Ast.expr list) -> + [None, Expr.pos arg0; None, Expr.pos arg1] + | _ -> assert false + in + try f x y with + | Division_by_zero -> Errors.raise_multispanned_error [ Some "The division operator:", pos; Some "The null denominator:", Expr.pos (List.nth args 1); ] "division by zero at runtime" - in - let get_binop_args_pos = function - | (arg0 :: arg1 :: _ : 'm Ast.expr list) -> - [None, Expr.pos arg0; None, Expr.pos arg1] - | _ -> assert false - in - (* Try to apply [cmp] and if a [UncomparableDurations] exceptions is catched, - use [args] to raise multispanned errors. *) - let apply_cmp_or_raise_err - (cmp : unit -> 'm Ast.naked_expr) - (args : 'm Ast.expr list) : 'm Ast.naked_expr = - try cmp () - with Runtime.UncomparableDurations -> + | Runtime.UncomparableDurations -> Errors.raise_multispanned_error (get_binop_args_pos args) "Cannot compare together durations that cannot be converted to a \ precise number of days" in - match op, List.map Marked.unmark args with - | Ternop Fold, [_f; _init; EArray es] -> - Marked.unmark - (List.fold_left - (fun acc e' -> - evaluate_expr ctx - (Marked.same_mark_as - (EApp { f = List.nth args 0; args = [acc; e'] }) - e')) - (List.nth args 1) es) - | Binop And, [ELit (LBool b1); ELit (LBool b2)] -> ELit (LBool (b1 && b2)) - | Binop Or, [ELit (LBool b1); ELit (LBool b2)] -> ELit (LBool (b1 || b2)) - | Binop Xor, [ELit (LBool b1); ELit (LBool b2)] -> ELit (LBool (b1 <> b2)) - | Binop (Add KInt), [ELit (LInt i1); ELit (LInt i2)] -> - ELit (LInt Runtime.(i1 +! i2)) - | Binop (Sub KInt), [ELit (LInt i1); ELit (LInt i2)] -> - ELit (LInt Runtime.(i1 -! i2)) - | Binop (Mult KInt), [ELit (LInt i1); ELit (LInt i2)] -> - ELit (LInt Runtime.(i1 *! i2)) - | Binop (Div KInt), [ELit (LInt i1); ELit (LInt i2)] -> - apply_div_or_raise_err (fun _ -> ELit (LInt Runtime.(i1 /! i2))) - | Binop (Add KRat), [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LRat Runtime.(i1 +& i2)) - | Binop (Sub KRat), [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LRat Runtime.(i1 -& i2)) - | Binop (Mult KRat), [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LRat Runtime.(i1 *& i2)) - | Binop (Div KRat), [ELit (LRat i1); ELit (LRat i2)] -> - apply_div_or_raise_err (fun _ -> ELit (LRat Runtime.(i1 /& i2))) - | Binop (Add KMoney), [ELit (LMoney m1); ELit (LMoney m2)] -> - ELit (LMoney Runtime.(m1 +$ m2)) - | Binop (Sub KMoney), [ELit (LMoney m1); ELit (LMoney m2)] -> - ELit (LMoney Runtime.(m1 -$ m2)) - | Binop (Mult KMoney), [ELit (LMoney m1); ELit (LRat m2)] -> - ELit (LMoney Runtime.(m1 *$ m2)) - | Binop (Div KMoney), [ELit (LMoney m1); ELit (LMoney m2)] -> - apply_div_or_raise_err (fun _ -> ELit (LRat Runtime.(m1 /$ m2))) - | Binop (Add KDuration), [ELit (LDuration d1); ELit (LDuration d2)] -> - ELit (LDuration Runtime.(d1 +^ d2)) - | Binop (Sub KDuration), [ELit (LDuration d1); ELit (LDuration d2)] -> - ELit (LDuration Runtime.(d1 -^ d2)) - | Binop (Sub KDate), [ELit (LDate d1); ELit (LDate d2)] -> - ELit (LDuration Runtime.(d1 -@ d2)) - | Binop (Add KDate), [ELit (LDate d1); ELit (LDuration d2)] -> - ELit (LDate Runtime.(d1 +@ d2)) - | Binop (Mult KDuration), [ELit (LDuration d1); ELit (LInt i1)] -> - ELit (LDuration Runtime.(d1 *^ i1)) - | Binop (Lt KInt), [ELit (LInt i1); ELit (LInt i2)] -> - ELit (LBool Runtime.(i1 - ELit (LBool Runtime.(i1 <=! i2)) - | Binop (Gt KInt), [ELit (LInt i1); ELit (LInt i2)] -> - ELit (LBool Runtime.(i1 >! i2)) - | Binop (Gte KInt), [ELit (LInt i1); ELit (LInt i2)] -> - ELit (LBool Runtime.(i1 >=! i2)) - | Binop (Lt KRat), [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LBool Runtime.(i1 <& i2)) - | Binop (Lte KRat), [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LBool Runtime.(i1 <=& i2)) - | Binop (Gt KRat), [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LBool Runtime.(i1 >& i2)) - | Binop (Gte KRat), [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LBool Runtime.(i1 >=& i2)) - | Binop (Lt KMoney), [ELit (LMoney m1); ELit (LMoney m2)] -> - ELit (LBool Runtime.(m1 <$ m2)) - | Binop (Lte KMoney), [ELit (LMoney m1); ELit (LMoney m2)] -> - ELit (LBool Runtime.(m1 <=$ m2)) - | Binop (Gt KMoney), [ELit (LMoney m1); ELit (LMoney m2)] -> - ELit (LBool Runtime.(m1 >$ m2)) - | Binop (Gte KMoney), [ELit (LMoney m1); ELit (LMoney m2)] -> - ELit (LBool Runtime.(m1 >=$ m2)) - | Binop (Lt KDuration), [ELit (LDuration d1); ELit (LDuration d2)] -> - apply_cmp_or_raise_err (fun _ -> ELit (LBool Runtime.(d1 <^ d2))) args - | Binop (Lte KDuration), [ELit (LDuration d1); ELit (LDuration d2)] -> - apply_cmp_or_raise_err (fun _ -> ELit (LBool Runtime.(d1 <=^ d2))) args - | Binop (Gt KDuration), [ELit (LDuration d1); ELit (LDuration d2)] -> - apply_cmp_or_raise_err (fun _ -> ELit (LBool Runtime.(d1 >^ d2))) args - | Binop (Gte KDuration), [ELit (LDuration d1); ELit (LDuration d2)] -> - apply_cmp_or_raise_err (fun _ -> ELit (LBool Runtime.(d1 >=^ d2))) args - | Binop (Lt KDate), [ELit (LDate d1); ELit (LDate d2)] -> - ELit (LBool Runtime.(d1 <@ d2)) - | Binop (Lte KDate), [ELit (LDate d1); ELit (LDate d2)] -> - ELit (LBool Runtime.(d1 <=@ d2)) - | Binop (Gt KDate), [ELit (LDate d1); ELit (LDate d2)] -> - ELit (LBool Runtime.(d1 >@ d2)) - | Binop (Gte KDate), [ELit (LDate d1); ELit (LDate d2)] -> - ELit (LBool Runtime.(d1 >=@ d2)) - | Binop Eq, [ELit LUnit; ELit LUnit] -> ELit (LBool true) - | Binop Eq, [ELit (LDuration d1); ELit (LDuration d2)] -> - ELit (LBool Runtime.(d1 =^ d2)) - | Binop Eq, [ELit (LDate d1); ELit (LDate d2)] -> - ELit (LBool Runtime.(d1 =@ d2)) - | Binop Eq, [ELit (LMoney m1); ELit (LMoney m2)] -> - ELit (LBool Runtime.(m1 =$ m2)) - | Binop Eq, [ELit (LRat i1); ELit (LRat i2)] -> - ELit (LBool Runtime.(i1 =& i2)) - | Binop Eq, [ELit (LInt i1); ELit (LInt i2)] -> - ELit (LBool Runtime.(i1 =! i2)) - | Binop Eq, [ELit (LBool b1); ELit (LBool b2)] -> ELit (LBool (b1 = b2)) - | Binop Eq, [EArray es1; EArray es2] -> - ELit - (LBool - (try - List.for_all2 - (fun e1 e2 -> - match evaluate_operator ctx op pos [e1; e2] with - | ELit (LBool b) -> b - | _ -> assert false - (* should not happen *)) - es1 es2 - with Invalid_argument _ -> false)) - | ( Binop Eq, - [EStruct { fields = es1; name = s1 }; EStruct { fields = es2; name = s2 }] - ) -> - ELit - (LBool - (StructName.equal s1 s2 - && StructField.Map.equal - (fun e1 e2 -> - match evaluate_operator ctx op pos [e1; e2] with - | ELit (LBool b) -> b - | _ -> assert false - (* should not happen *)) - es1 es2)) - | ( Binop Eq, - [ - EInj { e = e1; cons = i1; name = en1 }; - EInj { e = e2; cons = i2; name = en2 }; - ] ) -> - ELit - (LBool - (try - EnumName.equal en1 en2 - && EnumConstructor.equal i1 i2 - && - match evaluate_operator ctx op pos [e1; e2] with - | ELit (LBool b) -> b - | _ -> assert false - (* should not happen *) - with Invalid_argument _ -> false)) - | Binop Eq, [_; _] -> - ELit (LBool false) (* comparing anything else return false *) - | Binop Neq, [_; _] -> ( - match evaluate_operator ctx (Binop Eq) pos args with - | ELit (LBool b) -> ELit (LBool (not b)) - | _ -> assert false (*should not happen *)) - | Binop Concat, [EArray es1; EArray es2] -> EArray (es1 @ es2) - | Binop Map, [_; EArray es] -> - EArray - (List.map - (fun e' -> - evaluate_expr ctx - (Marked.same_mark_as (EApp { f = List.hd args; args = [e'] }) e')) - es) - | Binop Filter, [_; EArray es] -> - EArray - (List.filter - (fun e' -> - match - evaluate_expr ctx - (Marked.same_mark_as (EApp { f = List.hd args; args = [e'] }) e') - with - | ELit (LBool b), _ -> b - | _ -> - Errors.raise_spanned_error - (Expr.pos (List.nth args 0)) - "This predicate evaluated to something else than a boolean \ - (should not happen if the term was well-typed)") - es) - | Binop _, ([ELit LEmptyError; _] | [_; ELit LEmptyError]) -> ELit LEmptyError - | Unop (Minus KInt), [ELit (LInt i)] -> - ELit (LInt Runtime.(integer_of_int 0 -! i)) - | Unop (Minus KRat), [ELit (LRat i)] -> - ELit (LRat Runtime.(decimal_of_string "0" -& i)) - | Unop (Minus KMoney), [ELit (LMoney i)] -> - ELit (LMoney Runtime.(money_of_units_int 0 -$ i)) - | Unop (Minus KDuration), [ELit (LDuration i)] -> - ELit (LDuration Runtime.(~-^i)) - | Unop Not, [ELit (LBool b)] -> ELit (LBool (not b)) - | Unop Length, [EArray es] -> - ELit (LInt (Runtime.integer_of_int (List.length es))) - | Unop GetDay, [ELit (LDate d)] -> - ELit (LInt Runtime.(day_of_month_of_date d)) - | Unop GetMonth, [ELit (LDate d)] -> - ELit (LInt Runtime.(month_number_of_date d)) - | Unop GetYear, [ELit (LDate d)] -> ELit (LInt Runtime.(year_of_date d)) - | Unop FirstDayOfMonth, [ELit (LDate d)] -> - ELit (LDate Runtime.(first_day_of_month d)) - | Unop LastDayOfMonth, [ELit (LDate d)] -> - ELit (LDate Runtime.(first_day_of_month d)) - | Unop IntToRat, [ELit (LInt i)] -> ELit (LRat Runtime.(decimal_of_integer i)) - | Unop MoneyToRat, [ELit (LMoney i)] -> - ELit (LRat Runtime.(decimal_of_money i)) - | Unop RatToMoney, [ELit (LRat i)] -> - ELit (LMoney Runtime.(money_of_decimal i)) - | Unop RoundMoney, [ELit (LMoney m)] -> ELit (LMoney Runtime.(money_round m)) - | Unop RoundDecimal, [ELit (LRat m)] -> ELit (LRat Runtime.(decimal_round m)) - | Unop (Log (entry, infos)), [e'] -> - if !Cli.trace_flag then ( - match entry with - | VarDef _ -> - (* TODO: this usage of Format is broken, Formatting requires that all is - formatted in one pass, without going through intermediate "%s" *) - Cli.log_format "%*s%a %a: %s" (!log_indent * 2) "" Print.log_entry entry - Print.uid_list infos - (match e' with - | EAbs _ -> Cli.with_style [ANSITerminal.green] "" - | _ -> - let expr_str = - Format.asprintf "%a" (Expr.format ctx ~debug:false) (List.hd args) - in - let expr_str = - Re.Pcre.substitute ~rex:(Re.Pcre.regexp "\n\\s*") - ~subst:(fun _ -> " ") - expr_str - in - Cli.with_style [ANSITerminal.green] "%s" expr_str) - | PosRecordIfTrueBool -> ( - match pos <> Pos.no_pos, e' with - | true, ELit (LBool true) -> - Cli.log_format "%*s%a%s:\n%s" (!log_indent * 2) "" Print.log_entry - entry - (Cli.with_style [ANSITerminal.green] "Definition applied") - (Cli.add_prefix_to_each_line (Pos.retrieve_loc_text pos) (fun _ -> - Format.asprintf "%*s" (!log_indent * 2) "")) - | _ -> ()) - | BeginCall -> - Cli.log_format "%*s%a %a" (!log_indent * 2) "" Print.log_entry entry - Print.uid_list infos; - log_indent := !log_indent + 1 - | EndCall -> - log_indent := !log_indent - 1; - Cli.log_format "%*s%a %a" (!log_indent * 2) "" Print.log_entry entry - Print.uid_list infos) - else (); - e' - | Unop _, [ELit LEmptyError] -> ELit LEmptyError - | _ -> + let err () = Errors.raise_multispanned_error ([Some "Operator:", pos] @ List.mapi @@ -313,6 +149,153 @@ let rec evaluate_operator args) "Operator applied to the wrong arguments\n\ (should not happen if the term was well-typed)" + in + let open Runtime.Oper in + if List.exists (function ELit LEmptyError, _ -> true | _ -> false) args then + ELit LEmptyError + else + Operator.kind_dispatch op + ~polymorphic:(fun op -> + match op, args with + | Length, [(EArray es, _)] -> + ELit (LInt (Runtime.integer_of_int (List.length es))) + | Log (entry, infos), [e'] -> + print_log ctx entry infos pos e'; + Marked.unmark e' + | Eq, [(e1, _); (e2, _)] -> ELit (LBool (handle_eq ctx pos e1 e2)) + | Map, [f; (EArray es, _)] -> + EArray + (List.map + (fun e' -> + evaluate_expr ctx + (Marked.same_mark_as (EApp { f; args = [e'] }) e')) + es) + | Concat, [(EArray es1, _); (EArray es2, _)] -> EArray (es1 @ es2) + | Filter, [f; (EArray es, _)] -> + EArray + (List.filter + (fun e' -> + match + evaluate_expr ctx + (Marked.same_mark_as (EApp { f; args = [e'] }) e') + with + | ELit (LBool b), _ -> b + | _ -> + Errors.raise_spanned_error + (Expr.pos (List.nth args 0)) + "This predicate evaluated to something else than a \ + boolean (should not happen if the term was well-typed)") + es) + | Fold, [f; init; (EArray es, _)] -> + Marked.unmark + (List.fold_left + (fun acc e' -> + evaluate_expr ctx + (Marked.same_mark_as (EApp { f; args = [acc; e'] }) e')) + init es) + | (Length | Log _ | Eq | Map | Concat | Filter | Fold), _ -> err ()) + ~monomorphic:(fun op -> + let rlit = + match op, List.map (function ELit l, _ -> l | _ -> err ()) args with + | Not, [LBool b] -> LBool (o_not b) + | IntToRat, [LInt i] -> LRat (o_intToRat i) + | MoneyToRat, [LMoney i] -> LRat (o_moneyToRat i) + | RatToMoney, [LRat i] -> LMoney (o_ratToMoney i) + | GetDay, [LDate d] -> LInt (o_getDay d) + | GetMonth, [LDate d] -> LInt (o_getMonth d) + | GetYear, [LDate d] -> LInt (o_getYear d) + | FirstDayOfMonth, [LDate d] -> LDate (o_firstDayOfMonth d) + | LastDayOfMonth, [LDate d] -> LDate (o_lastDayOfMonth d) + | RoundMoney, [LMoney m] -> LMoney (o_roundMoney m) + | RoundDecimal, [LRat m] -> LRat (o_roundDecimal m) + | And, [LBool b1; LBool b2] -> LBool (o_and b1 b2) + | Or, [LBool b1; LBool b2] -> LBool (o_or b1 b2) + | Xor, [LBool b1; LBool b2] -> LBool (o_xor b1 b2) + | ( ( Not | IntToRat | MoneyToRat | RatToMoney | GetDay | GetMonth + | GetYear | FirstDayOfMonth | LastDayOfMonth | RoundMoney + | RoundDecimal | And | Or | Xor ), + _ ) -> + err () + in + ELit rlit) + ~resolved:(fun op -> + let rlit = + match op, List.map (function ELit l, _ -> l | _ -> err ()) args with + | Minus_int, [LInt x] -> LInt (o_minus_int x) + | Minus_rat, [LRat x] -> LRat (o_minus_rat x) + | Minus_mon, [LMoney x] -> LMoney (o_minus_mon x) + | Minus_dur, [LDuration x] -> LDuration (o_minus_dur x) + | Add_int_int, [LInt x; LInt y] -> LInt (o_add_int_int x y) + | Add_rat_rat, [LRat x; LRat y] -> LRat (o_add_rat_rat x y) + | Add_mon_mon, [LMoney x; LMoney y] -> LMoney (o_add_mon_mon x y) + | Add_dat_dur, [LDate x; LDuration y] -> LDate (o_add_dat_dur x y) + | Add_dur_dur, [LDuration x; LDuration y] -> + LDuration (o_add_dur_dur x y) + | Sub_int_int, [LInt x; LInt y] -> LInt (o_sub_int_int x y) + | Sub_rat_rat, [LRat x; LRat y] -> LRat (o_sub_rat_rat x y) + | Sub_mon_mon, [LMoney x; LMoney y] -> LMoney (o_sub_mon_mon x y) + | Sub_dat_dat, [LDate x; LDate y] -> LDuration (o_sub_dat_dat x y) + | Sub_dat_dur, [LDate x; LDuration y] -> LDate (o_sub_dat_dur x y) + | Sub_dur_dur, [LDuration x; LDuration y] -> + LDuration (o_sub_dur_dur x y) + | Mult_int_int, [LInt x; LInt y] -> LInt (o_mult_int_int x y) + | Mult_rat_rat, [LRat x; LRat y] -> LRat (o_mult_rat_rat x y) + | Mult_mon_rat, [LMoney x; LRat y] -> LMoney (o_mult_mon_rat x y) + | Mult_dur_int, [LDuration x; LInt y] -> + LDuration (o_mult_dur_int x y) + | Div_int_int, [LInt x; LInt y] -> LInt (protect o_div_int_int x y) + | Div_rat_rat, [LRat x; LRat y] -> LRat (protect o_div_rat_rat x y) + | Div_mon_mon, [LMoney x; LMoney y] -> + LRat (protect o_div_mon_mon x y) + | Div_mon_rat, [LMoney x; LRat y] -> + LMoney (protect o_div_mon_rat x y) + | Lt_int_int, [LInt x; LInt y] -> LBool (o_lt_int_int x y) + | Lt_rat_rat, [LRat x; LRat y] -> LBool (o_lt_rat_rat x y) + | Lt_mon_mon, [LMoney x; LMoney y] -> LBool (o_lt_mon_mon x y) + | Lt_dat_dat, [LDate x; LDate y] -> LBool (o_lt_dat_dat x y) + | Lt_dur_dur, [LDuration x; LDuration y] -> + LBool (protect o_lt_dur_dur x y) + | Lte_int_int, [LInt x; LInt y] -> LBool (o_lte_int_int x y) + | Lte_rat_rat, [LRat x; LRat y] -> LBool (o_lte_rat_rat x y) + | Lte_mon_mon, [LMoney x; LMoney y] -> LBool (o_lte_mon_mon x y) + | Lte_dat_dat, [LDate x; LDate y] -> LBool (o_lte_dat_dat x y) + | Lte_dur_dur, [LDuration x; LDuration y] -> + LBool (protect o_lte_dur_dur x y) + | Gt_int_int, [LInt x; LInt y] -> LBool (o_gt_int_int x y) + | Gt_rat_rat, [LRat x; LRat y] -> LBool (o_gt_rat_rat x y) + | Gt_mon_mon, [LMoney x; LMoney y] -> LBool (o_gt_mon_mon x y) + | Gt_dat_dat, [LDate x; LDate y] -> LBool (o_gt_dat_dat x y) + | Gt_dur_dur, [LDuration x; LDuration y] -> + LBool (protect o_gt_dur_dur x y) + | Gte_int_int, [LInt x; LInt y] -> LBool (o_gte_int_int x y) + | Gte_rat_rat, [LRat x; LRat y] -> LBool (o_gte_rat_rat x y) + | Gte_mon_mon, [LMoney x; LMoney y] -> LBool (o_gte_mon_mon x y) + | Gte_dat_dat, [LDate x; LDate y] -> LBool (o_gte_dat_dat x y) + | Gte_dur_dur, [LDuration x; LDuration y] -> + LBool (protect o_gte_dur_dur x y) + | Eq_int_int, [LInt x; LInt y] -> LBool (o_eq_int_int x y) + | Eq_rat_rat, [LRat x; LRat y] -> LBool (o_eq_rat_rat x y) + | Eq_mon_mon, [LMoney x; LMoney y] -> LBool (o_eq_mon_mon x y) + | Eq_dat_dat, [LDate x; LDate y] -> LBool (o_eq_dat_dat x y) + | Eq_dur_dur, [LDuration x; LDuration y] -> + LBool (protect o_eq_dur_dur x y) + | ( ( Minus_int | Minus_rat | Minus_mon | Minus_dur | Add_int_int + | Add_rat_rat | Add_mon_mon | Add_dat_dur | Add_dur_dur + | Sub_int_int | Sub_rat_rat | Sub_mon_mon | Sub_dat_dat + | Sub_dat_dur | Sub_dur_dur | Mult_int_int | Mult_rat_rat + | Mult_mon_rat | Mult_dur_int | Div_int_int | Div_rat_rat + | Div_mon_mon | Div_mon_rat | Lt_int_int | Lt_rat_rat | Lt_mon_mon + | Lt_dat_dat | Lt_dur_dur | Lte_int_int | Lte_rat_rat + | Lte_mon_mon | Lte_dat_dat | Lte_dur_dur | Gt_int_int + | Gt_rat_rat | Gt_mon_mon | Gt_dat_dat | Gt_dur_dur | Gte_int_int + | Gte_rat_rat | Gte_mon_mon | Gte_dat_dat | Gte_dur_dur + | Eq_int_int | Eq_rat_rat | Eq_mon_mon | Eq_dat_dat | Eq_dur_dur + ), + _ ) -> + err () + in + ELit rlit) + ~overloaded:(fun _ -> assert false) and evaluate_expr (ctx : decl_ctx) (e : 'm Ast.expr) : 'm Ast.expr = match Marked.unmark e with @@ -333,7 +316,7 @@ and evaluate_expr (ctx : decl_ctx) (e : 'm Ast.expr) : 'm Ast.expr = "wrong function call, expected %d arguments, got %d" (Bindlib.mbinder_arity binder) (List.length args) - | EOp op -> + | EOp { op; _ } -> Marked.same_mark_as (evaluate_operator ctx op (Expr.pos e) args) e | ELit LEmptyError -> Marked.same_mark_as (ELit LEmptyError) e | _ -> @@ -449,31 +432,41 @@ and evaluate_expr (ctx : decl_ctx) (e : 'm Ast.expr) : 'm Ast.expr = | EErrorOnEmpty ( EApp { - f = EOp (Binop op), _; + f = EOp { op; _ }, _; args = [((ELit _, _) as e1); ((ELit _, _) as e2)]; }, - _ ) + _ ) -> + Errors.raise_spanned_error (Expr.pos e') "Assertion failed: %a %a %a" + (Expr.format ctx ~debug:false) + e1 Print.operator op + (Expr.format ctx ~debug:false) + e2 | EApp { - f = EOp (Unop (Log _)), _; + f = EOp { op = Log _; _ }, _; args = [ ( EApp { - f = EOp (Binop op), _; + f = EOp { op; _ }, _; args = [((ELit _, _) as e1); ((ELit _, _) as e2)]; }, _ ); ]; - } + } -> + Errors.raise_spanned_error (Expr.pos e') "Assertion failed: %a %a %a" + (Expr.format ctx ~debug:false) + e1 Print.operator op + (Expr.format ctx ~debug:false) + e2 | EApp { - f = EOp (Binop op), _; + f = EOp { op; _ }, _; args = [((ELit _, _) as e1); ((ELit _, _) as e2)]; } -> Errors.raise_spanned_error (Expr.pos e') "Assertion failed: %a %a %a" (Expr.format ctx ~debug:false) - e1 Print.binop op + e1 Print.operator op (Expr.format ctx ~debug:false) e2 | _ -> diff --git a/compiler/dcalc/optimizations.ml b/compiler/dcalc/optimizations.ml index 5b28dff4..f261de52 100644 --- a/compiler/dcalc/optimizations.ml +++ b/compiler/dcalc/optimizations.ml @@ -37,8 +37,12 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | EApp { f = - ( EOp (Unop Not), _ - | ( EApp { f = EOp (Unop (Log _)), _; args = [(EOp (Unop Not), _)] }, + ( EOp { op = Not; _ }, _ + | ( EApp + { + f = EOp { op = Log _; _ }, _; + args = [(EOp { op = Not; _ }, _)]; + }, _ ) ) as op; args = [e1]; } -> ( @@ -50,8 +54,12 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | EApp { f = - ( EOp (Binop Or), _ - | ( EApp { f = EOp (Unop (Log _)), _; args = [(EOp (Binop Or), _)] }, + ( EOp { op = Or; _ }, _ + | ( EApp + { + f = EOp { op = Log _; _ }, _; + args = [(EOp { op = Or; _ }, _)]; + }, _ ) ) as op; args = [e1; e2]; } -> ( @@ -65,8 +73,12 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | EApp { f = - ( EOp (Binop And), _ - | ( EApp { f = EOp (Unop (Log _)), _; args = [(EOp (Binop And), _)] }, + ( EOp { op = And; _ }, _ + | ( EApp + { + f = EOp { op = Log _; _ }, _; + args = [(EOp { op = And; _ }, _)]; + }, _ ) ) as op; args = [e1; e2]; } -> ( @@ -111,15 +123,17 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : | ( [], ( ( ELit (LBool true) | EApp - { f = EOp (Unop (Log _)), _; args = [(ELit (LBool true), _)] } - ), + { + f = EOp { op = Log _; _ }, _; + args = [(ELit (LBool true), _)]; + } ), _ ) ) -> Marked.unmark cons | ( [], ( ( ELit (LBool false) | EApp { - f = EOp (Unop (Log _)), _; + f = EOp { op = Log _; _ }, _; args = [(ELit (LBool false), _)]; } ), _ ) ) -> @@ -139,7 +153,10 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : cond = ( ELit (LBool true), _ | ( EApp - { f = EOp (Unop (Log _)), _; args = [(ELit (LBool true), _)] }, + { + f = EOp { op = Log _; _ }, _; + args = [(ELit (LBool true), _)]; + }, _ ) ); etrue; _; @@ -151,7 +168,7 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : ( ( ELit (LBool false) | EApp { - f = EOp (Unop (Log _)), _; + f = EOp { op = Log _; _ }, _; args = [(ELit (LBool false), _)]; } ), _ ); @@ -166,7 +183,7 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : ( ( ELit (LBool btrue) | EApp { - f = EOp (Unop (Log _)), _; + f = EOp { op = Log _; _ }, _; args = [(ELit (LBool btrue), _)]; } ), _ ); @@ -174,14 +191,18 @@ let rec partial_evaluation (ctx : partial_evaluation_ctx) (e : 'm expr) : ( ( ELit (LBool bfalse) | EApp { - f = EOp (Unop (Log _)), _; + f = EOp { op = Log _; _ }, _; args = [(ELit (LBool bfalse), _)]; } ), _ ); } -> if btrue && not bfalse then Marked.unmark cond else if (not btrue) && bfalse then - EApp { f = EOp (Unop Not), mark; args = [cond] } + EApp + { + f = EOp { op = Not; tys = [TLit TBool, Expr.mark_pos mark] }, mark; + args = [cond]; + } (* note: this last call eliminates the condition & might skip log calls as well *) else (* btrue = bfalse *) ELit (LBool btrue) diff --git a/compiler/desugared/ast.ml b/compiler/desugared/ast.ml index da91ed93..025a5bbd 100644 --- a/compiler/desugared/ast.ml +++ b/compiler/desugared/ast.ml @@ -125,7 +125,7 @@ module Rule = struct Expr.compare c1 c2 | n -> n) | Some (v1, t1), Some (v2, t2) -> ( - match Shared_ast.Expr.compare_typ t1 t2 with + match Type.compare t1 t2 with | 0 -> ( let open Bindlib in let b1 = unbox (bind_var v1 (Expr.Box.lift r1.rule_just)) in diff --git a/compiler/desugared/from_surface.ml b/compiler/desugared/from_surface.ml index 3a94c14d..78efe22a 100644 --- a/compiler/desugared/from_surface.ml +++ b/compiler/desugared/from_surface.ml @@ -16,6 +16,7 @@ the License. *) open Catala_utils +module S = Surface.Ast module SurfacePrint = Surface.Print open Shared_ast module Runtime = Runtime_ocaml.Runtime @@ -27,33 +28,87 @@ module Runtime = Runtime_ocaml.Runtime (** {1 Translating expressions} *) -let translate_op_kind (k : Surface.Ast.op_kind) : desugared op_kind = - match k with - | Surface.Ast.KInt -> KInt - | Surface.Ast.KDec -> KRat - | Surface.Ast.KMoney -> KMoney - | Surface.Ast.KDate -> KDate - | Surface.Ast.KDuration -> KDuration +(* Resolves the operator kinds into the expected operator operand types *) -let translate_binop (op : Surface.Ast.binop) : desugared binop = +let translate_binop : Surface.Ast.binop -> Pos.t -> Ast.expr boxed = + fun op pos -> + let e op tys = + Expr.eop op (List.map (Marked.mark pos) tys) (Untyped { pos }) + in match op with - | And -> And - | Or -> Or - | Xor -> Xor - | Add l -> Add (translate_op_kind l) - | Sub l -> Sub (translate_op_kind l) - | Mult l -> Mult (translate_op_kind l) - | Div l -> Div (translate_op_kind l) - | Lt l -> Lt (translate_op_kind l) - | Lte l -> Lte (translate_op_kind l) - | Gt l -> Gt (translate_op_kind l) - | Gte l -> Gte (translate_op_kind l) - | Eq -> Eq - | Neq -> Neq - | Concat -> Concat + | S.And -> e And [TLit TBool; TLit TBool] + | S.Or -> e Or [TLit TBool; TLit TBool] + | S.Xor -> e Xor [TLit TBool; TLit TBool] + | S.Add k -> + e Add + (match k with + | S.KPoly -> [TAny; TAny] + | S.KInt -> [TLit TInt; TLit TInt] + | S.KDec -> [TLit TRat; TLit TRat] + | S.KMoney -> [TLit TMoney; TLit TMoney] + | S.KDate -> [TLit TDate; TLit TDuration] + | S.KDuration -> [TLit TDuration; TLit TDuration]) + | S.Sub k -> + e Sub + (match k with + | S.KPoly -> [TAny; TAny] + | S.KInt -> [TLit TInt; TLit TInt] + | S.KDec -> [TLit TRat; TLit TRat] + | S.KMoney -> [TLit TMoney; TLit TMoney] + | S.KDate -> [TLit TDate; TLit TDate] + | S.KDuration -> [TLit TDuration; TLit TDuration]) + | S.Mult k -> + e Mult + (match k with + | S.KPoly -> [TAny; TAny] + | S.KInt -> [TLit TInt; TLit TInt] + | S.KDec -> [TLit TRat; TLit TRat] + | S.KMoney -> [TLit TMoney; TLit TRat] + | S.KDate -> Errors.raise_spanned_error pos "Invalid operator" + | S.KDuration -> [TLit TDuration; TLit TInt]) + | S.Div k -> + e Div + (match k with + | S.KPoly -> [TAny; TAny] + | S.KInt -> [TLit TInt; TLit TInt] + | S.KDec -> [TLit TRat; TLit TRat] + | S.KMoney -> [TLit TMoney; TLit TMoney] + | S.KDate -> Errors.raise_spanned_error pos "Invalid operator" + | S.KDuration -> [TLit TDuration; TLit TDuration]) + | S.Lt k | S.Lte k | S.Gt k | S.Gte k -> + e + (match op with + | S.Lt _ -> Lt + | S.Lte _ -> Lte + | S.Gt _ -> Gt + | S.Gte _ -> Gte + | _ -> assert false) + (match k with + | S.KPoly -> [TAny; TAny] + | S.KInt -> [TLit TInt; TLit TInt] + | S.KDec -> [TLit TRat; TLit TRat] + | S.KMoney -> [TLit TMoney; TLit TMoney] + | S.KDate -> [TLit TDate; TLit TDate] + | S.KDuration -> [TLit TDuration; TLit TDuration]) + | S.Eq -> + e Eq [TAny; TAny] + (* This is a truly polymorphic operator, not an overload *) + | S.Neq -> assert false (* desugared already *) + | S.Concat -> e Concat [TArray (TAny, pos); TArray (TAny, pos)] -let translate_unop (op : Surface.Ast.unop) : desugared unop = - match op with Not -> Not | Minus l -> Minus (translate_op_kind l) +let translate_unop (op : Surface.Ast.unop) pos : Ast.expr boxed = + let e op ty = Expr.eop op [Marked.mark pos ty] (Untyped { pos }) in + match op with + | S.Not -> e Not (TLit TBool) + | S.Minus k -> + e Minus + (match k with + | S.KPoly -> TAny + | S.KInt -> TLit TInt + | S.KDec -> TLit TRat + | S.KMoney -> TLit TMoney + | S.KDate -> Errors.raise_spanned_error pos "Invalid operator" + | S.KDuration -> TLit TDuration) let disambiguate_constructor (ctxt : Name_resolution.context) @@ -102,6 +157,21 @@ let disambiguate_constructor Errors.raise_spanned_error (Marked.get_mark enum) "Enum %s has not been defined before" (Marked.unmark enum)) +let int100 = Runtime.integer_of_int 100 +let rat100 = Runtime.decimal_of_integer int100 + +let aggregate_typ pos = function + | None -> TAny + | Some S.Integer -> TLit TInt + | Some S.Decimal -> TLit TRat + | Some S.Money -> TLit TMoney + | Some S.Duration -> TLit TDuration + | Some S.Date -> TLit TDate + | Some pred_typ -> + Errors.raise_spanned_error pos + "It is impossible to compute this aggregation of two values of type %a" + SurfacePrint.format_primitive_typ pred_typ + (** Usage: [translate_expr scope ctxt naked_expr] Translates [expr] into its desugared equivalent. [scope] is used to @@ -148,30 +218,36 @@ let rec translate_expr | IfThenElse (e_if, e_then, e_else) -> Expr.eifthenelse (rec_helper e_if) (rec_helper e_then) (rec_helper e_else) emark + | Binop ((S.Neq, posn), e1, e2) -> + (* Neq is just sugar *) + rec_helper (Unop ((S.Not, posn), (Binop ((S.Eq, posn), e1, e2), posn)), pos) | Binop ((op, pos), e1, e2) -> - let op_term = Expr.eop (Binop (translate_binop op)) (Untyped { pos }) in + let op_term = translate_binop op pos in Expr.eapp op_term [rec_helper e1; rec_helper e2] emark | Unop ((op, pos), e) -> - let op_term = Expr.eop (Unop (translate_unop op)) (Untyped { pos }) in + let op_term = translate_unop op pos in Expr.eapp op_term [rec_helper e] emark | Literal l -> let lit = match l with | LNumber ((Int i, _), None) -> LInt (Runtime.integer_of_string i) | LNumber ((Int i, _), Some (Percent, _)) -> - LRat Runtime.(decimal_of_string i /& decimal_of_string "100") + LRat Runtime.(Oper.o_div_rat_rat (decimal_of_string i) rat100) | LNumber ((Dec (i, f), _), None) -> LRat Runtime.(decimal_of_string (i ^ "." ^ f)) | LNumber ((Dec (i, f), _), Some (Percent, _)) -> LRat - Runtime.(decimal_of_string (i ^ "." ^ f) /& decimal_of_string "100") + Runtime.(Oper.o_div_rat_rat (decimal_of_string (i ^ "." ^ f)) rat100) | LBool b -> LBool b | LMoneyAmount i -> LMoney Runtime.( money_of_cents_integer - ((integer_of_string i.money_amount_units *! integer_of_int 100) - +! integer_of_string i.money_amount_cents)) + (Oper.o_add_int_int + (Oper.o_mult_int_int + (integer_of_string i.money_amount_units) + int100) + (integer_of_string i.money_amount_cents))) | LNumber ((Int i, _), Some (Year, _)) -> LDuration (Runtime.duration_of_numbers (int_of_string i) 0 0) | LNumber ((Int i, _), Some (Month, _)) -> @@ -468,9 +544,10 @@ let rec translate_expr Expr.eapp (Expr.eop (match op' with - | Surface.Ast.Map -> Binop Map - | Surface.Ast.Filter -> Binop Filter + | Surface.Ast.Map -> Map + | Surface.Ast.Filter -> Filter | _ -> assert false (* should not happen *)) + [TAny, pos; TAny, pos] emark) [f_pred; collection] emark | CollectionOp @@ -485,20 +562,8 @@ let rec translate_expr let ctxt, param = Name_resolution.add_def_local_var ctxt (Marked.unmark param') in - let op_kind = - match pred_typ with - | Surface.Ast.Integer -> KInt - | Surface.Ast.Decimal -> KRat - | Surface.Ast.Money -> KMoney - | Surface.Ast.Duration -> KDuration - | Surface.Ast.Date -> KDate - | _ -> - Errors.raise_spanned_error pos - "It is impossible to compute the arg-%s of two values of type %a" - (if max_or_min then "max" else "min") - SurfacePrint.format_primitive_typ pred_typ - in - let cmp_op = if max_or_min then Gt op_kind else Lt op_kind in + let op_ty = aggregate_typ pos pred_typ in + let cmp_op = if max_or_min then Op.Gt else Op.Lt in let f_pred = Expr.make_abs [| param |] (translate_expr scope inside_definition_of ctxt predicate) @@ -512,7 +577,9 @@ let rec translate_expr let fold_body = Expr.eifthenelse (Expr.eapp - (Expr.eop (Binop cmp_op) (Untyped { pos = pos_op' })) + (Expr.eop cmp_op + [op_ty, pos_op'; op_ty, pos_op'] + (Untyped { pos = pos_op' })) [ Expr.eapp f_pred [acc_var_e] emark; Expr.eapp f_pred [item_var_e] emark; @@ -523,7 +590,9 @@ let rec translate_expr let fold_f = Expr.make_abs [| acc_var; item_var |] fold_body [TAny, pos; TAny, pos] pos in - Expr.eapp (Expr.eop (Ternop Fold) emark) [fold_f; init; collection] emark + Expr.eapp + (Expr.eop Fold [TAny, pos_op'; TAny, pos_op'; TAny, pos_op'] emark) + [fold_f; init; collection] emark | CollectionOp (op', param', collection, predicate) -> let ctxt, param = Name_resolution.add_def_local_var ctxt (Marked.unmark param') @@ -561,20 +630,22 @@ let rec translate_expr Expr.make_var acc_var (Untyped { pos = Marked.get_mark param' }) in let f_body = - let make_body (op : desugared binop) = - Expr.eapp (Expr.eop (Binop op) mark) + let make_body op = + Expr.eapp (translate_binop op pos) [acc; translate_expr scope inside_definition_of ctxt predicate] emark in - let make_extr_body (cmp_op : desugared binop) (t : typ) = + let make_extr_body cmp_op typ = let tmp_var = Var.make "tmp" in let tmp = Expr.make_var tmp_var (Untyped { pos = Marked.get_mark param' }) in - Expr.make_let_in tmp_var t + Expr.make_let_in tmp_var (TAny, pos) (translate_expr scope inside_definition_of ctxt predicate) (Expr.eifthenelse - (Expr.eapp (Expr.eop (Binop cmp_op) mark) [acc; tmp] emark) + (Expr.eapp + (Expr.eop cmp_op [typ, pos; typ, pos] mark) + [acc; tmp] emark) acc tmp emark) pos in @@ -587,7 +658,7 @@ let rec translate_expr | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Integer) -> make_body (Add KInt) | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Decimal) -> - make_body (Add KRat) + make_body (Add KDec) | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Money) -> make_body (Add KMoney) | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Duration) -> @@ -596,20 +667,8 @@ let rec translate_expr assert false (* should not happen *) | Surface.Ast.Aggregate (Surface.Ast.AggregateExtremum (max_or_min, t, _)) -> - let op_kind, typ = - match t with - | Surface.Ast.Integer -> KInt, (TLit TInt, pos) - | Surface.Ast.Decimal -> KRat, (TLit TRat, pos) - | Surface.Ast.Money -> KMoney, (TLit TMoney, pos) - | Surface.Ast.Duration -> KDuration, (TLit TDuration, pos) - | Surface.Ast.Date -> KDate, (TLit TDate, pos) - | _ -> - Errors.raise_spanned_error pos - "It is impossible to compute the %s of two values of type %a" - (if max_or_min then "max" else "min") - SurfacePrint.format_primitive_typ t - in - let cmp_op = if max_or_min then Gt op_kind else Lt op_kind in + let typ = aggregate_typ pos t in + let cmp_op = if max_or_min then Op.Gt else Op.Lt in make_extr_body cmp_op typ | Surface.Ast.Aggregate Surface.Ast.AggregateCount -> let predicate = @@ -617,7 +676,7 @@ let rec translate_expr in Expr.eifthenelse predicate (Expr.eapp - (Expr.eop (Binop (Add KInt)) mark) + (Expr.eop Add [TLit TInt, pos; TLit TInt, pos] mark) [ acc; Expr.elit @@ -628,11 +687,11 @@ let rec translate_expr acc emark in let f = - let make_f (t : typ_lit) = + let make_f t = Expr.eabs (Expr.bind [| acc_var; param |] f_body) [ - TLit t, Marked.get_mark op'; + t, Marked.get_mark op'; TAny, pos (* we put any here because the type of the elements of the arrays is not always the type of the accumulator; for instance in @@ -644,30 +703,17 @@ let rec translate_expr | Surface.Ast.Map | Surface.Ast.Filter | Surface.Ast.Aggregate (Surface.Ast.AggregateArgExtremum _) -> assert false (* should not happen *) - | Surface.Ast.Exists -> make_f TBool - | Surface.Ast.Forall -> make_f TBool - | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Integer) - | Surface.Ast.Aggregate - (Surface.Ast.AggregateExtremum (_, Surface.Ast.Integer, _)) -> - make_f TInt - | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Decimal) - | Surface.Ast.Aggregate - (Surface.Ast.AggregateExtremum (_, Surface.Ast.Decimal, _)) -> - make_f TRat - | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Money) - | Surface.Ast.Aggregate - (Surface.Ast.AggregateExtremum (_, Surface.Ast.Money, _)) -> - make_f TMoney - | Surface.Ast.Aggregate (Surface.Ast.AggregateSum Surface.Ast.Duration) - | Surface.Ast.Aggregate - (Surface.Ast.AggregateExtremum (_, Surface.Ast.Duration, _)) -> - make_f TDuration - | Surface.Ast.Aggregate (Surface.Ast.AggregateSum _) - | Surface.Ast.Aggregate (Surface.Ast.AggregateExtremum _) -> - assert false (* should not happen *) - | Surface.Ast.Aggregate Surface.Ast.AggregateCount -> make_f TInt + | Surface.Ast.Exists -> make_f (TLit TBool) + | Surface.Ast.Forall -> make_f (TLit TBool) + | Surface.Ast.Aggregate (Surface.Ast.AggregateSum k) -> + make_f (aggregate_typ pos (Some k)) + | Surface.Ast.Aggregate (Surface.Ast.AggregateExtremum (_, k, _)) -> + make_f (aggregate_typ pos k) + | Surface.Ast.Aggregate Surface.Ast.AggregateCount -> make_f (TLit TInt) in - Expr.eapp (Expr.eop (Ternop Fold) emark) [f; init; collection] emark + Expr.eapp + (Expr.eop Fold [TAny, pos; TAny, pos; TAny, pos] mark) + [f; init; collection] emark | MemCollection (member, collection) -> let param_var = Var.make "collection_member" in let param = Expr.make_var param_var emark in @@ -678,8 +724,13 @@ let rec translate_expr let f_body = let member = translate_expr scope inside_definition_of ctxt member in Expr.eapp - (Expr.eop (Binop Or) emark) - [Expr.eapp (Expr.eop (Binop Eq) emark) [member; param] emark; acc] + (Expr.eop Or [TLit TBool, pos; TLit TBool, pos] emark) + [ + Expr.eapp + (Expr.eop Eq [TAny, pos; TAny, pos] emark) + [member; param] emark; + acc; + ] emark in let f = @@ -688,18 +739,20 @@ let rec translate_expr [TLit TBool, pos; TAny, pos] emark in - Expr.eapp (Expr.eop (Ternop Fold) emark) [f; init; collection] emark - | Builtin IntToDec -> Expr.eop (Unop IntToRat) emark - | Builtin MoneyToDec -> Expr.eop (Unop MoneyToRat) emark - | Builtin DecToMoney -> Expr.eop (Unop RatToMoney) emark - | Builtin Cardinal -> Expr.eop (Unop Length) emark - | Builtin GetDay -> Expr.eop (Unop GetDay) emark - | Builtin GetMonth -> Expr.eop (Unop GetMonth) emark - | Builtin GetYear -> Expr.eop (Unop GetYear) emark - | Builtin FirstDayOfMonth -> Expr.eop (Unop FirstDayOfMonth) emark - | Builtin LastDayOfMonth -> Expr.eop (Unop LastDayOfMonth) emark - | Builtin RoundMoney -> Expr.eop (Unop RoundMoney) emark - | Builtin RoundDecimal -> Expr.eop (Unop RoundDecimal) emark + Expr.eapp + (Expr.eop Fold [TAny, pos; TAny, pos; TAny, pos] emark) + [f; init; collection] emark + | Builtin IntToDec -> Expr.eop IntToRat [TLit TInt, pos] emark + | Builtin MoneyToDec -> Expr.eop MoneyToRat [TLit TMoney, pos] emark + | Builtin DecToMoney -> Expr.eop RatToMoney [TLit TRat, pos] emark + | Builtin Cardinal -> Expr.eop Length [TArray (TAny, pos), pos] emark + | Builtin GetDay -> Expr.eop GetDay [TLit TDate, pos] emark + | Builtin GetMonth -> Expr.eop GetMonth [TLit TDate, pos] emark + | Builtin GetYear -> Expr.eop GetYear [TLit TDate, pos] emark + | Builtin FirstDayOfMonth -> Expr.eop FirstDayOfMonth [TLit TDate, pos] emark + | Builtin LastDayOfMonth -> Expr.eop LastDayOfMonth [TLit TDate, pos] emark + | Builtin RoundMoney -> Expr.eop RoundMoney [TLit TMoney, pos] emark + | Builtin RoundDecimal -> Expr.eop RoundDecimal [TLit TRat, pos] emark and disambiguate_match_and_build_expression (scope : ScopeName.t) @@ -844,7 +897,11 @@ let merge_conditions (default_pos : Pos.t) : Ast.expr boxed = match precond, cond with | Some precond, Some cond -> - let op_term = Expr.eop (Binop And) (Marked.get_mark cond) in + let op_term = + Expr.eop And + [TLit TBool, default_pos; TLit TBool, default_pos] + (Marked.get_mark cond) + in Expr.eapp op_term [precond; cond] (Marked.get_mark cond) | Some precond, None -> Marked.unmark precond, Untyped { pos = default_pos } | None, Some cond -> cond diff --git a/compiler/lcalc/compile_with_exceptions.ml b/compiler/lcalc/compile_with_exceptions.ml index 202d479b..ab612d82 100644 --- a/compiler/lcalc/compile_with_exceptions.ml +++ b/compiler/lcalc/compile_with_exceptions.ml @@ -72,7 +72,7 @@ and translate_expr (ctx : 'm ctx) (e : 'm D.expr) : 'm A.expr boxed = l) -> Expr.elit l m | ELit LEmptyError -> Expr.eraise EmptyError m - | EOp op -> Expr.eop (Expr.translate_op op) m + | EOp { op; tys } -> Expr.eop (Operator.translate op) tys m | EIfThenElse { cond; etrue; efalse } -> Expr.eifthenelse (translate_expr ctx cond) (translate_expr ctx etrue) (translate_expr ctx efalse) diff --git a/compiler/lcalc/compile_without_exceptions.ml b/compiler/lcalc/compile_without_exceptions.ml index 3f9eb1e8..38cc3a69 100644 --- a/compiler/lcalc/compile_without_exceptions.ml +++ b/compiler/lcalc/compile_without_exceptions.ml @@ -289,7 +289,7 @@ let rec translate_and_hoist (ctx : 'm ctx) (e : 'm D.expr) : let es', hoists = es |> List.map (translate_and_hoist ctx) |> List.split in Expr.earray es' mark, disjoint_union_maps (Expr.pos e) hoists - | EOp op -> Expr.eop (Expr.translate_op op) mark, Var.Map.empty + | EOp { op; tys } -> Expr.eop (Operator.translate op) tys mark, Var.Map.empty and translate_expr ?(append_esome = true) (ctx : 'm ctx) (e : 'm D.expr) : 'm A.expr boxed = diff --git a/compiler/lcalc/optimizations.ml b/compiler/lcalc/optimizations.ml index 869d6b88..6551e551 100644 --- a/compiler/lcalc/optimizations.ml +++ b/compiler/lcalc/optimizations.ml @@ -73,10 +73,12 @@ let rec peephole_expr (e : 'm expr) : 'm expr boxed = (fun cond etrue efalse -> match Marked.unmark cond with | ELit (LBool true) - | EApp { f = EOp (Unop (Log _)), _; args = [(ELit (LBool true), _)] } -> + | EApp { f = EOp { op = Log _; _ }, _; args = [(ELit (LBool true), _)] } + -> Marked.unmark etrue | ELit (LBool false) - | EApp { f = EOp (Unop (Log _)), _; args = [(ELit (LBool false), _)] } + | EApp + { f = EOp { op = Log _; _ }, _; args = [(ELit (LBool false), _)] } -> Marked.unmark efalse | _ -> EIfThenElse { cond; etrue; efalse }) diff --git a/compiler/lcalc/to_ocaml.ml b/compiler/lcalc/to_ocaml.ml index 822cb57f..bf229ac8 100644 --- a/compiler/lcalc/to_ocaml.ml +++ b/compiler/lcalc/to_ocaml.ml @@ -54,36 +54,6 @@ let format_lit (fmt : Format.formatter) (l : lit Marked.pos) : unit = let years, months, days = Runtime.duration_to_years_months_days d in Format.fprintf fmt "duration_of_numbers (%d) (%d) (%d)" years months days -let format_op_kind (fmt : Format.formatter) (k : 'a op_kind) = - Format.fprintf fmt "%s" - (match k with - | KInt -> "!" - | KRat -> "&" - | KMoney -> "$" - | KDate -> "@" - | KDuration -> "^") - -let format_binop (fmt : Format.formatter) (op : 'a binop Marked.pos) : unit = - match Marked.unmark op with - | Add k -> Format.fprintf fmt "+%a" format_op_kind k - | Sub k -> Format.fprintf fmt "-%a" format_op_kind k - | Mult k -> Format.fprintf fmt "*%a" format_op_kind k - | Div k -> Format.fprintf fmt "/%a" format_op_kind k - | And -> Format.fprintf fmt "%s" "&&" - | Or -> Format.fprintf fmt "%s" "||" - | Eq -> Format.fprintf fmt "%s" "=" - | Neq | Xor -> Format.fprintf fmt "%s" "<>" - | Lt k -> Format.fprintf fmt "%s%a" "<" format_op_kind k - | Lte k -> Format.fprintf fmt "%s%a" "<=" format_op_kind k - | Gt k -> Format.fprintf fmt "%s%a" ">" format_op_kind k - | Gte k -> Format.fprintf fmt "%s%a" ">=" format_op_kind k - | Concat -> Format.fprintf fmt "@" - | Map -> Format.fprintf fmt "Array.map" - | Filter -> Format.fprintf fmt "array_filter" - -let format_ternop (fmt : Format.formatter) (op : ternop Marked.pos) : unit = - match Marked.unmark op with Fold -> Format.fprintf fmt "Array.fold_left" - let format_uid_list (fmt : Format.formatter) (uids : Uid.MarkedString.info list) : unit = Format.fprintf fmt "@[[%a]@]" @@ -103,26 +73,6 @@ let format_string_list (fmt : Format.formatter) (uids : string list) : unit = (Re.replace sanitize_quotes ~f:(fun _ -> "\\\"") info))) uids -let format_unop (fmt : Format.formatter) (op : lcalc unop Marked.pos) : unit = - match Marked.unmark op with - | Minus k -> Format.fprintf fmt "~-%a" format_op_kind k - | Not -> Format.fprintf fmt "%s" "not" - | Log (_entry, _infos) -> - Errors.raise_spanned_error (Marked.get_mark op) - "Internal error: a log operator has not been caught by the expression \ - match" - | Length -> Format.fprintf fmt "%s" "array_length" - | IntToRat -> Format.fprintf fmt "%s" "decimal_of_integer" - | MoneyToRat -> Format.fprintf fmt "%s" "decimal_of_money" - | RatToMoney -> Format.fprintf fmt "%s" "money_of_decimal" - | GetDay -> Format.fprintf fmt "%s" "day_of_month_of_date" - | GetMonth -> Format.fprintf fmt "%s" "month_number_of_date" - | GetYear -> Format.fprintf fmt "%s" "year_of_date" - | FirstDayOfMonth -> Format.fprintf fmt "%s" "first_day_of_month" - | LastDayOfMonth -> Format.fprintf fmt "%s" "last_day_of_month" - | RoundMoney -> Format.fprintf fmt "%s" "money_round" - | RoundDecimal -> Format.fprintf fmt "%s" "decimal_round" - let avoid_keywords (s : string) : string = match s with (* list taken from @@ -134,7 +84,7 @@ let avoid_keywords (s : string) : string = | "match" | "method" | "mod" | "module" | "mutable" | "new" | "nonrec" | "object" | "of" | "open" | "or" | "private" | "rec" | "sig" | "struct" | "then" | "to" | "true" | "try" | "type" | "val" | "virtual" | "when" - | "while" | "with" -> + | "while" | "with" | "Stdlib" | "Runtime" | "Oper" -> s ^ "_user" | _ -> s @@ -235,8 +185,8 @@ let format_var (fmt : Format.formatter) (v : 'm Var.t) : unit = if List.mem lowercase_name ["handle_default"; "handle_default_opt"] || String.begins_with_uppercase (Bindlib.name_of v) - then Format.fprintf fmt "%s" lowercase_name - else if lowercase_name = "_" then Format.fprintf fmt "%s" lowercase_name + then Format.pp_print_string fmt lowercase_name + else if lowercase_name = "_" then Format.pp_print_string fmt lowercase_name else ( Cli.debug_print "lowercase_name: %s " lowercase_name; Format.fprintf fmt "%s_" lowercase_name) @@ -305,7 +255,8 @@ let rec format_expr (ctx : decl_ctx) (fmt : Format.formatter) (e : 'm expr) : Format.fprintf fmt "let@ %a@ = %a@ in@ x" (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt ",@ ") - (fun fmt i -> Format.fprintf fmt "%s" (if i = index then "x" else "_"))) + (fun fmt i -> + Format.pp_print_string fmt (if i = index then "x" else "_"))) (List.init size Fun.id) format_with_parens e | EStructAccess { e; field; name } -> Format.fprintf fmt "%a.%a" format_with_parens e format_struct_field_name @@ -355,25 +306,19 @@ let rec format_expr (ctx : decl_ctx) (fmt : Format.formatter) (e : 'm expr) : (fun fmt (x, tau) -> Format.fprintf fmt "@[(%a:@ %a)@]" format_var x format_typ tau)) xs_tau format_expr body - | EApp { f = EOp (Binop ((Map | Filter) as op)), _; args = [arg1; arg2] } -> - Format.fprintf fmt "@[%a@ %a@ %a@]" format_binop (op, Pos.no_pos) - format_with_parens arg1 format_with_parens arg2 - | EApp { f = EOp (Binop op), _; args = [arg1; arg2] } -> - Format.fprintf fmt "@[%a@ %a@ %a@]" format_with_parens arg1 - format_binop (op, Pos.no_pos) format_with_parens arg2 | EApp { - f = EApp { f = EOp (Unop (Log (BeginCall, info))), _; args = [f] }, _; + f = EApp { f = EOp { op = Log (BeginCall, info); _ }, _; args = [f] }, _; args = [arg]; } when !Cli.trace_flag -> Format.fprintf fmt "(log_begin_call@ %a@ %a)@ %a" format_uid_list info format_with_parens f format_with_parens arg - | EApp { f = EOp (Unop (Log (VarDef tau, info))), _; args = [arg1] } + | EApp { f = EOp { op = Log (VarDef tau, info); _ }, _; args = [arg1] } when !Cli.trace_flag -> Format.fprintf fmt "(log_variable_definition@ %a@ (%a)@ %a)" format_uid_list info typ_embedding_name (tau, Pos.no_pos) format_with_parens arg1 - | EApp { f = EOp (Unop (Log (PosRecordIfTrueBool, _))), m; args = [arg1] } + | EApp { f = EOp { op = Log (PosRecordIfTrueBool, _); _ }, m; args = [arg1] } when !Cli.trace_flag -> let pos = Expr.mark_pos m in Format.fprintf fmt @@ -382,15 +327,12 @@ let rec format_expr (ctx : decl_ctx) (fmt : Format.formatter) (e : 'm expr) : (Pos.get_file pos) (Pos.get_start_line pos) (Pos.get_start_column pos) (Pos.get_end_line pos) (Pos.get_end_column pos) format_string_list (Pos.get_law_info pos) format_with_parens arg1 - | EApp { f = EOp (Unop (Log (EndCall, info))), _; args = [arg1] } + | EApp { f = EOp { op = Log (EndCall, info); _ }, _; args = [arg1] } when !Cli.trace_flag -> Format.fprintf fmt "(log_end_call@ %a@ %a)" format_uid_list info format_with_parens arg1 - | EApp { f = EOp (Unop (Log _)), _; args = [arg1] } -> + | EApp { f = EOp { op = Log _; _ }, _; args = [arg1] } -> Format.fprintf fmt "%a" format_with_parens arg1 - | EApp { f = EOp (Unop op), _; args = [arg1] } -> - Format.fprintf fmt "@[%a@ %a@]" format_unop (op, Pos.no_pos) - format_with_parens arg1 | EApp { f = EVar x, pos; args } when Var.compare x (Var.translate Ast.handle_default) = 0 || Var.compare x (Var.translate Ast.handle_default_opt) = 0 -> @@ -419,9 +361,7 @@ let rec format_expr (ctx : decl_ctx) (fmt : Format.formatter) (e : 'm expr) : Format.fprintf fmt "@[ if@ @[%a@]@ then@ @[%a@]@ else@ @[%a@]@]" format_with_parens cond format_with_parens etrue format_with_parens efalse - | EOp (Ternop op) -> Format.fprintf fmt "%a" format_ternop (op, Pos.no_pos) - | EOp (Binop op) -> Format.fprintf fmt "%a" format_binop (op, Pos.no_pos) - | EOp (Unop op) -> Format.fprintf fmt "%a" format_unop (op, Pos.no_pos) + | EOp { op; _ } -> Format.pp_print_string fmt (Operator.name op) | EAssert e' -> Format.fprintf fmt "@[if@ %a@ then@ ()@ else@ raise (AssertionFailed @[ naked_expr + | EFunc : TopLevelName.t -> naked_expr + | EStruct : expr list * StructName.t -> naked_expr + | EStructFieldAccess : expr * StructField.t * StructName.t -> naked_expr + | EInj : expr * EnumConstructor.t * EnumName.t -> naked_expr + | EArray : expr list -> naked_expr + | ELit : L.lit -> naked_expr + | EApp : expr * expr list -> naked_expr + | EOp : (lcalc, _) operator -> naked_expr type stmt = | SInnerFuncDef of LocalName.t Marked.pos * func diff --git a/compiler/scalc/compile_from_lambda.ml b/compiler/scalc/compile_from_lambda.ml index e35fadec..691d24a0 100644 --- a/compiler/scalc/compile_from_lambda.ml +++ b/compiler/scalc/compile_from_lambda.ml @@ -86,7 +86,7 @@ let rec translate_expr (ctxt : 'm ctxt) (expr : 'm L.expr) : A.block * A.expr = in let new_args = List.rev new_args in args_stmts, (A.EArray new_args, Expr.pos expr) - | EOp op -> [], (A.EOp op, Expr.pos expr) + | EOp { op; _ } -> [], (A.EOp op, Expr.pos expr) | ELit l -> [], (A.ELit l, Expr.pos expr) | _ -> let tmp_var = diff --git a/compiler/scalc/print.ml b/compiler/scalc/print.ml index 24cdb17c..8e3223ae 100644 --- a/compiler/scalc/print.ml +++ b/compiler/scalc/print.ml @@ -64,25 +64,24 @@ let rec format_expr Format.fprintf fmt "@[%a@ %a@]" Print.enum_constructor cons format_expr e | ELit l -> Print.lit fmt l - | EApp ((EOp (Binop ((Map | Filter) as op)), _), [arg1; arg2]) -> - Format.fprintf fmt "@[%a@ %a@ %a@]" Print.binop op format_with_parens - arg1 format_with_parens arg2 - | EApp ((EOp (Binop op), _), [arg1; arg2]) -> + | EApp ((EOp ((Map | Filter) as op), _), [arg1; arg2]) -> + Format.fprintf fmt "@[%a@ %a@ %a@]" Print.operator op + format_with_parens arg1 format_with_parens arg2 + | EApp ((EOp op, _), [arg1; arg2]) -> Format.fprintf fmt "@[%a@ %a@ %a@]" format_with_parens arg1 - Print.binop op format_with_parens arg2 - | EApp ((EOp (Unop (Log _)), _), [arg1]) when not debug -> + Print.operator op format_with_parens arg2 + | EApp ((EOp (Log _), _), [arg1]) when not debug -> Format.fprintf fmt "%a" format_with_parens arg1 - | EApp ((EOp (Unop op), _), [arg1]) -> - Format.fprintf fmt "@[%a@ %a@]" Print.unop op format_with_parens arg1 + | EApp ((EOp op, _), [arg1]) -> + Format.fprintf fmt "@[%a@ %a@]" Print.operator op format_with_parens + arg1 | EApp (f, args) -> Format.fprintf fmt "@[%a@ %a@]" format_expr f (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ ") format_with_parens) args - | EOp (Ternop op) -> Format.fprintf fmt "%a" Print.ternop op - | EOp (Binop op) -> Format.fprintf fmt "%a" Print.binop op - | EOp (Unop op) -> Format.fprintf fmt "%a" Print.unop op + | EOp op -> Format.fprintf fmt "%a" Print.operator op let rec format_statement (decl_ctx : decl_ctx) diff --git a/compiler/scalc/to_python.ml b/compiler/scalc/to_python.ml index 5cfe64d2..2e05e57e 100644 --- a/compiler/scalc/to_python.ml +++ b/compiler/scalc/to_python.ml @@ -24,11 +24,11 @@ module L = Lcalc.Ast let format_lit (fmt : Format.formatter) (l : L.lit Marked.pos) : unit = match Marked.unmark l with - | LBool true -> Format.fprintf fmt "True" - | LBool false -> Format.fprintf fmt "False" + | LBool true -> Format.pp_print_string fmt "True" + | LBool false -> Format.pp_print_string fmt "False" | LInt i -> Format.fprintf fmt "integer_of_string(\"%s\")" (Runtime.integer_to_string i) - | LUnit -> Format.fprintf fmt "Unit()" + | LUnit -> Format.pp_print_string fmt "Unit()" | LRat i -> Format.fprintf fmt "decimal_of_string(\"%a\")" Print.lit (LRat i) | LMoney e -> Format.fprintf fmt "money_of_cents_string(\"%s\")" @@ -44,31 +44,59 @@ let format_lit (fmt : Format.formatter) (l : L.lit Marked.pos) : unit = let format_log_entry (fmt : Format.formatter) (entry : log_entry) : unit = match entry with - | VarDef _ -> Format.fprintf fmt ":=" - | BeginCall -> Format.fprintf fmt "→ " + | VarDef _ -> Format.pp_print_string fmt ":=" + | BeginCall -> Format.pp_print_string fmt "→ " | EndCall -> Format.fprintf fmt "%s" "← " - | PosRecordIfTrueBool -> Format.fprintf fmt "☛ " + | PosRecordIfTrueBool -> Format.pp_print_string fmt "☛ " -let format_binop (fmt : Format.formatter) (op : lcalc binop Marked.pos) : unit = +let format_op + (type k) + (fmt : Format.formatter) + (op : (lcalc, k) operator Marked.pos) : unit = match Marked.unmark op with - | Add _ | Concat -> Format.fprintf fmt "+" - | Sub _ -> Format.fprintf fmt "-" - | Mult _ -> Format.fprintf fmt "*" - | Div KInt -> Format.fprintf fmt "//" - | Div _ -> Format.fprintf fmt "/" - | And -> Format.fprintf fmt "and" - | Or -> Format.fprintf fmt "or" - | Eq -> Format.fprintf fmt "==" - | Neq | Xor -> Format.fprintf fmt "!=" - | Lt _ -> Format.fprintf fmt "<" - | Lte _ -> Format.fprintf fmt "<=" - | Gt _ -> Format.fprintf fmt ">" - | Gte _ -> Format.fprintf fmt ">=" - | Map -> Format.fprintf fmt "list_map" - | Filter -> Format.fprintf fmt "list_filter" - -let format_ternop (fmt : Format.formatter) (op : ternop Marked.pos) : unit = - match Marked.unmark op with Fold -> Format.fprintf fmt "list_fold_left" + | Log (entry, infos) -> assert false + | Minus_int | Minus_rat | Minus_mon | Minus_dur -> + Format.pp_print_string fmt "-" + (* Todo: use the names from [Operator.name] *) + | Not -> Format.pp_print_string fmt "not" + | Length -> Format.pp_print_string fmt "list_length" + | IntToRat -> Format.pp_print_string fmt "decimal_of_integer" + | MoneyToRat -> Format.pp_print_string fmt "decimal_of_money" + | RatToMoney -> Format.pp_print_string fmt "money_of_decimal" + | GetDay -> Format.pp_print_string fmt "day_of_month_of_date" + | GetMonth -> Format.pp_print_string fmt "month_number_of_date" + | GetYear -> Format.pp_print_string fmt "year_of_date" + | FirstDayOfMonth -> Format.pp_print_string fmt "first_day_of_month" + | LastDayOfMonth -> Format.pp_print_string fmt "last_day_of_month" + | RoundMoney -> Format.pp_print_string fmt "money_round" + | RoundDecimal -> Format.pp_print_string fmt "decimal_round" + | Add_int_int | Add_rat_rat | Add_mon_mon | Add_dat_dur | Add_dur_dur | Concat + -> + Format.pp_print_string fmt "+" + | Sub_int_int | Sub_rat_rat | Sub_mon_mon | Sub_dat_dat | Sub_dat_dur + | Sub_dur_dur -> + Format.pp_print_string fmt "-" + | Mult_int_int | Mult_rat_rat | Mult_mon_rat | Mult_dur_int -> + Format.pp_print_string fmt "*" + | Div_int_int -> Format.pp_print_string fmt "//" + | Div_rat_rat | Div_mon_mon | Div_mon_rat -> Format.pp_print_string fmt "/" + | And -> Format.pp_print_string fmt "and" + | Or -> Format.pp_print_string fmt "or" + | Eq -> Format.pp_print_string fmt "==" + | Xor -> Format.pp_print_string fmt "!=" + | Lt_int_int | Lt_rat_rat | Lt_mon_mon | Lt_dat_dat | Lt_dur_dur -> + Format.pp_print_string fmt "<" + | Lte_int_int | Lte_rat_rat | Lte_mon_mon | Lte_dat_dat | Lte_dur_dur -> + Format.pp_print_string fmt "<=" + | Gt_int_int | Gt_rat_rat | Gt_mon_mon | Gt_dat_dat | Gt_dur_dur -> + Format.pp_print_string fmt ">" + | Gte_int_int | Gte_rat_rat | Gte_mon_mon | Gte_dat_dat | Gte_dur_dur -> + Format.pp_print_string fmt ">=" + | Eq_int_int | Eq_rat_rat | Eq_mon_mon | Eq_dat_dat | Eq_dur_dur -> + Format.pp_print_string fmt "==" + | Map -> Format.pp_print_string fmt "list_map" + | Filter -> Format.pp_print_string fmt "list_filter" + | Fold -> Format.pp_print_string fmt "list_fold_left" let format_uid_list (fmt : Format.formatter) (uids : Uid.MarkedString.info list) : unit = @@ -89,23 +117,6 @@ let format_string_list (fmt : Format.formatter) (uids : string list) : unit = (Re.replace sanitize_quotes ~f:(fun _ -> "\\\"") info))) uids -let format_unop (fmt : Format.formatter) (op : lcalc unop Marked.pos) : unit = - match Marked.unmark op with - | Minus _ -> Format.fprintf fmt "-" - | Not -> Format.fprintf fmt "not" - | Log (entry, infos) -> assert false (* should not happen *) - | Length -> Format.fprintf fmt "%s" "list_length" - | IntToRat -> Format.fprintf fmt "%s" "decimal_of_integer" - | MoneyToRat -> Format.fprintf fmt "%s" "decimal_of_money" - | RatToMoney -> Format.fprintf fmt "%s" "money_of_decimal" - | GetDay -> Format.fprintf fmt "%s" "day_of_month_of_date" - | GetMonth -> Format.fprintf fmt "%s" "month_number_of_date" - | GetYear -> Format.fprintf fmt "%s" "year_of_date" - | FirstDayOfMonth -> Format.fprintf fmt "%s" "first_day_of_month" - | LastDayOfMonth -> Format.fprintf fmt "%s" "last_day_of_month" - | RoundMoney -> Format.fprintf fmt "%s" "money_round" - | RoundDecimal -> Format.fprintf fmt "%s" "decimal_round" - let avoid_keywords (s : string) : string = if match s with @@ -298,21 +309,20 @@ let rec format_expression (ctx : decl_ctx) (fmt : Format.formatter) (e : expr) : (fun fmt e -> Format.fprintf fmt "%a" (format_expression ctx) e)) es | ELit l -> Format.fprintf fmt "%a" format_lit (Marked.same_mark_as l e) - | EApp ((EOp (Binop ((Map | Filter) as op)), _), [arg1; arg2]) -> - Format.fprintf fmt "%a(%a,@ %a)" format_binop (op, Pos.no_pos) + | EApp ((EOp ((Map | Filter) as op), _), [arg1; arg2]) -> + Format.fprintf fmt "%a(%a,@ %a)" format_op (op, Pos.no_pos) (format_expression ctx) arg1 (format_expression ctx) arg2 - | EApp ((EOp (Binop op), _), [arg1; arg2]) -> - Format.fprintf fmt "(%a %a@ %a)" (format_expression ctx) arg1 format_binop + | EApp ((EOp op, _), [arg1; arg2]) -> + Format.fprintf fmt "(%a %a@ %a)" (format_expression ctx) arg1 format_op (op, Pos.no_pos) (format_expression ctx) arg2 - | EApp ((EApp ((EOp (Unop (Log (BeginCall, info))), _), [f]), _), [arg]) + | EApp ((EApp ((EOp (Log (BeginCall, info)), _), [f]), _), [arg]) when !Cli.trace_flag -> Format.fprintf fmt "log_begin_call(%a,@ %a,@ %a)" format_uid_list info (format_expression ctx) f (format_expression ctx) arg - | EApp ((EOp (Unop (Log (VarDef tau, info))), _), [arg1]) when !Cli.trace_flag - -> + | EApp ((EOp (Log (VarDef tau, info)), _), [arg1]) when !Cli.trace_flag -> Format.fprintf fmt "log_variable_definition(%a,@ %a)" format_uid_list info (format_expression ctx) arg1 - | EApp ((EOp (Unop (Log (PosRecordIfTrueBool, _))), pos), [arg1]) + | EApp ((EOp (Log (PosRecordIfTrueBool, _)), pos), [arg1]) when !Cli.trace_flag -> Format.fprintf fmt "log_decision_taken(SourcePosition(filename=\"%s\",@ start_line=%d,@ \ @@ -320,16 +330,21 @@ let rec format_expression (ctx : decl_ctx) (fmt : Format.formatter) (e : expr) : (Pos.get_file pos) (Pos.get_start_line pos) (Pos.get_start_column pos) (Pos.get_end_line pos) (Pos.get_end_column pos) format_string_list (Pos.get_law_info pos) (format_expression ctx) arg1 - | EApp ((EOp (Unop (Log (EndCall, info))), _), [arg1]) when !Cli.trace_flag -> + | EApp ((EOp (Log (EndCall, info)), _), [arg1]) when !Cli.trace_flag -> Format.fprintf fmt "log_end_call(%a,@ %a)" format_uid_list info (format_expression ctx) arg1 - | EApp ((EOp (Unop (Log _)), _), [arg1]) -> + | EApp ((EOp (Log _), _), [arg1]) -> Format.fprintf fmt "%a" (format_expression ctx) arg1 - | EApp ((EOp (Unop ((Minus _ | Not) as op)), _), [arg1]) -> - Format.fprintf fmt "%a %a" format_unop (op, Pos.no_pos) + | EApp ((EOp Not, _), [arg1]) -> + Format.fprintf fmt "%a %a" format_op (Not, Pos.no_pos) (format_expression ctx) arg1 - | EApp ((EOp (Unop op), _), [arg1]) -> - Format.fprintf fmt "%a(%a)" format_unop (op, Pos.no_pos) + | EApp + ((EOp ((Minus_int | Minus_rat | Minus_mon | Minus_dur) as op), _), [arg1]) + -> + Format.fprintf fmt "%a %a" format_op (op, Pos.no_pos) + (format_expression ctx) arg1 + | EApp ((EOp op, _), [arg1]) -> + Format.fprintf fmt "%a(%a)" format_op (op, Pos.no_pos) (format_expression ctx) arg1 | EApp ((EFunc x, pos), args) when Ast.TopLevelName.compare x Ast.handle_default = 0 @@ -350,9 +365,7 @@ let rec format_expression (ctx : decl_ctx) (fmt : Format.formatter) (e : expr) : ~pp_sep:(fun fmt () -> Format.fprintf fmt ",@ ") (format_expression ctx)) args - | EOp (Ternop op) -> Format.fprintf fmt "%a" format_ternop (op, Pos.no_pos) - | EOp (Binop op) -> Format.fprintf fmt "%a" format_binop (op, Pos.no_pos) - | EOp (Unop op) -> Format.fprintf fmt "%a" format_unop (op, Pos.no_pos) + | EOp op -> Format.fprintf fmt "%a" format_op (op, Pos.no_pos) let rec format_statement (ctx : decl_ctx) diff --git a/compiler/scopelang/from_desugared.ml b/compiler/scopelang/from_desugared.ml index 8842a01c..957e9051 100644 --- a/compiler/scopelang/from_desugared.ml +++ b/compiler/scopelang/from_desugared.ml @@ -36,7 +36,7 @@ let tag_with_log_entry (l : log_entry) (markings : Uid.MarkedString.info list) : untyped Ast.expr boxed = Expr.eapp - (Expr.eop (Unop (Log (l, markings))) (Marked.get_mark e)) + (Expr.eop (Log (l, markings)) [TAny, Expr.pos e] (Marked.get_mark e)) [e] (Marked.get_mark e) let rec translate_expr (ctx : ctx) (e : Desugared.Ast.expr) : @@ -128,9 +128,23 @@ let rec translate_expr (ctx : ctx) (e : Desugared.Ast.expr) : ctx (Array.to_list vars) (Array.to_list new_vars) in Expr.eabs (Expr.bind new_vars (translate_expr ctx body)) tys m + | EApp { f = EOp { op; tys }, m1; args } -> + let args = List.map (translate_expr ctx) args in + Operator.kind_dispatch op + ~monomorphic:(fun op -> Expr.eapp (Expr.eop op tys m1) args m) + ~polymorphic:(fun op -> Expr.eapp (Expr.eop op tys m1) args m) + ~overloaded:(fun op -> + match + Operator.resolve_overload ctx.decl_ctx + (Marked.mark (Expr.pos e) op) + tys + with + | op, `Straight -> Expr.eapp (Expr.eop op tys m1) args m + | op, `Reversed -> + Expr.eapp (Expr.eop op (List.rev tys) m1) (List.rev args) m) + | EOp _ -> assert false (* Only allowed within [EApp] *) | EApp { f; args } -> Expr.eapp (translate_expr ctx f) (List.map (translate_expr ctx) args) m - | EOp op -> Expr.eop (Expr.translate_op op) m | EDefault { excepts; just; cons } -> Expr.edefault (List.map (translate_expr ctx) excepts) diff --git a/compiler/scopelang/print.ml b/compiler/scopelang/print.ml index 927ea834..649ef551 100644 --- a/compiler/scopelang/print.ml +++ b/compiler/scopelang/print.ml @@ -85,7 +85,7 @@ let scope ?(debug = false) ctx fmt (name, decl) = .io_input with | Reentrant -> - Format.fprintf fmt "%a@ %a" Print.operator + Format.fprintf fmt "%a@ %a" Print.op_style "reentrant or by default" (Print.expr ~debug ctx) e | _ -> Format.fprintf fmt "%a" (Print.expr ~debug ctx) e)) e diff --git a/compiler/shared_ast/definitions.ml b/compiler/shared_ast/definitions.ml index 79ca5e1b..ca6dba48 100644 --- a/compiler/shared_ast/definitions.ml +++ b/compiler/shared_ast/definitions.ml @@ -82,34 +82,6 @@ and naked_typ = type date = Runtime.date type duration = Runtime.duration -type 'a op_kind = - (* | Kpoly: desugared op_kind -- Coming soon ! *) - | KInt : 'a any op_kind - | KRat : 'a any op_kind - | KMoney : 'a any op_kind - | KDate : 'a any op_kind - | KDuration : 'a any op_kind (** All ops don't have a KDate and KDuration. *) - -type ternop = Fold - -type 'a binop = - | And - | Or - | Xor - | Add of 'a op_kind - | Sub of 'a op_kind - | Mult of 'a op_kind - | Div of 'a op_kind - | Lt of 'a op_kind - | Lte of 'a op_kind - | Gt of 'a op_kind - | Gte of 'a op_kind - | Eq - | Neq - | Map - | Concat - | Filter - type log_entry = | VarDef of naked_typ (** During code generation, we need to know the type of the variable being @@ -118,23 +90,131 @@ type log_entry = | EndCall | PosRecordIfTrueBool -type 'a unop = - | Not - | Minus of 'a op_kind - | Log of log_entry * Uid.MarkedString.info list - | Length - | IntToRat - | MoneyToRat - | RatToMoney - | GetDay - | GetMonth - | GetYear - | FirstDayOfMonth - | LastDayOfMonth - | RoundMoney - | RoundDecimal +module Op = struct + (** Classification of operators on how they should be typed *) -type 'a operator = Ternop of ternop | Binop of 'a binop | Unop of 'a unop + type monomorphic = + | Monomorphic (** Operands and return types of the operator are fixed *) + + type polymorphic = + | Polymorphic + (** The operator is truly polymorphic: it's the same runtime function + that may work on multiple types. We require that resolving the + argument types from right to left trivially resolves all type + variables declared in the operator type. *) + + type overloaded = + | Overloaded + (** The operator is ambiguous and requires the types of its arguments to + be known before it can be typed, using a pre-defined table *) + + type resolved = + | Resolved (** Explicit monomorphic versions of the overloaded operators *) + + (** Classification of operators. This could be inlined in the definition of + [t] but is more concise this way *) + type (_, _) kind = + | Monomorphic : ('a any, monomorphic) kind + | Polymorphic : ('a any, polymorphic) kind + | Overloaded : ([< desugared ], overloaded) kind + | Resolved : ([< scopelang | dcalc | lcalc ], resolved) kind + + type (_, _) t = + (* unary *) + (* * monomorphic *) + | Not : ('a any, monomorphic) t + (* Todo: [AToB] operators could actually be overloaded [ToB] operators*) + | IntToRat : ('a any, monomorphic) t + | MoneyToRat : ('a any, monomorphic) t + | RatToMoney : ('a any, monomorphic) t + | GetDay : ('a any, monomorphic) t + | GetMonth : ('a any, monomorphic) t + | GetYear : ('a any, monomorphic) t + | FirstDayOfMonth : ('a any, monomorphic) t + | LastDayOfMonth : ('a any, monomorphic) t + | RoundMoney : ('a any, monomorphic) t + | RoundDecimal : ('a any, monomorphic) t + (* * polymorphic *) + | Length : ('a any, polymorphic) t + | Log : log_entry * Uid.MarkedString.info list -> ('a any, polymorphic) t + (* * overloaded *) + | Minus : (desugared, overloaded) t + | Minus_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Minus_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Minus_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Minus_dur : ([< scopelang | dcalc | lcalc ], resolved) t + (* binary *) + (* * monomorphic *) + | And : ('a any, monomorphic) t + | Or : ('a any, monomorphic) t + | Xor : ('a any, monomorphic) t + (* * polymorphic *) + | Eq : ('a any, polymorphic) t + | Map : ('a any, polymorphic) t + | Concat : ('a any, polymorphic) t + | Filter : ('a any, polymorphic) t + (* * overloaded *) + | Add : (desugared, overloaded) t + | Add_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Add_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Add_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Add_dat_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Add_dur_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Sub : (desugared, overloaded) t + | Sub_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Sub_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Sub_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Sub_dat_dat : ([< scopelang | dcalc | lcalc ], resolved) t + | Sub_dat_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Sub_dur_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Mult : (desugared, overloaded) t + | Mult_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Mult_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Mult_mon_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Mult_dur_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Div : (desugared, overloaded) t + | Div_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Div_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Div_mon_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Div_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Lt : (desugared, overloaded) t + | Lt_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Lt_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Lt_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Lt_dat_dat : ([< scopelang | dcalc | lcalc ], resolved) t + | Lt_dur_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Lte : (desugared, overloaded) t + | Lte_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Lte_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Lte_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Lte_dat_dat : ([< scopelang | dcalc | lcalc ], resolved) t + | Lte_dur_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Gt : (desugared, overloaded) t + | Gt_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Gt_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Gt_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Gt_dat_dat : ([< scopelang | dcalc | lcalc ], resolved) t + | Gt_dur_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Gte : (desugared, overloaded) t + | Gte_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Gte_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Gte_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Gte_dat_dat : ([< scopelang | dcalc | lcalc ], resolved) t + | Gte_dur_dur : ([< scopelang | dcalc | lcalc ], resolved) t + (* Todo: Eq is not an overload at the moment, but it should be one. The + trick is that it needs generation of specific code for arrays, every + struct and enum: operators [Eq_structs of StructName.t], etc. *) + | Eq_int_int : ([< scopelang | dcalc | lcalc ], resolved) t + | Eq_rat_rat : ([< scopelang | dcalc | lcalc ], resolved) t + | Eq_mon_mon : ([< scopelang | dcalc | lcalc ], resolved) t + | Eq_dur_dur : ([< scopelang | dcalc | lcalc ], resolved) t + | Eq_dat_dat : ([< scopelang | dcalc | lcalc ], resolved) t + (* ternary *) + (* * polymorphic *) + | Fold : ('a any, polymorphic) t +end + +type ('a, 'k) operator = ('a any, 'k) Op.t type except = ConflictError | EmptyError | NoValueProvided | Crash (** {2 Generic expressions} *) @@ -175,7 +255,9 @@ type ('a, 't) gexpr = (('a, 't) naked_gexpr, 't) Marked.t - To write a function that handles cases from different ASTs, explicit the type variables: [fun (type a) (x: a naked_gexpr) -> ...] - For recursive functions, you may need to additionally explicit the - generalisation of the variable: [let rec f: type a . a naked_gexpr -> ...] *) + generalisation of the variable: [let rec f: type a . a naked_gexpr -> ...] + - Always think of using the pre-defined map/fold functions in [Expr] rather + than completely defining your recursion manually. *) and ('a, 't) naked_gexpr = (* Constructors common to all ASTs *) @@ -185,7 +267,7 @@ and ('a, 't) naked_gexpr = args : ('a, 't) gexpr list; } -> ('a any, 't) naked_gexpr - | EOp : 'a operator -> ('a any, 't) naked_gexpr + | EOp : { op : ('a, _) operator; tys : typ list } -> ('a any, 't) naked_gexpr | EArray : ('a, 't) gexpr list -> ('a any, 't) naked_gexpr | EVar : ('a, 't) naked_gexpr Bindlib.var -> ('a any, 't) naked_gexpr | EAbs : { diff --git a/compiler/shared_ast/expr.ml b/compiler/shared_ast/expr.ml index cce75096..5c41b096 100644 --- a/compiler/shared_ast/expr.ml +++ b/compiler/shared_ast/expr.ml @@ -90,7 +90,7 @@ let eabs binder tys mark = let eapp f args = Box.app1n f args @@ fun f args -> EApp { f; args } let eassert e1 = Box.app1 e1 @@ fun e1 -> EAssert e1 -let eop op = Box.app0 @@ EOp op +let eop op tys = Box.app0 @@ EOp { op; tys } let edefault excepts just cons = Box.app2n just cons excepts @@ -212,7 +212,7 @@ let map match Marked.unmark e with | ELit l -> elit l m | EApp { f = e1; args } -> eapp (f e1) (List.map f args) m - | EOp op -> eop op m + | EOp { op; tys } -> eop op tys m | EArray args -> earray (List.map f args) m | EVar v -> evar (Var.translate v) m | EAbs { binder; tys } -> @@ -302,7 +302,7 @@ let map_gather let acc1, f = f e1 in let acc2, args = lfoldmap args in join acc1 acc2, eapp f args m - | EOp op -> acc, eop op m + | EOp { op; tys } -> acc, eop op tys m | EArray args -> let acc, args = lfoldmap args in acc, earray args m @@ -396,99 +396,36 @@ let is_value (type a) (e : (a, _) gexpr) = | ELit _ | EAbs _ | EOp _ | ERaise _ -> true | _ -> false -let equal_tlit l1 l2 = l1 = l2 -let compare_tlit l1 l2 = Stdlib.compare l1 l2 - -let rec equal_typ ty1 ty2 = - match Marked.unmark ty1, Marked.unmark ty2 with - | TLit l1, TLit l2 -> equal_tlit l1 l2 - | TTuple tys1, TTuple tys2 -> equal_typ_list tys1 tys2 - | TStruct n1, TStruct n2 -> StructName.equal n1 n2 - | TEnum n1, TEnum n2 -> EnumName.equal n1 n2 - | TOption t1, TOption t2 -> equal_typ t1 t2 - | TArrow (t1, t1'), TArrow (t2, t2') -> equal_typ t1 t2 && equal_typ t1' t2' - | TArray t1, TArray t2 -> equal_typ t1 t2 - | TAny, TAny -> true - | ( ( TLit _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArrow _ - | TArray _ | TAny ), - _ ) -> - false - -and equal_typ_list tys1 tys2 = - try List.for_all2 equal_typ tys1 tys2 with Invalid_argument _ -> false - -(* Similar to [equal_typ], but allows TAny holes *) -let rec unifiable ty1 ty2 = - match Marked.unmark ty1, Marked.unmark ty2 with - | TAny, _ | _, TAny -> true - | TLit l1, TLit l2 -> equal_tlit l1 l2 - | TTuple tys1, TTuple tys2 -> unifiable_list tys1 tys2 - | TStruct n1, TStruct n2 -> StructName.equal n1 n2 - | TEnum n1, TEnum n2 -> EnumName.equal n1 n2 - | TOption t1, TOption t2 -> unifiable t1 t2 - | TArrow (t1, t1'), TArrow (t2, t2') -> unifiable t1 t2 && unifiable t1' t2' - | TArray t1, TArray t2 -> unifiable t1 t2 - | ( (TLit _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArrow _ | TArray _), - _ ) -> - false - -and unifiable_list tys1 tys2 = - try List.for_all2 unifiable tys1 tys2 with Invalid_argument _ -> false - -let rec compare_typ ty1 ty2 = - match Marked.unmark ty1, Marked.unmark ty2 with - | TLit l1, TLit l2 -> compare_tlit l1 l2 - | TTuple tys1, TTuple tys2 -> List.compare compare_typ tys1 tys2 - | TStruct n1, TStruct n2 -> StructName.compare n1 n2 - | TEnum en1, TEnum en2 -> EnumName.compare en1 en2 - | TOption t1, TOption t2 -> compare_typ t1 t2 - | TArrow (a1, b1), TArrow (a2, b2) -> ( - match compare_typ a1 a2 with 0 -> compare_typ b1 b2 | n -> n) - | TArray t1, TArray t2 -> compare_typ t1 t2 - | TAny, TAny -> 0 - | TLit _, _ -> -1 - | _, TLit _ -> 1 - | TTuple _, _ -> -1 - | _, TTuple _ -> 1 - | TStruct _, _ -> -1 - | _, TStruct _ -> 1 - | TEnum _, _ -> -1 - | _, TEnum _ -> 1 - | TOption _, _ -> -1 - | _, TOption _ -> 1 - | TArrow _, _ -> -1 - | _, TArrow _ -> 1 - | TArray _, _ -> -1 - | _, TArray _ -> 1 - let equal_lit (type a) (l1 : a glit) (l2 : a glit) = + let open Runtime.Oper in match l1, l2 with - | LBool b1, LBool b2 -> Bool.equal b1 b2 + | LBool b1, LBool b2 -> not (o_xor b1 b2) | LEmptyError, LEmptyError -> true - | LInt n1, LInt n2 -> Runtime.( =! ) n1 n2 - | LRat r1, LRat r2 -> Runtime.( =& ) r1 r2 - | LMoney m1, LMoney m2 -> Runtime.( =$ ) m1 m2 + | LInt n1, LInt n2 -> o_eq_int_int n1 n2 + | LRat r1, LRat r2 -> o_eq_rat_rat r1 r2 + | LMoney m1, LMoney m2 -> o_eq_mon_mon m1 m2 | LUnit, LUnit -> true - | LDate d1, LDate d2 -> Runtime.( =@ ) d1 d2 - | LDuration d1, LDuration d2 -> Runtime.( =^ ) d1 d2 + | LDate d1, LDate d2 -> o_eq_dat_dat d1 d2 + | LDuration d1, LDuration d2 -> o_eq_dur_dur d1 d2 | ( ( LBool _ | LEmptyError | LInt _ | LRat _ | LMoney _ | LUnit | LDate _ | LDuration _ ), _ ) -> false let compare_lit (type a) (l1 : a glit) (l2 : a glit) = + let open Runtime.Oper in match l1, l2 with | LBool b1, LBool b2 -> Bool.compare b1 b2 | LEmptyError, LEmptyError -> 0 | LInt n1, LInt n2 -> - if Runtime.( - if Runtime.( <& ) r1 r2 then -1 else if Runtime.( =& ) r1 r2 then 0 else 1 + if o_lt_rat_rat r1 r2 then -1 else if o_eq_rat_rat r1 r2 then 0 else 1 | LMoney m1, LMoney m2 -> - if Runtime.( <$ ) m1 m2 then -1 else if Runtime.( =$ ) m1 m2 then 0 else 1 + if o_lt_mon_mon m1 m2 then -1 else if o_eq_mon_mon m1 m2 then 0 else 1 | LUnit, LUnit -> 0 | LDate d1, LDate d2 -> - if Runtime.( <@ ) d1 d2 then -1 else if Runtime.( =@ ) d1 d2 then 0 else 1 + if o_lt_dat_dat d1 d2 then -1 else if o_eq_dat_dat d1 d2 then 0 else 1 | LDuration d1, LDuration d2 -> ( (* Duration comparison in the runtime may fail, so rely on a basic lexicographic comparison instead *) @@ -540,119 +477,6 @@ let compare_location | _, SubScopeVar _ -> . let equal_location a b = compare_location a b = 0 - -let equal_log_entries l1 l2 = - match l1, l2 with - | VarDef t1, VarDef t2 -> equal_typ (t1, Pos.no_pos) (t2, Pos.no_pos) - | x, y -> x = y - -let compare_log_entries l1 l2 = - match l1, l2 with - | VarDef t1, VarDef t2 -> compare_typ (t1, Pos.no_pos) (t2, Pos.no_pos) - | BeginCall, BeginCall - | EndCall, EndCall - | PosRecordIfTrueBool, PosRecordIfTrueBool -> - 0 - | VarDef _, _ -> -1 - | _, VarDef _ -> 1 - | BeginCall, _ -> -1 - | _, BeginCall -> 1 - | EndCall, _ -> -1 - | _, EndCall -> 1 - | PosRecordIfTrueBool, _ -> . - | _, PosRecordIfTrueBool -> . - -(* let equal_op_kind = Stdlib.(=) *) - -let compare_op_kind = Stdlib.compare - -let equal_unops op1 op2 = - match op1, op2 with - (* Log entries contain a typ which contain position information, we thus need - to descend into them *) - | Log (l1, info1), Log (l2, info2) -> - equal_log_entries l1 l2 && List.equal Uid.MarkedString.equal info1 info2 - | Log _, _ | _, Log _ -> false - (* All the other cases can be discharged through equality *) - | ( ( Not | Minus _ | Length | IntToRat | MoneyToRat | RatToMoney | GetDay - | GetMonth | GetYear | FirstDayOfMonth | LastDayOfMonth | RoundMoney - | RoundDecimal ), - _ ) -> - op1 = op2 - -let compare_unops op1 op2 = - match op1, op2 with - | Not, Not -> 0 - | Minus k1, Minus k2 -> compare_op_kind k1 k2 - | Log (l1, info1), Log (l2, info2) -> ( - match compare_log_entries l1 l2 with - | 0 -> List.compare Uid.MarkedString.compare info1 info2 - | n -> n) - | Length, Length - | IntToRat, IntToRat - | MoneyToRat, MoneyToRat - | RatToMoney, RatToMoney - | GetDay, GetDay - | GetMonth, GetMonth - | GetYear, GetYear - | FirstDayOfMonth, FirstDayOfMonth - | LastDayOfMonth, LastDayOfMonth - | RoundMoney, RoundMoney - | RoundDecimal, RoundDecimal -> - 0 - | Not, _ -> -1 - | _, Not -> 1 - | Minus _, _ -> -1 - | _, Minus _ -> 1 - | Log _, _ -> -1 - | _, Log _ -> 1 - | Length, _ -> -1 - | _, Length -> 1 - | IntToRat, _ -> -1 - | _, IntToRat -> 1 - | MoneyToRat, _ -> -1 - | _, MoneyToRat -> 1 - | RatToMoney, _ -> -1 - | _, RatToMoney -> 1 - | GetDay, _ -> -1 - | _, GetDay -> 1 - | GetMonth, _ -> -1 - | _, GetMonth -> 1 - | GetYear, _ -> -1 - | _, GetYear -> 1 - | FirstDayOfMonth, _ -> -1 - | _, FirstDayOfMonth -> 1 - | LastDayOfMonth, _ -> -1 - | _, LastDayOfMonth -> 1 - | RoundMoney, _ -> -1 - | _, RoundMoney -> 1 - | RoundDecimal, _ -> . - | _, RoundDecimal -> . - -let equal_binop = Stdlib.( = ) -let compare_binop = Stdlib.compare -let equal_ternop = Stdlib.( = ) -let compare_ternop = Stdlib.compare - -let equal_ops op1 op2 = - match op1, op2 with - | Ternop op1, Ternop op2 -> equal_ternop op1 op2 - | Binop op1, Binop op2 -> equal_binop op1 op2 - | Unop op1, Unop op2 -> equal_unops op1 op2 - | _, _ -> false - -let compare_op op1 op2 = - match op1, op2 with - | Ternop op1, Ternop op2 -> compare_ternop op1 op2 - | Binop op1, Binop op2 -> compare_binop op1 op2 - | Unop op1, Unop op2 -> compare_unops op1 op2 - | Ternop _, _ -> -1 - | _, Ternop _ -> 1 - | Binop _, _ -> -1 - | _, Binop _ -> 1 - | Unop _, _ -> . - | _, Unop _ -> . - let equal_except ex1 ex2 = ex1 = ex2 let compare_except ex1 ex2 = Stdlib.compare ex1 ex2 @@ -673,7 +497,7 @@ and equal : type a. (a, 't) gexpr -> (a, 't) gexpr -> bool = | EArray es1, EArray es2 -> equal_list es1 es2 | ELit l1, ELit l2 -> l1 = l2 | EAbs { binder = b1; tys = tys1 }, EAbs { binder = b2; tys = tys2 } -> - equal_typ_list tys1 tys2 + Type.equal_list tys1 tys2 && let vars1, body1 = Bindlib.unmbind b1 in let body2 = Bindlib.msubst b2 (Array.map (fun x -> EVar x) vars1) in @@ -681,7 +505,8 @@ and equal : type a. (a, 't) gexpr -> (a, 't) gexpr -> bool = | EApp { f = e1; args = args1 }, EApp { f = e2; args = args2 } -> equal e1 e2 && equal_list args1 args2 | EAssert e1, EAssert e2 -> equal e1 e2 - | EOp op1, EOp op2 -> equal_ops op1 op2 + | EOp { op = op1; tys = tys1 }, EOp { op = op2; tys = tys2 } -> + Operator.equal op1 op2 && Type.equal_list tys1 tys2 | ( EDefault { excepts = exc1; just = def1; cons = cons1 }, EDefault { excepts = exc2; just = def2; cons = cons2 } ) -> equal def1 def2 && equal cons1 cons2 && equal_list exc1 exc2 @@ -734,15 +559,16 @@ let rec compare : type a. (a, _) gexpr -> (a, _) gexpr -> int = | EApp {f=f1; args=args1}, EApp {f=f2; args=args2} -> compare f1 f2 @@< fun () -> List.compare compare args1 args2 - | EOp op1, EOp op2 -> - compare_op op1 op2 + | EOp {op=op1; tys=tys1}, EOp {op=op2; tys=tys2} -> + Operator.compare op1 op2 @@< fun () -> + List.compare Type.compare tys1 tys2 | EArray a1, EArray a2 -> List.compare compare a1 a2 | EVar v1, EVar v2 -> Bindlib.compare_vars v1 v2 | EAbs {binder=binder1; tys=typs1}, EAbs {binder=binder2; tys=typs2} -> - List.compare compare_typ typs1 typs2 @@< fun () -> + List.compare Type.compare typs1 typs2 @@< fun () -> let _, e1, e2 = Bindlib.unmbind2 binder1 binder2 in compare e1 e2 | EIfThenElse {cond=i1; etrue=t1; efalse=e1}, @@ -835,7 +661,7 @@ let rec free_vars : type a. (a, 't) gexpr -> (a, 't) gexpr Var.Set.t = function let remove_logging_calls e = let rec f e = match Marked.unmark e with - | EApp { f = EOp (Unop (Log _)), _; args = [arg] } -> map ~f arg + | EApp { f = EOp { op = Log _; _ }, _; args = [arg] } -> map ~f arg | _ -> map ~f e in f e @@ -903,7 +729,7 @@ let make_app e u pos = (fun tf tx -> match Marked.unmark tf with | TArrow (tx', tr) -> - assert (unifiable tx.ty tx'); + assert (Type.unifiable tx.ty tx'); (* wrong arg type *) tr | TAny -> tf @@ -930,7 +756,7 @@ let make_multiple_let_in xs taus e1s e2 mpos = let make_default_unboxed excepts just cons = let rec bool_value = function | ELit (LBool b), _ -> Some b - | EApp { f = EOp (Unop (Log (l, _))), _; args = [e]; _ }, _ + | EApp { f = EOp { op = Log (l, _); _ }, _; args = [e]; _ }, _ when l <> PosRecordIfTrueBool (* we don't remove the log calls corresponding to source code definitions !*) -> @@ -959,33 +785,3 @@ let make_tuple el m0 = (List.map (fun e -> Marked.get_mark e) el) in etuple el m - -let translate_op_kind : type a. a op_kind -> 'b op_kind = function - | KInt -> KInt - | KRat -> KRat - | KMoney -> KMoney - | KDate -> KDate - | KDuration -> KDuration - -let translate_op : type a. a operator -> 'b operator = function - | Ternop o -> Ternop o - | Binop o -> - Binop - (match o with - | Add k -> Add (translate_op_kind k) - | Sub k -> Sub (translate_op_kind k) - | Mult k -> Mult (translate_op_kind k) - | Div k -> Div (translate_op_kind k) - | Lt k -> Lt (translate_op_kind k) - | Lte k -> Lte (translate_op_kind k) - | Gt k -> Gt (translate_op_kind k) - | Gte k -> Gte (translate_op_kind k) - | (And | Or | Xor | Eq | Neq | Map | Concat | Filter) as o -> o) - | Unop o -> - Unop - (match o with - | Minus k -> Minus (translate_op_kind k) - | ( Not | Log _ | Length | IntToRat | MoneyToRat | RatToMoney | GetDay - | GetMonth | GetYear | FirstDayOfMonth | LastDayOfMonth | RoundMoney - | RoundDecimal ) as o -> - o) diff --git a/compiler/shared_ast/expr.mli b/compiler/shared_ast/expr.mli index 36db1d5c..f33a3b10 100644 --- a/compiler/shared_ast/expr.mli +++ b/compiler/shared_ast/expr.mli @@ -66,7 +66,7 @@ val eapp : val eassert : (([< dcalc | lcalc ] as 'a), 't) boxed_gexpr -> 't -> ('a, 't) boxed_gexpr -val eop : 'a any operator -> 't -> ('a, 't) boxed_gexpr +val eop : ('a any, 'k) operator -> typ list -> 't -> ('a, 't) boxed_gexpr val edefault : (([< desugared | scopelang | dcalc ] as 'a), 't) boxed_gexpr list -> @@ -310,11 +310,6 @@ val make_tuple : (** {2 Transformations} *) -val translate_op : - [< desugared | scopelang | dcalc | lcalc ] operator -> 'b any operator -(** Operators are actually all the same after initial desambiguation, so this - function allows converting their types ; otherwise, this is the identity *) - val remove_logging_calls : ('a any, 't) gexpr -> ('a, 't) boxed_gexpr (** Removes all calls to [Log] unary operators in the AST, replacing them by their argument. *) @@ -340,8 +335,6 @@ val compare : ('a, 't) gexpr -> ('a, 't) gexpr -> int (** Standard comparison function, suitable for e.g. [Set.Make]. Ignores position information *) -val equal_typ : typ -> typ -> bool -val compare_typ : typ -> typ -> int val is_value : ('a any, 't) gexpr -> bool val free_vars : ('a any, 't) gexpr -> ('a, 't) gexpr Var.Set.t diff --git a/compiler/shared_ast/operator.ml b/compiler/shared_ast/operator.ml new file mode 100644 index 00000000..8def0dea --- /dev/null +++ b/compiler/shared_ast/operator.ml @@ -0,0 +1,546 @@ +(* This file is part of the Catala compiler, a specification language for tax + and social benefits computation rules. Copyright (C) 2020 Inria, contributor: + Louis Gesbert + + Licensed under the Apache License, Version 2.0 (the "License"); you may not + use this file except in compliance with the License. You may obtain a copy of + the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations under + the License. *) + +open Catala_utils +open Definitions +include Definitions.Op + +let name : type a k. (a, k) t -> string = function + | Not -> "o_not" + | Length -> "o_length" + | IntToRat -> "o_intToRat" + | MoneyToRat -> "o_moneyToRat" + | RatToMoney -> "o_ratToMoney" + | GetDay -> "o_getDay" + | GetMonth -> "o_getMonth" + | GetYear -> "o_getYear" + | FirstDayOfMonth -> "o_firstDayOfMonth" + | LastDayOfMonth -> "o_lastDayOfMonth" + | RoundMoney -> "o_roundMoney" + | RoundDecimal -> "o_roundDecimal" + | Log _ -> "o_log" + | Minus -> "o_minus" + | Minus_int -> "o_minus_int" + | Minus_rat -> "o_minus_rat" + | Minus_mon -> "o_minus_mon" + | Minus_dur -> "o_minus_dur" + | And -> "o_and" + | Or -> "o_or" + | Xor -> "o_xor" + | Eq -> "o_eq" + | Map -> "o_map" + | Concat -> "o_concat" + | Filter -> "o_filter" + | Add -> "o_add" + | Add_int_int -> "o_add_int_int" + | Add_rat_rat -> "o_add_rat_rat" + | Add_mon_mon -> "o_add_mon_mon" + | Add_dat_dur -> "o_add_dat_dur" + | Add_dur_dur -> "o_add_dur_dur" + | Sub -> "o_sub" + | Sub_int_int -> "o_sub_int_int" + | Sub_rat_rat -> "o_sub_rat_rat" + | Sub_mon_mon -> "o_sub_mon_mon" + | Sub_dat_dat -> "o_sub_dat_dat" + | Sub_dat_dur -> "o_sub_dat_dur" + | Sub_dur_dur -> "o_sub_dur_dur" + | Mult -> "o_mult" + | Mult_int_int -> "o_mult_int_int" + | Mult_rat_rat -> "o_mult_rat_rat" + | Mult_mon_rat -> "o_mult_mon_rat" + | Mult_dur_int -> "o_mult_dur_int" + | Div -> "o_div" + | Div_int_int -> "o_div_int_int" + | Div_rat_rat -> "o_div_rat_rat" + | Div_mon_mon -> "o_div_mon_mon" + | Div_mon_rat -> "o_div_mon_mon" + | Lt -> "o_lt" + | Lt_int_int -> "o_lt_int_int" + | Lt_rat_rat -> "o_lt_rat_rat" + | Lt_mon_mon -> "o_lt_mon_mon" + | Lt_dur_dur -> "o_lt_dur_dur" + | Lt_dat_dat -> "o_lt_dat_dat" + | Lte -> "o_lte" + | Lte_int_int -> "o_lte_int_int" + | Lte_rat_rat -> "o_lte_rat_rat" + | Lte_mon_mon -> "o_lte_mon_mon" + | Lte_dur_dur -> "o_lte_dur_dur" + | Lte_dat_dat -> "o_lte_dat_dat" + | Gt -> "o_gt" + | Gt_int_int -> "o_gt_int_int" + | Gt_rat_rat -> "o_gt_rat_rat" + | Gt_mon_mon -> "o_gt_mon_mon" + | Gt_dur_dur -> "o_gt_dur_dur" + | Gt_dat_dat -> "o_gt_dat_dat" + | Gte -> "o_gte" + | Gte_int_int -> "o_gte_int_int" + | Gte_rat_rat -> "o_gte_rat_rat" + | Gte_mon_mon -> "o_gte_mon_mon" + | Gte_dur_dur -> "o_gte_dur_dur" + | Gte_dat_dat -> "o_gte_dat_dat" + | Eq_int_int -> "o_eq_int_int" + | Eq_rat_rat -> "o_eq_rat_rat" + | Eq_mon_mon -> "o_eq_mon_mon" + | Eq_dur_dur -> "o_eq_dur_dur" + | Eq_dat_dat -> "o_eq_dat_dat" + | Fold -> "o_fold" + +let compare_log_entries l1 l2 = + match l1, l2 with + | VarDef t1, VarDef t2 -> Type.compare (t1, Pos.no_pos) (t2, Pos.no_pos) + | BeginCall, BeginCall + | EndCall, EndCall + | PosRecordIfTrueBool, PosRecordIfTrueBool -> + 0 + | VarDef _, _ -> -1 + | _, VarDef _ -> 1 + | BeginCall, _ -> -1 + | _, BeginCall -> 1 + | EndCall, _ -> -1 + | _, EndCall -> 1 + | PosRecordIfTrueBool, _ -> . + | _, PosRecordIfTrueBool -> . + +let compare (type a k a2 k2) (t1 : (a, k) t) (t2 : (a2, k2) t) = + match[@ocamlformat "disable"] t1, t2 with + | Log (l1, info1), Log (l2, info2) -> ( + match compare_log_entries l1 l2 with + | 0 -> List.compare Uid.MarkedString.compare info1 info2 + | n -> n) + | Not, Not + | Length, Length + | IntToRat, IntToRat + | MoneyToRat, MoneyToRat + | RatToMoney, RatToMoney + | GetDay, GetDay + | GetMonth, GetMonth + | GetYear, GetYear + | FirstDayOfMonth, FirstDayOfMonth + | LastDayOfMonth, LastDayOfMonth + | RoundMoney, RoundMoney + | RoundDecimal, RoundDecimal + | Minus, Minus + | Minus_int, Minus_int + | Minus_rat, Minus_rat + | Minus_mon, Minus_mon + | Minus_dur, Minus_dur + | And, And + | Or, Or + | Xor, Xor + | Eq, Eq + | Map, Map + | Concat, Concat + | Filter, Filter + | Add, Add + | Add_int_int, Add_int_int + | Add_rat_rat, Add_rat_rat + | Add_mon_mon, Add_mon_mon + | Add_dat_dur, Add_dat_dur + | Add_dur_dur, Add_dur_dur + | Sub, Sub + | Sub_int_int, Sub_int_int + | Sub_rat_rat, Sub_rat_rat + | Sub_mon_mon, Sub_mon_mon + | Sub_dat_dat, Sub_dat_dat + | Sub_dat_dur, Sub_dat_dur + | Sub_dur_dur, Sub_dur_dur + | Mult, Mult + | Mult_int_int, Mult_int_int + | Mult_rat_rat, Mult_rat_rat + | Mult_mon_rat, Mult_mon_rat + | Mult_dur_int, Mult_dur_int + | Div, Div + | Div_int_int, Div_int_int + | Div_rat_rat, Div_rat_rat + | Div_mon_mon, Div_mon_mon + | Div_mon_rat, Div_mon_rat + | Lt, Lt + | Lt_int_int, Lt_int_int + | Lt_rat_rat, Lt_rat_rat + | Lt_mon_mon, Lt_mon_mon + | Lt_dat_dat, Lt_dat_dat + | Lt_dur_dur, Lt_dur_dur + | Lte, Lte + | Lte_int_int, Lte_int_int + | Lte_rat_rat, Lte_rat_rat + | Lte_mon_mon, Lte_mon_mon + | Lte_dat_dat, Lte_dat_dat + | Lte_dur_dur, Lte_dur_dur + | Gt, Gt + | Gt_int_int, Gt_int_int + | Gt_rat_rat, Gt_rat_rat + | Gt_mon_mon, Gt_mon_mon + | Gt_dat_dat, Gt_dat_dat + | Gt_dur_dur, Gt_dur_dur + | Gte, Gte + | Gte_int_int, Gte_int_int + | Gte_rat_rat, Gte_rat_rat + | Gte_mon_mon, Gte_mon_mon + | Gte_dat_dat, Gte_dat_dat + | Gte_dur_dur, Gte_dur_dur + | Eq_int_int, Eq_int_int + | Eq_rat_rat, Eq_rat_rat + | Eq_mon_mon, Eq_mon_mon + | Eq_dat_dat, Eq_dat_dat + | Eq_dur_dur, Eq_dur_dur + | Fold, Fold -> 0 + | Not, _ -> -1 | _, Not -> 1 + | Length, _ -> -1 | _, Length -> 1 + | IntToRat, _ -> -1 | _, IntToRat -> 1 + | MoneyToRat, _ -> -1 | _, MoneyToRat -> 1 + | RatToMoney, _ -> -1 | _, RatToMoney -> 1 + | GetDay, _ -> -1 | _, GetDay -> 1 + | GetMonth, _ -> -1 | _, GetMonth -> 1 + | GetYear, _ -> -1 | _, GetYear -> 1 + | FirstDayOfMonth, _ -> -1 | _, FirstDayOfMonth -> 1 + | LastDayOfMonth, _ -> -1 | _, LastDayOfMonth -> 1 + | RoundMoney, _ -> -1 | _, RoundMoney -> 1 + | RoundDecimal, _ -> -1 | _, RoundDecimal -> 1 + | Log _, _ -> -1 | _, Log _ -> 1 + | Minus, _ -> -1 | _, Minus -> 1 + | Minus_int, _ -> -1 | _, Minus_int -> 1 + | Minus_rat, _ -> -1 | _, Minus_rat -> 1 + | Minus_mon, _ -> -1 | _, Minus_mon -> 1 + | Minus_dur, _ -> -1 | _, Minus_dur -> 1 + | And, _ -> -1 | _, And -> 1 + | Or, _ -> -1 | _, Or -> 1 + | Xor, _ -> -1 | _, Xor -> 1 + | Eq, _ -> -1 | _, Eq -> 1 + | Map, _ -> -1 | _, Map -> 1 + | Concat, _ -> -1 | _, Concat -> 1 + | Filter, _ -> -1 | _, Filter -> 1 + | Add, _ -> -1 | _, Add -> 1 + | Add_int_int, _ -> -1 | _, Add_int_int -> 1 + | Add_rat_rat, _ -> -1 | _, Add_rat_rat -> 1 + | Add_mon_mon, _ -> -1 | _, Add_mon_mon -> 1 + | Add_dat_dur, _ -> -1 | _, Add_dat_dur -> 1 + | Add_dur_dur, _ -> -1 | _, Add_dur_dur -> 1 + | Sub, _ -> -1 | _, Sub -> 1 + | Sub_int_int, _ -> -1 | _, Sub_int_int -> 1 + | Sub_rat_rat, _ -> -1 | _, Sub_rat_rat -> 1 + | Sub_mon_mon, _ -> -1 | _, Sub_mon_mon -> 1 + | Sub_dat_dat, _ -> -1 | _, Sub_dat_dat -> 1 + | Sub_dat_dur, _ -> -1 | _, Sub_dat_dur -> 1 + | Sub_dur_dur, _ -> -1 | _, Sub_dur_dur -> 1 + | Mult, _ -> -1 | _, Mult -> 1 + | Mult_int_int, _ -> -1 | _, Mult_int_int -> 1 + | Mult_rat_rat, _ -> -1 | _, Mult_rat_rat -> 1 + | Mult_mon_rat, _ -> -1 | _, Mult_mon_rat -> 1 + | Mult_dur_int, _ -> -1 | _, Mult_dur_int -> 1 + | Div, _ -> -1 | _, Div -> 1 + | Div_int_int, _ -> -1 | _, Div_int_int -> 1 + | Div_rat_rat, _ -> -1 | _, Div_rat_rat -> 1 + | Div_mon_mon, _ -> -1 | _, Div_mon_mon -> 1 + | Div_mon_rat, _ -> -1 | _, Div_mon_rat -> 1 + | Lt, _ -> -1 | _, Lt -> 1 + | Lt_int_int, _ -> -1 | _, Lt_int_int -> 1 + | Lt_rat_rat, _ -> -1 | _, Lt_rat_rat -> 1 + | Lt_mon_mon, _ -> -1 | _, Lt_mon_mon -> 1 + | Lt_dat_dat, _ -> -1 | _, Lt_dat_dat -> 1 + | Lt_dur_dur, _ -> -1 | _, Lt_dur_dur -> 1 + | Lte, _ -> -1 | _, Lte -> 1 + | Lte_int_int, _ -> -1 | _, Lte_int_int -> 1 + | Lte_rat_rat, _ -> -1 | _, Lte_rat_rat -> 1 + | Lte_mon_mon, _ -> -1 | _, Lte_mon_mon -> 1 + | Lte_dat_dat, _ -> -1 | _, Lte_dat_dat -> 1 + | Lte_dur_dur, _ -> -1 | _, Lte_dur_dur -> 1 + | Gt, _ -> -1 | _, Gt -> 1 + | Gt_int_int, _ -> -1 | _, Gt_int_int -> 1 + | Gt_rat_rat, _ -> -1 | _, Gt_rat_rat -> 1 + | Gt_mon_mon, _ -> -1 | _, Gt_mon_mon -> 1 + | Gt_dat_dat, _ -> -1 | _, Gt_dat_dat -> 1 + | Gt_dur_dur, _ -> -1 | _, Gt_dur_dur -> 1 + | Gte, _ -> -1 | _, Gte -> 1 + | Gte_int_int, _ -> -1 | _, Gte_int_int -> 1 + | Gte_rat_rat, _ -> -1 | _, Gte_rat_rat -> 1 + | Gte_mon_mon, _ -> -1 | _, Gte_mon_mon -> 1 + | Gte_dat_dat, _ -> -1 | _, Gte_dat_dat -> 1 + | Gte_dur_dur, _ -> -1 | _, Gte_dur_dur -> 1 + | Eq_int_int, _ -> -1 | _, Eq_int_int -> 1 + | Eq_rat_rat, _ -> -1 | _, Eq_rat_rat -> 1 + | Eq_mon_mon, _ -> -1 | _, Eq_mon_mon -> 1 + | Eq_dat_dat, _ -> -1 | _, Eq_dat_dat -> 1 + | Eq_dur_dur, _ -> -1 | _, Eq_dur_dur -> 1 + | Fold, _ | _, Fold -> . + +let equal (type a k a2 k2) (t1 : (a, k) t) (t2 : (a2, k2) t) = compare t1 t2 = 0 + +(* Classification of operators *) + +let kind_dispatch : + type a b k. + polymorphic:((_, polymorphic) t -> b) -> + monomorphic:((_, monomorphic) t -> b) -> + ?overloaded:((_, overloaded) t -> b) -> + ?resolved:((_, resolved) t -> b) -> + (a, k) t -> + b = + fun ~polymorphic ~monomorphic ?(overloaded = fun _ -> assert false) + ?(resolved = fun _ -> assert false) op -> + match op with + | ( Not | IntToRat | MoneyToRat | RatToMoney | GetDay | GetMonth | GetYear + | FirstDayOfMonth | LastDayOfMonth | RoundMoney | RoundDecimal | And | Or + | Xor ) as op -> + monomorphic op + | (Log _ | Length | Eq | Map | Concat | Filter | Fold) as op -> polymorphic op + | (Minus | Add | Sub | Mult | Div | Lt | Lte | Gt | Gte) as op -> + overloaded op + | ( Minus_int | Minus_rat | Minus_mon | Minus_dur | Add_int_int | Add_rat_rat + | Add_mon_mon | Add_dat_dur | Add_dur_dur | Sub_int_int | Sub_rat_rat + | Sub_mon_mon | Sub_dat_dat | Sub_dat_dur | Sub_dur_dur | Mult_int_int + | Mult_rat_rat | Mult_mon_rat | Mult_dur_int | Div_int_int | Div_rat_rat + | Div_mon_mon | Div_mon_rat | Lt_int_int | Lt_rat_rat | Lt_mon_mon + | Lt_dat_dat | Lt_dur_dur | Lte_int_int | Lte_rat_rat | Lte_mon_mon + | Lte_dat_dat | Lte_dur_dur | Gt_int_int | Gt_rat_rat | Gt_mon_mon + | Gt_dat_dat | Gt_dur_dur | Gte_int_int | Gte_rat_rat | Gte_mon_mon + | Gte_dat_dat | Gte_dur_dur | Eq_int_int | Eq_rat_rat | Eq_mon_mon + | Eq_dat_dat | Eq_dur_dur ) as op -> + resolved op + +(* Glorified identity... allowed operators are the same in scopelang, dcalc, + lcalc *) +let translate : + type k. + ([< scopelang | dcalc | lcalc ], k) t -> + ([< scopelang | dcalc | lcalc ], k) t = + fun op -> + match op with + | Length -> Length + | Log (i, l) -> Log (i, l) + | Eq -> Eq + | Map -> Map + | Concat -> Concat + | Filter -> Filter + | Fold -> Fold + | Not -> Not + | IntToRat -> IntToRat + | MoneyToRat -> MoneyToRat + | RatToMoney -> RatToMoney + | GetDay -> GetDay + | GetMonth -> GetMonth + | GetYear -> GetYear + | FirstDayOfMonth -> FirstDayOfMonth + | LastDayOfMonth -> LastDayOfMonth + | RoundMoney -> RoundMoney + | RoundDecimal -> RoundDecimal + | And -> And + | Or -> Or + | Xor -> Xor + | Minus_int -> Minus_int + | Minus_rat -> Minus_rat + | Minus_mon -> Minus_mon + | Minus_dur -> Minus_dur + | Add_int_int -> Add_int_int + | Add_rat_rat -> Add_rat_rat + | Add_mon_mon -> Add_mon_mon + | Add_dat_dur -> Add_dat_dur + | Add_dur_dur -> Add_dur_dur + | Sub_int_int -> Sub_int_int + | Sub_rat_rat -> Sub_rat_rat + | Sub_mon_mon -> Sub_mon_mon + | Sub_dat_dat -> Sub_dat_dat + | Sub_dat_dur -> Sub_dat_dur + | Sub_dur_dur -> Sub_dur_dur + | Mult_int_int -> Mult_int_int + | Mult_rat_rat -> Mult_rat_rat + | Mult_mon_rat -> Mult_mon_rat + | Mult_dur_int -> Mult_dur_int + | Div_int_int -> Div_int_int + | Div_rat_rat -> Div_rat_rat + | Div_mon_mon -> Div_mon_mon + | Div_mon_rat -> Div_mon_rat + | Lt_int_int -> Lt_int_int + | Lt_rat_rat -> Lt_rat_rat + | Lt_mon_mon -> Lt_mon_mon + | Lt_dat_dat -> Lt_dat_dat + | Lt_dur_dur -> Lt_dur_dur + | Lte_int_int -> Lte_int_int + | Lte_rat_rat -> Lte_rat_rat + | Lte_mon_mon -> Lte_mon_mon + | Lte_dat_dat -> Lte_dat_dat + | Lte_dur_dur -> Lte_dur_dur + | Gt_int_int -> Gt_int_int + | Gt_rat_rat -> Gt_rat_rat + | Gt_mon_mon -> Gt_mon_mon + | Gt_dat_dat -> Gt_dat_dat + | Gt_dur_dur -> Gt_dur_dur + | Gte_int_int -> Gte_int_int + | Gte_rat_rat -> Gte_rat_rat + | Gte_mon_mon -> Gte_mon_mon + | Gte_dat_dat -> Gte_dat_dat + | Gte_dur_dur -> Gte_dur_dur + | Eq_int_int -> Eq_int_int + | Eq_rat_rat -> Eq_rat_rat + | Eq_mon_mon -> Eq_mon_mon + | Eq_dat_dat -> Eq_dat_dat + | Eq_dur_dur -> Eq_dur_dur + +let monomorphic_type (op, pos) = + let ( @- ) a b = TArrow ((TLit a, pos), b), pos in + let ( @-> ) a b = TArrow ((TLit a, pos), (TLit b, pos)), pos in + match op with + | Not -> TBool @-> TBool + | IntToRat -> TInt @-> TRat + | MoneyToRat -> TMoney @-> TRat + | RatToMoney -> TRat @-> TMoney + | GetDay -> TDate @-> TInt + | GetMonth -> TDate @-> TInt + | GetYear -> TDate @-> TInt + | FirstDayOfMonth -> TDate @-> TDate + | LastDayOfMonth -> TDate @-> TDate + | RoundMoney -> TMoney @-> TMoney + | RoundDecimal -> TRat @-> TRat + | And -> TBool @- TBool @-> TBool + | Or -> TBool @- TBool @-> TBool + | Xor -> TBool @- TBool @-> TBool + +let resolved_type (op, pos) = + let ( @- ) a b = TArrow ((TLit a, pos), b), pos in + let ( @-> ) a b = TArrow ((TLit a, pos), (TLit b, pos)), pos in + match op with + | Minus_int -> TInt @-> TInt + | Minus_rat -> TRat @-> TRat + | Minus_mon -> TMoney @-> TMoney + | Minus_dur -> TDuration @-> TDuration + | Add_int_int -> TInt @- TInt @-> TInt + | Add_rat_rat -> TRat @- TRat @-> TRat + | Add_mon_mon -> TMoney @- TMoney @-> TMoney + | Add_dat_dur -> TDate @- TDuration @-> TDate + | Add_dur_dur -> TDuration @- TDuration @-> TDuration + | Sub_int_int -> TInt @- TInt @-> TInt + | Sub_rat_rat -> TRat @- TRat @-> TRat + | Sub_mon_mon -> TMoney @- TMoney @-> TMoney + | Sub_dat_dat -> TDate @- TDate @-> TDuration + | Sub_dat_dur -> TDate @- TDuration @-> TDuration + | Sub_dur_dur -> TDuration @- TDuration @-> TDuration + | Mult_int_int -> TInt @- TInt @-> TInt + | Mult_rat_rat -> TRat @- TRat @-> TRat + | Mult_mon_rat -> TMoney @- TRat @-> TMoney + | Mult_dur_int -> TDuration @- TInt @-> TDuration + | Div_int_int -> TInt @- TInt @-> TInt + | Div_rat_rat -> TRat @- TRat @-> TRat + | Div_mon_mon -> TMoney @- TMoney @-> TRat + | Div_mon_rat -> TMoney @- TRat @-> TMoney + | Lt_int_int -> TInt @- TInt @-> TBool + | Lt_rat_rat -> TRat @- TRat @-> TBool + | Lt_mon_mon -> TMoney @- TMoney @-> TBool + | Lt_dat_dat -> TDate @- TDate @-> TBool + | Lt_dur_dur -> TDuration @- TDuration @-> TBool + | Lte_int_int -> TInt @- TInt @-> TBool + | Lte_rat_rat -> TRat @- TRat @-> TBool + | Lte_mon_mon -> TMoney @- TMoney @-> TBool + | Lte_dat_dat -> TDate @- TDate @-> TBool + | Lte_dur_dur -> TDuration @- TDuration @-> TBool + | Gt_int_int -> TInt @- TInt @-> TBool + | Gt_rat_rat -> TRat @- TRat @-> TBool + | Gt_mon_mon -> TMoney @- TMoney @-> TBool + | Gt_dat_dat -> TDate @- TDate @-> TBool + | Gt_dur_dur -> TDuration @- TDuration @-> TBool + | Gte_int_int -> TInt @- TInt @-> TBool + | Gte_rat_rat -> TRat @- TRat @-> TBool + | Gte_mon_mon -> TMoney @- TMoney @-> TBool + | Gte_dat_dat -> TDate @- TDate @-> TBool + | Gte_dur_dur -> TDuration @- TDuration @-> TBool + | Eq_int_int -> TInt @- TInt @-> TBool + | Eq_rat_rat -> TRat @- TRat @-> TBool + | Eq_mon_mon -> TMoney @- TMoney @-> TBool + | Eq_dat_dat -> TDate @- TDate @-> TBool + | Eq_dur_dur -> TDuration @- TDuration @-> TBool + +let resolve_overload_aux (op : ('a, overloaded) t) (operands : typ_lit list) : + ('b, resolved) t * [ `Straight | `Reversed ] = + match op, operands with + | Minus, [TInt] -> Minus_int, `Straight + | Minus, [TRat] -> Minus_rat, `Straight + | Minus, [TMoney] -> Minus_mon, `Straight + | Minus, [TDuration] -> Minus_dur, `Straight + | Add, [TInt; TInt] -> Add_int_int, `Straight + | Add, [TRat; TRat] -> Add_rat_rat, `Straight + | Add, [TMoney; TMoney] -> Add_mon_mon, `Straight + | Add, [TDuration; TDuration] -> Add_dur_dur, `Straight + | Add, [TDate; TDuration] -> Add_dat_dur, `Straight + | Add, [TDuration; TDate] -> Add_dat_dur, `Reversed + | Sub, [TInt; TInt] -> Sub_int_int, `Straight + | Sub, [TRat; TRat] -> Sub_rat_rat, `Straight + | Sub, [TMoney; TMoney] -> Sub_mon_mon, `Straight + | Sub, [TDuration; TDuration] -> Sub_dur_dur, `Straight + | Sub, [TDate; TDate] -> Sub_dat_dat, `Straight + | Sub, [TDate; TDuration] -> Sub_dat_dur, `Straight + | Mult, [TInt; TInt] -> Mult_int_int, `Straight + | Mult, [TRat; TRat] -> Mult_rat_rat, `Straight + | Mult, [TMoney; TRat] -> Mult_mon_rat, `Straight + | Mult, [TRat; TMoney] -> Mult_mon_rat, `Reversed + | Mult, [TDuration; TInt] -> Mult_dur_int, `Straight + | Mult, [TInt; TDuration] -> Mult_dur_int, `Reversed + | Div, [TInt; TInt] -> Div_int_int, `Straight + | Div, [TRat; TRat] -> Div_rat_rat, `Straight + | Div, [TMoney; TMoney] -> Div_mon_mon, `Straight + | Div, [TMoney; TRat] -> Div_mon_rat, `Straight + | Lt, [TInt; TInt] -> Lt_int_int, `Straight + | Lt, [TRat; TRat] -> Lt_rat_rat, `Straight + | Lt, [TMoney; TMoney] -> Lt_mon_mon, `Straight + | Lt, [TDuration; TDuration] -> Lt_dur_dur, `Straight + | Lt, [TDate; TDate] -> Lt_dat_dat, `Straight + | Lte, [TInt; TInt] -> Lte_int_int, `Straight + | Lte, [TRat; TRat] -> Lte_rat_rat, `Straight + | Lte, [TMoney; TMoney] -> Lte_mon_mon, `Straight + | Lte, [TDuration; TDuration] -> Lte_dur_dur, `Straight + | Lte, [TDate; TDate] -> Lte_dat_dat, `Straight + | Gt, [TInt; TInt] -> Gt_int_int, `Straight + | Gt, [TRat; TRat] -> Gt_rat_rat, `Straight + | Gt, [TMoney; TMoney] -> Gt_mon_mon, `Straight + | Gt, [TDuration; TDuration] -> Gt_dur_dur, `Straight + | Gt, [TDate; TDate] -> Gt_dat_dat, `Straight + | Gte, [TInt; TInt] -> Gte_int_int, `Straight + | Gte, [TRat; TRat] -> Gte_rat_rat, `Straight + | Gte, [TMoney; TMoney] -> Gte_mon_mon, `Straight + | Gte, [TDuration; TDuration] -> Gte_dur_dur, `Straight + | Gte, [TDate; TDate] -> Gte_dat_dat, `Straight + | (Minus | Add | Sub | Mult | Div | Lt | Lte | Gt | Gte), _ -> raise Not_found + +let resolve_overload + ctx + (op : ('a, overloaded) t Marked.pos) + (operands : typ list) : ('b, resolved) t * [ `Straight | `Reversed ] = + try + let operands = + List.map + (fun t -> + match Marked.unmark t with TLit tl -> tl | _ -> raise Not_found) + operands + in + resolve_overload_aux (Marked.unmark op) operands + with Not_found -> + Errors.raise_multispanned_error + ((None, Marked.get_mark op) + :: List.map + (fun ty -> + ( Some + (Format.asprintf "Type %a coming from expression:" + (Print.typ ctx) ty), + Marked.get_mark ty )) + operands) + "I don't know how to apply operator %a on types %a" Print.operator + (Marked.unmark op) + (Format.pp_print_list + ~pp_sep:(fun ppf () -> Format.fprintf ppf " and@ ") + (Print.typ ctx)) + operands + +let overload_type ctx (op : ('a, overloaded) t Marked.pos) (operands : typ list) + : typ = + let rop = fst (resolve_overload ctx op operands) in + resolved_type (Marked.same_mark_as rop op) diff --git a/compiler/shared_ast/operator.mli b/compiler/shared_ast/operator.mli new file mode 100644 index 00000000..04c41670 --- /dev/null +++ b/compiler/shared_ast/operator.mli @@ -0,0 +1,69 @@ +(* This file is part of the Catala compiler, a specification language for tax + and social benefits computation rules. Copyright (C) 2020 Inria, contributor: + Louis Gesbert + + Licensed under the Apache License, Version 2.0 (the "License"); you may not + use this file except in compliance with the License. You may obtain a copy of + the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations under + the License. *) + +(** {1 Catala operator utilities} *) + +open Catala_utils +open Definitions +include module type of Definitions.Op + +val equal : ('a1, 'k1) t -> ('a2, 'k2) t -> bool +val compare : ('a1, 'k1) t -> ('a2, 'k2) t -> int + +val name : ('a, 'k) t -> string +(** Returns the operator name as a valid ident starting with a lowercase + character. This is different from Print.operator which returns operator + symbols, e.g. [+$]. *) + +val kind_dispatch : + polymorphic:((_ any, polymorphic) t -> 'b) -> + monomorphic:((_ any, monomorphic) t -> 'b) -> + ?overloaded:((desugared, overloaded) t -> 'b) -> + ?resolved:(([< scopelang | dcalc | lcalc ], resolved) t -> 'b) -> + ('a, 'k) t -> + 'b +(** Calls one of the supplied functions depending on the kind of the operator *) + +val translate : + ([< scopelang | dcalc | lcalc ], 'k) t -> + ([< scopelang | dcalc | lcalc ], 'k) t +(** An identity function that allows translating an operator between different + passes that don't change operator types *) + +(** {2 Getting the types of operators} *) + +val monomorphic_type : ('a any, monomorphic) t Marked.pos -> typ + +val resolved_type : + ([< scopelang | dcalc | lcalc ], resolved) t Marked.pos -> typ + +val overload_type : + decl_ctx -> (desugared, overloaded) t Marked.pos -> typ list -> typ +(** The type for typing overloads is different since the types of the operands + are required in advance. + + @raise a detailed user error if no matching operator can be found *) + +(** Polymorphic operators are typed directly within [Typing], since their types + may contain type variables that can't be expressed outside of it*) + +(** {2 Overload handling} *) + +val resolve_overload : + decl_ctx -> + (desugared, overloaded) t Marked.pos -> + typ list -> + ([< scopelang | dcalc | lcalc ], resolved) t * [ `Straight | `Reversed ] diff --git a/compiler/shared_ast/print.ml b/compiler/shared_ast/print.ml index 5019d0b1..79df5e73 100644 --- a/compiler/shared_ast/print.ml +++ b/compiler/shared_ast/print.ml @@ -42,7 +42,7 @@ let base_type (fmt : Format.formatter) (s : string) : unit = let punctuation (fmt : Format.formatter) (s : string) : unit = Cli.format_with_style [ANSITerminal.cyan] fmt s -let operator (fmt : Format.formatter) (s : string) : unit = +let op_style (fmt : Format.formatter) (s : string) : unit = Cli.format_with_style [ANSITerminal.green] fmt s let lit_style (fmt : Format.formatter) (s : string) : unit = @@ -81,7 +81,7 @@ let rec typ (ctx : decl_ctx option) (fmt : Format.formatter) (ty : typ) : unit = | TTuple ts -> Format.fprintf fmt "@[(%a)@]" (Format.pp_print_list - ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ %a@ " operator "*") + ~pp_sep:(fun fmt () -> Format.fprintf fmt "@ %a@ " op_style "*") typ) ts | TStruct s -> ( @@ -113,7 +113,7 @@ let rec typ (ctx : decl_ctx option) (fmt : Format.formatter) (ty : typ) : unit = punctuation "]") | TOption t -> Format.fprintf fmt "@[%a@ %a@]" base_type "option" typ t | TArrow (t1, t2) -> - Format.fprintf fmt "@[%a %a@ %a@]" typ_with_parens t1 operator "→" + Format.fprintf fmt "@[%a %a@ %a@]" typ_with_parens t1 op_style "→" typ t2 | TArray t1 -> Format.fprintf fmt "@[%a@ %a@]" base_type "collection" typ t1 @@ -137,38 +137,6 @@ let lit (type a) (fmt : Format.formatter) (l : a glit) : unit = | LDate d -> lit_style fmt (Runtime.date_to_string d) | LDuration d -> lit_style fmt (Runtime.duration_to_string d) -let op_kind (fmt : Format.formatter) (k : 'a op_kind) = - Format.fprintf fmt "%s" - (match k with - | KInt -> "" - | KRat -> "." - | KMoney -> "$" - | KDate -> "@" - | KDuration -> "^") - -let binop (fmt : Format.formatter) (op : 'a binop) : unit = - operator fmt - (match op with - | Add k -> Format.asprintf "+%a" op_kind k - | Sub k -> Format.asprintf "-%a" op_kind k - | Mult k -> Format.asprintf "*%a" op_kind k - | Div k -> Format.asprintf "/%a" op_kind k - | And -> "&&" - | Or -> "||" - | Xor -> "xor" - | Eq -> "=" - | Neq -> "!=" - | Lt k -> Format.asprintf "%s%a" "<" op_kind k - | Lte k -> Format.asprintf "%s%a" "<=" op_kind k - | Gt k -> Format.asprintf "%s%a" ">" op_kind k - | Gte k -> Format.asprintf "%s%a" ">=" op_kind k - | Concat -> "++" - | Map -> "map" - | Filter -> "filter") - -let ternop (fmt : Format.formatter) (op : ternop) : unit = - match op with Fold -> keyword fmt "fold" - let log_entry (fmt : Format.formatter) (entry : log_entry) : unit = Format.fprintf fmt "@<2>%a" (fun fmt -> function @@ -179,30 +147,98 @@ let log_entry (fmt : Format.formatter) (entry : log_entry) : unit = Cli.format_with_style [ANSITerminal.green] fmt "☛ ") entry -let unop (fmt : Format.formatter) (op : 'a unop) : unit = +let operator_to_string : type a k. (a, k) Op.t -> string = function + | Not -> "~" + | Length -> "length" + | IntToRat -> "int_to_rat" + | MoneyToRat -> "money_to_rat" + | RatToMoney -> "rat_to_money" + | GetDay -> "get_day" + | GetMonth -> "get_month" + | GetYear -> "get_year" + | FirstDayOfMonth -> "first_day_of_month" + | LastDayOfMonth -> "last_day_of_month" + | RoundMoney -> "round_money" + | RoundDecimal -> "round_decimal" + | Log _ -> "Log" + | Minus -> "-" + | Minus_int -> "-!" + | Minus_rat -> "-." + | Minus_mon -> "-$" + | Minus_dur -> "-^" + | And -> "&&" + | Or -> "||" + | Xor -> "xor" + | Eq -> "=" + | Map -> "map" + | Concat -> "++" + | Filter -> "filter" + | Add -> "+" + | Add_int_int -> "+!" + | Add_rat_rat -> "+." + | Add_mon_mon -> "+$" + | Add_dat_dur -> "+@" + | Add_dur_dur -> "+^" + | Sub -> "-" + | Sub_int_int -> "-!" + | Sub_rat_rat -> "-." + | Sub_mon_mon -> "-$" + | Sub_dat_dat -> "-@" + | Sub_dat_dur -> "-@^" + | Sub_dur_dur -> "-^" + | Mult -> "*" + | Mult_int_int -> "*!" + | Mult_rat_rat -> "*." + | Mult_mon_rat -> "*$" + | Mult_dur_int -> "*^" + | Div -> "/" + | Div_int_int -> "/!" + | Div_rat_rat -> "/." + | Div_mon_mon -> "/$" + | Div_mon_rat -> "/$." + | Lt -> "<" + | Lt_int_int -> " "<." + | Lt_mon_mon -> "<$" + | Lt_dur_dur -> "<^" + | Lt_dat_dat -> "<@" + | Lte -> "<=" + | Lte_int_int -> "<=!" + | Lte_rat_rat -> "<=." + | Lte_mon_mon -> "<=$" + | Lte_dur_dur -> "<=^" + | Lte_dat_dat -> "<=@" + | Gt -> ">" + | Gt_int_int -> ">!" + | Gt_rat_rat -> ">." + | Gt_mon_mon -> ">$" + | Gt_dur_dur -> ">^" + | Gt_dat_dat -> ">@" + | Gte -> ">=" + | Gte_int_int -> ">=!" + | Gte_rat_rat -> ">=." + | Gte_mon_mon -> ">=$" + | Gte_dur_dur -> ">=^" + | Gte_dat_dat -> ">=@" + | Eq_int_int -> "=!" + | Eq_rat_rat -> "=." + | Eq_mon_mon -> "=$" + | Eq_dur_dur -> "=^" + | Eq_dat_dat -> "=@" + | Fold -> "fold" + +let operator (type k) (fmt : Format.formatter) (op : ('a, k) operator) : unit = match op with - | Minus _ -> Format.pp_print_string fmt "-" - | Not -> Format.pp_print_string fmt "~" | Log (entry, infos) -> - Format.fprintf fmt "log@[[%a|%a]@]" log_entry entry + Format.fprintf fmt "%a@[[%a|%a]@]" op_style "log" log_entry entry (Format.pp_print_list ~pp_sep:(fun fmt () -> Format.fprintf fmt ".") (fun fmt info -> Uid.MarkedString.format fmt info)) infos - | Length -> Format.pp_print_string fmt "length" - | IntToRat -> Format.pp_print_string fmt "int_to_rat" - | MoneyToRat -> Format.pp_print_string fmt "money_to_rat" - | RatToMoney -> Format.pp_print_string fmt "rat_to_money" - | GetDay -> Format.pp_print_string fmt "get_day" - | GetMonth -> Format.pp_print_string fmt "get_month" - | GetYear -> Format.pp_print_string fmt "get_year" - | FirstDayOfMonth -> Format.pp_print_string fmt "first_day_of_month" - | LastDayOfMonth -> Format.pp_print_string fmt "last_day_of_month" - | RoundMoney -> Format.pp_print_string fmt "round_money" - | RoundDecimal -> Format.pp_print_string fmt "round_decimal" + | op -> Format.fprintf fmt "%a" op_style (operator_to_string op) let except (fmt : Format.formatter) (exn : except) : unit = - operator fmt + op_style fmt (match exn with | EmptyError -> "EmptyError" | ConflictError -> "ConflictError" @@ -279,16 +315,16 @@ let rec expr_aux : Format.fprintf fmt "%a%a%a %a%a" punctuation "(" var x punctuation ":" (typ ctx) tau punctuation ")")) xs_tau punctuation "→" expr body - | EApp { f = EOp (Binop ((Map | Filter) as op)), _; args = [arg1; arg2] } -> - Format.fprintf fmt "@[%a@ %a@ %a@]" binop op with_parens arg1 + | EApp { f = EOp { op = (Map | Filter) as op; _ }, _; args = [arg1; arg2] } -> + Format.fprintf fmt "@[%a@ %a@ %a@]" operator op with_parens arg1 with_parens arg2 - | EApp { f = EOp (Binop op), _; args = [arg1; arg2] } -> - Format.fprintf fmt "@[%a@ %a@ %a@]" with_parens arg1 binop op + | EApp { f = EOp { op; _ }, _; args = [arg1; arg2] } -> + Format.fprintf fmt "@[%a@ %a@ %a@]" with_parens arg1 operator op with_parens arg2 - | EApp { f = EOp (Unop (Log _)), _; args = [arg1] } when not debug -> + | EApp { f = EOp { op = Log _; _ }, _; args = [arg1] } when not debug -> expr fmt arg1 - | EApp { f = EOp (Unop op), _; args = [arg1] } -> - Format.fprintf fmt "@[%a@ %a@]" unop op with_parens arg1 + | EApp { f = EOp { op; _ }, _; args = [arg1] } -> + Format.fprintf fmt "@[%a@ %a@]" operator op with_parens arg1 | EApp { f; args } -> Format.fprintf fmt "@[%a@ %a@]" expr f (Format.pp_print_list @@ -298,9 +334,7 @@ let rec expr_aux : | EIfThenElse { cond; etrue; efalse } -> Format.fprintf fmt "@[%a@ %a@ %a@ %a@ %a@ %a@]" keyword "if" expr cond keyword "then" expr etrue keyword "else" expr efalse - | EOp (Ternop op) -> ternop fmt op - | EOp (Binop op) -> binop fmt op - | EOp (Unop op) -> unop fmt op + | EOp { op; _ } -> operator fmt op | EDefault { excepts; just; cons } -> if List.length excepts = 0 then Format.fprintf fmt "@[%a%a@ %a@ %a%a@]" punctuation "⟨" expr just @@ -313,7 +347,7 @@ let rec expr_aux : excepts punctuation "|" expr just punctuation "⊢" expr cons punctuation "⟩" | EErrorOnEmpty e' -> - Format.fprintf fmt "%a@ %a" operator "error_empty" with_parens e' + Format.fprintf fmt "%a@ %a" op_style "error_empty" with_parens e' | EAssert e' -> Format.fprintf fmt "@[%a@ %a%a%a@]" keyword "assert" punctuation "(" expr e' punctuation ")" diff --git a/compiler/shared_ast/print.mli b/compiler/shared_ast/print.mli index da53e1e9..d490ee90 100644 --- a/compiler/shared_ast/print.mli +++ b/compiler/shared_ast/print.mli @@ -24,7 +24,7 @@ open Definitions val base_type : Format.formatter -> string -> unit val keyword : Format.formatter -> string -> unit val punctuation : Format.formatter -> string -> unit -val operator : Format.formatter -> string -> unit +val op_style : Format.formatter -> string -> unit val lit_style : Format.formatter -> string -> unit (** {1 Formatters} *) @@ -35,11 +35,8 @@ val tlit : Format.formatter -> typ_lit -> unit val location : Format.formatter -> 'a glocation -> unit val typ : decl_ctx -> Format.formatter -> typ -> unit val lit : Format.formatter -> 'a glit -> unit -val op_kind : Format.formatter -> 'a any op_kind -> unit -val binop : Format.formatter -> 'a any binop -> unit -val ternop : Format.formatter -> ternop -> unit +val operator : Format.formatter -> ('a any, 'k) operator -> unit val log_entry : Format.formatter -> log_entry -> unit -val unop : Format.formatter -> 'a any unop -> unit val except : Format.formatter -> except -> unit val var : Format.formatter -> 'e Var.t -> unit val var_debug : Format.formatter -> 'e Var.t -> unit diff --git a/compiler/shared_ast/shared_ast.ml b/compiler/shared_ast/shared_ast.ml index 1a170742..0195b454 100644 --- a/compiler/shared_ast/shared_ast.ml +++ b/compiler/shared_ast/shared_ast.ml @@ -16,6 +16,8 @@ include Definitions module Var = Var +module Type = Type +module Operator = Operator module Expr = Expr module Scope = Scope module Program = Program diff --git a/compiler/shared_ast/type.ml b/compiler/shared_ast/type.ml new file mode 100644 index 00000000..872b22f1 --- /dev/null +++ b/compiler/shared_ast/type.ml @@ -0,0 +1,87 @@ +(* This file is part of the Catala compiler, a specification language for tax + and social benefits computation rules. Copyright (C) 2020 Inria, contributor: + Louis Gesbert + + Licensed under the Apache License, Version 2.0 (the "License"); you may not + use this file except in compliance with the License. You may obtain a copy of + the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations under + the License. *) + +open Catala_utils +open Definitions + +type t = typ + +let equal_tlit l1 l2 = l1 = l2 +let compare_tlit l1 l2 = Stdlib.compare l1 l2 + +let rec equal ty1 ty2 = + match Marked.unmark ty1, Marked.unmark ty2 with + | TLit l1, TLit l2 -> equal_tlit l1 l2 + | TTuple tys1, TTuple tys2 -> equal_list tys1 tys2 + | TStruct n1, TStruct n2 -> StructName.equal n1 n2 + | TEnum n1, TEnum n2 -> EnumName.equal n1 n2 + | TOption t1, TOption t2 -> equal t1 t2 + | TArrow (t1, t1'), TArrow (t2, t2') -> equal t1 t2 && equal t1' t2' + | TArray t1, TArray t2 -> equal t1 t2 + | TAny, TAny -> true + | ( ( TLit _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArrow _ + | TArray _ | TAny ), + _ ) -> + false + +and equal_list tys1 tys2 = + try List.for_all2 equal tys1 tys2 with Invalid_argument _ -> false + +(* Similar to [equal], but allows TAny holes *) +let rec unifiable ty1 ty2 = + match Marked.unmark ty1, Marked.unmark ty2 with + | TAny, _ | _, TAny -> true + | TLit l1, TLit l2 -> equal_tlit l1 l2 + | TTuple tys1, TTuple tys2 -> unifiable_list tys1 tys2 + | TStruct n1, TStruct n2 -> StructName.equal n1 n2 + | TEnum n1, TEnum n2 -> EnumName.equal n1 n2 + | TOption t1, TOption t2 -> unifiable t1 t2 + | TArrow (t1, t1'), TArrow (t2, t2') -> unifiable t1 t2 && unifiable t1' t2' + | TArray t1, TArray t2 -> unifiable t1 t2 + | ( (TLit _ | TTuple _ | TStruct _ | TEnum _ | TOption _ | TArrow _ | TArray _), + _ ) -> + false + +and unifiable_list tys1 tys2 = + try List.for_all2 unifiable tys1 tys2 with Invalid_argument _ -> false + +let rec compare ty1 ty2 = + match Marked.unmark ty1, Marked.unmark ty2 with + | TLit l1, TLit l2 -> compare_tlit l1 l2 + | TTuple tys1, TTuple tys2 -> List.compare compare tys1 tys2 + | TStruct n1, TStruct n2 -> StructName.compare n1 n2 + | TEnum en1, TEnum en2 -> EnumName.compare en1 en2 + | TOption t1, TOption t2 -> compare t1 t2 + | TArrow (a1, b1), TArrow (a2, b2) -> ( + match compare a1 a2 with 0 -> compare b1 b2 | n -> n) + | TArray t1, TArray t2 -> compare t1 t2 + | TAny, TAny -> 0 + | TLit _, _ -> -1 + | _, TLit _ -> 1 + | TTuple _, _ -> -1 + | _, TTuple _ -> 1 + | TStruct _, _ -> -1 + | _, TStruct _ -> 1 + | TEnum _, _ -> -1 + | _, TEnum _ -> 1 + | TOption _, _ -> -1 + | _, TOption _ -> 1 + | TArrow _, _ -> -1 + | _, TArrow _ -> 1 + | TArray _, _ -> -1 + | _, TArray _ -> 1 + +let rec arrow_return = function TArrow (_, b), _ -> arrow_return b | t -> t diff --git a/compiler/shared_ast/type.mli b/compiler/shared_ast/type.mli new file mode 100644 index 00000000..53282f29 --- /dev/null +++ b/compiler/shared_ast/type.mli @@ -0,0 +1,27 @@ +(* This file is part of the Catala compiler, a specification language for tax + and social benefits computation rules. Copyright (C) 2020 Inria, contributor: + Louis Gesbert + + Licensed under the Apache License, Version 2.0 (the "License"); you may not + use this file except in compliance with the License. You may obtain a copy of + the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + License for the specific language governing permissions and limitations under + the License. *) + +type t = Definitions.typ + +val equal : t -> t -> bool +val equal_list : t list -> t list -> bool +val compare : t -> t -> int + +val unifiable : t -> t -> bool +(** Similar to [equal], but allows TAny holes *) + +val arrow_return : t -> t +(** Returns the last member in nested [TArrow] types *) diff --git a/compiler/shared_ast/typing.ml b/compiler/shared_ast/typing.ml index f20993c4..a7694f2a 100644 --- a/compiler/shared_ast/typing.ml +++ b/compiler/shared_ast/typing.ml @@ -225,73 +225,48 @@ let lit_type (type a) (lit : a A.glit) : naked_typ = | LUnit -> TLit TUnit | LEmptyError -> TAny (Any.fresh ()) -(** Operators have a single type, instead of being polymorphic with constraints. - This allows us to have a simpler type system, while we argue the syntactic - burden of operator annotations helps the programmer visualize the type flow - in the code. *) -let op_type (op : 'a A.operator Marked.pos) : unionfind_typ = +(** [op_type] and [resolve_overload] are a bit similar, and work on disjoint + sets of operators. However, their assumptions are different so we keep the + functions separate. In particular [resolve_overloads] requires its argument + types to be known in advance. *) + +let polymorphic_op_type (op : ('a, Operator.polymorphic) A.operator Marked.pos) + : unionfind_typ = + let open Operator in let pos = Marked.get_mark op in - let bt = UnionFind.make (TLit TBool, pos) in - let it = UnionFind.make (TLit TInt, pos) in - let rt = UnionFind.make (TLit TRat, pos) in - let mt = UnionFind.make (TLit TMoney, pos) in - let dut = UnionFind.make (TLit TDuration, pos) in - let dat = UnionFind.make (TLit TDate, pos) in - let any = UnionFind.make (TAny (Any.fresh ()), pos) in - let array_any = UnionFind.make (TArray any, pos) in - let any2 = UnionFind.make (TAny (Any.fresh ()), pos) in - let array_any2 = UnionFind.make (TArray any2, pos) in - let arr x y = UnionFind.make (TArrow (x, y), pos) in - match Marked.unmark op with - | A.Ternop A.Fold -> - arr (arr any2 (arr any any2)) (arr any2 (arr array_any any2)) - | A.Binop (A.And | A.Or | A.Xor) -> arr bt (arr bt bt) - | A.Binop (A.Add KInt | A.Sub KInt | A.Mult KInt | A.Div KInt) -> - arr it (arr it it) - | A.Binop (A.Add KRat | A.Sub KRat | A.Mult KRat | A.Div KRat) -> - arr rt (arr rt rt) - | A.Binop (A.Add KMoney | A.Sub KMoney) -> arr mt (arr mt mt) - | A.Binop (A.Add KDuration | A.Sub KDuration) -> arr dut (arr dut dut) - | A.Binop (A.Sub KDate) -> arr dat (arr dat dut) - | A.Binop (A.Add KDate) -> arr dat (arr dut dat) - | A.Binop (A.Mult KDuration) -> arr dut (arr it dut) - | A.Binop (A.Div KMoney) -> arr mt (arr mt rt) - | A.Binop (A.Mult KMoney) -> arr mt (arr rt mt) - | A.Binop (A.Lt KInt | A.Lte KInt | A.Gt KInt | A.Gte KInt) -> - arr it (arr it bt) - | A.Binop (A.Lt KRat | A.Lte KRat | A.Gt KRat | A.Gte KRat) -> - arr rt (arr rt bt) - | A.Binop (A.Lt KMoney | A.Lte KMoney | A.Gt KMoney | A.Gte KMoney) -> - arr mt (arr mt bt) - | A.Binop (A.Lt KDate | A.Lte KDate | A.Gt KDate | A.Gte KDate) -> - arr dat (arr dat bt) - | A.Binop (A.Lt KDuration | A.Lte KDuration | A.Gt KDuration | A.Gte KDuration) - -> - arr dut (arr dut bt) - | A.Binop (A.Eq | A.Neq) -> arr any (arr any bt) - | A.Binop A.Map -> arr (arr any any2) (arr array_any array_any2) - | A.Binop A.Filter -> arr (arr any bt) (arr array_any array_any) - | A.Binop A.Concat -> arr array_any (arr array_any array_any) - | A.Unop (A.Minus KInt) -> arr it it - | A.Unop (A.Minus KRat) -> arr rt rt - | A.Unop (A.Minus KMoney) -> arr mt mt - | A.Unop (A.Minus KDuration) -> arr dut dut - | A.Unop A.Not -> arr bt bt - | A.Unop (A.Log (A.PosRecordIfTrueBool, _)) -> arr bt bt - | A.Unop (A.Log _) -> arr any any - | A.Unop A.Length -> arr array_any it - | A.Unop A.GetDay -> arr dat it - | A.Unop A.GetMonth -> arr dat it - | A.Unop A.GetYear -> arr dat it - | A.Unop A.FirstDayOfMonth -> arr dat dat - | A.Unop A.LastDayOfMonth -> arr dat dat - | A.Unop A.RoundMoney -> arr mt mt - | A.Unop A.RoundDecimal -> arr rt rt - | A.Unop A.IntToRat -> arr it rt - | A.Unop A.MoneyToRat -> arr mt rt - | A.Unop A.RatToMoney -> arr rt mt - | Binop (Mult KDate) | Binop (Div (KDate | KDuration)) | Unop (Minus KDate) -> - Errors.raise_spanned_error pos "This operator is not available!" + let any = lazy (UnionFind.make (TAny (Any.fresh ()), pos)) in + let any2 = lazy (UnionFind.make (TAny (Any.fresh ()), pos)) in + let bt = lazy (UnionFind.make (TLit TBool, pos)) in + let it = lazy (UnionFind.make (TLit TInt, pos)) in + let array a = lazy (UnionFind.make (TArray (Lazy.force a), pos)) in + let ( @-> ) x y = + lazy (UnionFind.make (TArrow (Lazy.force x, Lazy.force y), pos)) + in + let ty = + match Marked.unmark op with + | Fold -> (any2 @-> any @-> any2) @-> any2 @-> array any @-> any2 + | Eq -> any @-> any @-> bt + | Map -> (any @-> any2) @-> array any @-> array any2 + | Filter -> (any @-> bt) @-> array any @-> array any + | Concat -> array any @-> array any @-> array any + | Log (PosRecordIfTrueBool, _) -> bt @-> bt + | Log _ -> any @-> any + | Length -> array any @-> it + in + Lazy.force ty + +let resolve_overload_ret_type + (ctx : A.decl_ctx) + e + (op : ('a A.any, Operator.overloaded) A.operator) + tys : unionfind_typ = + let op_ty = + Operator.overload_type ctx + (Marked.mark (Expr.pos e) op) + (List.map (typ_to_ast ~unsafe:true) tys) + (* We use [unsafe] because the error is caught below *) + in + ast_to_typ (Type.arrow_return op_ty) (** {1 Double-directed typing} *) @@ -605,24 +580,41 @@ and typecheck_expr_top_down : let body' = typecheck_expr_top_down ctx env t_ret body in let binder' = Bindlib.bind_mvar xs' (Expr.Box.lift body') in Expr.eabs binder' (List.map typ_to_ast tau_args) mark - | A.EApp { f = (EOp _, _) as e1; args } -> - (* Same as EApp, but the typing order is different to help with - disambiguation: - type of the operator is extracted first (to figure - linked type vars between arguments) - arguments are typed right-to-left, - because our operators with function args always have the functions first, - and the argument types of those functions can always be inferred from the - later operator arguments *) - let t_args = List.map (fun _ -> unionfind (TAny (Any.fresh ()))) args in + | A.EApp { f = (EOp { op; tys }, _) as e1; args } -> + let t_args = List.map ast_to_typ tys in let t_func = List.fold_right (fun t_arg acc -> unionfind (TArrow (t_arg, acc))) t_args tau in - let e1' = typecheck_expr_top_down ctx env t_func e1 in - let args' = - List.rev_map2 - (typecheck_expr_top_down ctx env) - (List.rev t_args) (List.rev args) + let e1', args' = + Operator.kind_dispatch op + ~polymorphic:(fun _ -> + (* Type the operator first, then right-to-left: polymorphic operators + are required to allow the resolution of all type variables this + way *) + let e1' = typecheck_expr_top_down ctx env t_func e1 in + let args' = + List.rev_map2 + (typecheck_expr_top_down ctx env) + (List.rev t_args) (List.rev args) + in + e1', args') + ~overloaded:(fun _ -> + (* Typing the arguments first is required to resolve the operator *) + let args' = List.map2 (typecheck_expr_top_down ctx env) t_args args in + let e1' = typecheck_expr_top_down ctx env t_func e1 in + e1', args') + ~monomorphic:(fun _ -> + (* Here it doesn't matter but may affect the error messages *) + let e1' = typecheck_expr_top_down ctx env t_func e1 in + let args' = List.map2 (typecheck_expr_top_down ctx env) t_args args in + e1', args') + ~resolved:(fun _ -> + (* This case should not fail *) + let e1' = typecheck_expr_top_down ctx env t_func e1 in + let args' = List.map2 (typecheck_expr_top_down ctx env) t_args args in + e1', args') in Expr.eapp e1' args' context_mark | A.EApp { f = e1; args } -> @@ -638,7 +630,35 @@ and typecheck_expr_top_down : let args' = List.map2 (typecheck_expr_top_down ctx env) t_args args in let e1' = typecheck_expr_top_down ctx env t_func e1 in Expr.eapp e1' args' context_mark - | A.EOp op -> Expr.eop op (uf_mark (op_type (Marked.mark pos_e op))) + | A.EOp { op; tys } -> + let tys' = List.map ast_to_typ tys in + let t_ret = unionfind (TAny (Any.fresh ())) in + let t_func = + List.fold_right + (fun t_arg acc -> unionfind (TArrow (t_arg, acc))) + tys' t_ret + in + unify ctx e t_func tau; + let tys, mark = + Operator.kind_dispatch op + ~polymorphic:(fun op -> + tys, uf_mark (polymorphic_op_type (Marked.mark pos_e op))) + ~monomorphic:(fun op -> + let mark = + uf_mark + (ast_to_typ (Operator.monomorphic_type (Marked.mark pos_e op))) + in + List.map typ_to_ast tys', mark) + ~overloaded:(fun op -> + unify ctx e t_ret (resolve_overload_ret_type ctx e op tys'); + List.map typ_to_ast tys', { uf = t_func; pos = pos_e }) + ~resolved:(fun op -> + let mark = + uf_mark (ast_to_typ (Operator.resolved_type (Marked.mark pos_e op))) + in + List.map typ_to_ast tys', mark) + in + Expr.eop op tys mark | A.EDefault { excepts; just; cons } -> let cons' = typecheck_expr_top_down ctx env tau cons in let just' = diff --git a/compiler/surface/ast.ml b/compiler/surface/ast.ml index 4a7706fe..aaa6549a 100644 --- a/compiler/surface/ast.ml +++ b/compiler/surface/ast.ml @@ -246,7 +246,7 @@ type match_case_pattern = name = "match_case_pattern_iter"; }] -type op_kind = KInt | KDec | KMoney | KDate | KDuration +type op_kind = KPoly | KInt | KDec | KMoney | KDate | KDuration [@@deriving visitors { variety = "map"; name = "op_kind_map"; nude = true }, visitors { variety = "iter"; name = "op_kind_iter"; nude = true }] @@ -387,9 +387,12 @@ type literal = type aggregate_func = | AggregateSum of primitive_typ + (* it would be nice to remove the need for specifying the type here like for + extremums, but we need an additionl overload for "neutral element for + addition across types" *) | AggregateCount - | AggregateExtremum of bool * primitive_typ * expression Marked.pos - | AggregateArgExtremum of bool * primitive_typ * expression Marked.pos + | AggregateExtremum of bool * primitive_typ option * expression Marked.pos + | AggregateArgExtremum of bool * primitive_typ option * expression Marked.pos and collection_op = | Exists diff --git a/compiler/surface/lexer.cppo.ml b/compiler/surface/lexer.cppo.ml index 0e701a02..02d4abd8 100644 --- a/compiler/surface/lexer.cppo.ml +++ b/compiler/surface/lexer.cppo.ml @@ -263,6 +263,9 @@ module R = Re.Pcre #ifndef MR_INTERNAL #define MR_INTERNAL MS_INTERNAL #endif +#ifndef MR_MONEY_OP_SUFFIX + #define MR_MONEY_OP_SUFFIX MS_MONEY_OP_SUFFIX +#endif let token_list : (string * token) list = [ @@ -365,6 +368,18 @@ let space_plus = [%sedlex.regexp? Plus white_space] (** Regexp matching white space but not newlines *) let hspace = [%sedlex.regexp? Sub (white_space, Chars "\n\r")] +(** Operator explicit typing suffix chars *) +let op_kind_re = [%sedlex.regexp? "" | MR_MONEY_OP_SUFFIX | Chars "!.@^"] + +let op_kind = function + | "" -> Ast.KPoly + | "!" -> Ast.KInt + | "." -> Ast.KDec + | MS_MONEY_OP_SUFFIX -> Ast.KMoney + | "@" -> Ast.KDate + | "^" -> Ast.KDuration + | _ -> invalid_arg "op_kind" + (** Main lexing function used in code blocks *) let rec lex_code (lexbuf : lexbuf) : token = let prev_lexeme = Utf8.lexeme lexbuf in @@ -629,117 +644,38 @@ let rec lex_code (lexbuf : lexbuf) : token = L.update_acc lexbuf; DECIMAL_LITERAL (dec_parts 1, dec_parts 2) - | "<=@" -> + | "<=", op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:"<=" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - LESSER_EQUAL_DATE - | "<@" -> + LESSER_EQUAL k + | "<", op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:"<" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - LESSER_DATE - | ">=@" -> + LESSER k + | ">=", op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:">=" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - GREATER_EQUAL_DATE - | ">@" -> + GREATER_EQUAL k + | ">", op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:">" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - GREATER_DATE - | "-@" -> + GREATER k + | "-", op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:"-" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - MINUSDATE - | "+@" -> + MINUS k + | "+", op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:"+" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - PLUSDATE - | "<=^" -> + PLUS k + | "*", op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:"*" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - LESSER_EQUAL_DURATION - | "<^" -> + MULT k + | '/', op_kind_re -> + let k = op_kind (String.remove_prefix ~prefix:"/" (Utf8.lexeme lexbuf)) in L.update_acc lexbuf; - LESSER_DURATION - | ">=^" -> - L.update_acc lexbuf; - GREATER_EQUAL_DURATION - | ">^" -> - L.update_acc lexbuf; - GREATER_DURATION - | "+^" -> - L.update_acc lexbuf; - PLUSDURATION - | "-^" -> - L.update_acc lexbuf; - MINUSDURATION - | "*^" -> - L.update_acc lexbuf; - MULDURATION - | "<=", MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - LESSER_EQUAL_MONEY - | '<', MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - LESSER_MONEY - | ">=", MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - GREATER_EQUAL_MONEY - | '>', MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - GREATER_MONEY - | '+', MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - PLUSMONEY - | '-', MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - MINUSMONEY - | '*', MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - MULTMONEY - | '/', MR_MONEY_OP_SUFFIX -> - L.update_acc lexbuf; - DIVMONEY - | "<=." -> - L.update_acc lexbuf; - LESSER_EQUAL_DEC - | "<." -> - L.update_acc lexbuf; - LESSER_DEC - | ">=." -> - L.update_acc lexbuf; - GREATER_EQUAL_DEC - | ">." -> - L.update_acc lexbuf; - GREATER_DEC - | "+." -> - L.update_acc lexbuf; - PLUSDEC - | "-." -> - L.update_acc lexbuf; - MINUSDEC - | "*." -> - L.update_acc lexbuf; - MULTDEC - | "/." -> - L.update_acc lexbuf; - DIVDEC - | "<=" -> - L.update_acc lexbuf; - LESSER_EQUAL - | '<' -> - L.update_acc lexbuf; - LESSER - | ">=" -> - L.update_acc lexbuf; - GREATER_EQUAL - | '>' -> - L.update_acc lexbuf; - GREATER - | '+' -> - L.update_acc lexbuf; - PLUS - | '-' -> - L.update_acc lexbuf; - MINUS - | '*' -> - L.update_acc lexbuf; - MULT - | '/' -> - L.update_acc lexbuf; - DIV + DIV k | "!=" -> L.update_acc lexbuf; NOT_EQUAL diff --git a/compiler/surface/lexer_common.ml b/compiler/surface/lexer_common.ml index 4ecbf0e1..693d99b8 100644 --- a/compiler/surface/lexer_common.ml +++ b/compiler/surface/lexer_common.ml @@ -69,9 +69,9 @@ let raise_lexer_error (loc : Pos.t) (token : string) = let token_list_language_agnostic : (string * token) list = [ ".", DOT; - "<=", LESSER_EQUAL; - ">=", GREATER_EQUAL; - ">", GREATER; + "<=", LESSER_EQUAL KPoly; + ">=", GREATER_EQUAL KPoly; + ">", GREATER KPoly; "!=", NOT_EQUAL; "=", EQUAL; "(", LPAREN; @@ -80,10 +80,10 @@ let token_list_language_agnostic : (string * token) list = "}", RBRACKET; "{", LSQUARE; "}", RSQUARE; - "+", PLUS; - "-", MINUS; - "*", MULT; - "/", DIV; + "+", PLUS KPoly; + "-", MINUS KPoly; + "*", MULT KPoly; + "/", DIV KPoly; "|", VERTICAL; ":", COLON; ";", SEMICOLON; diff --git a/compiler/surface/lexer_en.cppo.ml b/compiler/surface/lexer_en.cppo.ml index 9e3e1e7e..b21ddb0c 100644 --- a/compiler/surface/lexer_en.cppo.ml +++ b/compiler/surface/lexer_en.cppo.ml @@ -93,7 +93,7 @@ (* Specific delimiters *) -#define MR_MONEY_OP_SUFFIX '$' +#define MS_MONEY_OP_SUFFIX "$" #define MC_DECIMAL_SEPARATOR '.' #define MR_MONEY_PREFIX '$', Star hspace #define MR_MONEY_DELIM ',' diff --git a/compiler/surface/lexer_fr.cppo.ml b/compiler/surface/lexer_fr.cppo.ml index b3255b4e..2b6a2bab 100644 --- a/compiler/surface/lexer_fr.cppo.ml +++ b/compiler/surface/lexer_fr.cppo.ml @@ -114,7 +114,9 @@ (* Specific delimiters *) -#define MR_MONEY_OP_SUFFIX 0x20AC (* The euro sign *) +#define MS_MONEY_OP_SUFFIX "€" +#define MR_MONEY_OP_SUFFIX 0x20AC + (* The euro sign *) #define MC_DECIMAL_SEPARATOR ',' #define MR_MONEY_PREFIX "" #define MR_MONEY_DELIM ' ' diff --git a/compiler/surface/lexer_pl.cppo.ml b/compiler/surface/lexer_pl.cppo.ml index d949f54e..94ec7467 100644 --- a/compiler/surface/lexer_pl.cppo.ml +++ b/compiler/surface/lexer_pl.cppo.ml @@ -102,7 +102,7 @@ (* Specific delimiters *) -#define MR_MONEY_OP_SUFFIX '$' +#define MS_MONEY_OP_SUFFIX "$" #define MC_DECIMAL_SEPARATOR '.' #define MR_MONEY_PREFIX "" #define MR_MONEY_DELIM ',' diff --git a/compiler/surface/parser.messages b/compiler/surface/parser.messages index 71e92eab..f1b93a2e 100644 --- a/compiler/surface/parser.messages +++ b/compiler/surface/parser.messages @@ -1,6 +1,6 @@ source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT TEXT YEAR ## -## Ends in an error in state: 366. +## Ends in an error in state: 335. ## ## list(enum_decl_line) -> enum_decl_line . list(enum_decl_line) [ SCOPE END_CODE DECLARATION ] ## @@ -12,7 +12,7 @@ expected another enum case, or a new declaration or scope use source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR CONTENT YEAR ## -## Ends in an error in state: 361. +## Ends in an error in state: 330. ## ## enum_decl_line_payload -> CONTENT . typ [ SCOPE END_CODE DECLARATION ALT ] ## @@ -24,7 +24,7 @@ expected a content type source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT CONSTRUCTOR YEAR ## -## Ends in an error in state: 360. +## Ends in an error in state: 329. ## ## enum_decl_line -> ALT constructor . option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ] ## @@ -36,7 +36,7 @@ expected a payload for your enum case, or another case or declaration source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON ALT YEAR ## -## Ends in an error in state: 359. +## Ends in an error in state: 328. ## ## enum_decl_line -> ALT . constructor option(enum_decl_line_payload) [ SCOPE END_CODE DECLARATION ALT ] ## @@ -48,7 +48,7 @@ expected the name of an enum case source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 358. +## Ends in an error in state: 327. ## ## code_item -> DECLARATION ENUM constructor COLON . list(enum_decl_line) [ SCOPE END_CODE DECLARATION ] ## @@ -60,7 +60,7 @@ expected an enum case source_file: BEGIN_CODE DECLARATION ENUM CONSTRUCTOR YEAR ## -## Ends in an error in state: 357. +## Ends in an error in state: 326. ## ## code_item -> DECLARATION ENUM constructor . COLON list(enum_decl_line) [ SCOPE END_CODE DECLARATION ] ## @@ -72,7 +72,7 @@ expected a colon source_file: BEGIN_CODE DECLARATION ENUM YEAR ## -## Ends in an error in state: 356. +## Ends in an error in state: 325. ## ## code_item -> DECLARATION ENUM . constructor COLON list(enum_decl_line) [ SCOPE END_CODE DECLARATION ] ## @@ -91,7 +91,7 @@ expected the name of your enum source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 331. +## Ends in an error in state: 300. ## ## code_item -> DECLARATION SCOPE constructor COLON . nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ] ## @@ -103,7 +103,7 @@ expected a context item introduced by "context" source_file: BEGIN_CODE DECLARATION SCOPE CONSTRUCTOR YEAR ## -## Ends in an error in state: 330. +## Ends in an error in state: 299. ## ## code_item -> DECLARATION SCOPE constructor . COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ] ## @@ -115,7 +115,7 @@ expected a colon followed by the list of context items of this scope source_file: BEGIN_CODE DECLARATION SCOPE YEAR ## -## Ends in an error in state: 329. +## Ends in an error in state: 298. ## ## code_item -> DECLARATION SCOPE . constructor COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ] ## @@ -127,7 +127,7 @@ expected the name of the scope you are declaring source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS COLLECTION YEAR ## -## Ends in an error in state: 316. +## Ends in an error in state: 285. ## ## typ -> collection_marked . typ [ STATE SCOPE OUTPUT INTERNAL INPUT IDENT END_CODE DEPENDS DECLARATION DATA CONTEXT CONDITION ALT ] ## @@ -139,7 +139,7 @@ expected a new struct data, or another declaration or scope use source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS TEXT YEAR ## -## Ends in an error in state: 324. +## Ends in an error in state: 293. ## ## list(struct_scope) -> struct_scope . list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -151,7 +151,7 @@ expected a new struct data, or another declaration or scope use source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT DEPENDS YEAR ## -## Ends in an error in state: 320. +## Ends in an error in state: 289. ## ## struct_scope_func -> DEPENDS . typ [ STATE SCOPE OUTPUT INTERNAL INPUT IDENT END_CODE DECLARATION DATA CONTEXT CONDITION ] ## @@ -163,7 +163,7 @@ expected the type of the parameter of this struct data function source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION IDENT YEAR ## -## Ends in an error in state: 319. +## Ends in an error in state: 288. ## ## struct_scope -> struct_scope_base . option(struct_scope_func) [ SCOPE END_CODE DECLARATION DATA CONDITION ] ## @@ -175,7 +175,7 @@ expected a new struct data, or another declaration or scope use source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON CONDITION YEAR ## -## Ends in an error in state: 326. +## Ends in an error in state: 295. ## ## struct_scope_base -> condition_pos . ident [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -187,7 +187,7 @@ expected the name of this struct condition source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT CONTENT YEAR ## -## Ends in an error in state: 312. +## Ends in an error in state: 281. ## ## struct_scope_base -> DATA ident CONTENT . typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -199,7 +199,7 @@ expected the type of this struct data source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA IDENT YEAR ## -## Ends in an error in state: 311. +## Ends in an error in state: 280. ## ## struct_scope_base -> DATA ident . CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -211,7 +211,7 @@ expected the type of this struct data, introduced by the content keyword source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON DATA YEAR ## -## Ends in an error in state: 310. +## Ends in an error in state: 279. ## ## struct_scope_base -> DATA . ident CONTENT typ [ SCOPE END_CODE DEPENDS DECLARATION DATA CONDITION ] ## @@ -223,7 +223,7 @@ expected the name of this struct data source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 309. +## Ends in an error in state: 278. ## ## code_item -> DECLARATION STRUCT constructor COLON . list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -235,7 +235,7 @@ expected struct data or condition source_file: BEGIN_CODE DECLARATION STRUCT CONSTRUCTOR YEAR ## -## Ends in an error in state: 308. +## Ends in an error in state: 277. ## ## code_item -> DECLARATION STRUCT constructor . COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -247,7 +247,7 @@ expected a colon source_file: BEGIN_CODE DECLARATION STRUCT YEAR ## -## Ends in an error in state: 307. +## Ends in an error in state: 276. ## ## code_item -> DECLARATION STRUCT . constructor COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## @@ -259,7 +259,7 @@ expected the struct name source_file: BEGIN_CODE DECLARATION YEAR ## -## Ends in an error in state: 306. +## Ends in an error in state: 275. ## ## code_item -> DECLARATION . STRUCT constructor COLON list(struct_scope) [ SCOPE END_CODE DECLARATION ] ## code_item -> DECLARATION . SCOPE constructor COLON nonempty_list(scope_decl_item) [ SCOPE END_CODE DECLARATION ] @@ -273,7 +273,7 @@ expected the kind of the declaration (struct, scope or enum) source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION CARDINAL THEN ## -## Ends in an error in state: 271. +## Ends in an error in state: 240. ## ## nonempty_list(scope_item) -> scope_item . [ SCOPE END_CODE DECLARATION ] ## nonempty_list(scope_item) -> scope_item . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] @@ -285,27 +285,27 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION CARDINAL THEN ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 80, spurious reduction of production small_expression -> CARDINAL -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 205, spurious reduction of production expression -> logical_expression -## In state 265, spurious reduction of production assertion_base -> expression -## In state 266, spurious reduction of production assertion -> option(condition_consequence) assertion_base -## In state 270, spurious reduction of production scope_item -> ASSERTION assertion +## In state 78, spurious reduction of production small_expression -> CARDINAL +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 174, spurious reduction of production expression -> logical_expression +## In state 234, spurious reduction of production assertion_base -> expression +## In state 235, spurious reduction of production assertion -> option(condition_consequence) assertion_base +## In state 239, spurious reduction of production scope_item -> ASSERTION assertion ## expected a new scope use item source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT BY YEAR ## -## Ends in an error in state: 262. +## Ends in an error in state: 231. ## ## assertion -> FIXED qident BY . ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -317,7 +317,7 @@ expected the legislative text by which the value of the variable is fixed source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT WITH_V ## -## Ends in an error in state: 261. +## Ends in an error in state: 230. ## ## assertion -> FIXED qident . BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -328,15 +328,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED IDENT WITH_V ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 255, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 247, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) ## expected the legislative text by which the value of the variable is fixed source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION FIXED YEAR ## -## Ends in an error in state: 260. +## Ends in an error in state: 229. ## ## assertion -> FIXED . qident BY ident [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -349,9 +349,9 @@ expected the name of the variable that should be fixed source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION TRUE THEN ## -## Ends in an error in state: 268. +## Ends in an error in state: 237. ## -## condition_consequence -> condition . CONSEQUENCE [ VERTICAL TRUE SUM STATE NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## condition_consequence -> condition . CONSEQUENCE [ VERTICAL TRUE SUM STATE NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FILLED FALSE EXISTS DEFINED_AS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## condition @@ -360,24 +360,24 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION TRUE T ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 205, spurious reduction of production expression -> logical_expression -## In state 259, spurious reduction of production condition -> UNDER_CONDITION expression +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 174, spurious reduction of production expression -> logical_expression +## In state 228, spurious reduction of production condition -> UNDER_CONDITION expression ## expected a consequence for this definition under condition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION UNDER_CONDITION YEAR ## -## Ends in an error in state: 258. +## Ends in an error in state: 227. ## ## condition -> UNDER_CONDITION . expression [ CONSEQUENCE ] ## @@ -389,7 +389,7 @@ expected an expression for this condition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT UNDER_CONDITION ## -## Ends in an error in state: 248. +## Ends in an error in state: 217. ## ## assertion -> VARIES qident . WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -400,15 +400,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT UNDER_CON ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 255, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 247, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) ## expected an indication about what this variable varies with source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V TRUE XOR ## -## Ends in an error in state: 250. +## Ends in an error in state: 219. ## ## assertion -> VARIES qident WITH_V base_expression . option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -419,15 +419,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V TR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression ## expected an indication about the variation sense of the variable, or a new scope item source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES IDENT WITH_V YEAR ## -## Ends in an error in state: 249. +## Ends in an error in state: 218. ## ## assertion -> VARIES qident WITH_V . base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -439,7 +439,7 @@ the variable varies with an expression that was expected here source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION VARIES YEAR ## -## Ends in an error in state: 246. +## Ends in an error in state: 215. ## ## assertion -> VARIES . qident WITH_V base_expression option(variation_type) [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -451,7 +451,7 @@ expecting the name of the varying variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON ASSERTION YEAR ## -## Ends in an error in state: 245. +## Ends in an error in state: 214. ## ## scope_item -> ASSERTION . assertion [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -463,7 +463,7 @@ expected an expression that shoud be asserted during execution source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT DEFINED_AS YEAR ## -## Ends in an error in state: 299. +## Ends in an error in state: 268. ## ## definition -> option(label) option(exception_to) DEFINITION qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS . expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -475,7 +475,7 @@ expected an expression for the definition source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT OF IDENT DECREASING ## -## Ends in an error in state: 296. +## Ends in an error in state: 265. ## ## definition -> option(label) option(exception_to) DEFINITION qident option(definition_parameters) . option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -488,7 +488,7 @@ expected a expression for defining this function, introduced by the defined as k source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT WITH_V ## -## Ends in an error in state: 295. +## Ends in an error in state: 264. ## ## definition -> option(label) option(exception_to) DEFINITION qident . option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -499,15 +499,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION IDENT WITH_V ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 255, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 247, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) ## expected the defined as keyword to introduce the definition of this variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON DEFINITION YEAR ## -## Ends in an error in state: 294. +## Ends in an error in state: 263. ## ## definition -> option(label) option(exception_to) DEFINITION . qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -519,7 +519,7 @@ expected the name of the variable you want to define source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION IDENT YEAR ## -## Ends in an error in state: 277. +## Ends in an error in state: 246. ## ## definition -> option(label) option(exception_to) . DEFINITION qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## rule -> option(label) option(exception_to) . RULE rule_expr option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] @@ -532,7 +532,7 @@ expected a rule or a definition after the exception declaration source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON EXCEPTION YEAR ## -## Ends in an error in state: 274. +## Ends in an error in state: 243. ## ## exception_to -> EXCEPTION . option(ident) [ RULE DEFINITION ] ## @@ -544,7 +544,7 @@ expected the label to which the exception is referring back source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL IDENT DEFINED_AS ## -## Ends in an error in state: 273. +## Ends in an error in state: 242. ## ## definition -> option(label) . option(exception_to) DEFINITION qident option(definition_parameters) option(state) option(condition_consequence) DEFINED_AS expression [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## rule -> option(label) . option(exception_to) RULE rule_expr option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] @@ -557,7 +557,7 @@ expected a rule or a definition after the label declaration source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON LABEL YEAR ## -## Ends in an error in state: 243. +## Ends in an error in state: 212. ## ## label -> LABEL . ident [ RULE EXCEPTION DEFINITION ] ## @@ -569,7 +569,7 @@ expected the name of the label source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT DOT YEAR ## -## Ends in an error in state: 256. +## Ends in an error in state: 225. ## ## separated_nonempty_list(DOT,ident) -> ident DOT . separated_nonempty_list(DOT,ident) [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ] ## @@ -581,7 +581,7 @@ expected a struct field or a sub-scope context item after the dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT NOT FALSE ## -## Ends in an error in state: 287. +## Ends in an error in state: 256. ## ## rule_consequence -> option(NOT) . FILLED [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -593,7 +593,7 @@ expected the filled keyword the this rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF IDENT YEAR ## -## Ends in an error in state: 279. +## Ends in an error in state: 248. ## ## rule -> option(label) option(exception_to) RULE rule_expr . option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -605,7 +605,7 @@ expected the expression of the rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT OF YEAR ## -## Ends in an error in state: 290. +## Ends in an error in state: 259. ## ## definition_parameters -> OF . ident [ UNDER_CONDITION STATE NOT FILLED DEFINED_AS ] ## @@ -618,7 +618,7 @@ expected the name of the parameter for this dependent variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT WITH_V ## -## Ends in an error in state: 289. +## Ends in an error in state: 258. ## ## rule_expr -> qident . option(definition_parameters) [ UNDER_CONDITION STATE NOT FILLED ] ## @@ -629,15 +629,15 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT WITH_V ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 255, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident -## In state 247, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) +## In state 224, spurious reduction of production separated_nonempty_list(DOT,ident) -> ident +## In state 216, spurious reduction of production qident -> separated_nonempty_list(DOT,ident) ## expected a condition or a consequence for this rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE IDENT YEAR ## -## Ends in an error in state: 255. +## Ends in an error in state: 224. ## ## separated_nonempty_list(DOT,ident) -> ident . [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ] ## separated_nonempty_list(DOT,ident) -> ident . DOT separated_nonempty_list(DOT,ident) [ WITH_V UNDER_CONDITION STATE OF NOT FILLED DEFINED_AS BY ] @@ -650,7 +650,7 @@ expected a condition or a consequence for this rule, or the rest of the variable source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON RULE YEAR ## -## Ends in an error in state: 278. +## Ends in an error in state: 247. ## ## rule -> option(label) option(exception_to) RULE . rule_expr option(condition_consequence) option(state) rule_consequence [ SCOPE RULE LABEL EXCEPTION END_CODE DEFINITION DECLARATION ASSERTION ] ## @@ -662,7 +662,7 @@ expected the name of the variable subject to the rule source_file: BEGIN_CODE SCOPE CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 242. +## Ends in an error in state: 211. ## ## code_item -> SCOPE constructor option(scope_use_condition) COLON . nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] ## @@ -674,10 +674,10 @@ expected a scope use item: a rule, definition or assertion source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CARDINAL YEAR ## -## Ends in an error in state: 80. +## Ends in an error in state: 78. ## ## aggregate_func -> CARDINAL . [ FOR ] -## small_expression -> CARDINAL . [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## small_expression -> CARDINAL . [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## CARDINAL @@ -687,10 +687,10 @@ expected the keyword following cardinal to compute the number of elements in a s source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT TRUE YEAR ## -## Ends in an error in state: 111. +## Ends in an error in state: 109. ## -## enum_inject_content -> CONTENT small_expression . [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] -## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## enum_inject_content -> CONTENT small_expression . [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## CONTENT small_expression @@ -700,9 +700,9 @@ the expression for the content of the enum case is already well-formed, expected source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR CONTENT YEAR ## -## Ends in an error in state: 110. +## Ends in an error in state: 108. ## -## enum_inject_content -> CONTENT . small_expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## enum_inject_content -> CONTENT . small_expression [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## CONTENT @@ -712,9 +712,9 @@ expected an expression for the content of this enum case source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR DOT CONSTRUCTOR ALL ## -## Ends in an error in state: 109. +## Ends in an error in state: 107. ## -## struct_or_enum_inject -> constructor option(preceded(DOT,constructor)) . option(enum_inject_content) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## struct_or_enum_inject -> constructor option(preceded(DOT,constructor)) . option(enum_inject_content) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## constructor option(preceded(DOT,constructor)) @@ -724,9 +724,9 @@ expected the rest of the path, or the content of the enum constructor source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR DOT YEAR ## -## Ends in an error in state: 93. +## Ends in an error in state: 91. ## -## option(preceded(DOT,constructor)) -> DOT . constructor [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTENT CONTAINS CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ] +## option(preceded(DOT,constructor)) -> DOT . constructor [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTENT CONTAINS CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## DOT @@ -737,7 +737,7 @@ expected the rest of the path after the dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON CARDINAL THEN ## -## Ends in an error in state: 76. +## Ends in an error in state: 74. ## ## nonempty_list(preceded(ALT,struct_content_field)) -> ALT struct_content_field . [ RBRACKET ] ## nonempty_list(preceded(ALT,struct_content_field)) -> ALT struct_content_field . nonempty_list(preceded(ALT,struct_content_field)) [ RBRACKET ] @@ -749,24 +749,24 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET A ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 80, spurious reduction of production small_expression -> CARDINAL -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 184, spurious reduction of production struct_content_field -> ident COLON logical_expression +## In state 78, spurious reduction of production small_expression -> CARDINAL +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 153, spurious reduction of production struct_content_field -> ident COLON logical_expression ## expected another structure field or the closing bracket source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT COLON YEAR ## -## Ends in an error in state: 79. +## Ends in an error in state: 77. ## ## struct_content_field -> ident COLON . logical_expression [ RBRACKET ALT ] ## @@ -778,7 +778,7 @@ expected the expression for this struct field source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT IDENT YEAR ## -## Ends in an error in state: 78. +## Ends in an error in state: 76. ## ## struct_content_field -> ident . COLON logical_expression [ RBRACKET ALT ] ## @@ -790,7 +790,7 @@ expected a colon source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET ALT YEAR ## -## Ends in an error in state: 75. +## Ends in an error in state: 73. ## ## nonempty_list(preceded(ALT,struct_content_field)) -> ALT . struct_content_field [ RBRACKET ] ## nonempty_list(preceded(ALT,struct_content_field)) -> ALT . struct_content_field nonempty_list(preceded(ALT,struct_content_field)) [ RBRACKET ] @@ -803,9 +803,9 @@ expected the name of the structure field source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR LBRACKET YEAR ## -## Ends in an error in state: 74. +## Ends in an error in state: 72. ## -## struct_inject_content -> LBRACKET . nonempty_list(preceded(ALT,struct_content_field)) RBRACKET [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## struct_inject_content -> LBRACKET . nonempty_list(preceded(ALT,struct_content_field)) RBRACKET [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## LBRACKET @@ -815,11 +815,11 @@ expected structure fields introduced by -- source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONSTRUCTOR YEAR ## -## Ends in an error in state: 100. +## Ends in an error in state: 98. ## -## base_expression -> constructor . OF LBRACKET list(preceded(ALT,struct_content_field)) RBRACKET [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## struct_or_enum_inject -> constructor . option(preceded(DOT,constructor)) option(enum_inject_content) [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] -## struct_or_enum_inject -> constructor . struct_inject_content [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## base_expression -> constructor . OF LBRACKET list(preceded(ALT,struct_content_field)) RBRACKET [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## struct_or_enum_inject -> constructor . option(preceded(DOT,constructor)) option(enum_inject_content) [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## struct_or_enum_inject -> constructor . struct_inject_content [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## constructor @@ -829,33 +829,33 @@ expected a payload for the enum case constructor, or the rest of the expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MAXIMUM TEXT INIT YEAR ## -## Ends in an error in state: 189. +## Ends in an error in state: 158. ## -## aggregate_func -> CONTENT MAXIMUM typ_base INIT . primitive_expression [ FOR ] +## aggregate_func -> CONTENT MAXIMUM option(typ_base) INIT . primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## CONTENT MAXIMUM typ_base INIT +## CONTENT MAXIMUM option(typ_base) INIT ## expected the initial expression for the maximum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MAXIMUM TEXT YEAR ## -## Ends in an error in state: 188. +## Ends in an error in state: 157. ## -## aggregate_func -> CONTENT MAXIMUM typ_base . INIT primitive_expression [ FOR ] +## aggregate_func -> CONTENT MAXIMUM option(typ_base) . INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## CONTENT MAXIMUM typ_base +## CONTENT MAXIMUM option(typ_base) ## expected the "initial" keyword introducing the initial expression for the maximum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MAXIMUM YEAR ## -## Ends in an error in state: 187. +## Ends in an error in state: 156. ## -## aggregate_func -> CONTENT MAXIMUM . typ_base INIT primitive_expression [ FOR ] +## aggregate_func -> CONTENT MAXIMUM . option(typ_base) INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: ## CONTENT MAXIMUM @@ -865,33 +865,33 @@ expected the type of the elements compared to get the maximum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MINIMUM TEXT INIT YEAR ## -## Ends in an error in state: 63. +## Ends in an error in state: 61. ## -## aggregate_func -> CONTENT MINIMUM typ_base INIT . primitive_expression [ FOR ] +## aggregate_func -> CONTENT MINIMUM option(typ_base) INIT . primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## CONTENT MINIMUM typ_base INIT +## CONTENT MINIMUM option(typ_base) INIT ## expected the initial expression for the minimum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MINIMUM TEXT YEAR ## -## Ends in an error in state: 62. +## Ends in an error in state: 60. ## -## aggregate_func -> CONTENT MINIMUM typ_base . INIT primitive_expression [ FOR ] +## aggregate_func -> CONTENT MINIMUM option(typ_base) . INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## CONTENT MINIMUM typ_base +## CONTENT MINIMUM option(typ_base) ## expected the "initial" keyword introducing the initial expression for the minimum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT MINIMUM YEAR ## -## Ends in an error in state: 61. +## Ends in an error in state: 59. ## -## aggregate_func -> CONTENT MINIMUM . typ_base INIT primitive_expression [ FOR ] +## aggregate_func -> CONTENT MINIMUM . option(typ_base) INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: ## CONTENT MINIMUM @@ -901,10 +901,10 @@ expected the type of the elements compared to get the minimum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION CONTENT YEAR ## -## Ends in an error in state: 60. +## Ends in an error in state: 58. ## -## aggregate_func -> CONTENT . MAXIMUM typ_base INIT primitive_expression [ FOR ] -## aggregate_func -> CONTENT . MINIMUM typ_base INIT primitive_expression [ FOR ] +## aggregate_func -> CONTENT . MAXIMUM option(typ_base) INIT primitive_expression [ FOR ] +## aggregate_func -> CONTENT . MINIMUM option(typ_base) INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: ## CONTENT @@ -914,7 +914,7 @@ this is the start of an arg-maximum or arg-minimum expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN CARDINAL SUCH THAT YEAR ## -## Ends in an error in state: 213. +## Ends in an error in state: 182. ## ## expression -> exists_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -926,9 +926,9 @@ expected an expression for the existential test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN TRUE SUCH YEAR ## -## Ends in an error in state: 219. +## Ends in an error in state: 188. ## -## exists_prefix -> exists_marked ident IN primitive_expression SUCH . THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## exists_prefix -> exists_marked ident IN primitive_expression SUCH . THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## exists_marked ident IN primitive_expression SUCH @@ -938,9 +938,9 @@ expected a keyword to complete the "such that" construction source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT IN YEAR ## -## Ends in an error in state: 217. +## Ends in an error in state: 186. ## -## exists_prefix -> exists_marked ident IN . primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## exists_prefix -> exists_marked ident IN . primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## exists_marked ident IN @@ -950,9 +950,9 @@ expected an expression that designates the set subject to the existential test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS IDENT YEAR ## -## Ends in an error in state: 216. +## Ends in an error in state: 185. ## -## exists_prefix -> exists_marked ident . IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## exists_prefix -> exists_marked ident . IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## exists_marked ident @@ -962,9 +962,9 @@ expected the "in" keyword to continue this existential test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION EXISTS YEAR ## -## Ends in an error in state: 215. +## Ends in an error in state: 184. ## -## exists_prefix -> exists_marked . ident IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## exists_prefix -> exists_marked . ident IN primitive_expression SUCH THAT [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## exists_marked @@ -974,7 +974,7 @@ expected an identifier that will designate the existential witness for the test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN CARDINAL WE_HAVE YEAR ## -## Ends in an error in state: 206. +## Ends in an error in state: 175. ## ## expression -> forall_prefix . expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -986,9 +986,9 @@ expected an expression for the universal test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT IN YEAR ## -## Ends in an error in state: 209. +## Ends in an error in state: 178. ## -## forall_prefix -> for_all_marked ident IN . primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## forall_prefix -> for_all_marked ident IN . primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## for_all_marked ident IN @@ -998,9 +998,9 @@ expected the expression designating the set on which to perform the universal te source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL IDENT YEAR ## -## Ends in an error in state: 208. +## Ends in an error in state: 177. ## -## forall_prefix -> for_all_marked ident . IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## forall_prefix -> for_all_marked ident . IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## for_all_marked ident @@ -1010,9 +1010,9 @@ expected the "in" keyword for the rest of the universal test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR ALL YEAR ## -## Ends in an error in state: 207. +## Ends in an error in state: 176. ## -## forall_prefix -> for_all_marked . ident IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUSMONEY MINUSDURATION MINUSDEC MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] +## forall_prefix -> for_all_marked . ident IN primitive_expression WE_HAVE [ VERTICAL TRUE SUM NOT MONEY_AMOUNT MINUS MINIMUM MAXIMUM MATCH MAP LSQUARE LPAREN LET INT_LITERAL IF IDENT FOR FILTER FALSE EXISTS DECIMAL_LITERAL CONTENT CONSTRUCTOR CARDINAL ] ## ## The known suffix of the stack is as follows: ## for_all_marked @@ -1022,7 +1022,7 @@ expected an identifier for the bound variable of the universal test source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION FOR YEAR ## -## Ends in an error in state: 202. +## Ends in an error in state: 171. ## ## for_all_marked -> FOR . ALL [ IDENT ] ## @@ -1034,7 +1034,7 @@ expected the "all" keyword to mean the "for all" construction of the universal t source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE SEMICOLON ## -## Ends in an error in state: 221. +## Ends in an error in state: 190. ## ## expression -> IF expression . THEN expression ELSE expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1045,16 +1045,16 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF TRUE SEMICOLON ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 205, spurious reduction of production expression -> logical_expression +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 174, spurious reduction of production expression -> logical_expression ## expected the "then" keyword as the conditional expression is complete @@ -1064,7 +1064,7 @@ expected the "then" keyword as the conditional expression is complete source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION IF YEAR ## -## Ends in an error in state: 201. +## Ends in an error in state: 170. ## ## expression -> IF . expression THEN expression ELSE expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1076,9 +1076,9 @@ expected an expression for the test of the conditional source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION INT_LITERAL WITH_V ## -## Ends in an error in state: 65. +## Ends in an error in state: 63. ## -## literal -> num_literal . option(unit_literal) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## literal -> num_literal . option(unit_literal) [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## num_literal @@ -1088,9 +1088,9 @@ expected a unit for this literal, or a valid operator to complete the expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN TRUE THEN ## -## Ends in an error in state: 229. +## Ends in an error in state: 198. ## -## atomic_expression -> LPAREN expression . RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## atomic_expression -> LPAREN expression . RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## LPAREN expression @@ -1099,25 +1099,25 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN TRUE THEN ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 205, spurious reduction of production expression -> logical_expression +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 174, spurious reduction of production expression -> logical_expression ## unmatched parenthesis that should have been closed by here source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LPAREN YEAR ## -## Ends in an error in state: 38. +## Ends in an error in state: 36. ## -## atomic_expression -> LPAREN . expression RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## atomic_expression -> LPAREN . expression RPAREN [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## LPAREN @@ -1128,7 +1128,7 @@ expected an expression inside the parenthesis source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE TRUE THEN ## -## Ends in an error in state: 235. +## Ends in an error in state: 204. ## ## separated_nonempty_list(SEMICOLON,expression) -> expression . [ RSQUARE ] ## separated_nonempty_list(SEMICOLON,expression) -> expression . SEMICOLON separated_nonempty_list(SEMICOLON,expression) [ RSQUARE ] @@ -1140,25 +1140,25 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE TRUE THEN ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 205, spurious reduction of production expression -> logical_expression +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 174, spurious reduction of production expression -> logical_expression ## expected a semicolon or a right square bracket after the collection element source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION LSQUARE YEAR ## -## Ends in an error in state: 34. +## Ends in an error in state: 32. ## -## small_expression -> LSQUARE . loption(separated_nonempty_list(SEMICOLON,expression)) RSQUARE [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## small_expression -> LSQUARE . loption(separated_nonempty_list(SEMICOLON,expression)) RSQUARE [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## LSQUARE @@ -1168,9 +1168,9 @@ expected a collection element source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT IN TRUE OF YEAR ## -## Ends in an error in state: 121. +## Ends in an error in state: 119. ## -## aggregate -> aggregate_func FOR ident IN primitive_expression OF . base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## aggregate -> aggregate_func FOR ident IN primitive_expression OF . base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## aggregate_func FOR ident IN primitive_expression OF @@ -1180,7 +1180,7 @@ expected an expression for the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT IN TRUE XOR ## -## Ends in an error in state: 46. +## Ends in an error in state: 44. ## ## primitive_expression -> small_expression . [ WITH WE_HAVE SUCH OF FOR ] ## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ WITH WE_HAVE SUCH OF FOR DOT ] @@ -1193,9 +1193,9 @@ expected the "of" keyword to introduce the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT IN YEAR ## -## Ends in an error in state: 119. +## Ends in an error in state: 117. ## -## aggregate -> aggregate_func FOR ident IN . primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## aggregate -> aggregate_func FOR ident IN . primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## aggregate_func FOR ident IN @@ -1205,9 +1205,9 @@ expected the collection argument to map source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR IDENT YEAR ## -## Ends in an error in state: 118. +## Ends in an error in state: 116. ## -## aggregate -> aggregate_func FOR ident . IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## aggregate -> aggregate_func FOR ident . IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## aggregate_func FOR ident @@ -1217,9 +1217,9 @@ expected the "in" keyword to introduce the collection argument to map source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP FOR YEAR ## -## Ends in an error in state: 117. +## Ends in an error in state: 115. ## -## aggregate -> aggregate_func FOR . ident IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## aggregate -> aggregate_func FOR . ident IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## aggregate_func FOR @@ -1229,9 +1229,9 @@ expected the identifier for the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAP YEAR ## -## Ends in an error in state: 116. +## Ends in an error in state: 114. ## -## aggregate -> aggregate_func . FOR ident IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## aggregate -> aggregate_func . FOR ident IN primitive_expression OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## aggregate_func @@ -1241,7 +1241,7 @@ expected the "for" keyword to introduce the identifier for the map predicate source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON CARDINAL RBRACKET ## -## Ends in an error in state: 192. +## Ends in an error in state: 161. ## ## match_arms -> ALT match_arm . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1252,24 +1252,24 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CO ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 80, spurious reduction of production small_expression -> CARDINAL -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 196, spurious reduction of production match_arm -> constructor_binding COLON logical_expression +## In state 78, spurious reduction of production small_expression -> CARDINAL +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 165, spurious reduction of production match_arm -> constructor_binding COLON logical_expression ## expected the "with pattern" keyword to complete the pattern matching expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR COLON YEAR ## -## Ends in an error in state: 195. +## Ends in an error in state: 164. ## ## match_arm -> constructor_binding COLON . logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ] ## @@ -1281,7 +1281,7 @@ expected a correct expression for this match arm source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CONSTRUCTOR XOR ## -## Ends in an error in state: 194. +## Ends in an error in state: 163. ## ## match_arm -> constructor_binding . COLON logical_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ALT ] ## @@ -1292,17 +1292,17 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT CO ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 92, spurious reduction of production option(preceded(DOT,constructor)) -> -## In state 95, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) -## In state 88, spurious reduction of production optional_binding -> -## In state 97, spurious reduction of production constructor_binding -> maybe_qualified_constructor optional_binding +## In state 90, spurious reduction of production option(preceded(DOT,constructor)) -> +## In state 93, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) +## In state 86, spurious reduction of production optional_binding -> +## In state 95, spurious reduction of production constructor_binding -> maybe_qualified_constructor optional_binding ## expected a constructor payload binding or a colon source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH ALT YEAR ## -## Ends in an error in state: 55. +## Ends in an error in state: 53. ## ## match_arms -> ALT . match_arm match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1314,7 +1314,7 @@ expected the name of the constructor for the enum case in the pattern matching source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH TRUE WITH YEAR ## -## Ends in an error in state: 54. +## Ends in an error in state: 52. ## ## expression -> MATCH primitive_expression WITH . match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1326,7 +1326,7 @@ expected a pattern matching case source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MATCH YEAR ## -## Ends in an error in state: 39. +## Ends in an error in state: 37. ## ## expression -> MATCH . primitive_expression WITH match_arms [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION ] ## @@ -1338,33 +1338,33 @@ expected an expression to match with source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAXIMUM TEXT INIT YEAR ## -## Ends in an error in state: 37. +## Ends in an error in state: 35. ## -## aggregate_func -> MAXIMUM typ_base INIT . primitive_expression [ FOR ] +## aggregate_func -> MAXIMUM option(typ_base) INIT . primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## MAXIMUM typ_base INIT +## MAXIMUM option(typ_base) INIT ## expected the maximum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAXIMUM TEXT YEAR ## -## Ends in an error in state: 36. +## Ends in an error in state: 34. ## -## aggregate_func -> MAXIMUM typ_base . INIT primitive_expression [ FOR ] +## aggregate_func -> MAXIMUM option(typ_base) . INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## MAXIMUM typ_base +## MAXIMUM option(typ_base) ## expected the "initial" keyword to introduce the maximum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MAXIMUM YEAR ## -## Ends in an error in state: 35. +## Ends in an error in state: 33. ## -## aggregate_func -> MAXIMUM . typ_base INIT primitive_expression [ FOR ] +## aggregate_func -> MAXIMUM . option(typ_base) INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: ## MAXIMUM @@ -1374,33 +1374,33 @@ expected the type of the elements compared for the maximum source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINIMUM TEXT INIT YEAR ## -## Ends in an error in state: 33. +## Ends in an error in state: 31. ## -## aggregate_func -> MINIMUM typ_base INIT . primitive_expression [ FOR ] +## aggregate_func -> MINIMUM option(typ_base) INIT . primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## MINIMUM typ_base INIT +## MINIMUM option(typ_base) INIT ## expected the minimum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINIMUM TEXT YEAR ## -## Ends in an error in state: 32. +## Ends in an error in state: 30. ## -## aggregate_func -> MINIMUM typ_base . INIT primitive_expression [ FOR ] +## aggregate_func -> MINIMUM option(typ_base) . INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: -## MINIMUM typ_base +## MINIMUM option(typ_base) ## expected the "initial" keyword to introduce the minimum initial expression source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINIMUM YEAR ## -## Ends in an error in state: 31. +## Ends in an error in state: 28. ## -## aggregate_func -> MINIMUM . typ_base INIT primitive_expression [ FOR ] +## aggregate_func -> MINIMUM . option(typ_base) INIT primitive_expression [ FOR ] ## ## The known suffix of the stack is as follows: ## MINIMUM @@ -1408,18 +1408,6 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINIMUM YEAR expected the type of the elements compared for the minimum -source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION MINUSMONEY YEAR -## -## Ends in an error in state: 82. -## -## unop_expression -> unop . unop_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## -## The known suffix of the stack is as follows: -## unop -## - -expected an expression to take the opposite of - source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION SUM YEAR ## ## Ends in an error in state: 15. @@ -1434,7 +1422,7 @@ expected the "for" keyword to spell the aggregation source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE ASSERTION ## -## Ends in an error in state: 241. +## Ends in an error in state: 210. ## ## code_item -> SCOPE constructor option(scope_use_condition) . COLON nonempty_list(scope_item) [ SCOPE END_CODE DECLARATION ] ## @@ -1445,27 +1433,27 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE ASSERTION ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression -## In state 172, spurious reduction of production sum_expression -> mult_expression -## In state 126, spurious reduction of production compare_expression -> sum_expression -## In state 183, spurious reduction of production logical_atom -> compare_expression -## In state 178, spurious reduction of production logical_or_expression -> logical_atom -## In state 174, spurious reduction of production logical_expression -> logical_or_expression -## In state 205, spurious reduction of production expression -> logical_expression -## In state 239, spurious reduction of production scope_use_condition -> UNDER_CONDITION expression -## In state 240, spurious reduction of production option(scope_use_condition) -> scope_use_condition +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression +## In state 141, spurious reduction of production sum_expression -> mult_expression +## In state 124, spurious reduction of production compare_expression -> sum_expression +## In state 152, spurious reduction of production logical_atom -> compare_expression +## In state 147, spurious reduction of production logical_or_expression -> logical_atom +## In state 143, spurious reduction of production logical_expression -> logical_or_expression +## In state 174, spurious reduction of production expression -> logical_expression +## In state 208, spurious reduction of production scope_use_condition -> UNDER_CONDITION expression +## In state 209, spurious reduction of production option(scope_use_condition) -> scope_use_condition ## expected a colon after the scope use precondition source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT CONSTRUCTOR DOT YEAR ## -## Ends in an error in state: 48. +## Ends in an error in state: 46. ## -## small_expression -> small_expression DOT option(terminated(constructor,DOT)) . ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## small_expression -> small_expression DOT option(terminated(constructor,DOT)) . ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## small_expression DOT option(terminated(constructor,DOT)) @@ -1475,7 +1463,7 @@ expected the rest of the path after the dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT CONSTRUCTOR YEAR ## -## Ends in an error in state: 51. +## Ends in an error in state: 49. ## ## option(terminated(constructor,DOT)) -> constructor . DOT [ IDENT ] ## @@ -1487,9 +1475,9 @@ expected the rest of the path after a dot source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE DOT YEAR ## -## Ends in an error in state: 47. +## Ends in an error in state: 45. ## -## small_expression -> small_expression DOT . option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## small_expression -> small_expression DOT . option(terminated(constructor,DOT)) ident [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## small_expression DOT @@ -1500,10 +1488,10 @@ expected the name of the struct field of the expression before source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE INCREASING ## -## Ends in an error in state: 172. +## Ends in an error in state: 141. ## -## mult_expression -> mult_expression . mult_op unop_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## sum_expression -> mult_expression . [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## mult_expression -> mult_expression . mult_op unop_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## sum_expression -> mult_expression . [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MINUS LESSER_EQUAL LESSER LABEL IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## mult_expression @@ -1512,67 +1500,19 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE INCREASING ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 84, spurious reduction of production primitive_expression -> small_expression -## In state 86, spurious reduction of production base_expression -> primitive_expression -## In state 125, spurious reduction of production unop_expression -> base_expression -## In state 81, spurious reduction of production mult_expression -> unop_expression +## In state 82, spurious reduction of production primitive_expression -> small_expression +## In state 84, spurious reduction of production base_expression -> primitive_expression +## In state 123, spurious reduction of production unop_expression -> base_expression +## In state 79, spurious reduction of production mult_expression -> unop_expression ## expected an operator to compose the expression on the left -source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE MULTMONEY YEAR -## -## Ends in an error in state: 169. -## -## mult_expression -> mult_expression mult_op . unop_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## -## The known suffix of the stack is as follows: -## mult_expression mult_op -## - -expected an expression on the right side of the multiplication or division operator - -source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE NOT_EQUAL YEAR -## -## Ends in an error in state: 171. -## -## compare_expression -> sum_expression compare_op . compare_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET OR LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## -## The known suffix of the stack is as follows: -## sum_expression compare_op -## - -expected an expression on the right side of the comparison operator - -source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE OF YEAR -## -## Ends in an error in state: 85. -## -## base_expression -> small_expression OF . base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## -## The known suffix of the stack is as follows: -## small_expression OF -## - -expected an expression for the argument of this function call - -source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE PLUSMONEY YEAR -## -## Ends in an error in state: 160. -## -## sum_expression -> sum_expression sum_op . mult_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## -## The known suffix of the stack is as follows: -## sum_expression sum_op -## - -expected an expression after the plus or minus operator - source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR CONSTRUCTOR ## -## Ends in an error in state: 88. +## Ends in an error in state: 86. ## -## constructor_binding -> maybe_qualified_constructor . optional_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## constructor_binding -> maybe_qualified_constructor . optional_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## maybe_qualified_constructor @@ -1581,17 +1521,17 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 92, spurious reduction of production option(preceded(DOT,constructor)) -> -## In state 95, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) +## In state 90, spurious reduction of production option(preceded(DOT,constructor)) -> +## In state 93, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) ## a enum constructor pattern should be followed by a payload source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR OF CONSTRUCTOR XOR ## -## Ends in an error in state: 90. +## Ends in an error in state: 88. ## -## optional_binding -> OF maybe_qualified_constructor . constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## optional_binding -> OF maybe_qualified_constructor . constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## OF maybe_qualified_constructor @@ -1600,18 +1540,18 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 92, spurious reduction of production option(preceded(DOT,constructor)) -> -## In state 95, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) +## In state 90, spurious reduction of production option(preceded(DOT,constructor)) -> +## In state 93, spurious reduction of production maybe_qualified_constructor -> constructor option(preceded(DOT,constructor)) ## unexpected expression following a function application with an enum constructor name source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR OF YEAR ## -## Ends in an error in state: 89. +## Ends in an error in state: 87. ## -## optional_binding -> OF . ident [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## optional_binding -> OF . maybe_qualified_constructor constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## optional_binding -> OF . ident [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## optional_binding -> OF . maybe_qualified_constructor constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## OF @@ -1621,9 +1561,9 @@ expecting an expression to stand in as the function argument source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH CONSTRUCTOR YEAR ## -## Ends in an error in state: 92. +## Ends in an error in state: 90. ## -## maybe_qualified_constructor -> constructor . option(preceded(DOT,constructor)) [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ] +## maybe_qualified_constructor -> constructor . option(preceded(DOT,constructor)) [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSTRUCTOR CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## constructor @@ -1633,9 +1573,9 @@ the expression before ended, what follows next should be an operator or the rest source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH YEAR ## -## Ends in an error in state: 87. +## Ends in an error in state: 85. ## -## base_expression -> primitive_expression WITH . constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## base_expression -> primitive_expression WITH . constructor_binding [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## primitive_expression WITH @@ -1645,7 +1585,7 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE WITH YEAR source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE XOR YEAR ## -## Ends in an error in state: 181. +## Ends in an error in state: 150. ## ## logical_or_expression -> logical_atom logical_or_op . logical_or_expression [ THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET LABEL IN EXCEPTION END_CODE ELSE DEFINITION DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] ## @@ -1657,11 +1597,11 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE XOR YEAR source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION TRUE YEAR ## -## Ends in an error in state: 84. +## Ends in an error in state: 82. ## -## base_expression -> small_expression . OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] -## primitive_expression -> small_expression . [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] -## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## base_expression -> small_expression . OF base_expression [ XOR THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONSEQUENCE COLON ASSERTION AND ALT ] +## primitive_expression -> small_expression . [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## small_expression -> small_expression . DOT option(terminated(constructor,DOT)) ident [ XOR WITH THEN SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## small_expression @@ -1678,7 +1618,7 @@ source_file: BEGIN_CODE SCOPE CONSTRUCTOR UNDER_CONDITION VERTICAL YEAR ## ## Ends in an error in state: 11. ## -## literal -> VERTICAL . DATE_LITERAL VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUSMONEY PLUSDURATION PLUSDEC PLUSDATE PLUS OR OF NOT_EQUAL MULTMONEY MULTDEC MULT MULDURATION MINUSMONEY MINUSDURATION MINUSDEC MINUSDATE MINUS LESSER_MONEY LESSER_EQUAL_MONEY LESSER_EQUAL_DURATION LESSER_EQUAL_DEC LESSER_EQUAL_DATE LESSER_EQUAL LESSER_DURATION LESSER_DEC LESSER_DATE LESSER LABEL INCREASING IN GREATER_MONEY GREATER_EQUAL_MONEY GREATER_EQUAL_DURATION GREATER_EQUAL_DEC GREATER_EQUAL_DATE GREATER_EQUAL GREATER_DURATION GREATER_DEC GREATER_DATE GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIVMONEY DIVDEC DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] +## literal -> VERTICAL . DATE_LITERAL VERTICAL [ XOR WITH WE_HAVE THEN SUCH SEMICOLON SCOPE RULE RSQUARE RPAREN RBRACKET PLUSPLUS PLUS OR OF NOT_EQUAL MULT MINUS LESSER_EQUAL LESSER LABEL INCREASING IN GREATER_EQUAL GREATER FOR EXCEPTION EQUAL END_CODE ELSE DOT DIV DEFINITION DECREASING DECLARATION CONTAINS CONSEQUENCE COLON ASSERTION AND ALT ] ## ## The known suffix of the stack is as follows: ## VERTICAL @@ -1724,7 +1664,7 @@ expected the name of the scope being used source_file: BEGIN_CODE YEAR ## -## Ends in an error in state: 384. +## Ends in an error in state: 353. ## ## source_file_item -> BEGIN_CODE . code END_CODE [ LAW_TEXT LAW_HEADING EOF BEGIN_METADATA BEGIN_DIRECTIVE BEGIN_CODE ] ## diff --git a/compiler/surface/parser.mly b/compiler/surface/parser.mly index 80195c90..d9029740 100644 --- a/compiler/surface/parser.mly +++ b/compiler/surface/parser.mly @@ -149,41 +149,25 @@ literal: | FALSE { (LBool false, Pos.from_lpos $sloc) } compare_op: -| LESSER { (Lt KInt, Pos.from_lpos $sloc) } -| LESSER_EQUAL { (Lte KInt, Pos.from_lpos $sloc) } -| GREATER { (Gt KInt, Pos.from_lpos $sloc) } -| GREATER_EQUAL { (Gte KInt, Pos.from_lpos $sloc) } -| LESSER_DEC { (Lt KDec, Pos.from_lpos $sloc) } -| LESSER_EQUAL_DEC { (Lte KDec, Pos.from_lpos $sloc) } -| GREATER_DEC { (Gt KDec, Pos.from_lpos $sloc) } -| GREATER_EQUAL_DEC { (Gte KDec, Pos.from_lpos $sloc) } -| LESSER_MONEY { (Lt KMoney, Pos.from_lpos $sloc) } -| LESSER_EQUAL_MONEY { (Lte KMoney, Pos.from_lpos $sloc) } -| GREATER_MONEY { (Gt KMoney, Pos.from_lpos $sloc) } -| GREATER_EQUAL_MONEY { (Gte KMoney, Pos.from_lpos $sloc) } -| LESSER_DATE { (Lt KDate, Pos.from_lpos $sloc) } -| LESSER_EQUAL_DATE { (Lte KDate, Pos.from_lpos $sloc) } -| GREATER_DATE { (Gt KDate, Pos.from_lpos $sloc) } -| GREATER_EQUAL_DATE { (Gte KDate, Pos.from_lpos $sloc) } -| LESSER_DURATION { (Lt KDuration, Pos.from_lpos $sloc) } -| LESSER_EQUAL_DURATION { (Lte KDuration, Pos.from_lpos $sloc) } -| GREATER_DURATION { (Gt KDuration, Pos.from_lpos $sloc) } -| GREATER_EQUAL_DURATION { (Gte KDuration, Pos.from_lpos $sloc) } +| LESSER { (Lt KPoly, Pos.from_lpos $sloc) } +| LESSER_EQUAL { (Lte KPoly, Pos.from_lpos $sloc) } +| GREATER { (Gt KPoly, Pos.from_lpos $sloc) } +| GREATER_EQUAL { (Gte KPoly, Pos.from_lpos $sloc) } | EQUAL { (Eq, Pos.from_lpos $sloc) } | NOT_EQUAL { (Neq, Pos.from_lpos $sloc) } aggregate_func: -| CONTENT MAXIMUM t = typ_base INIT init = primitive_expression { - (Aggregate (AggregateArgExtremum (true, Marked.unmark t, init)), Pos.from_lpos $sloc) +| CONTENT MAXIMUM t = option(typ_base) INIT init = primitive_expression { + (Aggregate (AggregateArgExtremum (true, Option.map Marked.unmark t, init)), Pos.from_lpos $sloc) } -| CONTENT MINIMUM t = typ_base INIT init = primitive_expression { - (Aggregate (AggregateArgExtremum (false, Marked.unmark t, init)), Pos.from_lpos $sloc) +| CONTENT MINIMUM t = option(typ_base) INIT init = primitive_expression { + (Aggregate (AggregateArgExtremum (false, Option.map Marked.unmark t, init)), Pos.from_lpos $sloc) } -| MAXIMUM t = typ_base INIT init = primitive_expression { - (Aggregate (AggregateExtremum (true, Marked.unmark t, init)), Pos.from_lpos $sloc) +| MAXIMUM t = option(typ_base) INIT init = primitive_expression { + (Aggregate (AggregateExtremum (true, Option.map Marked.unmark t, init)), Pos.from_lpos $sloc) } -| MINIMUM t = typ_base INIT init = primitive_expression { - (Aggregate (AggregateExtremum (false, Marked.unmark t, init)), Pos.from_lpos $sloc) +| MINIMUM t = option(typ_base) INIT init = primitive_expression { + (Aggregate (AggregateExtremum (false, Option.map Marked.unmark t, init)), Pos.from_lpos $sloc) } | SUM t = typ_base { (Aggregate (AggregateSum (Marked.unmark t)), Pos.from_lpos $sloc) } | CARDINAL { (Aggregate AggregateCount, Pos.from_lpos $sloc) } @@ -216,23 +200,15 @@ base_expression: unop: | NOT { (Not, Pos.from_lpos $sloc) } -| MINUS { (Minus KInt, Pos.from_lpos $sloc) } -| MINUSDEC { (Minus KDec, Pos.from_lpos $sloc) } -| MINUSMONEY { (Minus KMoney, Pos.from_lpos $sloc) } -| MINUSDURATION { (Minus KDuration, Pos.from_lpos $sloc) } +| k = MINUS { (Minus k, Pos.from_lpos $sloc) } unop_expression: | e = base_expression { e } | op = unop e = unop_expression { (Unop (op, e), Pos.from_lpos $sloc) } mult_op: -| MULT { (Mult KInt, Pos.from_lpos $sloc) } -| DIV { (Div KInt, Pos.from_lpos $sloc) } -| MULTDEC { (Mult KDec, Pos.from_lpos $sloc) } -| DIVDEC { (Div KDec, Pos.from_lpos $sloc) } -| MULTMONEY { (Mult KMoney, Pos.from_lpos $sloc) } -| DIVMONEY { (Div KMoney, Pos.from_lpos $sloc) } -| MULDURATION { (Mult KDuration, Pos.from_lpos $sloc) } +| k = MULT { (Mult k, Pos.from_lpos $sloc) } +| k = DIV { (Div k, Pos.from_lpos $sloc) } mult_expression: | e = unop_expression { e } @@ -241,16 +217,8 @@ mult_expression: } sum_op: -| PLUSDURATION { (Add KDuration, Pos.from_lpos $sloc) } -| MINUSDURATION { (Sub KDuration, Pos.from_lpos $sloc) } -| PLUSDATE { (Add KDate, Pos.from_lpos $sloc) } -| MINUSDATE { (Sub KDate, Pos.from_lpos $sloc) } -| PLUSMONEY { (Add KMoney, Pos.from_lpos $sloc) } -| MINUSMONEY { (Sub KMoney, Pos.from_lpos $sloc) } -| PLUSDEC { (Add KDec, Pos.from_lpos $sloc) } -| MINUSDEC { (Sub KDec, Pos.from_lpos $sloc) } -| PLUS { (Add KInt, Pos.from_lpos $sloc) } -| MINUS { (Sub KInt, Pos.from_lpos $sloc) } +| k = PLUS { (Add k, Pos.from_lpos $sloc) } +| k = MINUS { (Sub k, Pos.from_lpos $sloc) } | PLUSPLUS { (Concat, Pos.from_lpos $sloc) } sum_expression: diff --git a/compiler/surface/tokens.mly b/compiler/surface/tokens.mly index e12890dd..258897e0 100644 --- a/compiler/surface/tokens.mly +++ b/compiler/surface/tokens.mly @@ -40,18 +40,11 @@ %token COLON ALT DATA VERTICAL %token OF INTEGER COLLECTION CONTAINS %token RULE CONDITION DEFINED_AS -%token LESSER GREATER LESSER_EQUAL GREATER_EQUAL -%token LESSER_DEC GREATER_DEC LESSER_EQUAL_DEC GREATER_EQUAL_DEC -%token LESSER_MONEY GREATER_MONEY LESSER_EQUAL_MONEY GREATER_EQUAL_MONEY -%token LESSER_DATE GREATER_DATE LESSER_EQUAL_DATE GREATER_EQUAL_DATE -%token LESSER_DURATION GREATER_DURATION LESSER_EQUAL_DURATION GREATER_EQUAL_DURATION +%token LESSER GREATER LESSER_EQUAL GREATER_EQUAL %token LET EXISTS IN SUCH THAT %token DOT AND OR XOR LPAREN RPAREN EQUAL %token CARDINAL ASSERTION FIXED BY YEAR MONTH DAY -%token PLUS MINUS MULT DIV -%token PLUSDEC MINUSDEC MULTDEC DIVDEC -%token PLUSMONEY MINUSMONEY MULTMONEY DIVMONEY -%token MINUSDATE PLUSDATE PLUSDURATION MINUSDURATION MULDURATION +%token PLUS MINUS MULT DIV %token PLUSPLUS %token MATCH WITH VARIES WITH_V WILDCARD %token FOR ALL WE_HAVE INCREASING DECREASING diff --git a/compiler/verification/conditions.ml b/compiler/verification/conditions.ml index a18c3ac5..2b968b1b 100644 --- a/compiler/verification/conditions.ml +++ b/compiler/verification/conditions.ml @@ -37,11 +37,28 @@ let conjunction (args : vc_return list) (mark : typed mark) : vc_return = match args with hd :: tl -> hd, tl | [] -> (ELit (LBool true), mark), [] in List.fold_left - (fun acc arg -> EApp { f = EOp (Binop And), mark; args = [arg; acc] }, mark) + (fun acc arg -> + ( EApp + { + f = + ( EOp + { + op = And; + tys = [TLit TBool, Expr.pos acc; TLit TBool, Expr.pos arg]; + }, + mark ); + args = [arg; acc]; + }, + mark )) acc list let negation (arg : vc_return) (mark : typed mark) : vc_return = - EApp { f = EOp (Unop Not), mark; args = [arg] }, mark + ( EApp + { + f = EOp { op = Not; tys = [TLit TBool, Expr.pos arg] }, mark; + args = [arg]; + }, + mark ) let disjunction (args : vc_return list) (mark : typed mark) : vc_return = let acc, list = @@ -49,7 +66,18 @@ let disjunction (args : vc_return list) (mark : typed mark) : vc_return = in List.fold_left (fun (acc : vc_return) arg -> - EApp { f = EOp (Binop Or), mark; args = [arg; acc] }, mark) + ( EApp + { + f = + ( EOp + { + op = Or; + tys = [TLit TBool, Expr.pos acc; TLit TBool, Expr.pos arg]; + }, + mark ); + args = [arg; acc]; + }, + mark )) acc list (** [half_product \[a1,...,an\] \[b1,...,bm\] returns \[(a1,b1),...(a1,bn),...(an,b1),...(an,bm)\]] *) diff --git a/compiler/verification/z3backend.real.ml b/compiler/verification/z3backend.real.ml index d25ad0b9..0b234d35 100644 --- a/compiler/verification/z3backend.real.ml +++ b/compiler/verification/z3backend.real.ml @@ -111,7 +111,7 @@ let unique_name (v : 'e Var.t) : string = let date_to_int (d : Runtime.date) : int = (* Alternatively, could expose this from Runtime as a (noop) coercion, but would allow to break abstraction more easily elsewhere *) - let period = Runtime.( -@ ) d base_day in + let period = Runtime.Oper.o_sub_dat_dat d base_day in let y, m, d = Runtime.duration_to_years_months_days period in assert (y = 0 && m = 0); d @@ -124,7 +124,7 @@ let date_of_year (year : int) = Runtime.date_of_numbers year 1 1 defined here as Jan 1, 1900 **) let nb_days_to_date (nb : int) : string = Runtime.date_to_string - (Runtime.( +@ ) base_day (Runtime.duration_of_numbers 0 0 nb)) + (Runtime.Oper.o_add_dat_dur base_day (Runtime.duration_of_numbers 0 0 nb)) (** [print_z3model_expr] pretty-prints the value [e] given by a Z3 model according to the Catala type [ty], corresponding to [e] **) @@ -426,223 +426,181 @@ let is_leap_year = Runtime.is_leap_year (** [translate_op] returns the Z3 expression corresponding to the application of [op] to the arguments [args] **) -let rec translate_op (ctx : context) (op : dcalc operator) (args : 'm expr list) - : context * Expr.expr = - match op with - | Ternop _top -> - let _e1, _e2, _e3 = - match args with - | [e1; e2; e3] -> e1, e2, e3 - | _ -> - Format.kasprintf failwith - "[Z3 encoding] Ill-formed ternary operator application: %a" - (Shared_ast.Expr.format ctx.ctx_decl) - (Shared_ast.Expr.eapp - (Shared_ast.Expr.eop op (Untyped { pos = Pos.no_pos })) - (List.map Shared_ast.Expr.untype args) - (Untyped { pos = Pos.no_pos }) - |> Shared_ast.Expr.unbox) - in +let rec translate_op : + type k. + context -> (dcalc, k) operator -> 'm expr list -> context * Expr.expr = + fun ctx op args -> + let ill_formed () = + Format.kasprintf failwith + "[Z3 encoding] Ill-formed operator application: %a" + (Shared_ast.Expr.format ctx.ctx_decl) + (Shared_ast.Expr.eapp + (Shared_ast.Expr.eop op [] (Untyped { pos = Pos.no_pos })) + (List.map Shared_ast.Expr.untype args) + (Untyped { pos = Pos.no_pos }) + |> Shared_ast.Expr.unbox) + in + let app f = + let ctx, args = List.fold_left_map translate_expr ctx args in + ctx, f ctx.ctx_z3 args + in + let app1 f = + app (fun ctx -> function [a] -> f ctx a | _ -> ill_formed ()) + in + let app2 f = + app (fun ctx -> function [a; b] -> f ctx a b | _ -> ill_formed ()) + in + match op, args with + | Fold, _ -> failwith "[Z3 encoding] ternary operator application not supported" - | Binop bop -> ( (* Special case for GetYear comparisons *) - match bop, args with - | ( Lt KInt, - [ - (EApp { f = EOp (Unop GetYear), _; args = [e1] }, _); - (ELit (LInt n), _); - ] ) -> - let n = Runtime.integer_to_int n in - let ctx, e1 = translate_expr ctx e1 in - let e2 = - Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 - (date_to_int (date_of_year n)) - in - (* e2 corresponds to the first day of the year n. GetYear e1 < e2 can thus - be directly translated as < in the Z3 encoding using the number of - days *) - ctx, Arithmetic.mk_lt ctx.ctx_z3 e1 e2 - | ( Lte KInt, - [ - (EApp { f = EOp (Unop GetYear), _; args = [e1] }, _); - (ELit (LInt n), _); - ] ) -> - let ctx, e1 = translate_expr ctx e1 in - let nb_days = if is_leap_year n then 365 else 364 in - let n = Runtime.integer_to_int n in - (* We want that the year corresponding to e1 is smaller or equal to n. We - encode this as the day corresponding to e1 is smaller or equal than the - last day of the year [n], which is Jan 1st + 365 days if [n] is a leap - year, Jan 1st + 364 else *) - let e2 = - Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 - (date_to_int (date_of_year n) + nb_days) - in - ctx, Arithmetic.mk_le ctx.ctx_z3 e1 e2 - | ( Gt KInt, - [ - (EApp { f = EOp (Unop GetYear), _; args = [e1] }, _); - (ELit (LInt n), _); - ] ) -> - let ctx, e1 = translate_expr ctx e1 in - let nb_days = if is_leap_year n then 365 else 364 in - let n = Runtime.integer_to_int n in - (* We want that the year corresponding to e1 is greater to n. We encode - this as the day corresponding to e1 is greater than the last day of the - year [n], which is Jan 1st + 365 days if [n] is a leap year, Jan 1st + - 364 else *) - let e2 = - Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 - (date_to_int (date_of_year n) + nb_days) - in - ctx, Arithmetic.mk_gt ctx.ctx_z3 e1 e2 - | ( Gte KInt, - [ - (EApp { f = EOp (Unop GetYear), _; args = [e1] }, _); - (ELit (LInt n), _); - ] ) -> - let n = Runtime.integer_to_int n in - let ctx, e1 = translate_expr ctx e1 in - let e2 = - Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 - (date_to_int (date_of_year n)) - in - (* e2 corresponds to the first day of the year n. GetYear e1 >= e2 can - thus be directly translated as >= in the Z3 encoding using the number - of days *) - ctx, Arithmetic.mk_ge ctx.ctx_z3 e1 e2 - | ( Eq, - [ - (EApp { f = EOp (Unop GetYear), _; args = [e1] }, _); - (ELit (LInt n), _); - ] ) -> - let n = Runtime.integer_to_int n in - let ctx, e1 = translate_expr ctx e1 in - let min_date = - Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 - (date_to_int (date_of_year n)) - in - let max_date = - Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 - (date_to_int (date_of_year (n + 1))) - in - ( ctx, - Boolean.mk_and ctx.ctx_z3 - [ - Arithmetic.mk_ge ctx.ctx_z3 e1 min_date; - Arithmetic.mk_lt ctx.ctx_z3 e1 max_date; - ] ) - | _ -> ( - let ctx, e1, e2 = - match args with - | [e1; e2] -> - let ctx, e1 = translate_expr ctx e1 in - let ctx, e2 = translate_expr ctx e2 in - ctx, e1, e2 - | _ -> - Format.kasprintf failwith - "[Z3 encoding] Ill-formed binary operator application: %a" - (Shared_ast.Expr.format ctx.ctx_decl) - (Shared_ast.Expr.eapp - (Shared_ast.Expr.eop op (Untyped { pos = Pos.no_pos })) - (List.map Shared_ast.Expr.untype args) - (Untyped { pos = Pos.no_pos }) - |> Shared_ast.Expr.unbox) - in - - match bop with - | And -> ctx, Boolean.mk_and ctx.ctx_z3 [e1; e2] - | Or -> ctx, Boolean.mk_or ctx.ctx_z3 [e1; e2] - | Xor -> ctx, Boolean.mk_xor ctx.ctx_z3 e1 e2 - | Add KInt | Add KRat | Add KMoney | Add KDate | Add KDuration -> - ctx, Arithmetic.mk_add ctx.ctx_z3 [e1; e2] - | Sub KInt | Sub KRat | Sub KMoney | Sub KDate | Sub KDuration -> - ctx, Arithmetic.mk_sub ctx.ctx_z3 [e1; e2] - | Mult KInt | Mult KRat | Mult KMoney | Mult KDate | Mult KDuration -> - ctx, Arithmetic.mk_mul ctx.ctx_z3 [e1; e2] - | Div KInt | Div KRat | Div KMoney -> - ctx, Arithmetic.mk_div ctx.ctx_z3 e1 e2 - | Div _ -> - failwith - "[Z3 encoding] application of non-integer binary operator Div not \ - supported" - | Lt KInt | Lt KRat | Lt KMoney | Lt KDate | Lt KDuration -> - ctx, Arithmetic.mk_lt ctx.ctx_z3 e1 e2 - | Lte KInt | Lte KRat | Lte KMoney | Lte KDate | Lte KDuration -> - ctx, Arithmetic.mk_le ctx.ctx_z3 e1 e2 - | Gt KInt | Gt KRat | Gt KMoney | Gt KDate | Gt KDuration -> - ctx, Arithmetic.mk_gt ctx.ctx_z3 e1 e2 - | Gte KInt | Gte KRat | Gte KMoney | Gte KDate | Gte KDuration -> - ctx, Arithmetic.mk_ge ctx.ctx_z3 e1 e2 - | Eq -> ctx, Boolean.mk_eq ctx.ctx_z3 e1 e2 - | Neq -> ctx, Boolean.mk_not ctx.ctx_z3 (Boolean.mk_eq ctx.ctx_z3 e1 e2) - | Map -> - failwith - "[Z3 encoding] application of binary operator Map not supported" - | Concat -> - failwith - "[Z3 encoding] application of binary operator Concat not supported" - | Filter -> - failwith - "[Z3 encoding] application of binary operator Filter not supported")) - | Unop uop -> ( - let ctx, e1 = - match args with - | [e1] -> ( - try translate_expr ctx e1 - with Z3.Error s -> - Errors.raise_spanned_error (Shared_ast.Expr.pos e1) "%s" s) - | _ -> - Format.kasprintf failwith - "[Z3 encoding] Ill-formed unary operator application: %a" - (Shared_ast.Expr.format ctx.ctx_decl) - (Shared_ast.Expr.eapp - (Shared_ast.Expr.eop op (Untyped { pos = Pos.no_pos })) - (List.map Shared_ast.Expr.untype args) - (Untyped { pos = Pos.no_pos }) - |> Shared_ast.Expr.unbox) + | ( Lt_int_int, + [ + (EApp { f = EOp { op = GetYear; _ }, _; args = [e1] }, _); + (ELit (LInt n), _); + ] ) -> + let n = Runtime.integer_to_int n in + let ctx, e1 = translate_expr ctx e1 in + let e2 = + Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 (date_to_int (date_of_year n)) in - - match uop with - | Not -> ctx, Boolean.mk_not ctx.ctx_z3 e1 - | Minus _ -> - failwith "[Z3 encoding] application of unary operator Minus not supported" - (* Omitting the log from the VC *) - | Log _ -> ctx, e1 - | Length -> - (* For now, an array is only its symbolic length. We simply return it *) - ctx, e1 - | IntToRat -> - failwith - "[Z3 encoding] application of unary operator IntToRat not supported" - | MoneyToRat -> - failwith - "[Z3 encoding] application of unary operator MoneyToRat not supported" - | RatToMoney -> - failwith - "[Z3 encoding] application of unary operator RatToMoney not supported" - | GetDay -> - failwith - "[Z3 encoding] application of unary operator GetDay not supported" - | GetMonth -> - failwith - "[Z3 encoding] application of unary operator GetMonth not supported" - | GetYear -> - failwith - "[Z3 encoding] GetYear operator only supported in comparisons with \ - literal" - | FirstDayOfMonth -> - failwith - "[Z3 encoding] FirstDayOfMonth operator only supported in comparisons \ - with literal" - | LastDayOfMonth -> - failwith - "[Z3 encoding] LastDayOfMonth operator only supported in comparisons \ - with literal" - | RoundDecimal -> - failwith "[Z3 encoding] RoundDecimal operator not implemented yet" - | RoundMoney -> - failwith "[Z3 encoding] RoundMoney operator not implemented yet") + (* e2 corresponds to the first day of the year n. GetYear e1 < e2 can thus + be directly translated as < in the Z3 encoding using the number of + days *) + ctx, Arithmetic.mk_lt ctx.ctx_z3 e1 e2 + | ( Lte_int_int, + [ + (EApp { f = EOp { op = GetYear; _ }, _; args = [e1] }, _); + (ELit (LInt n), _); + ] ) -> + let ctx, e1 = translate_expr ctx e1 in + let nb_days = if is_leap_year n then 365 else 364 in + let n = Runtime.integer_to_int n in + (* We want that the year corresponding to e1 is smaller or equal to n. We + encode this as the day corresponding to e1 is smaller or equal than the + last day of the year [n], which is Jan 1st + 365 days if [n] is a leap + year, Jan 1st + 364 else *) + let e2 = + Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 + (date_to_int (date_of_year n) + nb_days) + in + ctx, Arithmetic.mk_le ctx.ctx_z3 e1 e2 + | ( Gt_int_int, + [ + (EApp { f = EOp { op = GetYear; _ }, _; args = [e1] }, _); + (ELit (LInt n), _); + ] ) -> + let ctx, e1 = translate_expr ctx e1 in + let nb_days = if is_leap_year n then 365 else 364 in + let n = Runtime.integer_to_int n in + (* We want that the year corresponding to e1 is greater to n. We encode this + as the day corresponding to e1 is greater than the last day of the year + [n], which is Jan 1st + 365 days if [n] is a leap year, Jan 1st + 364 + else *) + let e2 = + Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 + (date_to_int (date_of_year n) + nb_days) + in + ctx, Arithmetic.mk_gt ctx.ctx_z3 e1 e2 + | ( Gte_int_int, + [ + (EApp { f = EOp { op = GetYear; _ }, _; args = [e1] }, _); + (ELit (LInt n), _); + ] ) -> + let n = Runtime.integer_to_int n in + let ctx, e1 = translate_expr ctx e1 in + let e2 = + Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 (date_to_int (date_of_year n)) + in + (* e2 corresponds to the first day of the year n. GetYear e1 >= e2 can thus + be directly translated as >= in the Z3 encoding using the number of + days *) + ctx, Arithmetic.mk_ge ctx.ctx_z3 e1 e2 + | ( Eq, + [ + (EApp { f = EOp { op = GetYear; _ }, _; args = [e1] }, _); + (ELit (LInt n), _); + ] ) -> + let n = Runtime.integer_to_int n in + let ctx, e1 = translate_expr ctx e1 in + let min_date = + Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 (date_to_int (date_of_year n)) + in + let max_date = + Arithmetic.Integer.mk_numeral_i ctx.ctx_z3 + (date_to_int (date_of_year (n + 1))) + in + ( ctx, + Boolean.mk_and ctx.ctx_z3 + [ + Arithmetic.mk_ge ctx.ctx_z3 e1 min_date; + Arithmetic.mk_lt ctx.ctx_z3 e1 max_date; + ] ) + | And, _ -> app Boolean.mk_and + | Or, _ -> app Boolean.mk_or + | Xor, _ -> app2 Boolean.mk_xor + | (Add_int_int | Add_rat_rat | Add_mon_mon | Add_dat_dur | Add_dur_dur), _ -> + app Arithmetic.mk_add + | ( ( Sub_int_int | Sub_rat_rat | Sub_mon_mon | Sub_dat_dat | Sub_dat_dur + | Sub_dur_dur ), + _ ) -> + app Arithmetic.mk_sub + | (Mult_int_int | Mult_rat_rat | Mult_mon_rat | Mult_dur_int), _ -> + app Arithmetic.mk_mul + | (Div_int_int | Div_rat_rat | Div_mon_rat | Div_mon_mon), _ -> + app2 Arithmetic.mk_div + | (Lt_int_int | Lt_rat_rat | Lt_mon_mon | Lt_dat_dat | Lt_dur_dur), _ -> + app2 Arithmetic.mk_lt + | (Lte_int_int | Lte_rat_rat | Lte_mon_mon | Lte_dat_dat | Lte_dur_dur), _ -> + app2 Arithmetic.mk_le + | (Gt_int_int | Gt_rat_rat | Gt_mon_mon | Gt_dat_dat | Gt_dur_dur), _ -> + app2 Arithmetic.mk_gt + | (Gte_int_int | Gte_rat_rat | Gte_mon_mon | Gte_dat_dat | Gte_dur_dur), _ -> + app2 Arithmetic.mk_ge + | Eq, _ -> app2 Boolean.mk_eq + | Map, _ -> + failwith "[Z3 encoding] application of binary operator Map not supported" + | Concat, _ -> + failwith "[Z3 encoding] application of binary operator Concat not supported" + | Filter, _ -> + failwith "[Z3 encoding] application of binary operator Filter not supported" + | Not, _ -> app1 Boolean.mk_not + (* Omitting the log from the VC *) + | Log _, [e1] -> translate_expr ctx e1 + | Length, [e1] -> + (* For now, an array is only its symbolic length. We simply return it *) + translate_expr ctx e1 + | IntToRat, _ -> + failwith + "[Z3 encoding] application of unary operator IntToRat not supported" + | MoneyToRat, _ -> + failwith + "[Z3 encoding] application of unary operator MoneyToRat not supported" + | RatToMoney, _ -> + failwith + "[Z3 encoding] application of unary operator RatToMoney not supported" + | GetDay, _ -> + failwith "[Z3 encoding] application of unary operator GetDay not supported" + | GetMonth, _ -> + failwith + "[Z3 encoding] application of unary operator GetMonth not supported" + | GetYear, _ -> + failwith + "[Z3 encoding] GetYear operator only supported in comparisons with \ + literal" + | FirstDayOfMonth, _ -> + failwith + "[Z3 encoding] FirstDayOfMonth operator only supported in comparisons \ + with literal" + | LastDayOfMonth, _ -> + failwith + "[Z3 encoding] LastDayOfMonth operator only supported in comparisons \ + with literal" + | RoundDecimal, _ -> + failwith "[Z3 encoding] RoundDecimal operator not implemented yet" + | RoundMoney, _ -> + failwith "[Z3 encoding] RoundMoney operator not implemented yet" + | _ -> ill_formed () (** [translate_expr] translate the expression [vc] to its corresponding Z3 expression **) @@ -780,7 +738,7 @@ and translate_expr (ctx : context) (vc : typed expr) : context * Expr.expr = | EAbs _ -> failwith "[Z3 encoding] EAbs unsupported" | EApp { f = head; args } -> ( match Marked.unmark head with - | EOp op -> translate_op ctx op args + | EOp { op; _ } -> translate_op ctx op args | EVar v -> let (Typed { ty = f_ty; _ }) = Marked.get_mark head in let ctx, fd = find_or_create_funcdecl ctx v f_ty in diff --git a/french_law/js/french_law.js b/french_law/js/french_law.js index d652634a..d4d2d409 100644 --- a/french_law/js/french_law.js +++ b/french_law/js/french_law.js @@ -3,139 +3,139 @@ globalThis!=="object"&&(this?b():(a.defineProperty(a.prototype,"_T_",{configurable:true,get:b}),_T_));function b(){var b=this||self;b.globalThis=b;delete -a.prototype._T_}}(Object));(function(aH){"use strict";var -buh=aH,buk=typeof -module==="object"&&module.exports||aH,Ad="38527",ij=1133,gN=857,cl="\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales",Fd="Article L521-1",kk="Paragraphe 2 : Ouverture du droit et liquidation.",Fc=4445,ni=365180284,Ac="Changement",Fb="26714",Ab=3875,nh=4397,Fa=163,oU="SaintMartin",gz=815,Aa="1015",jp=891,d4="Section 1 : Seuils de constitution d'un impay\xc3\xa9",z$="559500",cz="Article 1",eV="aide_finale_formule",z_="35630",gM=122,sc="Article 31",kL="50",bd="Unexpected '",ey=299,E$="34700",jo=181,ng="Article 19",oT=862,kK=305,E9=3821,E_=4400,d$=128,kj="Avant",ri="identifiant",oS="Oui",E8="43000",rh="Article D832-26",ex=683,ii=573,z9=383,eU=146,nf=">",oR=575,jn=153,oQ=1027,ih=1129,oP=1053,d_=297,ig=4437,oO="Article 17",ag="Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",jm=1062,eT="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",z8=3942,ne=933,oM=1125,oN="baseMensuelleAllocationsFamiliales",z7="35762",jl=804,z6=3772,y="Calcul du montant de l'allocation logement",E7=358,dR=2011,rg=2023,dQ=295,E6=462,ie="Article L841-1",rf="ServicesSociauxAllocationVerseeALaFamille",E5=1183,z4="186000",z5="Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",z3="16.25",re="0.0315",ki="traitement_aide_finale_diminu\xc3\xa9",nd=1118,E4="\xc3\xa9ligibilit\xc3\xa9_commune.date_courante",z2="40758",oL="e",jk=313,id="Autre",ic=798,z1=1150,E3="Article L822-2",jj=421,f5="smic",z0="39445",ib=1071,bx="Article D842-6",nc=1052,zY=-43,zZ="Neuf",ia=901,zX=3746,sb="Article 27",ji=897,E2="inf",E1="calculetteAidesAuLogementGardeAlternee",zW=4305,rd=306,E0=4907,zV="27365",EZ="Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",nb=685,zU=4637,EY="41392",zT=1002,kJ=111,na=929,EX="Location",zS="240400",rc=269,sa="Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale",gL=619,EW="33500",kh="CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9",d3="Article D823-9",bD="traitement_aide_finale_minoration_forfaitaire",EV=1009,rb="\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",EU="infinity",h$="2.5",ET="3663",d9="Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement",zR=2609,ew="examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr",zQ="\\t",aB="examples/aides_logement/code_construction_legislatif.catala_fr",zP=330,jh=3272,ES=385,aL="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",kI=112,h9="1000",h_=1131,d2=563,c4="examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr",kH=701,zO="210600",ER="Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'",zN="Couple",kg=687,m$="SaintPierreEtMiquelon",h8=110,ck="PrestationsFamiliales",jg=464,EQ="\xc3\x89l\xc3\xa9mentPrestationsFamiliales",oK=679,EP="214700",zM=2597,h7=615,dE="Calcul\xc3\x89quivalenceLoyerMinimale",oJ=554,je=4826,EO="42926",jf=1096,zL=-32,zK="39016",oI="AllocationLogementFamiliale",d1=1023,EN="interfaceAllocationsFamiliales",cg=561,m_="AllocationLogementSociale",EM=3202,EL=3766,zJ="plafond_l512_3_2",jd=639,ra="Chapitre II : Des contributions pour le remboursement de la dette sociale.",h6=117,aS="examples/allocations_familiales/decrets_divers.catala_fr",jc=3924,zI=348,kG="compl\xc3\xa9ment_d\xc3\xa9gressif",q$="Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9",EJ="240200",EK="Assert_failure",r$="Section 1 : Secteur locatif ordinaire",EI="568400",jb=3270,r_="0.32",zH="40961",EH=350,kF="Non",ja=508,zG=185,kE="Article R824-2",EG=219,EF=1e14,zF="D331_76_1",oH="Article R521-3",zE="17607",ac=2022,zD=3359,ED="34865",EE="Fatal error: exception %s\n",zC="261800",oG=865,kf=740,m9="Article 2",ev=256,EC=4714,eu=558,h5=786,zB="Article L521-3",EB="Article R822-1",zz=1795,zA="45064",EA="taux_francs_vers_euros",aK="Archives l\xc3\xa9gislatives et r\xc3\xa9glementaires",kD="abattement_d\xc3\xa9pense_nette_minimale_d832_10",oF=699,Ez="mensualit\xc3\xa9_\xc3\xa9ligible",i$=1075,m8="D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance",r9="ENOENT",Ey=1395,zy=4872,q_=288,q9="0.0006",h4=315,q7="EnfantLePlus\xc3\x82g\xc3\xa9",q8=259,zx=4262,m7=556,b3="examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr",Ex=885,zw="228000",Ew="ENOTEMPTY",r8="Article 13",Ev="calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge",zv="D331_59_8",Et="Loyer",Eu="35947",zu=162,dP=564,zt="brut_horaire",Es="x",zs="Sous-section 1 : Aides personnelles au logement",Er="calculAidePersonnaliseeLogementAccessionPropriete",m6=547,ke="Article D755-5",fQ=680,Eq="Article D842-4",i_=791,d8=314,r7="%d",h3=3926,q6=810,zr="Z.of_substring_base: invalid digit",Ep="ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille",h2=637,m5=285,zq="buffer.ml",e="Prologue : aides au logement",C="Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",En="167600",Eo="39590",Em=3405,El=4160,gK=2008,q5="0.0179",zp=4886,zo=1089,Ek=1051,i9=3476,zm="245700",zn=1121,B="Prologue",m4="calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge",Ej="Metropole",c3=100,kB="prise_en_compte_personne_\xc3\xa0_charge",kC=851,m3=702,zk=4243,h1=420,zl=1397,fl=300,Y="3",a6="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",zj=230,oD=413,oE="169.",zh=2549,zi=0.5,Ei=4027,oC=990,cS="Article D521-1",Eg="conventionn\xc3\xa9_livre_III_titre_V_chap_III",oB=622,Eh="sous_calcul_traitement",zg=374,i8=3760,h0=956,oA="Article D842-11",dO="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",du=107,m1=161,m2=381,m0="Article D842-12",zf=3905,i7=690,oz="prestations_familiales",kA="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",zd=3758,ze="26440",hZ=649,Ee=3901,Ef="201700",r6="Unix.Unix_error",zc=3631,hX=1060,hY=1139,zb=3355,Ed="calculAidePersonnaliseeLogement",oy=553,hW=1088,za="Stack_overflow",fe="condition_2_r823_4",a3="Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer",aQ="\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement",y$="/static/",q4=253,y_=3147,Ec=2791,Eb="Not_found",y8="1085",y9=235,q3="\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02",y7="41268",aW="examples/allocations_familiales/epilogue.catala_fr",ox=695,Ea="calcul_apl_logement_foyer.date_courante",y6=2702,b8=848054398,D_=3496,ow="Mayotte",D$="smic.date_courante",y5=260,ov="1224",D9="calcul_apl_locatif",dt="calcul_plafond_mensualit\xc3\xa9_d832_10_3",q2="rmdir",ou=696,i6=1069,D8=32752,y4="33623",r5="19100",y3="37478",f4="calcul_nombre_parts",r4="Article 23",ot="Article R842-5",y2=1026,dj=149,bK="montant",d7="Article L521-2",b0="examples/allocations_familiales/../smic/smic.catala_fr",yZ="calculAllocationLogementLocatif",y0="37906",y1="false",c2=849,os="Invalid integer: ",yY="PasDeChangement",bp="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement",a7=106,D7=346,mZ=186,dD=0x80,eS="Chapitre 1er : Dispositions relatives aux prestations",r3="Fatal error: exception ",or="\xc3\xa9ligibilit\xc3\xa9_commune",mY=4757,r2="0.0234",D6="43378",yX="calcul_apl_logement_foyer.date_conventionnement",hV=852,yW=1413,mX=1054,r1="25978",di=303,D4=493,D5=3541,D3="Section 2 : R\xc3\xa8gles de non-cumul",yV=3878,r0="_",yU="eligibilitePrimeDeDemenagement",mW=517,q1="compare: functional value",yT=444,bZ="0.",yQ=114,yR="40928",yS="19300",yP=3129,D2=1030,mV=411,hU=978,yO="197700",yN="Invalid_argument",D1=656,i5=4433,yM=4832,q0=823,D0="EndCall([ ",oq="0.9",DY="Article R822-22",DZ="prise_en_charge",yL="calcul_aide_personnalis\xc3\xa9e_logement",DW="34301",DX="577500",yK="%ni",DV=3959,mU=949,fk=324,an=2020,DU="PersonneSeule",yJ=2098,op=559,qZ="0.0238",rZ="Article 9",DT="225100",DS="AutresPersonnes",dN="6",i4=495,yH="173600",yI=602,fP=858,n="0",ah="Section 3 : Logements-foyers",yF=3854,yG=4493,kd="Article L161-17-2",d="examples/aides_logement/prologue.catala_fr",DR="eligibiliteAidesPersonnelleLogement",eR=817,DQ=3335,bc=248,yE=341,DP=3992,oo=322,yD=3856,i3=2007,DO="208200",yz="Zone1",yA="Locataire",hT=301,yB="R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro",yC="37457",DM=4292,DN="562800",yy="535744",yx="235800",DL=3520,mT=555,bY=403,mS=930,DK="resetLog",yw="\xc3\xa2ge_l512_3_2",DJ=3268,Q="AllocationsFamiliales",yv="situation_familiale_calcul_apl",qY="GardeAlterneeAllocataireUnique",hS=3475,DI="haut",yu=4334,DH=4840,kc=1024,ys="204761",yt="3.1",gJ=802,mR=133,rY="35780",yr="calculAidePersonnaliseeLogementFoyer",kz=945,fO=366,fd=0xffffff,DG="34829",yp=524,yq=4179,mQ=876,i2="Titre III: Titre III : Dispositions communes relatives au financement",DF="36378",at="Calculette globale",mP=286,DE="149600",DD=2171,yo=3586,ky="Article R824-1",cR=1994,hR=2010,bF="Prologue : prestations familiales",rX=2147483647,DC="774",on=689,yn=", characters ",f3=456,qX="180100",f2="BaseMensuelleAllocationsFamiliales",yl=2192,ym="prestations_familiales.r\xc3\xa9sidence",DB="819",bk="Chapitre IV : Calcul des allocations de logement en secteur accession",yk="AllocationJournali\xc3\xa8rePresenceParentale",yj=".0",DA="36733",qW="AllocationFamilialesAvril2008",gI=693,eQ=855,Dz="AllocationRentreeScolaire",yi="mensualit\xc3\xa9_minimale",kx="2.",mO=691,fj="5612",yh="Concubins",dy="calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9",Dy="Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",yg="SaintBarth\xc3\xa9lemy",Z="Partie l\xc3\xa9gislative",hQ=2003,kb="Article R823-4",yf="32956",bm="examples/allocations_familiales/securite_sociale_D.catala_fr",ye="294500",qV="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr",dM="RessourcesAidesPersonnelleLogement",f1="Montant des plafonds de ressources",bl="Annexe",om=1847,eP="Section 1 : B\xc3\xa9n\xc3\xa9ficiaires",yd=2767,Dx="3524",yc="Article D832-27",Dw=2866,yb=3946,x$="Zone3",ya=4126,ka="500",fN=471,dC=2015,x9=2595,x_="40144",fi="prise_en_compte",i1=3762,Dv="223900",x8="ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux",Du=138,x7="225500",ol=1998,w="Livre VIII : Aides personnelles au logement",hP=905,j$="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6",qU="nan",Dt="38892",x6="calculNombrePartLogementFoyer",mN=646,kw="Impay\xc3\xa9D\xc3\xa9penseLogement",bb="Calculette avec garde altern\xc3\xa9e",Ds=0xdfff,hO="4.3",et="/",ok=4791,rW="ENOTDIR",rV=1073741823,x5="\\r",rU="0.0068",rT=513,Dr="calcul_allocation_logement",x3="coefficient_prise_en_charge",mL=743,mM=734,x4=206,x2=3811,kv="Article D161-2-1-9",oj="Guyane",oh="PasDeTravaux",oi=311,x1=2930,mK=255,Dq="Revenu",bC="droit_ouvert_majoration",E="Partie r\xc3\xa9glementaire",c1="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",xZ=1777,x0=4130,Do=1954,Dp=3133,xY="Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",Dn="Sous-section 4 : Prise en compte du patrimoine",i="D\xc3\xa9clarations des champs d'application",xX=4221,xW="End_of_file",Dm="calcul_apl_logement_foyer.condition_2_du_832_25",xU="calculAllocationLogementFoyer",xV=1313,j_="traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9",fc="Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer",i0="Article 24",qT="Failure",Dl="267871",Dk=4268,xT="167800",xS=1854,a2="CalculetteAidesAuLogement",xR=1367,X=684,mJ=715,xP=4800,qS="\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",xQ=0xdc00,xO="389618",og="3.",iZ=788,xN="185800",rR="0.0201",rS=1072,of=880,Dj="Sys_error",fM="Article D521-2",mI=703,Di=3725,rQ="nombre_personnes_\xc3\xa0_charge_prises_en_compte",es="Sous-section 4 : Assurance vieillesse",Dh="Printexc.handle_uncaught_exception",cQ="Article D832-24",od=618,oe="30500",hN=1079,xM="194810",hM=3928,mG=745,mH="int_of_string",O="examples/aides_logement/arrete_2019-09-27.catala_fr",xL="Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux",Dg=4201,oc="Article 37",xK="39340",Df=3094,xJ="name",xI=3800,cH=103,gH=966,xH=447,iY=428,ae="Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement",xG=3991,ku="traitement_aide_finale_redevance",dL=132,xF=" ])",De="1.4",ob=698,mF="31797",xE="19484",mE=988,cE="Article 7",Dc=1509,Dd="%Li",mD=864,gy=591,kt=1014,xD=2580,qR="r\xc3\xa9muneration_mensuelle",cZ=302,gx=960,xC=205,cD="Article 14",xB="34570",Db=4724,qQ="date_de_naissance",f0=1090,mC="base_mensuelle_allocations_familiales",iX=795,iW=927,mB="_z",iV=2000,rP=1951,mA=860,eO=136,b2="Titre IV : Allocations de logement",xA="retrieveRawEvents",d6="InterfaceAllocationsFamiliales",mz=985,iU=1077,Da=4078,iT=4431,j9="Pendant",qP="%a",gw=", ",fb="5422",xz=199,dh=2018,C$="17012",oa="calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25",xy="AllocationJournalierePresenceParentale",C_=2258,C9=3542,xx=1920,bR="Chapitre III : Calcul des aides personnelles au logement en secteur locatif",C8="' kind for the enumeration 'ElementPrestationsFamiliales.t'",hL=682,fL=467,by="Prestations familiales",C5="Enfant\xc3\x80Charge",C6="calculette",C7="GardeAltern\xc3\xa9eAllocataireUnique",er="Article D823-16",C4="172500",C3="n_nombre_parts_d832_25",rO="Apres",xw=4125,hK=1084,bB="examples/aides_logement/../prestations_familiales/prologue.catala_fr",xv=4316,C2="179800",fh=" ",xu=361,J="Secteur locatif",C1="Undefined_recursive_module",xt=3721,aj="output",xs="195500",C0=3249,CZ="base_mensuelle_allocations_familiales.date_courante",qO="199900",cC=-976970511,xq="' kind for the enumeration 'SituationObligationScolaire.t'",xr="%.16g",CY="220100",n$=189,xp=4422,j8="droit_ouvert_forfaitaire",j7=620,xo="%i",qN="0.01",xn=1830,CX="262985",xm="409505",xl="LogementFoyer",CW="139700",n_="PrestationAccueilJeuneEnfant",xk=3965,CV="Article L822-4",n9=856,hJ=4824,xj="41252",xi=4270,CT="0.1",CU="Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9",rN=382,my="5399",qM="2805",xh=4200,eq=123,hI=570,xg="calcul_apl_logement_foyer.type_logement_foyer",hG="0.0173",hH=806,K="Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement",fK=159,xf="LocationAccession",iS=1067,mx=577,CS=183,hF=4435,qL="a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales",CR="41338",ds=0xff,mw="Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance",CQ=-12,mv="calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies",xe=4167,mu=458,qK="Article 15",db="0.75",j6="Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin",CP="22355",mt=3654863,CO="140800",n8=145,rM=175,rL="Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",ep=455,CN=1997,xd="163000",n7=991,j5="0.5",n6="Article R842-14",j4=641,xc="fd ",xb=2571,xa=1116,w$="41751",w_="181800",rK=409,w9="41316",bE="traitement_aide_finale_contributions_sociales_arrondi",w8="cat\xc3\xa9gorie_calcul_apl",w7="757",b_="Prise en compte des ressources pour les aides personnelles au logement",ks="coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte",hE=377,gv=1081,n5=848,fJ=2001,qJ="Compl\xc3\xa9mentFamilial",hD=793,w6=633,CL=2206,CM="smic.r\xc3\xa9sidence",ax="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",fZ=1018,w5=1894,ms=108,CK="Article D832-18",mr=-2147483648,eN=2002,v="1",w4="Chapitre II : Dispositions applicables aux ressources",mq="Article R822-7",CJ="42605",w1="VendeurQuandDemandeurAContratLocationAccession",w2="Article R755-0-2",w3=406,CI="calculNombrePartsAccessionPropriete",CH="allocationFamilialesAvril2008",rJ=": Not a directory",w0="b",CF="18900",CG="Article D521-3",cP="CalculAidePersonnalis\xc3\xa9eLogement",wZ="D331_63_64",dK=2012,CD="42469",CE="Out_of_memory",CC=3074,D="examples/aides_logement/code_construction_reglementaire.catala_fr",aa="4",rI="index out of bounds",mp=986,CB="27900",iR=903,n4="_bigarr02",wY="31264",mo=881,CA=0xffffffff,hC=895,Cz="LaR\xc3\xa9union",wX=3531,mn="Article L822-5",Cy=4261,mm=574,Cx="981600",wW=1151,hB=292,eo=0xffff,iQ=2009,Cw="%.17g",ml="calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25",wV=400,qI=1148,c0="100.",Cu="1.25",Cv=143,Ct=3839,wU="44729",Cs=3167,eM="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",gu=963043957,N="5",mk=142,n3=741,cU=126,iP="AllocationSoutienFamilial",wT=840,Cr="SousLocataire",wS="34713",n1=628,n2=4758,bt="Section 1 : Calcul, liquidation et versement des aides",n0=124,wR="0.98",gt="Article L512-3",wP="633129",wQ=422,iO=427,dg=150,wN=3267,wO="41440",mj=135,fY=899,df="\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement",dx="Sous-section 2 : Calcul de l'aide en secteur locatif",j3=252,Cq="enfant_le_plus_\xc3\xa2g\xc3\xa9",G="examples/allocations_familiales/prologue.catala_fr",az="CalculAidePersonnalis\xc3\xa9eLogementFoyer",en=".",nZ=147,Cp=0xf0,wM="eligibilitePrestationsFamiliales",cG="12.",b7=694,mi="Guadeloupe",wL=276,bi=116,nY="230500",wK="enfantLePlusAge",nX=576,mh=627,de=365,hA=813,dJ=294,fg="traitement_aide_finale_montant_minimal",wJ="impossible case",gG=1073,dI="examples/allocations_familiales/securite_sociale_R.catala_fr",wI=3119,iN=968,eL="R\xc3\xa8gles diverses",mg=500,Co=-1080,Cm="18185",Cn=3183,hz=638,wH="SaintBarthelemy",gF=1063,Cl=-1023,nW=859,gs="1272",wG="ressources_m\xc3\xa9nage_avec_arrondi",Cj="ouvertureDroitsRetraite",Ck="\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement",Ci="204700",rH="Article L755-12",wF="TravauxPourAcquisitionD832_15_1",Cg="Ancien",Ch=2176,rG="lib/read.mll",wE=4411,gE="1229",Cf="Article premier",mf=501,aV="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement",gr=819,me='"',Ce="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",md="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr",cO="CalculAllocationLogement",Cd="3539",rF="<",wB="208500",cc=931,wC="prestations_familiales.date_courante",wD=0x800,mc=617,mb=182,qH=1415,wA=398,nV="\xc3\xa9ligibilit\xc3\xa9",wy="233000",wz=0.012,Cc=2781,wx="calculAidePersonnaliseeLogementLocatif",bP="Article 33",iM=719,Cb="M\xc3\xa9tropole",B$="40696",Ca=209,ww=131,B_="ressources_m\xc3\xa9nage_arrondies_seuil",wv=204,rE="Article D815-1",iK=834,iL="conditions_hors_\xc3\xa2ge",eK="traitement_aide_finale_abattement",a_="Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte",wt=726928360,au=562,wu="221100",qG=165,ws="([^/]+)",ma=700,B9="Article 39",rD=0xf,rC=809,wr="798",B8="BailleurSocial",j2="montant_initial_m\xc3\xa9tropole_majoration",nU=372,cn=125,iJ=907,wq="Division_by_zero",iI=1092,wp=1844,nT=520,qF="Article L832-3",rB=430,wo=708012133,B7="SituationObligationScolaire",wn=4794,B5="AutrePersonne\xc3\x80Charge",nS=879,B6="44440",B4="AllocationJeuneEnfant",dB=2014,l$=1119,iH=1059,em=552,B3="22262",nR=659,B2="Article D842-17",B1=4371,nQ=697,B0="Article L751-1",fX=503,kr=119,wm=3584,j1="montant_avec_garde_altern\xc3\xa9e_majoration",BZ="70",eJ=412,dH=104,hy=3478,wk="calculette_sans_garde_altern\xc3\xa9e",wl="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",nP=321,wj="version_avril_2008",iG=468,BY=279,wi="38361",nO=714,BX=439,fI=2013,BV="ouverture_droits_retraite",BW=102,hx=800,BU=4040,hw="100000.",wh="18261",hv=101,nN="calcul_nombre_parts.situation_familiale_calcul_apl",BT="body",fH="Calcul des contributions sociales s'appliquant aux aides personnelles au logement",wg="Unexpected '%s' kind for the enumeration 'Collectivite.t'",rA="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",gD=1e7,fa=254,BS="calcul_apl_logement_foyer.zone",wf=407,BR="6.",wc=2628,wd=3676,we="1003",dr="Article L841-2",BQ=" : flags Open_text and Open_binary are not compatible",BO=779,BP=2596,d0="Article D832-15",el="Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales",wb="43248",BN=4961,gC=1992,eI="examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr",wa="\\\\",u="Code de la construction et de l'habitation",v$="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",BM="Article 38",v_=2817,l_=188,BK=463,BL="0.04",v8="0.0226",v9=270,v7="192500",BJ="230700",v6="217600",nM=926,BH=4626,BI="0.0463",hu=4430,qE="GardeAlterneePartageAllocations",qD="\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0",nL="0.55",nK=109,dd="droit_ouvert",F="Champs d'applications",v5=479,iF=952,v3=2655,v4=4250,bh="ContributionsSocialesAidesPersonnelleLogement",iE="Article D832-10",bj="Interface du programme",qC=-97,v2=1402,nJ=944,aJ="examples/aides_logement/archives.catala_fr",iD=469,BG=3470,v1=281,BF=3313,v0="218700",qA="Article D823-20",qB="ServicesSociauxAllocationVerseeAuxServicesSociaux",kq="d\xc3\xa9pense_nette_minimale_d832_27",iC=195,ek="1.",fG=1015,ht=1094,vZ="DecisionTaken(_)",vY=2234,vX="45200",da="d\xc3\xa9pense_nette_minimale",iB=954,qz="Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es",j0="Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base",rz="Article D823-17",vW=4575,BE="Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole",iA=596,nI="AllocationLogement",vT=2901,vU="5186",vV="Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'",hs=1065,fF=155,fW=518,BD="calcul_apl_logement_foyer.situation_familiale_calcul_apl",vR="142303",l9=316,hr=4828,vS="37778",dZ=296,nH=565,BC=215,dY="Article D832-11",vQ="LaReunion",nG=947,BB="AgrandirOuRendreHabitableD331_63",aU="Montant du salaire minimum de croissance",l8=557,eH=621,vP=2311,qy="0.3",vO="true",a$="Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution",fV=370,ab="Titre II : Dispositions communes aux aides personnelles au logement",Bz="25116",BA=1177,jZ="Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s.",qx="1500",vN=" is too large for shifting.",By="237200",nF=502,l6="242800",l7="Map.bal",ry="5208",Bx="0.08",vL=1963,vM="@[",_="Titre III : Aide personnalis\xc3\xa9e au logement",Bw="Apr\xc3\xa8s",vK=1185,$="Code de la s\xc3\xa9curit\xc3\xa9 sociale",Bv="42892",l5=688,l4="ml_z_overflow",vJ="1.8",Bu=807,kp="contributions_sociales.date_courante",gB=850,l3=309,vI="calcul_apl_logement_foyer.redevance",Bt=1425,vH=4952,Bs=-752863768,rw="202500",rx="Article D832-17",Br=360,Bo="Article 10",iz=1144,Bp="allocationsFamiliales",Bq="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",vG="582700",nE=167,Bm=274,Bn="4986",aM="CalculAidePersonnalis\xc3\xa9eLogementLocatif",Bl=433,hq=4830,nD=531,eG="abattement_d\xc3\xa9pense_nette_minimale",Bk="Sys_blocked_io",qw="b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement",cf="Articles valables du 1er octobre 2020 au 1er octobre 2021",gq="Chapitre 2 : Champ d'application",vF="0.0588",nC="Chapitre 2 : Champ d'application.",Bj=362,Bi=4773,nB=457,Bh="49",V="\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement",bs="Article D842-15",l2=246,fE=1016,vD="37900",vE="%u",l1="Article L831-1",aD="Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession",fD="calcul_\xc3\xa9quivalence_loyer_minimale",fC=298,Bg="Article 40",b1="\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement",vC="19402",jY=925,T="2",cy=127,nA=711,vA="Article 30",vB="@{",cb="Montant de la base mensuelle des allocations familiales",vz=" : flags Open_rdonly and Open_wronly are not compatible",vy="0.232",rv="OuvertureDroitsRetraite",vw="Zone2",vx="43505",Bf=3451,nz="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",cF="-",Be=336,hp=603,vu="n_nombre_parts_d832_11",vv=" : file already exists",vt=397,Bd=4473,jX="EffectiveEtPermanente",Bb="calculAllocationLogementAccessionPropriete",Bc="41481",e$="0.0045",fB="Date d'ouverture des droits \xc3\xa0 la retraite",l0=866,vs=1099,Ba="retrieveEvents",vr="20165",A$="2699",lY=625,lZ=644,vp="Infini",vq="prestationsFamiliales",fA="Article 43",vo="\\b",A_=2215,ad="Titre IV : Allocations de Logement",lX="Martinique",ny=404,cm="Article D832-25",vn=487,vm=12520,nx=4390,A9="Collectivit\xc3\xa9",cT=401,A8="42228",ce="Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement",aI="Chapitre 1er : Allocations familiales",ho=2016,vl="AllocationEducationEnfantHandicape",A7="832200",A6="AllocationRentr\xc3\xa9eScolaire",iy=1000,U="CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9",A5=4081,W="",ru=737456202,ix="Sous-section 2 : Principes de neutralisation et d'abattement",A4="^",hn=4821,A3=2673,lW="Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement",lV=746,hm=0x3f,A2="' kind for the enumeration 'Collectivite.t'",rt="184000",vk="251500",qv=334,vj=4426,dG="Article 16",A1="Article D842-9",vi="Match_failure",A0=2302,hl=716,ar=2021,iw="0.085",kn="d\xc3\xa9pense_nette_minimale_d832_10",ko="CalculNombrePartLogementFoyer",AZ="35130",jW="montant_initial_majoration",ff="+",iv=1061,AY="1057",hk=425,AX="%li",cN=998,hj="Smic",AW="234600",iu=3764,AV="39051",vh="20900",nw="calcul_apl_logement_foyer",rs="208600",hi=431,qu=267,AU="impayeDepenseLogement",it=962,AT="calcul_nombre_parts.condition_2_du_832_25",vg=0xe0,AS=2072,vf=3175,hh=1126,AR="20100",lU=882,AQ="D331_32",eF="contributions_sociales",fU=580,hg=250,ve="calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies",M="Secteur logement-foyer",qt="Article L831-2",I="Allocations familiales",is=893,nv=624,qs="0.027",vd=545,vb="\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage",vc="allocations_familiales",rr=1255,ir="Article 8",bQ="examples/allocations_familiales/securite_sociale_L.catala_fr",lT=594,bw=2019,nu="Article R521-1",rq="jsError",eE=0x8000,jV=1055,bg="Chapitre Ier : Champ d'application",AP="Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire",iq=964,AO="43074",lS=946,va="6.55957",u$="eligibiliteAidePersonnaliseeLogement",lR="Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources",hf=371,fz=320,ip=129,he=958,u_="\n",km="abattement_d\xc3\xa9pense_nette_minimale_d832_27",lQ=497,af="Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement",qr="3.7",fT=414,u9=4459,lP=310,bJ="Tous secteurs",u8="Article 34",b6="calcul_plafond_mensualit\xc3\xa9_d842_6_base",io=2005,AN=-48,qq="9",u7=4557,AM="1025",cd="camlinternalFormat.ml",eD=549,nt=312,u6=3221,nr=943,ns=148,AL="132000",qp="0.0185",u5="924600",kl=713,cY=2017,AK="date_naissance",dc=317,am="CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9",lO="Article R822-2",AJ=3199,d5="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",gp=1141,rp="obligation_scolaire",u4="EEXIST",eC=293,eB=550,u3=2560,ej=121,AI="prestations_familiales.prestation_courante",u2=1222,nq=1999,AF=824,AG="\xc3\xa9ligibilit\xc3\xa9_commune.demandeur",AH="\\n",AE=3786,dq=120,lN="16",AC="23138",AD="Article D832-14",ro=512,u1=0x7ff0,uZ="eligibiliteAllocationLogement",u0=1871,lM=928,bv="Articles valables du 1er octobre 2021 au 1er juillet 2022",np=861,uY="montant_forfaitaire_charges",uW=1903,uX=3576,ei="traitement_aide_finale_d\xc3\xa9pense_nette_minimale",AB=4854,rn=177,uV="0x",AA="Ascendant",lL="0.005",s="Calcul du montant de l'aide personnalis\xc3\xa9e au logement",hd=499,lK="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",no=645,Az="40888",uT="bas",uU="0.208",uS="210900",Ay="219900",bA="traitement_aide_finale",uQ="r\xc3\xa9gime_outre_mer_l751_1",ba=105,uR="Invalid function call ([ ",uP="Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",eA=551,uO=4407,lJ="Article R512-2",hc=1135,Ax="31664",uN="44693",fS=454,hb="0.45",uM=1165,qo="2710",go=429,ai="input",uL="39839",Aw="\xc3\xa9ligibilit\xc3\xa9_logement",qn="0.2",ha=157,Av=2286,dw=364,lI="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",uK=390,nn=498,fy="examples/aides_logement/autres_sources.catala_fr",uJ="calculAllocationLogement",g$=4820,uI=1384,qm="mkdir",im=379,gn="Article L822-3",be="Chapitre III : Modalit\xc3\xa9s de liquidation et de versement",dF=1013,nm=592,nl=": No such file or directory",gm=378,fR="Chapitre VII : Calcul des allocations de logement en secteur logement-foyer",gA="Titre 5 : D\xc3\xa9partements d'outre-mer",lH=948,uH="766",uG=4648,cM="CalculetteAidesAuLogementGardeAltern\xc3\xa9e",uF=151,Au="calculetteAidesAuLogement",rm="Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",gl=1137,As="Descendant",At=2334,b9="\xc3\x89ligibilit\xc3\xa9AllocationLogement",a9="D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte",nk=220,nj=626,Ar="\xc3\xa9ligibilit\xc3\xa9_apl",uE="taux",ql="Demandeur",cB="CalculAllocationLogementLocatif",rl=843,il=1046,Aq="BeginCall([ ",uD=332,jU="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1",Ap="GardeAltern\xc3\xa9ePartageAllocations",fx=932,aX="\xc3\x89pilogue",aq="CalculAllocationLogementFoyer",Ao="943900",An="bmaf",Al="calculEquivalenceLoyerMinimale",Am=4036,lG=2006,g_="0.95",Aj="contributionsSocialesAidesPersonnelleLogement",Ak="ressourcesAidesPersonnelleLogement",lF=863,cj=363,uB="Pervasives.do_at_exit",uC="utf8",Ai="222300",qk="ComplementFamilial",Ah="225000",uA="\xc3\xa9ligibilit\xc3\xa9_allocation_logement",rk="0.0283",uz=217,aN=854,rj="0.16",lE=643,a5="Article 18",ik=418,Ag="36815",ez=134,uy=2756,dv="Section 2 : Conditions relatives aux ressources",Af=4189,Ae=3930,aG="\xc3\x89ligibilit\xc3\xa9 aux allocations de logement";function -btn(d,b,e,c,f){if(c<=b)for(var +a.prototype._T_}}(Object));(function(aJ){"use strict";var +bul=aJ,buo=typeof +module==="object"&&module.exports||aJ,Ag="38527",il=1133,gP=857,cn="\xc3\x89ligibilit\xc3\xa9PrestationsFamiliales",Fg="Article L521-1",km="Paragraphe 2 : Ouverture du droit et liquidation.",Ff=4445,nk=365180284,Af="Changement",Fe="26714",Ae=3875,nj=4397,Fd=163,oW="SaintMartin",gB=815,Ad="1015",jr=891,d7="Section 1 : Seuils de constitution d'un impay\xc3\xa9",Ac="559500",cB="Article 1",eX="aide_finale_formule",Ab="35630",gO=122,sf="Article 31",kN="50",bf="Unexpected '",eA=299,Fc="34700",jq=181,ni="Article 19",oV=862,kM=305,Fa=3821,Fb=4400,eb=128,kl="Avant",rl="identifiant",oU="Oui",E$="43000",rk="Article D832-26",ez=683,ik=573,Aa=383,eW=146,nh=">",oT=575,jp=153,oS=1027,ij=1129,oR=1053,ea=297,ii=4437,oQ="Article 17",ai="Section 2 : Accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",jo=1062,eV="Chapitre 5 : Prestations familiales et prestations assimil\xc3\xa9es",z$=3942,ng=933,oO=1125,oP="baseMensuelleAllocationsFamiliales",z_="35762",jn=804,z9=3772,z="Calcul du montant de l'allocation logement",E_=358,dU=2011,rj=2023,dT=295,E9=462,ih="Article L841-1",ri="ServicesSociauxAllocationVerseeALaFamille",E8=1183,z7="186000",z8="Instruction interminist\xc3\xa9rielle no DSS/SD2B/2020/33 du 18 f\xc3\xa9vrier 2020 relative \xc3\xa0 la revalorisation au 1er avril 2020 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",z6="16.25",rh="0.0315",kk="traitement_aide_finale_diminu\xc3\xa9",nf=1118,E7="\xc3\xa9ligibilit\xc3\xa9_commune.date_courante",z5="40758",oN="e",jm=313,ig="Autre",ie=798,z4=1150,E6="Article L822-2",jl=421,f7="smic",z3="39445",id=1071,bz="Article D842-6",ne=1052,z1=-43,z2="Neuf",ic=901,z0=3746,se="Article 27",jk=897,E5="inf",E4="calculetteAidesAuLogementGardeAlternee",zZ=4305,rg=306,E3=4907,zY="27365",E2="Circulaire interminist\xc3\xa9rielle N\xc2\xb0 DSS/SD2B/2017/352 du 22 d\xc3\xa9cembre 2017 relative \xc3\xa0 la revalorisation au 1er janvier 2018 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",nd=685,zX=4637,E1="41392",zW=1002,kL=111,nc=929,E0="Location",zV="240400",rf=269,sd="Ordonnance n\xc2\xb0 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale",gN=619,EZ="33500",kj="CalculNombrePartsAccessionPropri\xc3\xa9t\xc3\xa9",d6="Article D823-9",bF="traitement_aide_finale_minoration_forfaitaire",EY=1009,re="\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\xff\xff\x03\0\0\0\x86\0\xff\xff\x03\0\xff\xff\x86\0E\x01\x92\x019\0\xff\xffE\x01\x92\x01\xff\xff\xff\xff\xff\xff\xff\xff}\0\x8a\0\xff\xff\0\0\xff\xff\0\0\x03\0\xa9\0\x86\0\xae\0\xff\xff\0\0\n\x01E\x01\x92\x01\f\x01\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x05\0s\0\0\0}\0\x81\0\x05\0\xec\x01\x88\0\xff\x01&\0\xff\xff\n\0\x88\0f\0:\0\0\0k\0f\0\xff\xff\x0b\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1d\0&\0\0\0o\0\xd0\0\xe9\0\xff\0\f\x01\x0f\0\x11\0<\0\x0b\0\n\0\0\0\x14\0\x18\0\x1f\0 \0\"\0\x16\0\x1a\0\0\0\x0e\0\x1b\0!\0\x12\0\x17\0\0\0\x10\0\x13\0#\0(\0$\0&\0\0\0)\0*\0+\0,\0-\0.\0:\0R\0\x0b\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0\r\0'\0?\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0U\0\x8c\0<\0\r\0\x8f\0\x90\0\x91\x000\0\x93\x000\0\x94\0'\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x001\x001\x001\x001\x001\x001\x001\x001\x001\x001\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0A\0'\0\x95\0\x96\0\x9c\0?\0\x9d\x003\0\x9e\x003\0\x9f\x002\x003\x003\x003\x003\x003\x003\x003\x003\x003\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x005\x005\x005\x005\x005\x005\x005\x005\x005\x005\0\x9b\x002\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa1\0\xa2\0\x9b\0[\0A\0\0\x007\x007\x007\x007\x007\x007\x007\x007\x007\x007\x009\0D\0f\0k\0s\0\x83\0\x85\0\x85\0}\0\x8a\0\x85\0\xa3\0^\0\xa5\0D\0\xa6\0\xa7\0\xa8\0\xab\0o\0\xac\0\xad\0\xce\0\xcb\0\xcf\0\xd2\0\xd3\0:\0R\0\x85\0\xd4\0\xd5\0\xd6\0\xd7\0\xd9\0\x8c\0\xda\0a\0\xdb\0\xdc\0w\0\xdd\0\xde\0\xdf\0\x85\0[\0\xcb\0\"\x01>\x01\xe9\0\x98\0\x01\x01P\x01\xf7\0<\0\xfb\x006\x01:\x01Q\x01D\0)\x01R\x01S\x01\x06\x01\x1a\x01D\0w\0\x1e\x01\x0f\x01D\0^\0\x0f\x01T\x01U\x01V\x01G\x01X\x01D\0\xcb\x002\x01G\x01D\0Y\x01D\0D\0G\0G\0G\0G\0G\0G\0G\0G\0G\0G\0a\0L\x01w\0Z\x01?\0\x01\x01\\\x01G\0G\0G\0G\0G\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0\x98\0L\x01]\x01_\x01a\x01b\x01-\x01N\0N\0N\0N\0N\0N\0c\x01\x98\0d\x01G\0G\0G\0G\0G\0G\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\xb4\0\x14\x01L\x01A\0\x14\x01e\x01f\x01h\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0i\x01j\x01-\x01$\x01k\x01l\x01m\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0n\x01\x1a\x01y\x01\x9d\x01\x1e\x01\x9e\x01\x14\x01P\0P\0P\0P\0P\0P\0[\0\x9f\x01>\x01O\0O\0O\0O\0O\0O\0\xf7\0\xa0\x01\xfb\0\xa1\x01:\x01D\0V\0V\0V\0V\0V\0V\0V\0V\0V\0V\0^\0P\0P\0P\0P\0P\0P\0V\0V\0V\0V\0V\0V\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0$\x01)\x01a\0\xa2\x01\xa3\x01w\0\x01\x01W\0W\0W\0W\0W\0W\0\xa5\x016\x01\x98\0V\0V\0V\0V\0V\0V\0\x06\x01\xa6\x01\xa7\x01\xa8\x01\x0f\x01\xa9\x01X\0X\0X\0X\0X\0X\0X\0X\0X\0X\x002\x01W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0_\0\x85\x01\xaa\x01\xab\x01\x9a\x01\x85\x01\xac\x01Y\0Y\0Y\0Y\0Y\0Y\0_\0\xb0\0\xad\x01X\0X\0X\0X\0X\0X\0-\x01\xae\x01\xaf\x01\xb0\0\xb0\x01\x9a\x01\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0\xb0\0z\x01Y\0Y\0Y\0Y\0Y\0Y\0\x94\x01\xb1\x01\x14\x01\xb2\x01b\0\x94\x01\xb3\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xd8\x01\xc1\x01_\0\x9a\x01\xd8\x01\xcd\x01b\0\xde\x01_\0\xcd\x01\xe5\x01\x01\x02_\0\xda\x01$\x01\xd7\x01\xd7\x01\x02\x02\xda\x01\xd7\x01_\0\x04\x02\x05\x02\xd8\x01_\0\x06\x02_\0_\0`\0`\0`\0`\0`\0`\0`\0`\0`\0`\0\xd7\x01\x07\x02z\x01\b\x02\t\x02\n\x02\x0b\x02`\0`\0`\0`\0`\0`\0b\0\f\x02\xd7\x01\xf7\x01\r\x02\x0e\x02b\0\x0f\x02}\x01\x80\x01b\0\x10\x02\xdc\x01\x11\x02\xfb\x01\x12\x02\x13\x02\x14\x02b\0y\x01\x15\x02\xc2\x01b\0\x16\x02b\0b\0`\0`\0`\0`\0`\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xe7\x01\x17\x02\xee\x01\x18\x02\xfb\x01\xee\x01\x19\x02c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xf3\x01}\x01\x80\x01\xe0\x01\x1a\x02\xc5\x01\x1b\x02d\0d\0d\0d\0d\0d\0\x1c\x02\xc2\x01\x1d\x02c\0c\0c\0c\0c\0c\0\x1e\x02\x1f\x02 \x02\xc8\x01\xe7\x01\x85\x01e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xff\xffd\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xff\xff\xff\xff\xc5\x01\xb0\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb9\0\xff\xffe\0e\0e\0e\0e\0e\0\xc8\x01\xe0\x01\xff\xff\xb9\0\xcd\x01z\x01\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xb9\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xbf\0\xc0\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc0\0\xc1\x01\xf7\x01\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc0\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc6\0\xc7\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xe2\0\xc7\0}\x01\x80\x01\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xc7\0\xcc\0\xc2\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe7\x01\xff\xff\xff\xff\xc7\0\xdc\x01\xee\x01\xfb\x01\xff\xff\xc7\0\xf3\x01\xff\xff\xcc\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xcd\0\xe1\0\xff\xff\xe1\0\xff\xff\xe0\x01\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xe1\0\xcd\0\xc5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcc\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xff\xff\xff\xff\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xe4\0\xff\xff\xe4\0\xff\xff\xe3\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xe6\0\xff\xff\xe3\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xb9\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xe8\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xed\0\xff\xffM\x01\xff\xffM\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01q\x01\xff\xffM\x01\xff\xff\xff\xff\xc0\0\xff\xff\xff\xff\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0M\x01\xff\xff\xff\xff\xff\xff\xed\0\xc7\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xed\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xff\xff\xf2\0\xff\xff\xff\xff\xf0\0\xff\xff\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xf2\0\xed\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xff\xff\xff\xff\xff\xff\xff\xff\xf5\0\xff\xff\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0B\x01B\x01\xff\xff\xff\xffB\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01O\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xffO\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xffB\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01B\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf2\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01p\x01\xff\xffp\x01\xff\xffB\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01p\x01\xff\xff\xff\xffB\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01B\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xffB\x01\xff\xff\xff\xffr\x01\xff\xff\xff\xffB\x01\xff\xff\xff\xffs\x01\xff\xffs\x01\xff\xffB\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\xff\xffr\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01u\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01w\x01\xff\xff~\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\x81\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x7f\x01\x9b\x01\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff~\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01~\x01\xff\xff\xff\xffB\x01~\x01\x81\x01~\x01~\x01\xff\xff\x81\x01\xff\xff\xff\xff\x9b\x01\xff\xff\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\xff\xff\xff\xff\x81\x01\xff\xff\x81\x01\x81\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\xff\xff\xff\xff\xff\xff\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xff\xff\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\xb8\x01\x8a\x01\xb8\x01\xff\xff\xff\xff\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb8\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xb9\x01\xff\xff\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8a\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8d\x01\xff\xff\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\x9c\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x9c\x01\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\x8f\x01\xff\xff\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\x8f\x01\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8a\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\xff\xff\xc6\x01\xba\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xc6\x01\xff\xff\xff\xff\x8f\x01\xc6\x01\xff\xff\xc6\x01\xc6\x01\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xff\xff\xff\xff\xff\xff\xff\xff\xbb\x01\xff\xff\xbb\x01\xff\xff\xba\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbd\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xbf\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xc7\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\x8f\x01\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xff\xff\xff\xff\xc9\x01\xff\xff\xc9\x01\xc9\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xff\xff\xff\xff\xff\xff\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd2\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xd5\x01\xff\xff\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xd2\x01\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",EX="infinity",ib="2.5",EW="3663",d$="Chapitre IV : Impay\xc3\xa9s de d\xc3\xa9penses de logement",zU=2609,ey="examples/allocations_familiales/../base_mensuelle_allocations_familiales/bmaf.catala_fr",zT="\\t",aD="examples/aides_logement/code_construction_legislatif.catala_fr",zS=330,jj=3272,EV=385,aL="Titre 2 : Prestations g\xc3\xa9n\xc3\xa9rales d'entretien",kK=112,h$="1000",ia=1131,d5=563,c6="examples/aides_logement/code_s\xc3\xa9curit\xc3\xa9_sociale.catala_fr",kJ=701,zR="210600",EU="Unexpected '%s' kind for the enumeration 'ElementPrestationsFamiliales.t'",zQ="Couple",ki=687,nb="SaintPierreEtMiquelon",h_=110,cm="PrestationsFamiliales",ji=464,ET="\xc3\x89l\xc3\xa9mentPrestationsFamiliales",oM=679,ES="214700",zP=2597,h9=615,dG="Calcul\xc3\x89quivalenceLoyerMinimale",oL=554,jg=4826,ER="42926",jh=1096,zO=-32,zN="39016",oK="AllocationLogementFamiliale",d4=1023,EQ="interfaceAllocationsFamiliales",ci=561,na="AllocationLogementSociale",EP=3202,EO=3766,zM="plafond_l512_3_2",jf=639,rd="Chapitre II : Des contributions pour le remboursement de la dette sociale.",h8=117,aU="examples/allocations_familiales/decrets_divers.catala_fr",je=3924,zL=348,kI="compl\xc3\xa9ment_d\xc3\xa9gressif",rc="Livre VIII : Allocations aux personnes \xc3\xa2g\xc3\xa9es - Allocation aux adultes handicap\xc3\xa9s - Aides \xc3\xa0 l'emploi pour la garde des jeunes enfants - Protection compl\xc3\xa9mentaire en mati\xc3\xa8re de sant\xc3\xa9",EM="240200",EN="Assert_failure",sc="Section 1 : Secteur locatif ordinaire",EL="568400",jd=3270,sb="0.32",zK="40961",EK=350,kH="Non",jc=508,zJ=185,kG="Article R824-2",EJ=219,EI=1e14,zI="D331_76_1",oJ="Article R521-3",zH="17607",ae=2022,zG=3359,EG="34865",EH="Fatal error: exception %s\n",zF="261800",oI=865,kh=740,m$="Article 2",ex=256,EF=4714,ew=558,h7=786,zE="Article L521-3",EE="Article R822-1",zC=1795,zD="45064",ED="taux_francs_vers_euros",aN="Archives l\xc3\xa9gislatives et r\xc3\xa9glementaires",kF="abattement_d\xc3\xa9pense_nette_minimale_d832_10",oH=699,EC="mensualit\xc3\xa9_\xc3\xa9ligible",jb=1075,m_="D\xc3\xa9cret n\xc2\xb0 2021-1741 du 22 d\xc3\xa9cembre 2021 portant rel\xc3\xa8vement du salaire minimum de croissance",sa="ENOENT",EB=1395,zB=4872,rb=288,ra="0.0006",h6=315,q_="EnfantLePlus\xc3\x82g\xc3\xa9",q$=259,zA=4262,m9=556,b5="examples/aides_logement/../prestations_familiales/../smic/smic.catala_fr",EA=885,zz="228000",Ez="ENOTEMPTY",r$="Article 13",Ey="calcul_apl_logement_foyer.nombre_personnes_\xc3\xa0_charge",zy="D331_59_8",Ew="Loyer",Ex="35947",zx=162,dS=564,zw="brut_horaire",Ev="x",zv="Sous-section 1 : Aides personnelles au logement",Eu="calculAidePersonnaliseeLogementAccessionPropriete",m8=547,kg="Article D755-5",fS=680,Et="Article D842-4",ja=791,d_=314,r_="%d",h5=3926,q9=810,zu="Z.of_substring_base: invalid digit",Es="ServicesSociauxAllocationVers\xc3\xa9e\xc3\x80LaFamille",h4=637,m7=285,zt="buffer.ml",e="Prologue : aides au logement",D="Secteur accession \xc3\xa0 la propri\xc3\xa9t\xc3\xa9",Eq="167600",Er="39590",Ep=3405,Eo=4160,gM=2008,q8="0.0179",zs=4886,zr=1089,En=1051,i$=3476,zp="245700",zq=1121,C="Prologue",m6="calcul_nombre_parts.nombre_personnes_\xc3\xa0_charge",Em="Metropole",c5=100,kD="prise_en_compte_personne_\xc3\xa0_charge",kE=851,m5=702,zn=4243,h3=420,zo=1397,fn=300,$="3",a8="Partie r\xc3\xa9glementaire - D\xc3\xa9crets simples",zm=230,oF=413,oG="169.",zk=2549,zl=0.5,El=4027,oE=990,cU="Article D521-1",Ej="conventionn\xc3\xa9_livre_III_titre_V_chap_III",oD=622,Ek="sous_calcul_traitement",zj=374,i_=3760,h2=956,oC="Article D842-11",dR="Livre 7 : R\xc3\xa9gimes divers - Dispositions diverses",dw=107,m3=161,m4=381,m2="Article D842-12",zi=3905,i9=690,oB="prestations_familiales",kC="est_enfant_le_plus_\xc3\xa2g\xc3\xa9",zg=3758,zh="26440",h1=649,Eh=3901,Ei="201700",r9="Unix.Unix_error",zf=3631,hZ=1060,h0=1139,ze=3355,Eg="calculAidePersonnaliseeLogement",oA=553,hY=1088,zd="Stack_overflow",fg="condition_2_r823_4",a5="Sous-Section 2 : Conditions d'octroi de l'aide personnalis\xc3\xa9e au logement aux personnes r\xc3\xa9sidant dans un logement-foyer",aS="\xc3\x89ligibilit\xc3\xa9AidesPersonnelleLogement",zc="/static/",q7=253,zb=3147,Ef=2791,Ee="Not_found",za="1085",q5=235,q6="\x01\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\x009\0<\0\0\0<\0\0\0\0\0A\0\0\0A\0\0\0\0\0F\0\0\0\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0T\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0^\0\0\0\0\0a\0\xff\xff\xff\xffa\0\xff\xff\xff\xff\xff\xff\xff\xffh\0\0\0\0\0\0\0\0\0m\0\0\0\0\0\0\0q\0\0\0\0\0\0\0u\0\0\0\0\0\0\0y\0\0\0\0\0\0\0\0\0\0\0~\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\x8a\0\0\0\x8e\0\0\0\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x9a\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xb2\0\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xbb\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc2\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xc9\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xeb\0\0\0\0\0\0\0\xef\0\0\0\0\0\xff\xff\0\0\xf4\0\0\0\0\0\xff\xff\0\0\xf9\0\0\0\0\0\0\0\xfd\0\0\0\0\0\0\0\xff\xff\0\0\x03\x01\0\0\0\0\0\0\0\0\b\x01\0\0\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\x11\x01\0\0\0\0\0\0\0\0\x16\x01\0\0\0\0\0\0\0\0\0\0\x1c\x01\0\0\0\0\0\0 \x01\0\0\0\0\0\0\xff\xff\0\0&\x01\0\0\0\0\0\0\0\0+\x01\0\0\0\0\0\0/\x01\0\0\0\0\0\0\0\x004\x01\0\0\0\0\0\x008\x01\0\0\0\0\0\0<\x01\0\0\0\0\0\0@\x01\0\0\0\0\0\0C\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0y\x01}\x01\0\0\0\0\x80\x01\xff\xff\xff\xff\x80\x01\xff\xff\xff\xff\xff\xff\xff\xff\x87\x01\0\0\0\0\0\0\0\0\x8c\x01\0\0\0\0\xff\xff\0\0\x90\x01\0\0\0\0\xff\xff\0\0\xff\xff\0\0\0\0\0\0\0\0\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xc1\x01\xc5\x01\0\0\0\0\xc8\x01\xff\xff\xff\xff\xc8\x01\xff\xff\xff\xff\xff\xff\xff\xff\xcf\x01\0\0\0\0\0\0\0\0\xd4\x01\0\0\0\0\xff\xff\0\0\xff\xff\xff\xff\0\0\xff\xff\0\0\xdc\x01\0\0\xff\xff\0\0\xe2\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xe9\x01\0\0\0\0\0\0\0\0\xff\xff\0\0\xf0\x01\0\0\0\0\0\0\0\0\xf5\x01\0\0\0\0\0\0\xf9\x01\0\0\0\0\0\0\xfc\x01\0\0\0\0\0\0\xff\xff\0\0\x02\x02\x04\x02\0\0\x05\x02\x06\x02\x07\x02\b\x02\t\x02\n\x02\x0b\x02\f\x02\r\x02\x0e\x02\x0f\x02\x10\x02\x11\x02\x12\x02\x13\x02\x14\x02\x15\x02\x16\x02\x17\x02\x18\x02\x19\x02\x1a\x02\x1b\x02\x1c\x02\x1d\x02\x1e\x02\x1f\x02 \x02!\x02\x03\x02",y$="41268",aY="examples/allocations_familiales/epilogue.catala_fr",oz=695,Ed="calcul_apl_logement_foyer.date_courante",y_=2702,b_=848054398,Eb=3496,oy="Mayotte",Ec="smic.date_courante",y9=260,ox="1224",Ea="calcul_apl_locatif",dv="calcul_plafond_mensualit\xc3\xa9_d832_10_3",q4="rmdir",ow=696,i8=1069,D$=32752,y8="33623",r8="19100",y7="37478",f6="calcul_nombre_parts",r7="Article 23",ov="Article R842-5",y6=1026,dl=149,bN="montant",dQ="Article L521-2",b2="examples/allocations_familiales/../smic/smic.catala_fr",y3="calculAllocationLogementLocatif",y4="37906",y5="false",c4=849,ou="Invalid integer: ",y2="PasDeChangement",br="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 la prime de d\xc3\xa9m\xc3\xa9nagement",a9=106,D_=346,m1=186,dF=0x80,eU="Chapitre 1er : Dispositions relatives aux prestations",r6="Fatal error: exception ",ot="\xc3\xa9ligibilit\xc3\xa9_commune",m0=4757,r5="0.0234",D9="43378",y1="calcul_apl_logement_foyer.date_conventionnement",hX=852,y0=1413,mZ=1054,r4="25978",dk=303,D7=493,D8=3541,D6="Section 2 : R\xc3\xa8gles de non-cumul",yZ=3878,r3="_",yY="eligibilitePrimeDeDemenagement",mY=517,q3="compare: functional value",yX=444,b1="0.",yU=114,yV="40928",yW="19300",yT=3129,D5=1030,mX=411,hW=978,yS="197700",yR="Invalid_argument",D4=656,i7=4433,yQ=4832,q2=823,D3="EndCall([ ",os="0.9",D1="Article R822-22",D2="prise_en_charge",yP="calcul_aide_personnalis\xc3\xa9e_logement",DZ="34301",D0="577500",yO="%ni",DY=3959,mW=949,fm=324,ap=2020,DX="PersonneSeule",yN=2098,or=559,q1="0.0238",r2="Article 9",DW="225100",DV="AutresPersonnes",dP="6",i6=495,yL="173600",yM=602,fR=858,o="0",aj="Section 3 : Logements-foyers",yJ=3854,yK=4493,kf="Article L161-17-2",d="examples/aides_logement/prologue.catala_fr",DU="eligibiliteAidesPersonnelleLogement",eT=817,DT=3335,be=248,yI=341,DS=3992,oq=322,yH=3856,i5=2007,DR="208200",yD="Zone1",yE="Locataire",hV=301,yF="R\xc3\xa8glement (CE) n\xc2\xb02866/98 du conseil du 31 d\xc3\xa9cembre 1998 concernant les taux de conversion entre l'euro et les monnaies des \xc3\x89tats membres adoptant l'euro",yG="37457",DP=4292,DQ="562800",yC="535744",yB="235800",DO=3520,mV=555,b0=403,mU=930,DN="resetLog",yA="\xc3\xa2ge_l512_3_2",DM=3268,R="AllocationsFamiliales",yz="situation_familiale_calcul_apl",q0="GardeAlterneeAllocataireUnique",hU=3475,DL="haut",yy=4334,DK=4840,ke=1024,yw="204761",yx="3.1",gL=802,mT=133,r1="35780",yv="calculAidePersonnaliseeLogementFoyer",kB=945,fQ=366,ff=0xffffff,DJ="34829",yt=524,yu=4179,mS=876,i4="Titre III: Titre III : Dispositions communes relatives au financement",DI="36378",av="Calculette globale",mR=286,DH="149600",DG=2171,ys=3586,kA="Article R824-1",cT=1994,hT=2010,bH="Prologue : prestations familiales",r0=2147483647,DF="774",op=689,yr=", characters ",f5=456,qZ="180100",f4="BaseMensuelleAllocationsFamiliales",yp=2192,yq="prestations_familiales.r\xc3\xa9sidence",DE="819",bm="Chapitre IV : Calcul des allocations de logement en secteur accession",yo="AllocationJournali\xc3\xa8rePresenceParentale",yn=".0",DD="36733",qY="AllocationFamilialesAvril2008",gK=693,eS=855,DC="AllocationRentreeScolaire",ym="mensualit\xc3\xa9_minimale",kz="2.",mQ=691,fl="5612",yl="Concubins",dA="calcul_plafond_mensualit\xc3\xa9_d842_6_avec_copropri\xc3\xa9t\xc3\xa9",DB="Montants revaloris\xc3\xa9s de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",yk="SaintBarth\xc3\xa9lemy",_="Partie l\xc3\xa9gislative",hS=2003,kd="Article R823-4",yj="32956",bo="examples/allocations_familiales/securite_sociale_D.catala_fr",yi="294500",qX="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_R.catala_fr",dO="RessourcesAidesPersonnelleLogement",f3="Montant des plafonds de ressources",bn="Annexe",oo=1847,eR="Section 1 : B\xc3\xa9n\xc3\xa9ficiaires",yh=2767,DA="3524",yg="Article D832-27",Dz=2866,yf=3946,yd="Zone3",ye=4126,kc="500",fP=471,dE=2015,yb=2595,yc="40144",fk="prise_en_compte",i3=3762,Dy="223900",ya="ServicesSociauxAllocationVers\xc3\xa9eAuxServicesSociaux",Dx=138,x$="225500",on=1998,x="Livre VIII : Aides personnelles au logement",hR=905,kb="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_6",qW="nan",Dw="38892",x_="calculNombrePartLogementFoyer",mP=646,ky="Impay\xc3\xa9D\xc3\xa9penseLogement",bd="Calculette avec garde altern\xc3\xa9e",Dv=0xdfff,hQ="4.3",ev="/",om=4791,rZ="ENOTDIR",rY=1073741823,x9="\\r",rX="0.0068",rW=513,Du="calcul_allocation_logement",x7="coefficient_prise_en_charge",mN=743,mO=734,x8=206,x6=3811,kx="Article D161-2-1-9",ol="Guyane",oj="PasDeTravaux",ok=311,x5=2930,mM=255,Dt="Revenu",bE="droit_ouvert_majoration",F="Partie r\xc3\xa9glementaire",c3="Partie r\xc3\xa9glementaire - D\xc3\xa9crets en Conseil d'Etat",x3=1777,x4=4130,Dr=1954,Ds=3133,x2="Chapitre 1er : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",Dq="Sous-section 4 : Prise en compte du patrimoine",i="D\xc3\xa9clarations des champs d'application",x1=4221,x0="End_of_file",Dp="calcul_apl_logement_foyer.condition_2_du_832_25",xY="calculAllocationLogementFoyer",xZ=1313,ka="traitement_aide_finale_r\xc3\xa9duction_loyer_solidarit\xc3\xa9",fe="Chapitre V : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur logement-foyer",i2="Article 24",qV="Failure",Do="267871",Dn=4268,xX="167800",xW=1854,a4="CalculetteAidesAuLogement",xV=1367,Z=684,mL=715,xT=4800,qU="\xff\xff\xff\xff\xff\xff\x11\0\xff\xff\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x13\0\x13\0\x13\0\x13\0\x13\0\x13\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\t\0\xff\xff\t\0\xff\xff\xff\xff\x0e\0\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x04\0\x04\0\x04\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\0\0\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\x03\0\x05\0\x05\0\x05\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\x03\0\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x02\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\0\xff\xff\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\x07\0\x07\0\xff\xff\x12\0\x12\0\x12\0\x12\0\x12\0\x12\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\b\0\xff\xff\b\0\xff\xff\b\0\xff\xff\xff\xff\r\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\t\0\xff\xff\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\0\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\0\0\xff\xff\0\0\xff\xff\0\0\xff\xff\xff\xff\x06\0\xff\xff\xff\xff\xff\xff\x01\0\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\x04\0\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x01\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x03\0\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff",xU=0xdc00,xS="389618",oi="3.",i1=788,xR="185800",rU="0.0201",rV=1072,oh=880,Dm="Sys_error",fO="Article D521-2",mK=703,Dl=3725,rT="nombre_personnes_\xc3\xa0_charge_prises_en_compte",eu="Sous-section 4 : Assurance vieillesse",Dk="Printexc.handle_uncaught_exception",cS="Article D832-24",of=618,og="30500",hP=1079,xQ="194810",hO=3928,mI=745,mJ="int_of_string",P="examples/aides_logement/arrete_2019-09-27.catala_fr",xP="Chapitre Ier : Principes g\xc3\xa9n\xc3\xa9raux",Dj=4201,oe="Article 37",xO="39340",Di=3094,xN="name",xM=3800,cJ=103,gJ=966,xL=447,i0=428,ag="Chapitre 2 : Modalit\xc3\xa9s de liquidation et de versement des allocations de logement",xK=3991,kw="traitement_aide_finale_redevance",dN=132,xJ=" ])",Dh="1.4",od=698,mH="31797",xI="19484",mG=988,cG="Article 7",Df=1509,Dg="%Li",mF=864,gA=591,kv=1014,xH=2580,qT="r\xc3\xa9muneration_mensuelle",c1=302,gz=960,xG=205,cF="Article 14",xF="34570",De=4724,qS="date_de_naissance",f2=1090,mE="base_mensuelle_allocations_familiales",iZ=795,iY=927,mD="_z",iX=2000,rS=1951,mC=860,eQ=136,b4="Titre IV : Allocations de logement",xE="retrieveRawEvents",d9="InterfaceAllocationsFamiliales",mB=985,iW=1077,Dd=4078,iV=4431,j$="Pendant",qR="%a",gy=", ",fd="5422",xD=199,dj=2018,Dc="17012",oc="calcul_\xc3\xa9quivalence_loyer_minimale.condition_2_du_832_25",xC="AllocationJournalierePresenceParentale",Db=2258,Da=3542,xB=1920,bT="Chapitre III : Calcul des aides personnelles au logement en secteur locatif",C$="' kind for the enumeration 'ElementPrestationsFamiliales.t'",hN=682,fN=467,bA="Prestations familiales",C8="Enfant\xc3\x80Charge",C9="calculette",C_="GardeAltern\xc3\xa9eAllocataireUnique",et="Article D823-16",C7="172500",C6="n_nombre_parts_d832_25",rR="Apres",xA=4125,hM=1084,bD="examples/aides_logement/../prestations_familiales/prologue.catala_fr",xz=4316,C5="179800",fj=" ",xy=361,K="Secteur locatif",C4="Undefined_recursive_module",xx=3721,al="output",xw="195500",C3=3249,C2="base_mensuelle_allocations_familiales.date_courante",qQ="199900",cE=-976970511,xu="' kind for the enumeration 'SituationObligationScolaire.t'",xv="%.16g",C1="220100",ob=189,xt=4422,j_="droit_ouvert_forfaitaire",j9=620,xs="%i",qP="0.01",xr=1830,C0="262985",xq="409505",xp="LogementFoyer",CZ="139700",oa="PrestationAccueilJeuneEnfant",xo=3965,CY="Article L822-4",n$=856,hL=4824,xn="41252",xm=4270,CW="0.1",CX="Allocation\xc3\x89ducationEnfantHandicap\xc3\xa9",rQ=382,mA="5399",qO="2805",xl=4200,es=123,hK=570,xk="calcul_apl_logement_foyer.type_logement_foyer",hI="0.0173",hJ=806,L="Arr\xc3\xaat\xc3\xa9 du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de d\xc3\xa9m\xc3\xa9nagement",fM=159,xj="LocationAccession",iU=1067,mz=577,CV=183,hH=4435,qN="a_d\xc3\xa9j\xc3\xa0_ouvert_droit_aux_allocations_familiales",CU="41338",du=0xff,my="Arr\xc3\xaat\xc3\xa9 du 19 avril 2022 relatif au rel\xc3\xa8vement du salaire minimum de croissance",CT=-12,mx="calcul_\xc3\xa9quivalence_loyer_minimale.ressources_m\xc3\xa9nage_arrondies",xi=4167,mw=458,qM="Article 15",dd="0.75",j8="Titre 5 : Dispositions particuli\xc3\xa8res \xc3\xa0 la Guadeloupe, \xc3\xa0 la Guyane, \xc3\xa0 la Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy et \xc3\xa0 Saint-Martin",CS="22355",mv=3654863,CR="140800",n_=145,rP=175,rO="Chapitre 5 : Allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",er=455,CQ=1997,xh="163000",n9=991,j7="0.5",n8="Article R842-14",j6=641,xg="fd ",xf=2571,xe=1116,xd="41751",xc="181800",rN=409,xb="41316",bG="traitement_aide_finale_contributions_sociales_arrondi",xa="cat\xc3\xa9gorie_calcul_apl",w$="757",ca="Prise en compte des ressources pour les aides personnelles au logement",ku="coefficents_enfants_garde_altern\xc3\xa9e_pris_en_compte",hG=377,gx=1081,n7=848,fL=2001,qL="Compl\xc3\xa9mentFamilial",hF=793,w_=633,CO=2206,CP="smic.r\xc3\xa9sidence",ax="Livre 5 : Prestations familiales et prestations assimil\xc3\xa9es",f1=1018,w9=1894,mu=108,CN="Article D832-18",mt=-2147483648,eP=2002,w="1",w8="Chapitre II : Dispositions applicables aux ressources",ms="Article R822-7",CM="42605",w5="VendeurQuandDemandeurAContratLocationAccession",w6="Article R755-0-2",w7=406,CL="calculNombrePartsAccessionPropriete",CK="allocationFamilialesAvril2008",rM=": Not a directory",w4="b",CI="18900",CJ="Article D521-3",cR="CalculAidePersonnalis\xc3\xa9eLogement",w3="D331_63_64",dM=2012,CG="42469",CH="Out_of_memory",CF=3074,E="examples/aides_logement/code_construction_reglementaire.catala_fr",ac="4",rL="index out of bounds",mr=986,CE="27900",iT=903,n6="_bigarr02",w2="31264",mq=881,CD=0xffffffff,hE=895,CC="LaR\xc3\xa9union",w1=3531,mp="Article L822-5",CB=4261,mo=574,CA="981600",w0=1151,hD=292,eq=0xffff,iS=2009,Cz="%.17g",mn="calcul_\xc3\xa9quivalence_loyer_minimale.n_nombre_parts_d832_25",wZ=400,qK=1148,c2="100.",Cx="1.25",Cy=143,Cw=3839,wY="44729",Cv=3167,eO="\xc3\xa2ge_minimum_alin\xc3\xa9a_1_l521_3",gw=963043957,O="5",mm=142,n5=741,cW=126,iR="AllocationSoutienFamilial",wX=840,Cu="SousLocataire",wW="34713",n3=628,n4=4758,bv="Section 1 : Calcul, liquidation et versement des aides",n2=124,wV="0.98",gv="Article L512-3",wT="633129",wU=422,iQ=427,di=150,wR=3267,wS="41440",ml=135,f0=899,dh="\xc3\x89ligibilit\xc3\xa9PrimeDeD\xc3\xa9m\xc3\xa9nagement",dz="Sous-section 2 : Calcul de l'aide en secteur locatif",j5=252,Ct="enfant_le_plus_\xc3\xa2g\xc3\xa9",H="examples/allocations_familiales/prologue.catala_fr",aB="CalculAidePersonnalis\xc3\xa9eLogementFoyer",ep=".",n1=147,Cs=0xf0,wQ="eligibilitePrestationsFamiliales",cI="12.",b9=694,mk="Guadeloupe",wP=276,bk=116,n0="230500",wO="enfantLePlusAge",nZ=576,mj=627,dg=365,hC=813,dL=294,fi="traitement_aide_finale_montant_minimal",wN="impossible case",gI=1073,dK="examples/allocations_familiales/securite_sociale_R.catala_fr",wM=3119,iP=968,eN="R\xc3\xa8gles diverses",mi=500,Cr=-1080,Cp="18185",Cq=3183,hB=638,wL="SaintBarthelemy",gH=1063,Co=-1023,nY=859,gu="1272",wK="ressources_m\xc3\xa9nage_avec_arrondi",Cm="ouvertureDroitsRetraite",Cn="\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement",Cl="204700",rK="Article L755-12",wJ="TravauxPourAcquisitionD832_15_1",Cj="Ancien",Ck=2176,rJ="lib/read.mll",wI=4411,gG="1229",Ci="Article premier",mh=501,aX="\xc3\x89ligibilit\xc3\xa9 \xc3\xa0 l'aide personnalis\xc3\xa9e au logement",gt=819,mg='"',Ch="Arr\xc3\xaat\xc3\xa9 du 14 d\xc3\xa9cembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du bar\xc3\xa8me applicable au recouvrement des indus et \xc3\xa0 la saisie des prestations",mf="examples/aides_logement/../prestations_familiales/s\xc3\xa9curit\xc3\xa9_sociale_L.catala_fr",cQ="CalculAllocationLogement",wH=231,Cg="3539",rI="<",wE="208500",ce=931,wF="prestations_familiales.date_courante",wG=0x800,me=617,md=182,qJ=1415,wD=398,nX="\xc3\xa9ligibilit\xc3\xa9",wB="233000",wC=0.012,Cf=2781,wA="calculAidePersonnaliseeLogementLocatif",bS="Article 33",iO=719,Ce="M\xc3\xa9tropole",Cc="40696",Cd=209,wz=131,Cb="ressources_m\xc3\xa9nage_arrondies_seuil",wy=204,rH="Article D815-1",iM=834,iN="conditions_hors_\xc3\xa2ge",eM="traitement_aide_finale_abattement",ba="Dispositions sp\xc3\xa9ciales relatives \xc3\xa0 Mayotte",ww=726928360,aw=562,wx="221100",qI=165,wv="([^/]+)",mc=700,Ca="Article 39",rG=0xf,rF=809,wu="798",B$="BailleurSocial",j4="montant_initial_m\xc3\xa9tropole_majoration",nW=372,cp=125,iL=907,wt="Division_by_zero",iK=1092,ws=1844,nV=520,qH="Article L832-3",rE=430,wr=708012133,B_="SituationObligationScolaire",wq=4794,B8="AutrePersonne\xc3\x80Charge",nU=879,B9="44440",B7="AllocationJeuneEnfant",dD=2014,mb=1119,iJ=1059,eo=552,B6="22262",nT=659,B5="Article D842-17",B4=4371,nS=697,B3="Article L751-1",fZ=503,kt=119,wp=3584,j3="montant_avec_garde_altern\xc3\xa9e_majoration",B2="70",eL=412,dJ=104,hA=3478,wn="calculette_sans_garde_altern\xc3\xa9e",wo="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2022/82 du 28 mars 2022 relative \xc3\xa0 la revalorisation au 1er avril 2022 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",nR=321,wm="version_avril_2008",iI=468,B1=279,wl="38361",nQ=714,B0=439,fK=2013,BY="ouverture_droits_retraite",BZ=102,hz=800,BX=4040,hy="100000.",wk="18261",hx=101,nP="calcul_nombre_parts.situation_familiale_calcul_apl",BW="body",fJ="Calcul des contributions sociales s'appliquant aux aides personnelles au logement",wj="Unexpected '%s' kind for the enumeration 'Collectivite.t'",rD="\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x03\0\x04\0\0\0\x03\0\x03\0\x86\0\0\0\x03\0\0\0\x86\0E\x01\x92\x01\xff\xff\0\0E\x01\x92\x01\0\0\0\0\0\0\0\0\x7f\0\x8b\0\0\0\x03\0\0\0\f\0\x03\0\xaa\0\x86\0\xaf\0\0\0\x07\0\x0b\x01E\x01\x92\x01\x0e\x01\r\x001\0\x05\0\n\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\x008\0v\0\x06\0\x81\0\x82\x009\0\xed\x01\x89\0\0\x021\0\0\x000\0\x8a\0j\0>\0\x0e\0n\0i\0\0\x001\0\x0f\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x0b\0\x1e\x000\0\b\0r\0\xd1\0\xec\0\0\x01\r\x01\x1d\0\x16\0\xff\xff0\x000\0\x11\0\x15\0\x19\0 \0!\0#\0\x17\0\x1b\0\x10\0\x1f\0\x1c\0\"\0\x13\0\x18\0\x12\0\x1a\0\x14\0$\0)\0%\x000\0\t\0*\0+\0,\0-\0.\0/\0=\0U\x000\0&\0'\0'\0'\0'\0'\0'\0'\0'\0'\x001\0C\0'\0'\0'\0'\0'\0'\0'\0'\0'\0'\0V\0\x8f\0\xff\xff(\0\x90\0\x91\0\x92\x007\0\x94\x007\0\x95\x000\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\x002\0\xff\xff0\0\x96\0\x97\0\xa1\0B\0\x9e\x005\0\x9f\x005\0\xa0\x003\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\x004\0\xa5\x003\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xa2\0\xa3\0\xa6\0]\0\xff\xff\x02\x006\x006\x006\x006\x006\x006\x006\x006\x006\x006\0\xff\xffM\0g\0l\0t\0\x84\0\x86\0\x87\0\x80\0\x8b\0\x86\0\xa4\0]\0\xab\0M\0\xa7\0\xa8\0\xa9\0\xac\0p\0\xad\0\xae\0\xd2\0\xe2\0\xd0\0\xd3\0\xd4\0;\0S\0\x86\0\xd5\0\xd6\0\xd7\0\xd8\0\xda\0\x8d\0\xdb\0]\0\xdc\0\xdd\0{\0\xde\0\xdf\0\xe0\0\x88\0_\0\xe1\0#\x01A\x01\xea\0\x9b\0\x05\x01a\x01\xfa\0\xff\xff\xfe\x009\x01=\x01_\x01M\0,\x01\\\x01X\x01\t\x01\x1d\x01L\0|\0!\x01\x12\x01K\0b\0\x13\x01U\x01V\x01W\x01x\x01Y\x01J\0\xe1\x005\x01y\x01I\0Z\x01H\0G\0N\0N\0N\0N\0N\0N\0N\0N\0N\0N\0b\0q\x01z\0[\x01@\0\x04\x01]\x01N\0N\0N\0N\0N\0N\0O\0O\0O\0O\0O\0O\0O\0O\0O\0O\0\x9c\0p\x01^\x01`\x01b\x01c\x011\x01O\0O\0O\0O\0O\0O\0d\x01\x9d\0e\x01N\0N\0N\0N\0N\0N\0\xb7\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\x18\x01p\x01\xff\xff\x19\x01f\x01g\x01i\x01O\0O\0O\0O\0O\0O\0P\0P\0P\0P\0P\0P\0P\0P\0P\0P\0j\x01k\x010\x01(\x01l\x01m\x01n\x01P\0P\0P\0P\0P\0P\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0Q\0o\x01\x1b\x01\xff\xff\xab\x01\x1f\x01\xaa\x01\x17\x01Q\0Q\0Q\0Q\0Q\0Q\0\\\0\xa8\x01?\x01P\0P\0P\0P\0P\0P\0\xf8\0\xa5\x01\xfc\0\xa2\x01;\x01E\0W\0W\0W\0W\0W\0W\0W\0W\0W\0W\0\xff\xffQ\0Q\0Q\0Q\0Q\0Q\0W\0W\0W\0W\0W\0W\0X\0X\0X\0X\0X\0X\0X\0X\0X\0X\0'\x01*\x01\xff\xff\xa3\x01\xa4\x01x\0\x02\x01X\0X\0X\0X\0X\0X\0\xa6\x017\x01\x99\0W\0W\0W\0W\0W\0W\0\x07\x01\xa7\x01\xa4\x01\xa9\x01\x10\x01\xa4\x01Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\0Y\x003\x01X\0X\0X\0X\0X\0X\0Y\0Y\0Y\0Y\0Y\0Y\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0Z\0a\0\x89\x01\xa4\x01\xac\x01\xb9\x01\x88\x01\xad\x01Z\0Z\0Z\0Z\0Z\0Z\0a\0\xb3\0\xae\x01Y\0Y\0Y\0Y\0Y\0Y\0.\x01\xaf\x01\xb0\x01\xb4\0\xa4\x01\xb8\x01\xb5\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0|\x01Z\0Z\0Z\0Z\0Z\0Z\0\xc0\x01\xb2\x01\x15\x01\xb3\x01a\0\xc1\x01\xb4\x01\xb5\x01\xb6\x01\xb7\x01\xa4\x01\xd8\x01\xff\xffa\0\xb8\x01\xd8\x01\xd1\x01a\0\xdf\x01a\0\xd0\x01\xe6\x01\x03\x02a\0\xdb\x01%\x01\xd8\x01\xd9\x01\x03\x02\xdc\x01\xd8\x01a\0\x03\x02\x03\x02\xd8\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0c\0c\0c\0c\0\xd8\x01\x03\x02~\x01\x03\x02\x03\x02\x03\x02\x03\x02c\0c\0c\0c\0c\0c\0a\0\x03\x02\xda\x01\xfa\x01\x03\x02\x03\x02a\0\x03\x02|\x01|\x01a\0\x03\x02\xdd\x01\x03\x02\xfd\x01\x03\x02\x03\x02\x03\x02a\0\xff\xff\x03\x02\xc4\x01a\0\x03\x02a\0`\0c\0c\0c\0c\0c\0c\0d\0d\0d\0d\0d\0d\0d\0d\0d\0d\0\xeb\x01\x03\x02\xf1\x01\x03\x02\xff\x01\xf2\x01\x03\x02d\0d\0d\0d\0d\0d\0e\0e\0e\0e\0e\0e\0e\0e\0e\0e\0\xf6\x01\x81\x01\x81\x01\xe4\x01\x03\x02\xc4\x01\x03\x02e\0e\0e\0e\0e\0e\0\x03\x02\xc6\x01\x03\x02d\0d\0d\0d\0d\0d\0\x03\x02\x03\x02\x03\x02\xc4\x01\xea\x01\x86\x01a\0a\0a\0a\0a\0a\0a\0a\0a\0a\0\0\0e\0e\0e\0e\0e\0e\0a\0a\0a\0a\0a\0a\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\xb6\0\0\0\0\0\xc9\x01\xb1\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xb8\0\xbc\0\0\0a\0a\0a\0a\0a\0a\0\xc9\x01\xe3\x01\0\0\xbf\0\xce\x01{\x01\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbd\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xbe\0\xc3\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc6\0\xff\xff\xf8\x01\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc4\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xc5\0\xca\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xcd\0\xff\xff\xff\xff\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe2\0\xc3\x01\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\x01\0\0\0\0\xce\0\xdd\x01\xef\x01\xfe\x01\0\0\xcf\0\xf4\x01\0\0\xe1\0\xcb\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xcc\0\xe8\0\0\0\xe8\0\0\0\xe1\x01\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xd9\0\xff\xff\0\0\0\0\0\0\0\0\xe1\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\xe3\0\0\0\0\0\0\0\0\0\xff\xff\0\0\0\0\xe6\0\0\0\xe6\0\0\0\xe4\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\xe5\0\0\0\xe4\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xba\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\xe7\0\0\0\0\0\0\0\0\0\0\0\xf1\0\0\0q\x01\0\0M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01\0\0p\x01\0\0\0\0\xc1\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0p\x01\0\0\0\0\0\0\xf0\0\xc8\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\0\0\xf6\0\0\0\0\0\xf0\0\0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xee\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\0\0\0\0\0\0\0\0\xf5\0\0\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0\xf5\0E\x01F\x01\0\0\0\0E\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0E\x01\0\0N\x01\0\0\0\0\0\0\0\0h\x01I\x01\0\0\0\0\0\0\0\0O\x01\0\0G\x01L\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01M\x01\0\0\0\0H\x01\0\0\0\0\0\0\0\0\0\0\xf3\0\0\0\0\0\0\0\0\0\0\0\0\0P\x01w\x01\0\0w\x01\0\0Q\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\0\0J\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01r\x01S\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0R\x01\0\0\0\0s\x01\0\0\0\0T\x01\0\0\0\0u\x01\0\0u\x01\0\0K\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01\0\0s\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01t\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01v\x01\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\xb9\x01\0\0\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\x82\x01\xb8\x01\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\0\0\0\0D\x01\x80\x01\x80\x01\x80\x01\x7f\x01\0\0\x80\x01\0\0\0\0\xb8\x01\0\0\0\0\0\0\0\0\x80\x01\0\0\0\0\0\0\x80\x01\0\0\x80\x01\x7f\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\0\0\0\0\0\0\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\x83\x01\0\0\0\0\0\0\0\0\0\0\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\0\0\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x84\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\xbf\x01\x8e\x01\xbf\x01\0\0\0\0\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\0\0\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x80\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\0\0\0\0\0\0\0\0\x8d\x01\0\0\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x8d\x01\x92\x01\x93\x01\0\0\0\0\x92\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\x92\x01\0\0\x99\x01\0\0\0\0\0\0\0\0\xb1\x01\x96\x01\0\0\0\0\0\0\xc8\x01\x9c\x01\0\0\x94\x01\x9a\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\x9b\x01\0\0\0\0\x95\x01\0\0\0\0\0\0\0\0\0\0\0\0\x8b\x01\0\0\0\0\0\0\0\0\0\0\x9d\x01\0\0\0\0\0\0\0\0\x9e\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xba\x01\xc8\x01\0\0\x97\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\xbb\x01\0\0\xa0\x01\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\x9f\x01\xc8\x01\0\0\xc8\x01\xc7\x01\0\0\xa1\x01\0\0\0\0\0\0\0\0\0\0\0\0\x98\x01\0\0\0\0\0\0\0\0\xbd\x01\0\0\xbd\x01\0\0\xbb\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbc\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xbe\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\xca\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\x91\x01\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\0\0\0\0\0\0\xc8\x01\0\0\xc8\x01\xc7\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\0\0\0\0\0\0\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\xcb\x01\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xcc\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\0\0\xd6\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xc8\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\xd5\x01\0\0\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\xd5\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\xd3\x01\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0",gF=1e7,fc=254,BV="calcul_apl_logement_foyer.zone",wi=407,BU="6.",wf=2628,wg=3676,wh="1003",dt="Article L841-2",BT=" : flags Open_text and Open_binary are not compatible",BR=779,BS=2596,d3="Article D832-15",en="Titre VI : Dispositions relatives aux prestations et aux soins - Contr\xc3\xb4le m\xc3\xa9dical - Tutelle aux prestations sociales",we="43248",BQ=4961,gE=1992,eK="examples/aides_logement/../base_mensuelle_allocations_familiales/bmaf.catala_fr",wd="\\\\",v="Code de la construction et de l'habitation",wc="Instruction interministerielle no DSS/SD2B/2019/261 du 18 d\xc3\xa9cembre 2019 relative \xc3\xa0 la revalorisation au 1er janvier 2020 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 La R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",BP="Article 38",wb=2817,ma=188,BN=463,BO="0.04",v$="0.0226",wa=270,v_="192500",BM="230700",v9="217600",nO=926,BK=4626,BL="0.0463",hw=4430,qG="GardeAlterneePartageAllocations",qF="\0\0\xec\xff\xed\xff\x03\0\xef\xff\x10\0\xf2\xff\xf3\xff\xf4\xff\xf5\xff\0\0\x1f\0\xf9\xffU\0\x01\0\0\0\0\0\x01\0\0\0\x01\0\x02\0\xff\xff\0\0\0\0\x03\0\xfe\xff\x01\0\x04\0\xfd\xff\x0b\0\xfc\xff\x03\0\x01\0\x03\0\x02\0\x03\0\0\0\xfb\xff\x15\0a\0\n\0\x16\0\x14\0\x10\0\x16\0\f\0\b\0\xfa\xffw\0\x81\0\x8b\0\xa1\0\xab\0\xb5\0\xc1\0\xd1\0\xf0\xff\x0b\0&\0\xfc\xffA\0\xfe\xff\xff\xffn\0\xfc\xff\xa3\0\xfe\xff\xff\xff\xea\0\xf7\xff\xf8\xff0\x01\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xffG\x01~\x01\x95\x01\xf9\xff'\0\xfd\xff\xfe\xff&\0\xbb\x01\xd2\x01\xf8\x01\x0f\x02\xff\xff\xdc\0\xfd\xff\xff\xff\xf5\0'\x02m\x02\x0e\x01X\x02\xa4\x02\xbb\x02\xe1\x02\r\0\xfc\xff\xfd\xff\xfe\xff\xff\xff\x0e\0\xfd\xff\xfe\xff\xff\xff\x1e\0\xfd\xff\xfe\xff\xff\xff\x0f\0\xfd\xff\xfe\xff\xff\xff\x11\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\x13\0\xfc\xff\xfd\xff\xfe\xff\x0f\0\xff\xff\x10\0\xff\xff\b\x01\x05\0\xfd\xff\x17\0\xfe\xff\x14\0\xff\xff.\0\xfd\xff\xfe\xff*\x004\x005\0\xff\xff5\x000\0[\0\\\0\xff\xff\x1b\x01\xfa\xff\xfb\xff\x89\0h\0Y\0X\0j\0\xff\xff\x8f\0\x89\0\xb1\0\xfe\xff\xb7\0\xa8\0\xa6\0\xb7\0\x02\0\xfd\xff\xb1\0\xac\0\xbb\0\x04\0\xfc\xff5\x02\xfb\xff\xfc\xff\xfd\xffg\x01\xff\xff\xf8\x02\xfe\xff\x06\x03\x1e\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff(\x032\x03J\x03\xfc\xff\xfd\xff\xfe\xff\xff\xff=\x03T\x03l\x03\xf9\xff\xfa\xff\xfb\xff\xf4\0x\x03\x8e\x03\xb3\0\xc2\0\x0f\0\xff\xff\xbe\0\xbc\0\xbb\0\xc1\0\xb7\0\xb3\0\xfe\xff\xbf\0\xc9\0\xc8\0\xc4\0\xcb\0\xc1\0\xbd\0\xfd\xff\x9d\x03_\x03\xae\x03\xc4\x03\xce\x03\xd8\x03\xe4\x03\xef\x03<\0\xfd\xff\xfe\xff\xff\xff\f\x04\xfc\xff\xfd\xffW\x04\xff\xff\x91\x04\xfc\xff\xfd\xff\xdd\x04\xff\xff\xe5\0\xfd\xff\xfe\xff\xff\xff\xe7\0\xfd\xff\xfe\xff\xff\xff\x02\0\xff\xff\x12\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\"\x01\xfd\xff\xfe\xff\xff\xff\0\0\xff\xff\x03\0\xfe\xff\xff\xff&\x01\xfc\xff\xfd\xff\xfe\xff\xff\xffx\x01\xfb\xff\xfc\xff\xfd\xff\xfe\xff\xff\xff\xd0\0\xfd\xff\xfe\xff\xff\xff\xd3\0\xfd\xff\xfe\xff\xff\xff\xbd\0\xff\xff\x8f\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff\r\x01\xfd\xff\xfe\xff\xff\xff_\x01\xfc\xff\xfd\xff\xfe\xff\xff\xff2\x01\xfd\xff\xfe\xff\xff\xff\x1a\x01\xfd\xff\xfe\xff\xff\xff\xe9\0\xfd\xff\xfe\xff\xff\xff\xde\0\xfd\xff\xfe\xff\xff\xffO\x05\xed\xff\xee\xff\n\0\xf0\xff,\x01\xf3\xff\xf4\xff\xf5\xff\xf6\xff=\x01\x02\x04\xf9\xff-\x05\xd1\0\xe4\0\xd3\0\xe8\0\xe1\0\xdf\0\xf0\0\xff\xff\xeb\0\xea\0\b\x01\xfe\xff\x04\x01\x17\x01\xfd\xff6\x01\xfc\xff\x1f\x01\x1d\x01 \x01'\x011\x01-\x01\xfb\xff9\x01R\x01P\x01N\x01T\x01J\x01V\x01\xfa\xffn\x05\f\x04{\x05\x9b\x05\xa5\x05\xb1\x05\xbb\x05\xc5\x05\xf1\xff\xc7\x01M\x02\xfd\xff\xff\xff\x9a\x02\xde\x05\xd1\x05\x9b\x02\xef\x055\x06L\x06r\x06\x10\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x98\x06\xfc\xff\xfd\xff\xe3\x06\xff\xffU\x07\xf4\xff\xf5\xff\x0b\0\xf7\xffL\x02\xfa\xff\xfb\xff\xfc\xff\xfd\xff\xfe\xff\x1f\x02\xf3\x053\x07d\x01s\x01h\x01\x85\x01v\x01\x9a\x01\xab\x01\xff\xff\xad\x01\xb0\x01\xbf\x01\xb9\x01\xbb\x01\xfd\x01\xe6\x01\xe6\x01\xea\x01\xf7\x01\xed\x01\xea\x01\t\x02\x13\x02\x13\x02\x0f\x02\x15\x02\x0b\x02\x07\x02\x8e\x06\x98\x06t\x07\xaa\x07\xb4\x07\xbe\x07\xc8\x07\xd2\x07\xf8\xffx\x02\xa7\x02\xfd\xff\xff\xff\xd8\x02R\x07\xdc\x07\xec\x02\xf4\x07:\bQ\bw\bL\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x9d\b\xfc\xff\xfd\xff\xe8\b\xff\xff\x87\x02x\x02\xfd\xffd\x02\xfe\xff\xb6\x02\xff\xff\x0b\x02\xff\xff\xcc\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff.\x02\xff\xff\xb2\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\x17\0\xff\xff\xb7\x02\xfc\xff\xfd\xff\xfe\xff\xff\xff\xbb\x02\xfd\xff\xfe\xff\xff\xffy\x02\xfd\xff\xfe\xff\xff\xff\xb8\x02\xfc\xff\xfd\xff\xfe\xff\x13\0\xff\xff\x8c\x01\x92\x01\xff\xff\x96\x01\x97\x01\x9a\x01\xa8\x01\xaa\x01\xab\x01\xac\x01\xad\x01\xb5\x01\xb8\x01\xb9\x01\xbb\x01\xbf\x01\xc1\x01\xc3\x01\xc4\x01\xc5\x01\xc8\x01\xcb\x01\xdf\x01\xe1\x01\xe4\x01\xf9\x01\xfb\x01\x02\x02\x04\x02\x0b\x02\f\x02\r\x02\0\0",nN="0.55",nM=109,df="droit_ouvert",G="Champs d'applications",v8=479,iH=952,v6=2655,v7=4250,bj="ContributionsSocialesAidesPersonnelleLogement",iG="Article D832-10",bl="Interface du programme",qE=-97,v5=1402,nL=944,aM="examples/aides_logement/archives.catala_fr",iF=469,BJ=3470,v4=281,BI=3313,v3="218700",qC="Article D823-20",qD="ServicesSociauxAllocationVerseeAuxServicesSociaux",ks="d\xc3\xa9pense_nette_minimale_d832_27",iE=195,em="1.",fI=1015,hv=1094,v2="DecisionTaken(_)",v1=2234,v0="45200",dc="d\xc3\xa9pense_nette_minimale",iD=954,qB="Titre I : Allocations aux personnes \xc3\xa2g\xc3\xa9es",j2="Livre I : G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s - Dispositions communes \xc3\xa0 tout ou partie des r\xc3\xa9gimes de base",rC="Article D823-17",vZ=4575,BH="Instruction minist\xc3\xa9rielle N\xc2\xb0DSS/SD2B/2019/65 du 25 mars 2019 relative \xc3\xa0 la revalorisation au 1er avril 2019 des prestations familiales servies en m\xc3\xa9tropole",iC=596,nK="AllocationLogement",vW=2901,vX="5186",vY="Unexpected '%s' kind for the enumeration 'SituationObligationScolaire.t'",hu=1065,fH=155,fY=518,BG="calcul_apl_logement_foyer.situation_familiale_calcul_apl",vU="142303",l$=316,ht=4828,vV="37778",d2=296,nJ=565,BF=215,d1="Article D832-11",vT="LaReunion",nI=947,BE="AgrandirOuRendreHabitableD331_63",aW="Montant du salaire minimum de croissance",l_=557,eJ=621,vS=2311,qA="0.3",vR="true",bb="Chapitre II : Conditions g\xc3\xa9n\xc3\xa9rales d'attribution",fX=370,ad="Titre II : Dispositions communes aux aides personnelles au logement",BC="25116",BD=1177,j1="Paragraphe 1 : Information et simplification des d\xc3\xa9marches des assur\xc3\xa9s.",qz="1500",vQ=" is too large for shifting.",BB="237200",nH=502,l8="242800",l9="Map.bal",rB="5208",BA="0.08",vO=1963,vP="@[",ab="Titre III : Aide personnalis\xc3\xa9e au logement",Bz="Apr\xc3\xa8s",vN=1185,aa="Code de la s\xc3\xa9curit\xc3\xa9 sociale",By="42892",l7=688,l6="ml_z_overflow",vM="1.8",Bx=807,kr="contributions_sociales.date_courante",gD=850,l5=309,vL="calcul_apl_logement_foyer.redevance",Bw=1425,vK=4952,Bv=-752863768,rz="202500",rA="Article D832-17",Bu=360,Br="Article 10",iB=1144,Bs="allocationsFamiliales",Bt="Instruction interminist\xc3\xa9rielle n\xc2\xb0DSS/2B/2021/65 du 19 mars 2021 relative \xc3\xa0 la revalorisation au 1er avril 2021 des prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et dans le d\xc3\xa9partement de Mayotte",vJ="582700",nG=167,Bp=274,Bq="4986",aO="CalculAidePersonnalis\xc3\xa9eLogementLocatif",Bo=433,hs=4830,nF=531,eI="abattement_d\xc3\xa9pense_nette_minimale",Bn="Sys_blocked_io",qy="b\xc3\xa9n\xc3\xa9ficie_titre_personnel_aide_personnelle_logement",ch="Articles valables du 1er octobre 2020 au 1er octobre 2021",gs="Chapitre 2 : Champ d'application",vI="0.0588",nE="Chapitre 2 : Champ d'application.",Bm=362,Bl=4773,nD=457,Bk="49",X="\xc3\x89ligibilit\xc3\xa9 aux aides personnelles au logement",bu="Article D842-15",l4=246,fG=1016,vG="37900",vH="%u",l3="Article L831-1",aF="Chapitre IV : Calcul de l'aide personnalis\xc3\xa9e au logement en secteur accession",fF="calcul_\xc3\xa9quivalence_loyer_minimale",fE=298,Bj="Article 40",b3="\xc3\x89ligibilit\xc3\xa9AidePersonnalis\xc3\xa9eLogement",vF="19402",j0=925,V="2",cA=127,nC=711,vD="Article 30",vE="@{",cd="Montant de la base mensuelle des allocations familiales",vC=" : flags Open_rdonly and Open_wronly are not compatible",vB="0.232",ry="OuvertureDroitsRetraite",vz="Zone2",vA="43505",Bi=3451,nB="D\xc3\xa9cret n\xc2\xb0 2019-1387 du 18 d\xc3\xa9cembre 2019 portant rel\xc3\xa8vement du salaire minimum de croissance",cH="-",Bh=336,hr=603,vx="n_nombre_parts_d832_11",vy=" : file already exists",vw=397,Bg=4473,jZ="EffectiveEtPermanente",Be="calculAllocationLogementAccessionPropriete",Bf="41481",fb="0.0045",fD="Date d'ouverture des droits \xc3\xa0 la retraite",l2=866,vv=1099,Bd="retrieveEvents",vu="20165",Bc="2699",l0=625,l1=644,vs="Infini",vt="prestationsFamiliales",fC="Article 43",vr="\\b",Bb=2215,af="Titre IV : Allocations de Logement",lZ="Martinique",nA=404,co="Article D832-25",vq=487,vp=12520,nz=4390,Ba="Collectivit\xc3\xa9",cV=401,A$="42228",cg="Quantification des impay\xc3\xa9s de d\xc3\xa9pense de logement",aK="Chapitre 1er : Allocations familiales",hq=2016,vo="AllocationEducationEnfantHandicape",A_="832200",A9="AllocationRentr\xc3\xa9eScolaire",iA=1000,W="CalculAllocationLogementAccessionPropri\xc3\xa9t\xc3\xa9",A8=4081,Y="",rx=737456202,iz="Sous-section 2 : Principes de neutralisation et d'abattement",A7="^",hp=4821,A6=2673,lY="Section 2 : Prime de d\xc3\xa9m\xc3\xa9nagement",lX=746,ho=0x3f,A5="' kind for the enumeration 'Collectivite.t'",rw="184000",vn="251500",qx=334,vm=4426,dI="Article 16",A4="Article D842-9",vl="Match_failure",A3=2302,hn=716,at=2021,iy="0.085",kp="d\xc3\xa9pense_nette_minimale_d832_10",kq="CalculNombrePartLogementFoyer",A2="35130",jY="montant_initial_majoration",fh="+",ix=1061,A1="1057",hm=425,A0="%li",cP=998,hl="Smic",AZ="234600",iw=3764,AY="39051",vk="20900",ny="calcul_apl_logement_foyer",rv="208600",hk=431,qw=267,AX="impayeDepenseLogement",iv=962,AW="calcul_nombre_parts.condition_2_du_832_25",vj=0xe0,AV=2072,vi=3175,hj=1126,AU="20100",lW=882,AT="D331_32",eH="contributions_sociales",fW=580,hi=250,vh="calcul_apl_logement_foyer.ressources_m\xc3\xa9nage_arrondies",N="Secteur logement-foyer",qv="Article L831-2",J="Allocations familiales",iu=893,nx=624,qu="0.027",vg=545,ve="\xc3\xa9ligibilit\xc3\xa9_commune.m\xc3\xa9nage",vf="allocations_familiales",ru=1255,it="Article 8",bM="examples/allocations_familiales/securite_sociale_L.catala_fr",lV=594,by=2019,nw="Article R521-1",rt="jsError",eG=0x8000,jX=1055,bi="Chapitre Ier : Champ d'application",AS="Section 1 : Conditions relatives au b\xc3\xa9n\xc3\xa9ficiaire",is=964,AR="43074",lU=946,vd="6.55957",vc="eligibiliteAidePersonnaliseeLogement",lT="Sous-section 1 : Modalit\xc3\xa9s g\xc3\xa9n\xc3\xa9rales de l'appr\xc3\xa9ciation des ressources",hh=371,fB=320,ir=129,hg=958,vb="\n",ko="abattement_d\xc3\xa9pense_nette_minimale_d832_27",lS=497,ah="Chapitre II : Modalit\xc3\xa9s de liquidation et de versement de l'aide personnalis\xc3\xa9e au logement",qt="3.7",fV=414,va=4459,lR=310,bL="Tous secteurs",u$="Article 34",b8="calcul_plafond_mensualit\xc3\xa9_d842_6_base",iq=2005,AQ=-48,qs="9",u_=4557,AP="1025",cf="camlinternalFormat.ml",eF=549,nv=312,u9=3221,nt=943,nu=148,AO="132000",qr="0.0185",u8="924600",kn=713,c0=2017,AN="date_naissance",de=317,ao="CalculAidePersonnalis\xc3\xa9eLogementAccessionPropri\xc3\xa9t\xc3\xa9",lQ="Article R822-2",AM=3199,d8="Titre 1 : Champ d'application - G\xc3\xa9n\xc3\xa9ralit\xc3\xa9s",gr=1141,rs="obligation_scolaire",u7="EEXIST",eE=293,eD=550,u6=2560,el=121,AL="prestations_familiales.prestation_courante",u5=1222,ns=1999,AI=824,AJ="\xc3\xa9ligibilit\xc3\xa9_commune.demandeur",AK="\\n",AH=3786,ds=120,lP="16",AF="23138",AG="Article D832-14",rr=512,u4=0x7ff0,u2="eligibiliteAllocationLogement",u3=1871,lO=928,bx="Articles valables du 1er octobre 2021 au 1er juillet 2022",nr=861,u1="montant_forfaitaire_charges",uZ=1903,u0=3576,ek="traitement_aide_finale_d\xc3\xa9pense_nette_minimale",AE=4854,rq=177,uY="0x",AD="Ascendant",lN="0.005",t="Calcul du montant de l'aide personnalis\xc3\xa9e au logement",hf=499,lM="D\xc3\xa9cret n\xc2\xb0 2020-1598 du 16 d\xc3\xa9cembre 2020 portant rel\xc3\xa8vement du salaire minimum de croissance",nq=645,AC="40888",uW="bas",uX="0.208",uV="210900",AB="219900",bC="traitement_aide_finale",uT="r\xc3\xa9gime_outre_mer_l751_1",bc=105,uU="Invalid function call ([ ",uS="Instruction interminist\xc3\xa9rielle n\xc2\xb0 DSS/SD2B/2018/279 du 17 d\xc3\xa9cembre 2018 relative \xc3\xa0 la revalorisation au 1er janvier 2019 des plafonds de ressources d\xe2\x80\x99attribution de certaines prestations familiales servies en m\xc3\xa9tropole, en Guadeloupe, en Guyane, en Martinique, \xc3\xa0 la R\xc3\xa9union, \xc3\xa0 Saint-Barth\xc3\xa9lemy, \xc3\xa0 Saint-Martin et \xc3\xa0 Mayotte",eC=551,uR=4407,lL="Article R512-2",he=1135,AA="31664",uQ="44693",fU=454,hd="0.45",uP=1165,qq="2710",gq=429,ak="input",uO="39839",Az="\xc3\xa9ligibilit\xc3\xa9_logement",qp="0.2",hc=157,Ay=2286,dy=364,lK="D\xc3\xa9cret n\xc2\xb0 2018-1173 du 19 d\xc3\xa9cembre 2018 portant rel\xc3\xa8vement du salaire minimum de croissance",uN=390,np=498,fA="examples/aides_logement/autres_sources.catala_fr",uM="calculAllocationLogement",hb=4820,uL=1384,qo="mkdir",ip=379,gp="Article L822-3",bg="Chapitre III : Modalit\xc3\xa9s de liquidation et de versement",dH=1013,no=592,nn=": No such file or directory",go=378,fT="Chapitre VII : Calcul des allocations de logement en secteur logement-foyer",gC="Titre 5 : D\xc3\xa9partements d'outre-mer",lJ=948,uK="766",uJ=4648,cO="CalculetteAidesAuLogementGardeAltern\xc3\xa9e",uI=151,Ax="calculetteAidesAuLogement",rp="Section 1 : Ouverture du droit et liquidation de l'allocation de solidarit\xc3\xa9 aux personnes \xc3\xa2g\xc3\xa9es",gn=1137,Av="Descendant",Aw=2334,b$="\xc3\x89ligibilit\xc3\xa9AllocationLogement",a$="D\xc3\xa9cret n\xc2\xb02002-423 du 29 mars 2002 relatif aux prestations familiales \xc3\xa0 Mayotte",nm=220,nl=626,Au="\xc3\xa9ligibilit\xc3\xa9_apl",uH="taux",qn="Demandeur",cD="CalculAllocationLogementLocatif",ro=843,io=1046,At="BeginCall([ ",uG=332,jW="caract\xc3\xa9ristiques_pr\xc3\xaat_l831_1_1",As="GardeAltern\xc3\xa9ePartageAllocations",fz=932,aZ="\xc3\x89pilogue",as="CalculAllocationLogementFoyer",Ar="943900",Aq="bmaf",Ao="calculEquivalenceLoyerMinimale",Ap=4036,lI=2006,ha="0.95",Am="contributionsSocialesAidesPersonnelleLogement",An="ressourcesAidesPersonnelleLogement",lH=863,cl=363,uE="Pervasives.do_at_exit",uF="utf8",Al="222300",qm="ComplementFamilial",Ak="225000",uD="\xc3\xa9ligibilit\xc3\xa9_allocation_logement",rn="0.0283",uC=217,aP=854,rm="0.16",lG=643,a7="Article 18",im=418,Aj="36815",eB=134,uB=2756,dx="Section 2 : Conditions relatives aux ressources",Ai=4189,Ah=3930,aI="\xc3\x89ligibilit\xc3\xa9 aux allocations de logement";function +btr(d,b,e,c,f){if(c<=b)for(var a=1;a<=f;a++)e[c+a]=d[b+a];else for(var a=f;a>=1;a--)e[c+a]=d[b+a];return 0}function -bto(b,d,c,e){for(var +bts(b,d,c,e){for(var a=0;a=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?o8(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else -if(b.t==2&&f==b.c.length){b.c+=d.t==4?o8(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)oX(b);var +f9(d,e,b,f,c){if(c==0)return 0;if(f==0&&(c>=b.l||b.t==2&&c>=b.c.length)){b.c=d.t==4?o_(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else +if(b.t==2&&f==b.c.length){b.c+=d.t==4?o_(d.c,e,c):e==0&&d.c.length==c?d.c:d.c.substr(e,c);b.t=b.c.length==b.l?0:2}else{if(b.t!=4)oZ(b);var g=d.c,h=b.c;if(d.t==4)if(f<=e)for(var a=0;a=0;a--)h[f+a]=g[e+a];else{var i=Math.min(c,g.length-e);for(var a=0;a>=1;if(b==0)return d;a+=a;c++;if(c==9)a.slice(0,1)}}function -gO(a){if(a.t==2)a.c+=ju(a.l-a.c.length,"\0");else -a.c=o8(a.c,0,a.c.length);a.t=0}function -FN(a){if(a.length<24){for(var -b=0;bcy)return false;return true}else +fo(a){return a}function +ec(a,b,c,d,e){f9(fo(a),b,c,d,e);return 0}function +bub(b,a){throw[0,b,a]}function +jw(b,a){if(b==0)return Y;if(a.repeat)return a.repeat(b);var +d=Y,c=0;for(;;){if(b&1)d+=a;b>>=1;if(b==0)return d;a+=a;c++;if(c==9)a.slice(0,1)}}function +gQ(a){if(a.t==2)a.c+=jw(a.l-a.c.length,"\0");else +a.c=o_(a.c,0,a.c.length);a.t=0}function +FQ(a){if(a.length<24){for(var +b=0;bcA)return false;return true}else return!/[^\x00-\x7f]/.test(a)}function -su(e){for(var -j=W,c=W,g,f,h,a,b=0,i=e.length;bro){c.substr(0,1);j+=c;c=W;j+=e.slice(b,d)}else -c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else -if(a>eo)c+=String.fromCharCode(0xd7c0+(a>>10),xQ+(a&0x3FF));else -c+=String.fromCharCode(a);if(c.length>kc){c.substr(0,1);j+=c;c=W}}return j+c}function -eW(c,a,b){this.t=c;this.c=a;this.l=b}eW.prototype.toString=function(){switch(this.t){case -9:return this.c;default:gO(this);case -0:if(FN(this.c)){this.t=9;return this.c}this.t=8;case -8:return this.c}};eW.prototype.toUtf16=function(){var -a=this.toString();if(this.t==9)return a;return su(a)};eW.prototype.slice=function(){var +sx(e){for(var +j=Y,c=Y,g,f,h,a,b=0,i=e.length;brr){c.substr(0,1);j+=c;c=Y;j+=e.slice(b,d)}else +c+=e.slice(b,d);if(d==i)break;b=d}a=1;if(++b=0xd7ff&&a<0xe000)a=2}else{a=3;if(++b0x10ffff)a=3}}}}}if(a<4){b-=a;c+="\ufffd"}else +if(a>eq)c+=String.fromCharCode(0xd7c0+(a>>10),xU+(a&0x3FF));else +c+=String.fromCharCode(a);if(c.length>ke){c.substr(0,1);j+=c;c=Y}}return j+c}function +eY(c,a,b){this.t=c;this.c=a;this.l=b}eY.prototype.toString=function(){switch(this.t){case +9:return this.c;default:gQ(this);case +0:if(FQ(this.c)){this.t=9;return this.c}this.t=8;case +8:return this.c}};eY.prototype.toUtf16=function(){var +a=this.toString();if(this.t==9)return a;return sx(a)};eY.prototype.slice=function(){var a=this.t==4?this.c.slice():this.c;return new -eW(this.t,a,this.l)};function -Fo(a){return new -eW(0,a,a.length)}function -a(a){return Fo(a)}function -sq(c,b){bt9(c,a(b))}var -bG=[0];function -bL(a){sq(bG.Invalid_argument,a)}function -Fm(){bL(rI)}function -bS(a,c,b){b&=ds;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}oX(a)}a.c[c]=b;return 0}function -dS(b,a,c){if(a>>>0>=b.l)Fm();return bS(b,a,c)}function -kN(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case +eY(this.t,a,this.l)};function +Fr(a){return new +eY(0,a,a.length)}function +a(a){return Fr(a)}function +st(c,b){bub(c,a(b))}var +bI=[0];function +bO(a){st(bI.Invalid_argument,a)}function +Fp(){bO(rL)}function +bU(a,c,b){b&=du;if(a.t!=4){if(c==a.c.length){a.c+=String.fromCharCode(b);if(c+1==a.l)a.t=0;return 0}oZ(a)}a.c[c]=b;return 0}function +dV(b,a,c){if(a>>>0>=b.l)Fp();return bU(b,a,c)}function +kP(a,b){switch(a.t&6){default:if(b>=a.c.length)return 0;case 0:return a.c.charCodeAt(b);case 4:return a.c[b]}}function -dz(c,a){if(c.fun)return dz(c.fun,a);if(typeof +dB(c,a){if(c.fun)return dB(c.fun,a);if(typeof c!=="function")return c;var b=c.length|0;if(b===0)return c.apply(null,a);var e=a.length|0,d=b-e|0;if(d==0)return c.apply(null,a);else -if(d<0)return dz(c.apply(null,a.slice(0,b)),a.slice(b));else +if(d<0)return dB(c.apply(null,a.slice(0,b)),a.slice(b));else return function(){var e=arguments.length==0?1:arguments.length,d=new Array(a.length+e);for(var b=0;b>>0>=a.length-1)kM();return a}function -oV(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function -btw(){return[0]}function -bT(a){if(a<0)bL("Bytes.create");return new -eW(a?2:9,W,a)}function -kV(a){throw a}function -jt(){kV(bG.Division_by_zero)}function -Fr(b,a){if(a==0)jt();return b/a|0}function -dT(a){a.t&6&&gO(a);return a.c}var -bum=Math.log2&&Math.log2(1.1235582092889474E+307)==1020;function -FM(a){if(bum)return Math.floor(Math.log2(a));var +b=0;b>>0>=a.length-1)kO();return a}function +oX(a){if(isFinite(a)){if(Math.abs(a)>=2.2250738585072014e-308)return 0;if(a!=0)return 1;return 2}return isNaN(a)?4:3}function +btA(){return[0]}function +bV(a){if(a<0)bO("Bytes.create");return new +eY(a?2:9,Y,a)}function +kX(a){throw a}function +jv(){kX(bI.Division_by_zero)}function +Fu(b,a){if(a==0)jv();return b/a|0}function +dW(a){a.t&6&&gQ(a);return a.c}var +buq=Math.log2&&Math.log2(1.1235582092889474E+307)==1020;function +FP(a){if(buq)return Math.floor(Math.log2(a));var b=0;if(a==0)return-Infinity;if(a>=1)while(a>=2){a/=2;b++}else while(a<1){a*=2;b--}return b}function -sj(c){var -a=new(aH.Float32Array)(1);a[0]=c;var -b=new(aH.Int32Array)(a.buffer);return b[0]|0}var -Fy=Math.pow(2,-24);function -aP(b,c,a){this.lo=b&fd;this.mi=c&fd;this.hi=a&eo}aP.prototype.caml_custom="_j";aP.prototype.copy=function(){return new -aP(this.lo,this.mi,this.hi)};aP.prototype.ucompare=function(a){if(this.hi>a.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.loa.hi)return 1;if(this.hia.mi)return 1;if(this.mia.lo)return 1;if(this.loc)return 1;if(ba.mi)return 1;if(this.mia.lo)return 1;if(this.lo>24),c=-this.hi+(b>>24);return new -aP(a,b,c)};aP.prototype.add=function(a){var +aR(a,b,c)};aR.prototype.add=function(a){var b=this.lo+a.lo,c=this.mi+a.mi+(b>>24),d=this.hi+a.hi+(c>>24);return new -aP(b,c,d)};aP.prototype.sub=function(a){var +aR(b,c,d)};aR.prototype.sub=function(a){var b=this.lo-a.lo,c=this.mi-a.mi+(b>>24),d=this.hi-a.hi+(c>>24);return new -aP(b,c,d)};aP.prototype.mul=function(a){var -b=this.lo*a.lo,c=(b*Fy|0)+this.mi*a.lo+this.lo*a.mi,d=(c*Fy|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new -aP(b,c,d)};aP.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};aP.prototype.isNeg=function(){return this.hi<<16<0};aP.prototype.and=function(a){return new -aP(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};aP.prototype.or=function(a){return new -aP(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};aP.prototype.xor=function(a){return new -aP(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};aP.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new -aP(this.lo<>24-a,this.hi<>24-a);if(a<48)return new -aP(0,this.lo<>48-a);return new -aP(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new -aP(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new -aP(this.hi>>a-48,0,0)};aP.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var +aR(b,c,d)};aR.prototype.mul=function(a){var +b=this.lo*a.lo,c=(b*FB|0)+this.mi*a.lo+this.lo*a.mi,d=(c*FB|0)+this.hi*a.lo+this.mi*a.mi+this.lo*a.hi;return new +aR(b,c,d)};aR.prototype.isZero=function(){return(this.lo|this.mi|this.hi)==0};aR.prototype.isNeg=function(){return this.hi<<16<0};aR.prototype.and=function(a){return new +aR(this.lo&a.lo,this.mi&a.mi,this.hi&a.hi)};aR.prototype.or=function(a){return new +aR(this.lo|a.lo,this.mi|a.mi,this.hi|a.hi)};aR.prototype.xor=function(a){return new +aR(this.lo^a.lo,this.mi^a.mi,this.hi^a.hi)};aR.prototype.shift_left=function(a){a=a&63;if(a==0)return this;if(a<24)return new +aR(this.lo<>24-a,this.hi<>24-a);if(a<48)return new +aR(0,this.lo<>48-a);return new +aR(0,0,this.lo<>a|this.mi<<24-a,this.mi>>a|this.hi<<24-a,this.hi>>a);if(a<48)return new +aR(this.mi>>a-24|this.hi<<48-a,this.hi>>a-24,0);return new +aR(this.hi>>a-48,0,0)};aR.prototype.shift_right=function(a){a=a&63;if(a==0)return this;var c=this.hi<<16>>16;if(a<24)return new -aP(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var +aR(this.lo>>a|this.mi<<24-a,this.mi>>a|c<<24-a,this.hi<<16>>a>>>16);var b=this.hi<<16>>31;if(a<48)return new -aP(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&eo);return new -aP(this.hi<<16>>a-32,b,b)};aP.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&fd;this.lo=this.lo<<1&fd};aP.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&fd;this.mi=(this.mi>>>1|this.hi<<23)&fd;this.hi=this.hi>>>1};aP.prototype.udivmod=function(e){var +aR(this.mi>>a-24|this.hi<<48-a,this.hi<<16>>a-24>>16,b&eq);return new +aR(this.hi<<16>>a-32,b,b)};aR.prototype.lsl1=function(){this.hi=this.hi<<1|this.mi>>23;this.mi=(this.mi<<1|this.lo>>23)&ff;this.lo=this.lo<<1&ff};aR.prototype.lsr1=function(){this.lo=(this.lo>>>1|this.mi<<23)&ff;this.mi=(this.mi>>>1|this.hi<<23)&ff;this.hi=this.hi>>>1};aR.prototype.udivmod=function(e){var c=0,b=this.copy(),a=e.copy(),d=new -aP(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};aP.prototype.div=function(a){var -b=this;if(a.isZero())jt();var -d=b.hi^a.hi;if(b.hi&eE)b=b.neg();if(a.hi&eE)a=a.neg();var -c=b.udivmod(a).quotient;if(d&eE)c=c.neg();return c};aP.prototype.mod=function(b){var -a=this;if(b.isZero())jt();var -d=a.hi;if(a.hi&eE)a=a.neg();if(b.hi&eE)b=b.neg();var -c=a.udivmod(b).modulus;if(d&eE)c=c.neg();return c};aP.prototype.toInt=function(){return this.lo|this.mi<<24};aP.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};aP.prototype.toArray=function(){return[this.hi>>8,this.hi&ds,this.mi>>16,this.mi>>8&ds,this.mi&ds,this.lo>>16,this.lo>>8&ds,this.lo&ds]};aP.prototype.lo32=function(){return this.lo|(this.mi&ds)<<24};aP.prototype.hi32=function(){return this.mi>>>8&eo|this.hi<<16};function -f8(b,c,a){return new -aP(b,c,a)}function -o0(a){if(!isFinite(a)){if(isNaN(a))return f8(1,0,u1);return a>0?f8(0,0,u1):f8(0,0,0xfff0)}var -f=a==0&&1/a==-Infinity?eE:a>=0?0:eE;if(f)a=-a;var -b=FM(a)+d1;if(b<=0){b=0;a/=Math.pow(2,-y2)}else{a/=Math.pow(2,b-oQ);if(a<16){a*=2;b-=1}if(b==0)a/=2}var +aR(0,0,0);while(b.ucompare(a)>0){c++;a.lsl1()}while(c>=0){c--;d.lsl1();if(b.ucompare(a)>=0){d.lo++;b=b.sub(a)}a.lsr1()}return{quotient:d,modulus:b}};aR.prototype.div=function(a){var +b=this;if(a.isZero())jv();var +d=b.hi^a.hi;if(b.hi&eG)b=b.neg();if(a.hi&eG)a=a.neg();var +c=b.udivmod(a).quotient;if(d&eG)c=c.neg();return c};aR.prototype.mod=function(b){var +a=this;if(b.isZero())jv();var +d=a.hi;if(a.hi&eG)a=a.neg();if(b.hi&eG)b=b.neg();var +c=a.udivmod(b).modulus;if(d&eG)c=c.neg();return c};aR.prototype.toInt=function(){return this.lo|this.mi<<24};aR.prototype.toFloat=function(){return(this.hi<<16)*Math.pow(2,32)+this.mi*Math.pow(2,24)+this.lo};aR.prototype.toArray=function(){return[this.hi>>8,this.hi&du,this.mi>>16,this.mi>>8&du,this.mi&du,this.lo>>16,this.lo>>8&du,this.lo&du]};aR.prototype.lo32=function(){return this.lo|(this.mi&du)<<24};aR.prototype.hi32=function(){return this.mi>>>8&eq|this.hi<<16};function +f_(b,c,a){return new +aR(b,c,a)}function +o2(a){if(!isFinite(a)){if(isNaN(a))return f_(1,0,u4);return a>0?f_(0,0,u4):f_(0,0,0xfff0)}var +f=a==0&&1/a==-Infinity?eG:a>=0?0:eG;if(f)a=-a;var +b=FP(a)+d4;if(b<=0){b=0;a/=Math.pow(2,-y6)}else{a/=Math.pow(2,b-oS);if(a<16){a*=2;b-=1}if(b==0)a/=2}var d=Math.pow(2,24),c=a|0;a=(a-c)*d;var e=a|0;a=(a-e)*d;var -g=a|0;c=c&rD|f|b<<4;return f8(g,e,c)}function -kQ(a){return a.toArray()}function -Fl(c,b,g){c.write(32,b.dims.length);c.write(32,b.kind|b.layout<<8);if(b.caml_custom==n4)for(var -a=0;a>4;if(c==2047)return(f|g|b&rD)==0?b&eE?-Infinity:Infinity:NaN;var -e=Math.pow(2,-24),a=(f*e+g)*e+(b&rD);if(c>0){a+=16;a*=Math.pow(2,c-oQ)}else -a*=Math.pow(2,-y2);if(b&eE)a=-a;return a}function -sd(b){var +a(e*Fm(c));return d}function +sn(c){var +a=new(aJ.Int32Array)(1);a[0]=c;var +b=new(aJ.Float32Array)(a.buffer);return b[0]}function +kR(a){return new +aR(a[7]<<0|a[6]<<8|a[5]<<16,a[4]<<0|a[3]<<8|a[2]<<16,a[1]<<0|a[0]<<8)}function +ju(d){var +f=d.lo,g=d.mi,b=d.hi,c=(b&0x7fff)>>4;if(c==2047)return(f|g|b&rG)==0?b&eG?-Infinity:Infinity:NaN;var +e=Math.pow(2,-24),a=(f*e+g)*e+(b&rG);if(c>0){a+=16;a*=Math.pow(2,c-oS)}else +a*=Math.pow(2,-y6);if(b&eG)a=-a;return a}function +sg(b){var d=b.length,c=1;for(var -a=0;a>>24&ds|(a&eo)<<8,a>>>16&eo)}function -sl(a){return a.hi32()}function -sm(a){return a.lo32()}var -btr=n4;function -f6(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}f6.prototype.caml_custom=btr;f6.prototype.offset=function(b){var +a=0;a>>24&du|(a&eq)<<8,a>>>16&eq)}function +so(a){return a.hi32()}function +sp(a){return a.lo32()}var +btv=n6;function +f8(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}f8.prototype.caml_custom=btv;f8.prototype.offset=function(b){var c=0;if(typeof b==="number")b=[b];if(!(b instanceof -Array))bL("bigarray.js: invalid offset");if(this.dims.length!=b.length)bL("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var -a=0;a=this.dims[a])kM();c=c*this.dims[a]+b[a]}else +Array))bO("bigarray.js: invalid offset");if(this.dims.length!=b.length)bO("Bigarray.get/set: bad number of dimensions");if(this.layout==0)for(var +a=0;a=this.dims[a])kO();c=c*this.dims[a]+b[a]}else for(var -a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])kM();c=c*this.dims[a]+(b[a]-1)}return c};f6.prototype.get=function(a){switch(this.kind){case +a=this.dims.length-1;a>=0;a--){if(b[a]<1||b[a]>this.dims[a])kO();c=c*this.dims[a]+(b[a]-1)}return c};f8.prototype.get=function(a){switch(this.kind){case 7:var -d=this.data[a*2+0],b=this.data[a*2+1];return Fx(d,b);case +d=this.data[a*2+0],b=this.data[a*2+1];return FA(d,b);case 10:case 11:var -e=this.data[a*2+0],c=this.data[a*2+1];return[fa,e,c];default:return this.data[a]}};f6.prototype.set=function(a,b){switch(this.kind){case -7:this.data[a*2+0]=sm(b);this.data[a*2+1]=sl(b);break;case +e=this.data[a*2+0],c=this.data[a*2+1];return[fc,e,c];default:return this.data[a]}};f8.prototype.set=function(a,b){switch(this.kind){case +7:this.data[a*2+0]=sp(b);this.data[a*2+1]=so(b);break;case 10:case -11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};f6.prototype.fill=function(b){switch(this.kind){case +11:this.data[a*2+0]=b[1];this.data[a*2+1]=b[2];break;default:this.data[a]=b;break}return 0};f8.prototype.fill=function(b){switch(this.kind){case 7:var -c=sm(b),e=sl(b);if(c==e)this.data.fill(c);else +c=sp(b),e=so(b);if(c==e)this.data.fill(c);else for(var a=0;ab.data[a])return 1}break}return 0};function -jq(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}jq.prototype=new -f6();jq.prototype.offset=function(a){if(typeof +js(c,d,b,a){this.kind=c;this.layout=d;this.dims=b;this.data=a}js.prototype=new +f8();js.prototype.offset=function(a){if(typeof a!=="number")if(a instanceof Array&&a.length==1)a=a[0];else -bL("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])kM();return a};jq.prototype.get=function(a){return this.data[a]};jq.prototype.set=function(a,b){this.data[a]=b;return 0};jq.prototype.fill=function(a){this.data.fill(a);return 0};function -Fh(c,d,a,b){var -e=Fj(c);if(sd(a)*e!=b.length)bL("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new -jq(c,d,a,b);return new -f6(c,d,a,b)}function -dk(b){if(!bG.Failure)bG.Failure=[bc,a(qT),-3];sq(bG.Failure,b)}function -Fi(b,v,r){var -i=b.read32s();if(i<0||i>16)dk("input_value: wrong number of bigarray dimensions");var -p=b.read32s(),j=p&ds,o=p>>8&1,h=[];if(r==n4)for(var +bO("Ml_Bigarray_c_1_1.offset");if(a<0||a>=this.dims[0])kO();return a};js.prototype.get=function(a){return this.data[a]};js.prototype.set=function(a,b){this.data[a]=b;return 0};js.prototype.fill=function(a){this.data.fill(a);return 0};function +Fk(c,d,a,b){var +e=Fm(c);if(sg(a)*e!=b.length)bO("length doesn't match dims");if(d==0&&a.length==1&&e==1)return new +js(c,d,a,b);return new +f8(c,d,a,b)}function +dm(b){if(!bI.Failure)bI.Failure=[be,a(qV),-3];st(bI.Failure,b)}function +Fl(b,v,r){var +i=b.read32s();if(i<0||i>16)dm("input_value: wrong number of bigarray dimensions");var +p=b.read32s(),j=p&du,o=p>>8&1,h=[];if(r==n6)for(var a=0;a>>32-15;a=f$(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function -btG(a,b){a=cq(a,sm(b));a=cq(a,sl(b));return a}function -sh(a,b){return btG(a,o0(b))}function -Fk(c){var -b=sd(c.dims),d=0;switch(c.kind){case +l=ju(kR(e));g.set(a,[fc,m,l])}break}v[0]=(4+i)*4;return Fk(j,o,h,f)}function +Fj(a,b,c){return a.compare(b,c)}function +gb(a,b){return Math.imul(a,b)}function +cs(b,a){a=gb(a,0xcc9e2d51|0);a=a<<15|a>>>32-15;a=gb(a,0x1b873593);b^=a;b=b<<13|b>>>32-13;return(b+(b<<2)|0)+(0xe6546b64|0)|0}function +btK(a,b){a=cs(a,sp(b));a=cs(a,so(b));return a}function +sk(a,b){return btK(a,o2(b))}function +Fn(c){var +b=sg(c.dims),d=0;switch(c.kind){case 2:case 3:case -12:if(b>ev)b=ev;var -e=0,a=0;for(a=0;a+4<=c.data.length;a+=4){e=c.data[a+0]|c.data[a+1]<<8|c.data[a+2]<<16|c.data[a+3]<<24;d=cq(d,e)}e=0;switch(b&3){case +12:if(b>ex)b=ex;var +e=0,a=0;for(a=0;a+4<=c.data.length;a+=4){e=c.data[a+0]|c.data[a+1]<<8|c.data[a+2]<<16|c.data[a+3]<<24;d=cs(d,e)}e=0;switch(b&3){case 3:e=c.data[a+2]<<16;case 2:e|=c.data[a+1]<<8;case -1:e|=c.data[a+0];d=cq(d,e)}break;case +1:e|=c.data[a+0];d=cs(d,e)}break;case 4:case -5:if(b>d$)b=d$;var -e=0,a=0;for(a=0;a+2<=c.data.length;a+=2){e=c.data[a+0]|c.data[a+1]<<16;d=cq(d,e)}if((b&1)!=0)d=cq(d,c.data[a]);break;case +5:if(b>eb)b=eb;var +e=0,a=0;for(a=0;a+2<=c.data.length;a+=2){e=c.data[a+0]|c.data[a+1]<<16;d=cs(d,e)}if((b&1)!=0)d=cs(d,c.data[a]);break;case 6:if(b>64)b=64;for(var -a=0;a64)b=64;for(var -a=0;a32)b=32;b*=2;for(var -a=0;a64)b=64;for(var -a=0;a32)b=32;for(var -a=0;a0?b(c,f,e):b(f,c,e);if(e&&a!=a)return d;if(+a!=+a)return+a;if((a|0)!=0)return a|0}return d}function -kR(a){return a +kT(a){return a instanceof -eW}function -o3(a){return kR(a)}function -Fq(a){if(typeof -a==="number")return iy;else -if(kR(a))return j3;else -if(o3(a))return 1252;else +eY}function +o5(a){return kT(a)}function +Ft(a){if(typeof +a==="number")return iA;else +if(kT(a))return j5;else +if(o5(a))return 1252;else if(a instanceof -Array&&a[0]===a[0]>>>0&&a[0]<=mK){var -b=a[0]|0;return b==fa?0:b}else +Array&&a[0]===a[0]>>>0&&a[0]<=mM){var +b=a[0]|0;return b==fc?0:b}else if(a instanceof -String)return vm;else +String)return vp;else if(typeof -a=="string")return vm;else +a=="string")return vp;else if(a instanceof -Number)return iy;else -if(a&&a.caml_custom)return rr;else +Number)return iA;else +if(a&&a.caml_custom)return ru;else if(a&&a.compare)return 1256;else if(typeof a=="function")return 1247;else if(typeof a=="symbol")return 1251;return 1001}function -f9(a,b){if(ab.c?1:0}function -ss(a,b){return Fn(a,b)}function -oW(a,b,d){var +f$(a,b){if(ab.c?1:0}function +sv(a,b){return Fq(a,b)}function +oY(a,b,d){var e=[];for(;;){if(!(d&&a===b)){var -f=Fq(a);if(f==hg){a=a[1];continue}var -g=Fq(b);if(g==hg){b=b[1];continue}if(f!==g){if(f==iy){if(g==rr)return Fp(a,b,-1,d);return-1}if(g==iy){if(f==rr)return Fp(b,a,1,d);return 1}return fb)return 1;if(a!=b){if(!d)return NaN;if(a==a)return 1;if(b==b)return-1}break;case 1251:if(a!==b){if(!d)return NaN;return 1}break;case 1252:var -a=dT(a),b=dT(b);if(a!==b){if(ab)return 1}break;case +a=dW(a),b=dW(b);if(a!==b){if(ab)return 1}break;case 12520:var a=a.toString(),b=b.toString();if(a!==b){if(ab)return 1}break;case 246:case 254:default:if(a.length!=b.length)return a.length1)e.push(a,b,1);break}}if(e.length==0)return 0;var h=e.pop();b=e.pop();a=e.pop();if(h+10)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=W;a.t=2}else{a.c=ju(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)oX(a);for(b+=c;c0&&b===b)return b;a=a.replace(/_/g,W);b=+a;if(a.length>0&&b===b||/^[+-]?nan$/i.test(a))return b;var +f(a,b){return+(oY(a,b,false)==0)}function +btC(a,c,b,d){if(b>0)if(c==0&&(b>=a.l||a.t==2&&b>=a.c.length))if(d==0){a.c=Y;a.t=2}else{a.c=jw(b,String.fromCharCode(d));a.t=b==a.l?0:2}else{if(a.t!=4)oZ(a);for(b+=c;c0&&b===b)return b;a=a.replace(/_/g,Y);b=+a;if(a.length>0&&b===b||/^[+-]?nan$/i.test(a))return b;var c=/^ *([+-]?)0x([0-9a-f]+)\.?([0-9a-f]*)(p([+-]?[0-9]+))?/i.exec(a);if(c){var -d=c[3].replace(/0+$/,W),f=parseInt(c[1]+c[2]+d,16),e=(c[5]|0)-4*d.length;b=f*Math.pow(2,e);return b}if(/^\+?inf(inity)?$/i.test(a))return Infinity;if(/^-inf(inity)?$/i.test(a))return-Infinity;dk("float_of_string")}function -sp(d){d=dT(d);var -e=d.length;if(e>31)bL("format_int: format too long");var -a={justify:ff,signstyle:cF,filler:fh,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var +d=c[3].replace(/0+$/,Y),f=parseInt(c[1]+c[2]+d,16),e=(c[5]|0)-4*d.length;b=f*Math.pow(2,e);return b}if(/^\+?inf(inity)?$/i.test(a))return Infinity;if(/^-inf(inity)?$/i.test(a))return-Infinity;dm("float_of_string")}function +ss(d){d=dW(d);var +e=d.length;if(e>31)bO("format_int: format too long");var +a={justify:fh,signstyle:cH,filler:fj,alternate:false,base:0,signedconv:false,width:0,uppercase:false,sign:1,prec:-1,conv:"f"};for(var c=0;c=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function -sf(b,f){if(b.uppercase)f=f.toUpperCase();var -e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=cF))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var -c=W;if(b.justify==ff&&b.filler==fh)for(var -d=e;d=0&&b<=9){a.width=a.width*10+b;c++}c--;break;case".":a.prec=0;c++;while(b=d.charCodeAt(c)-48,b>=0&&b<=9){a.prec=a.prec*10+b;c++}c--;case"d":case"i":a.signedconv=true;case"u":a.base=10;break;case"x":a.base=16;break;case"X":a.base=16;a.uppercase=true;break;case"o":a.base=8;break;case"e":case"f":case"g":a.signedconv=true;a.conv=b;break;case"E":case"F":case"G":a.signedconv=true;a.uppercase=true;a.conv=b.toLowerCase();break}}return a}function +si(b,f){if(b.uppercase)f=f.toUpperCase();var +e=f.length;if(b.signedconv&&(b.sign<0||b.signstyle!=cH))e++;if(b.alternate){if(b.base==8)e+=1;if(b.base==16)e+=2}var +c=Y;if(b.justify==fh&&b.filler==fj)for(var +d=e;d20){c-=20;a/=Math.pow(10,c);a+=new -Array(c+1).join(n);if(b>0)a=a+en+new -Array(b+1).join(n);return a}else +c=parseInt(a.toString().split(fh)[1]);if(c>20){c-=20;a/=Math.pow(10,c);a+=new +Array(c+1).join(o);if(b>0)a=a+ep+new +Array(b+1).join(o);return a}else return a.toFixed(b)}}var -a,e=sp(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=qU;e.filler=fh}else -if(!isFinite(c)){a=E2;e.filler=fh}else +a,e=ss(i),d=e.prec<0?6:e.prec;if(c<0||c==0&&1/c==-Infinity){e.sign=-1;c=-c}if(isNaN(c)){a=qW;e.filler=fj}else +if(!isFinite(c)){a=E5;e.filler=fj}else switch(e.conv){case"e":var -a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==oL)a=a.slice(0,b-1)+n+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var -h=a.indexOf(oL),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var -b=h-1;while(a.charAt(b)==n)b--;if(a.charAt(b)==en)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==oL)a=a.slice(0,b-1)+n+a.slice(b-1);break}else{var +a=c.toExponential(d),b=a.length;if(a.charAt(b-3)==oN)a=a.slice(0,b-1)+o+a.slice(b-1);break;case"f":a=j(c,d);break;case"g":d=d?d:1;a=c.toExponential(d-1);var +h=a.indexOf(oN),g=+a.slice(h+1);if(g<-4||c>=1e21||c.toFixed(0).length>d){var +b=h-1;while(a.charAt(b)==o)b--;if(a.charAt(b)==ep)b--;a=a.slice(0,b+1)+a.slice(h);b=a.length;if(a.charAt(b-3)==oN)a=a.slice(0,b-1)+o+a.slice(b-1);break}else{var f=d;if(g<0){f-=g+1;a=c.toFixed(f)}else while(a=c.toFixed(f),a.length>d+1)f--;if(f){var -b=a.length-1;while(a.charAt(b)==n)b--;if(a.charAt(b)==en)b--;a=a.slice(0,b+1)}}break}return sf(e,a)}function -oY(e,c){if(dT(e)==r7)return a(W+c);var -b=sp(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else +b=a.length-1;while(a.charAt(b)==o)b--;if(a.charAt(b)==ep)b--;a=a.slice(0,b+1)}}break}return si(e,a)}function +o0(e,c){if(dW(e)==r_)return a(Y+c);var +b=ss(e);if(c<0)if(b.signedconv){b.sign=-1;c=-c}else c>>>=0;var -d=c.toString(b.base);if(b.prec>=0){b.filler=fh;var -f=b.prec-d.length;if(f>0)d=ju(f,n)+d}return sf(b,d)}var -FF=0;function -cW(){return FF++}function -btA(a){if(a==0||!isFinite(a))return[0,a,0];var +d=c.toString(b.base);if(b.prec>=0){b.filler=fj;var +f=b.prec-d.length;if(f>0)d=jw(f,o)+d}return si(b,d)}var +FI=0;function +cY(){return FI++}function +btE(a){if(a==0||!isFinite(a))return[0,a,0];var c=a<0;if(c)a=-a;var -b=Math.max(-d1,FM(a)+1);a*=Math.pow(2,-b);while(a=1){a*=zi;b++}if(c)a=-a;return[0,a,b]}function -eb(a){return a.toUtf16()}function -kW(){return typeof -aH.process!=="undefined"&&typeof -aH.process.versions!=="undefined"&&typeof -aH.process.versions.node!=="undefined"}function -bun(){function -a(a){if(a.charAt(0)===et)return[W,a.substring(1)];return}function +b=Math.max(-d4,FP(a)+1);a*=Math.pow(2,-b);while(a=1){a*=zl;b++}if(c)a=-a;return[0,a,b]}function +ed(a){return a.toUtf16()}function +kY(){return typeof +aJ.process!=="undefined"&&typeof +aJ.process.versions!=="undefined"&&typeof +aJ.process.versions.node!=="undefined"}function +bur(){function +a(a){if(a.charAt(0)===ev)return[Y,a.substring(1)];return}function b(c){var -g=/^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/,a=g.exec(c),b=a[1]||W,e=Boolean(b&&b.charAt(1)!==":");if(Boolean(a[2]||e)){var -d=a[1]||W,f=a[2]||W;return[d,c.substring(d.length+f.length)]}return}return kW()&&aH.process&&aH.process.platform?aH.process.platform==="win32"?b:a:a}var -sy=bun();function -FK(a){return a.slice(-1)!==et?a+et:a}if(kW()&&aH.process&&aH.process.cwd)var -kO=aH.process.cwd().replace(/\\/g,et);else +g=/^([a-zA-Z]:|[\\/]{2}[^\\/]+[\\/]+[^\\/]+)?([\\/])?([\s\S]*?)$/,a=g.exec(c),b=a[1]||Y,e=Boolean(b&&b.charAt(1)!==":");if(Boolean(a[2]||e)){var +d=a[1]||Y,f=a[2]||Y;return[d,c.substring(d.length+f.length)]}return}return kY()&&aJ.process&&aJ.process.platform?aJ.process.platform==="win32"?b:a:a}var +sB=bur();function +FN(a){return a.slice(-1)!==ev?a+ev:a}if(kY()&&aJ.process&&aJ.process.cwd)var +kQ=aJ.process.cwd().replace(/\\/g,ev);else var -kO="/static";kO=FK(kO);function -btW(a){a=eb(a);if(!sy(a))a=kO+a;var -e=sy(a),d=e[1].split(et),b=[];for(var +kQ="/static";kQ=FN(kQ);function +bt0(a){a=ed(a);if(!sB(a))a=kQ+a;var +e=sB(a),d=e[1].split(ev),b=[];for(var c=0;c1)b.pop();break;case".":break;default:b.push(d[c]);break}b.unshift(e[0]);b.orig=a;return b}function -bue(e){for(var -f=W,b=f,a,h,c=0,g=e.length;cro){b.substr(0,1);f+=b;b=W;f+=e.slice(c,d)}else -b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(dD|a&hm)}else -if(a<0xd800||a>=Ds)b+=String.fromCharCode(vg|a>>12,dD|a>>6&hm,dD|a&hm);else -if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))Ds)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(Cp|a>>18,dD|a>>12&hm,dD|a>>6&hm,dD|a&hm)}if(b.length>kc){b.substr(0,1);f+=b;b=W}}return f+b}function -btv(a){var -b=9;if(!FN(a))b=8,a=bue(a);return new -eW(b,a,a.length)}function -aO(a){return btv(a)}var -buE=["E2BIG","EACCES","EAGAIN","EBADF","EBUSY","ECHILD","EDEADLK","EDOM",u4,"EFAULT","EFBIG","EINTR","EINVAL","EIO","EISDIR","EMFILE","EMLINK","ENAMETOOLONG","ENFILE","ENODEV",r9,"ENOEXEC","ENOLCK","ENOMEM","ENOSPC","ENOSYS",rW,Ew,"ENOTTY","ENXIO","EPERM","EPIPE","ERANGE","EROFS","ESPIPE","ESRCH","EXDEV","EWOULDBLOCK","EINPROGRESS","EALREADY","ENOTSOCK","EDESTADDRREQ","EMSGSIZE","EPROTOTYPE","ENOPROTOOPT","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EOPNOTSUPP","EPFNOSUPPORT","EAFNOSUPPORT","EADDRINUSE","EADDRNOTAVAIL","ENETDOWN","ENETUNREACH","ENETRESET","ECONNABORTED","ECONNRESET","ENOBUFS","EISCONN","ENOTCONN","ESHUTDOWN","ETOOMANYREFS","ETIMEDOUT","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ELOOP","EOVERFLOW"];function -gS(d,f,e,a){var -b=buE.indexOf(d);if(b<0){if(a==null)a=-9999;b=[0,a]}var -c=[b,aO(f||W),aO(e||W)];return c}var -FD={};function -e0(a){return FD[a]}function -gR(b,a){throw[0,b].concat(a)}function -btu(a){return new -eW(4,a,a.length)}function -bq(a){sq(bG.Sys_error,a)}function -bt7(a){bq(a+nl)}function -btt(b,a){if(a>>>0>=b.l)Fm();return kN(b,a)}function -dl(a){return a.l}function -Fe(){}function -co(a){this.data=a}co.prototype=new -Fe();co.prototype.truncate=function(a){var -b=this.data;this.data=bT(a|0);f7(b,0,this.data,0,a)};co.prototype.length=function(){return dl(this.data)};co.prototype.write=function(b,d,g,a){var +bui(e){for(var +f=Y,b=f,a,h,c=0,g=e.length;crr){b.substr(0,1);f+=b;b=Y;f+=e.slice(c,d)}else +b+=e.slice(c,d);if(d==g)break;c=d}if(a>6);b+=String.fromCharCode(dF|a&ho)}else +if(a<0xd800||a>=Dv)b+=String.fromCharCode(vj|a>>12,dF|a>>6&ho,dF|a&ho);else +if(a>=0xdbff||c+1==g||(h=e.charCodeAt(c+1))Dv)b+="\xef\xbf\xbd";else{c++;a=(a<<10)+h-0x35fdc00;b+=String.fromCharCode(Cs|a>>18,dF|a>>12&ho,dF|a>>6&ho,dF|a&ho)}if(b.length>ke){b.substr(0,1);f+=b;b=Y}}return f+b}function +btz(a){var +b=9;if(!FQ(a))b=8,a=bui(a);return new +eY(b,a,a.length)}function +aQ(a){return btz(a)}var +buI=["E2BIG","EACCES","EAGAIN","EBADF","EBUSY","ECHILD","EDEADLK","EDOM",u7,"EFAULT","EFBIG","EINTR","EINVAL","EIO","EISDIR","EMFILE","EMLINK","ENAMETOOLONG","ENFILE","ENODEV",sa,"ENOEXEC","ENOLCK","ENOMEM","ENOSPC","ENOSYS",rZ,Ez,"ENOTTY","ENXIO","EPERM","EPIPE","ERANGE","EROFS","ESPIPE","ESRCH","EXDEV","EWOULDBLOCK","EINPROGRESS","EALREADY","ENOTSOCK","EDESTADDRREQ","EMSGSIZE","EPROTOTYPE","ENOPROTOOPT","EPROTONOSUPPORT","ESOCKTNOSUPPORT","EOPNOTSUPP","EPFNOSUPPORT","EAFNOSUPPORT","EADDRINUSE","EADDRNOTAVAIL","ENETDOWN","ENETUNREACH","ENETRESET","ECONNABORTED","ECONNRESET","ENOBUFS","EISCONN","ENOTCONN","ESHUTDOWN","ETOOMANYREFS","ETIMEDOUT","ECONNREFUSED","EHOSTDOWN","EHOSTUNREACH","ELOOP","EOVERFLOW"];function +gU(d,f,e,a){var +b=buI.indexOf(d);if(b<0){if(a==null)a=-9999;b=[0,a]}var +c=[b,aQ(f||Y),aQ(e||Y)];return c}var +FG={};function +e2(a){return FG[a]}function +gT(b,a){throw[0,b].concat(a)}function +bty(a){return new +eY(4,a,a.length)}function +bs(a){st(bI.Sys_error,a)}function +bt$(a){bs(a+nn)}function +btx(b,a){if(a>>>0>=b.l)Fp();return kP(b,a)}function +dn(a){return a.l}function +Fh(){}function +cq(a){this.data=a}cq.prototype=new +Fh();cq.prototype.truncate=function(a){var +b=this.data;this.data=bV(a|0);f9(b,0,this.data,0,a)};cq.prototype.length=function(){return dn(this.data)};cq.prototype.write=function(b,d,g,a){var c=this.length();if(b+a>=c){var -e=bT(b+a),f=this.data;this.data=e;f7(f,0,this.data,0,c)}ea(d,g,this.data,b,a);return 0};co.prototype.read=function(c,a,d,b){var -e=this.length();f7(this.data,c,a,d,b);return 0};co.prototype.read_one=function(a){return btt(this.data,a)};co.prototype.close=function(){};co.prototype.constructor=co;function -cV(b,a){this.content={};this.root=b;this.lookupFun=a}cV.prototype.nm=function(a){return this.root+a};cV.prototype.create_dir_if_needed=function(d){var -c=d.split(et),b=W;for(var -a=0;a>1|1;if(h=0)}function -si(d,b){var -e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b.charCodeAt(a)|b.charCodeAt(a+1)<<8|b.charCodeAt(a+2)<<16|b.charCodeAt(a+3)<<24;d=cq(d,c)}c=0;switch(e&3){case +a=c}o7[d]=a+1;return h==b[a+1]?b[a]:0}function +Fz(a,b){return+(oY(a,b,false)>=0)}function +sl(d,b){var +e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b.charCodeAt(a)|b.charCodeAt(a+1)<<8|b.charCodeAt(a+2)<<16|b.charCodeAt(a+3)<<24;d=cs(d,c)}c=0;switch(e&3){case 3:c=b.charCodeAt(a+2)<<16;case 2:c|=b.charCodeAt(a+1)<<8;case -1:c|=b.charCodeAt(a);d=cq(d,c)}d^=e;return d}function -btH(a,b){return si(a,dT(b))}function -btE(d,b){var -e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b[a]|b[a+1]<<8|b[a+2]<<16|b[a+3]<<24;d=cq(d,c)}c=0;switch(e&3){case +1:c|=b.charCodeAt(a);d=cs(d,c)}d^=e;return d}function +btL(a,b){return sl(a,dW(b))}function +btI(d,b){var +e=b.length,a,c;for(a=0;a+4<=e;a+=4){c=b[a]|b[a+1]<<8|b[a+2]<<16|b[a+3]<<24;d=cs(d,c)}c=0;switch(e&3){case 3:c=b[a+2]<<16;case 2:c|=b[a+1]<<8;case -1:c|=b[a];d=cq(d,c)}d^=e;return d}function -FA(a){switch(a.t&6){default:gO(a);case +1:c|=b[a];d=cs(d,c)}d^=e;return d}function +FD(a){switch(a.t&6){default:gQ(a);case 0:return a.c;case 4:return a.c}}function -btD(b,c){var -a=FA(c);return typeof -a==="string"?si(b,a):btE(b,a)}function -btF(a){a^=a>>>16;a=f$(a,0x85ebca6b|0);a^=a>>>13;a=f$(a,0xc2b2ae35|0);a^=a>>>16;return a}function -btC(j,l,n,m){var -f,g,h,d,c,b,a,e,i;d=l;if(d<0||d>ev)d=ev;c=j;b=n;f=[m];g=0;h=1;while(g0){a=f[g++];if(a&&a.caml_custom){if(jr[a.caml_custom]&&jr[a.caml_custom].hash){var -k=jr[a.caml_custom].hash(a);b=cq(b,k);c--}}else +btH(b,c){var +a=FD(c);return typeof +a==="string"?sl(b,a):btI(b,a)}function +btJ(a){a^=a>>>16;a=gb(a,0x85ebca6b|0);a^=a>>>13;a=gb(a,0xc2b2ae35|0);a^=a>>>16;return a}function +btG(j,l,n,m){var +f,g,h,d,c,b,a,e,i;d=l;if(d<0||d>ex)d=ex;c=j;b=n;f=[m];g=0;h=1;while(g0){a=f[g++];if(a&&a.caml_custom){if(jt[a.caml_custom]&&jt[a.caml_custom].hash){var +k=jt[a.caml_custom].hash(a);b=cs(b,k);c--}}else if(a instanceof Array&&a[0]===(a[0]|0))switch(a[0]){case -248:b=cq(b,a[2]);c--;break;case +248:b=cs(b,a[2]);c--;break;case 250:f[--g]=a[1];break;default:var -o=a.length-1<<10|a[0];b=cq(b,o);for(e=1,i=a.length;e=d)break;f[h++]=a[e]}break}else -if(kR(a)){b=btD(b,a);c--}else -if(o3(a)){b=btH(b,a);c--}else +o=a.length-1<<10|a[0];b=cs(b,o);for(e=1,i=a.length;e=d)break;f[h++]=a[e]}break}else +if(kT(a)){b=btH(b,a);c--}else +if(o5(a)){b=btL(b,a);c--}else if(typeof -a==="string"){b=si(b,a);c--}else -if(a===(a|0)){b=cq(b,a+a+1);c--}else -if(a===+a){b=sh(b,a);c--}}b=btF(b);return b&0x3FFFFFFF}function -btI(a,c,k){if(!isFinite(a)){if(isNaN(a))return aO(qU);return aO(a>0?EU:"-infinity")}var +a==="string"){b=sl(b,a);c--}else +if(a===(a|0)){b=cs(b,a+a+1);c--}else +if(a===+a){b=sk(b,a);c--}}b=btJ(b);return b&0x3FFFFFFF}function +btM(a,c,k){if(!isFinite(a)){if(isNaN(a))return aQ(qW);return aQ(a>0?EX:"-infinity")}var i=a==0&&1/a==-Infinity?1:a>=0?0:1;if(i)a=-a;var d=0;if(a==0);else if(a<1)while(a<1&&d>-1022){a*=2;d--}else while(a>=2){a/=2;d++}var -j=d<0?W:ff,e=W;if(i)e=cF;else +j=d<0?Y:fh,e=Y;if(i)e=cH;else switch(k){case -43:e=ff;break;case -32:e=fh;break;default:break}if(c>=0&&c<13){var +43:e=fh;break;case +32:e=fj;break;default:break}if(c>=0&&c<13){var g=Math.pow(2,c*4);a=Math.round(a*g)/g}var b=a.toString(16);if(c>=0){var -h=b.indexOf(en);if(h<0)b+=en+ju(c,n);else{var -f=h+1+c;if(b.length>24&fd,a>>31&eo)}function -btT(a){return a.toInt()}function -btN(a){return+a.isNeg()}function -btQ(a){return a.neg()}function -btL(g,c){var -a=sp(g);if(a.signedconv&&btN(c)){a.sign=-1;c=btQ(c)}var -b=W,h=btR(a.base),f="0123456789abcdef";do{var -e=c.udivmod(h);c=e.quotient;b=f.charAt(btT(e.modulus))+b}while(!btO(c));if(a.prec>=0){a.filler=fh;var -d=a.prec-b.length;if(d>0)b=ju(d,n)+b}return sf(a,b)}function -btS(a,b){return a.or(b)}function -o1(a){return a.toFloat()}function -bt6(c){var -a=0,e=aE(c),b=10,d=1;if(e>0)switch(dV(c,a)){case +h=b.indexOf(ep);if(h<0)b+=ep+jw(c,o);else{var +f=h+1+c;if(b.length>24&ff,a>>31&eq)}function +btX(a){return a.toInt()}function +btR(a){return+a.isNeg()}function +btU(a){return a.neg()}function +btP(g,c){var +a=ss(g);if(a.signedconv&&btR(c)){a.sign=-1;c=btU(c)}var +b=Y,h=btV(a.base),f="0123456789abcdef";do{var +e=c.udivmod(h);c=e.quotient;b=f.charAt(btX(e.modulus))+b}while(!btS(c));if(a.prec>=0){a.filler=fj;var +d=a.prec-b.length;if(d>0)b=jw(d,o)+b}return si(a,b)}function +btW(a,b){return a.or(b)}function +o3(a){return a.toFloat()}function +bt_(c){var +a=0,e=aG(c),b=10,d=1;if(e>0)switch(dY(c,a)){case 45:a++;d=-1;break;case -43:a++;d=1;break}if(a+10)switch(dV(c,a)){case 66:b=2;a+=2;break;case 117:case 85:a+=2;break}return[a,d,b]}function -FG(a){if(a>=48&&a<=57)return a-48;if(a>=65&&a<=90)return a-55;if(a>=97&&a<=gM)return a-87;return-1}function -o2(f){var -h=bt6(f),c=h[0],i=h[1],d=h[2],g=aE(f),j=-1>>>0,e=c=d)dk(mH);var -a=b;for(c++;c=d)break;a=d*a+b;if(a>j)dk(mH)}if(c!=g)dk(mH);a=i*a;if(d==10&&(a|0)!=a)dk(mH);return a|0}function -f_(a){return a.slice(1)}function -gP(c){var +FJ(a){if(a>=48&&a<=57)return a-48;if(a>=65&&a<=90)return a-55;if(a>=97&&a<=gO)return a-87;return-1}function +o4(f){var +h=bt_(f),c=h[0],i=h[1],d=h[2],g=aG(f),j=-1>>>0,e=c=d)dm(mJ);var +a=b;for(c++;c=d)break;a=d*a+b;if(a>j)dm(mJ)}if(c!=g)dm(mJ);a=i*a;if(d==10&&(a|0)!=a)dm(mJ);return a|0}function +ga(a){return a.slice(1)}function +gR(c){var d=c.length,b=new Array(d+1);b[0]=0;for(var a=0;a0){var c=new Array(b);for(var -a=0;ad1){a-=d1;b*=Math.pow(2,d1);if(a>d1){a-=d1;b*=Math.pow(2,d1)}}if(a<-d1){a+=d1;b*=Math.pow(2,-d1)}b*=Math.pow(2,a);return b}function -Fz(a,b){return+(oW(a,b,false)<0)}function -kS(b){b=dT(b);var +a=0;ad4){a-=d4;b*=Math.pow(2,d4);if(a>d4){a-=d4;b*=Math.pow(2,d4)}}if(a<-d4){a+=d4;b*=Math.pow(2,-d4)}b*=Math.pow(2,a);return b}function +FC(a,b){return+(oY(a,b,false)<0)}function +kU(b){b=dW(b);var d=b.length/2,c=new Array(d);for(var a=0;a>16;return c}function -sn(b,t,a){var -n=2,o=3,r=5,d=6,h=7,g=8,j=9,m=1,l=2,q=3,s=4,p=5;if(!b.lex_default){b.lex_base=kS(b[m]);b.lex_backtrk=kS(b[l]);b.lex_check=kS(b[p]);b.lex_trans=kS(b[s]);b.lex_default=kS(b[q])}var -e,c=t,k=Ff(a[n]);if(c>=0){a[h]=a[r]=a[d];a[g]=-1}else +sq(b,t,a){var +n=2,o=3,r=5,d=6,h=7,g=8,j=9,m=1,l=2,q=3,s=4,p=5;if(!b.lex_default){b.lex_base=kU(b[m]);b.lex_backtrk=kU(b[l]);b.lex_check=kU(b[p]);b.lex_trans=kU(b[s]);b.lex_default=kU(b[q])}var +e,c=t,k=Fi(a[n]);if(c>=0){a[h]=a[r]=a[d];a[g]=-1}else c=-c-1;for(;;){var f=b.lex_base[c];if(f<0)return-f-1;var i=b.lex_backtrk[c];if(i>=0){a[h]=a[d];a[g]=i}if(a[d]>=a[o])if(a[j]==0)return-c-1;else -e=ev;else{e=k[a[d]];a[d]++}if(b.lex_check[f+e]==c)c=b.lex_trans[f+e];else -c=b.lex_default[c];if(c<0){a[d]=a[h];if(a[g]==-1)dk("lexing: empty token");else +e=ex;else{e=k[a[d]];a[d]++}if(b.lex_check[f+e]==c)c=b.lex_trans[f+e];else +c=b.lex_default[c];if(c<0){a[d]=a[h];if(a[g]==-1)dm("lexing: empty token");else return a[g]}else -if(e==ev)a[j]=0}}function -eY(a,d){if(a<0)kM();var +if(e==ex)a[j]=0}}function +e0(a,d){if(a<0)kO();var a=a+1|0,b=new Array(a);b[0]=0;for(var c=1;c>>32-b,c)}function g(c,b,d,e,h,f,g){return a(b&d|~b&e,c,b,h,f,g)}function @@ -749,41 +749,41 @@ h(d,b,e,c,h,f,g){return a(b&c|e&~c,d,b,h,f,g)}function i(c,b,d,e,h,f,g){return a(b^d^e,c,b,h,f,g)}function j(c,b,d,e,h,f,g){return a(d^(b|~e),c,b,h,f,g)}function k(f,n){var -e=n;f[e>>2]|=dD<<8*(e&3);for(e=(e&~0x3)+8;(e&0x3F)<60;e+=4)f[(e>>2)-1]=0;f[(e>>2)-1]=n<<3;f[e>>2]=n>>29&0x1FFFFFFF;var +e=n;f[e>>2]|=dF<<8*(e&3);for(e=(e&~0x3)+8;(e&0x3F)<60;e+=4)f[(e>>2)-1]=0;f[(e>>2)-1]=n<<3;f[e>>2]=n>>29&0x1FFFFFFF;var k=[0x67452301,0xEFCDAB89,0x98BADCFE,0x10325476];for(e=0;e>8*m&0xFF;return o}return function(i,g,f){var -e=[],h=FA(i);if(typeof +e=[],h=FD(i);if(typeof h==="string"){var d=h;for(var a=0;a>2]=d.charCodeAt(b)|d.charCodeAt(b+1)<<8|d.charCodeAt(b+2)<<16|d.charCodeAt(b+3)<<24}for(;a>2]|=d.charCodeAt(a+g)<<8*(a&3)}else{var c=h;for(var a=0;a>2]=c[b]|c[b+1]<<8|c[b+2]<<16|c[b+3]<<24}for(;a>2]|=c[a+g]<<8*(a&3)}return bub(k(e,f))}}();function -btY(c,b,a){return btX(fm(c),b,a)}function -btZ(){return 0}var -eZ=new +b=a+g;e[a>>2]=c[b]|c[b+1]<<8|c[b+2]<<16|c[b+3]<<24}for(;a>2]|=c[a+g]<<8*(a&3)}return buf(k(e,f))}}();function +bt2(c,b,a){return bt1(fo(c),b,a)}function +bt3(){return 0}var +e1=new Array();function -gQ(c){var -a=eZ[c];if(!a.opened)bq("Cannot flush a closed channel");if(!a.buffer||a.buffer==W)return 0;if(a.fd&&bG.fds[a.fd]&&bG.fds[a.fd].output){var -b=bG.fds[a.fd].output;switch(b.length){case -2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=W;return 0}function -FI(e,f){var -b=eZ[e],d=a(f),c=aE(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function -bui(a){var -a=su(a),b=aH;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +gS(c){var +a=e1[c];if(!a.opened)bs("Cannot flush a closed channel");if(!a.buffer||a.buffer==Y)return 0;if(a.fd&&bI.fds[a.fd]&&bI.fds[a.fd].output){var +b=bI.fds[a.fd].output;switch(b.length){case +2:b(c,a.buffer);break;default:b(a.buffer)}}a.buffer=Y;return 0}function +FL(e,f){var +b=e1[e],d=a(f),c=aG(d);b.file.write(b.offset,d,0,c);b.offset+=c;return 0}function +bum(a){var +a=sx(a),b=aJ;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stderr.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.error&&c.error(a)}}function -buj(a){var -a=su(a),b=aH;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var +bun(a){var +a=sx(a),b=aJ;if(b.process&&b.process.stdout&&b.process.stdout.write)b.process.stdout.write(a);else{if(a.charCodeAt(a.length-1)==10)a=a.substr(0,a.length-1);var c=b.console;c&&c.log&&c.log(a)}}function -o9(c,e,d,a){if(bG.fds===undefined)bG.fds=new +o$(c,e,d,a){if(bI.fds===undefined)bI.fds=new Array();a=a?a:{};var -b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;bG.fds[c]=b;if(!bG.fd_last_idx||c>bG.fd_last_idx)bG.fd_last_idx=c;return c}function -buF(c,b,g){var +b={};b.file=d;b.offset=a.append?d.length():0;b.flags=a;b.output=e;bI.fds[c]=b;if(!bI.fd_last_idx||c>bI.fd_last_idx)bI.fd_last_idx=c;return c}function +buJ(c,b,g){var a={};while(b){switch(b[1]){case 0:a.rdonly=1;break;case 1:a.wronly=1;break;case @@ -793,92 +793,92 @@ a={};while(b){switch(b[1]){case 5:a.excl=1;break;case 6:a.binary=1;break;case 7:a.text=1;break;case -8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)bq(dT(c)+vz);if(a.text&&a.binary)bq(dT(c)+BQ);var -d=FT(c),e=d.device.open(d.rest,a),f=bG.fd_last_idx?bG.fd_last_idx:0;return o9(f+1,FI,e,a)}o9(0,FI,new -co(bT(0)));o9(1,buj,new -co(bT(0)));o9(2,bui,new -co(bT(0)));function -bt0(a){var -c=bG.fds[a];if(c.flags.wronly)bq(xc+a+" is writeonly");var -d=null;if(a==0&&kW()){var -e=require("fs");d=function(){return aO(e.readFileSync(0,uC))}}var -b={file:c.file,offset:c.offset,fd:a,opened:true,out:false,refill:d};eZ[b.fd]=b;return b.fd}function -FB(c){var -b=bG.fds[c];if(b.flags.rdonly)bq(xc+c+" is readonly");var -a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:W};eZ[a.fd]=a;return a.fd}function -bt1(){var +8:a.nonblock=1;break}b=b[2]}if(a.rdonly&&a.wronly)bs(dW(c)+vC);if(a.text&&a.binary)bs(dW(c)+BT);var +d=FW(c),e=d.device.open(d.rest,a),f=bI.fd_last_idx?bI.fd_last_idx:0;return o$(f+1,FL,e,a)}o$(0,FL,new +cq(bV(0)));o$(1,bun,new +cq(bV(0)));o$(2,bum,new +cq(bV(0)));function +bt4(a){var +c=bI.fds[a];if(c.flags.wronly)bs(xg+a+" is writeonly");var +d=null;if(a==0&&kY()){var +e=require("fs");d=function(){return aQ(e.readFileSync(0,uF))}}var +b={file:c.file,offset:c.offset,fd:a,opened:true,out:false,refill:d};e1[b.fd]=b;return b.fd}function +FE(c){var +b=bI.fds[c];if(b.flags.rdonly)bs(xg+c+" is readonly");var +a={file:b.file,offset:b.offset,fd:c,opened:true,out:true,buffer:Y};e1[a.fd]=a;return a.fd}function +bt5(){var b=0;for(var -a=0;a>>0)return a[0];else -if(kR(a))return j3;else -if(o3(a))return j3;else +if(kT(a))return j5;else +if(o5(a))return j5;else if(a instanceof Function||typeof a=="function")return 247;else -if(a&&a.caml_custom)return mK;else -return iy}function -dU(b,c,a){if(a&&aH.toplevelReloc)b=aH.toplevelReloc(a);bG[b+1]=c;if(a)bG[a]=c}function -sr(a,b){FD[dT(a)]=b;return 0}function -bt_(a){a[2]=FF++;return a}function -bts(a,b){if(a===b)return 1;a.t&6&&gO(a);b.t&6&&gO(b);return a.c==b.c?1:0}function -o7(a,b){return bts(a,b)}function -bua(){bL(rI)}function -bu(b,a){if(a>>>0>=aE(b))bua();return dV(b,a)}function -L(a,b){return 1-o7(a,b)}function -buc(){return 0x7FFFFFFF/4|0}function -bt8(){kV(bG.Not_found)}function -FJ(c){var -a=aH,b=eb(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return aO(a.process.env[b]);if(aH.jsoo_static_env&&aH.jsoo_static_env[b])return aO(aH.jsoo_static_env[b]);bt8()}function -bud(){if(aH.crypto)if(typeof -aH.crypto.getRandomValues==="function"){var -a=new(aH.Uint32Array)(1);aH.crypto.getRandomValues(a);return[0,a[0]]}else -if(aH.crypto.randomBytes==="function"){var -b=aH.crypto.randomBytes(4),a=new(aH.Uint32Array)(b);return[0,a[0]]}var +if(a&&a.caml_custom)return mM;else +return iA}function +dX(b,c,a){if(a&&aJ.toplevelReloc)b=aJ.toplevelReloc(a);bI[b+1]=c;if(a)bI[a]=c}function +su(a,b){FG[dW(a)]=b;return 0}function +buc(a){a[2]=FI++;return a}function +btw(a,b){if(a===b)return 1;a.t&6&&gQ(a);b.t&6&&gQ(b);return a.c==b.c?1:0}function +o9(a,b){return btw(a,b)}function +bue(){bO(rL)}function +bw(b,a){if(a>>>0>=aG(b))bue();return dY(b,a)}function +M(a,b){return 1-o9(a,b)}function +bug(){return 0x7FFFFFFF/4|0}function +bua(){kX(bI.Not_found)}function +FM(c){var +a=aJ,b=ed(c);if(a.process&&a.process.env&&a.process.env[b]!=undefined)return aQ(a.process.env[b]);if(aJ.jsoo_static_env&&aJ.jsoo_static_env[b])return aQ(aJ.jsoo_static_env[b]);bua()}function +buh(){if(aJ.crypto)if(typeof +aJ.crypto.getRandomValues==="function"){var +a=new(aJ.Uint32Array)(1);aJ.crypto.getRandomValues(a);return[0,a[0]]}else +if(aJ.crypto.randomBytes==="function"){var +b=aJ.crypto.randomBytes(4),a=new(aJ.Uint32Array)(b);return[0,a[0]]}var c=new -Date().getTime(),d=c^CA*Math.random();return[0,d]}function -st(a){var +Date().getTime(),d=c^CD*Math.random();return[0,d]}function +sw(a){var b=1;while(a&&a.joo_tramp){a=a.joo_tramp.apply(null,a.joo_args);b++}return a}function -cr(b,a){return{joo_tramp:b,joo_args:a}}function -FH(a){return a}function -o(a){if(a +ct(b,a){return{joo_tramp:b,joo_args:a}}function +FK(a){return a}function +p(a){if(a instanceof -Array)return a;if(aH.RangeError&&a +Array)return a;if(aJ.RangeError&&a instanceof -aH.RangeError&&a.message&&a.message.match(/maximum call stack/i))return FH(bG.Stack_overflow);if(aH.InternalError&&a +aJ.RangeError&&a.message&&a.message.match(/maximum call stack/i))return FK(bI.Stack_overflow);if(aJ.InternalError&&a instanceof -aH.InternalError&&a.message&&a.message.match(/too much recursion/i))return FH(bG.Stack_overflow);if(a +aJ.InternalError&&a.message&&a.message.match(/too much recursion/i))return FK(bI.Stack_overflow);if(a instanceof -aH.Error&&e0(rq))return[0,e0(rq),a];return[0,bG.Failure,aO(String(a))]}var -ap=function(z){"use strict";var -f=gD,aa=7,s=9007199254740992,H=q(s),M="0123456789abcdefghijklmnopqrstuvwxyz",g=buh.BigInt,F=typeof +aJ.Error&&e2(rt))return[0,e2(rt),a];return[0,bI.Failure,aQ(String(a))]}var +ar=function(z){"use strict";var +f=gF,aa=7,s=9007199254740992,H=q(s),M="0123456789abcdefghijklmnopqrstuvwxyz",g=bul.BigInt,F=typeof g==="function";function d(a,b,c,f){if(typeof a==="undefined")return d[0];if(typeof b!=="undefined")return+b===10&&!c?e(a):ae(a,b,c,f);return e(a)}function -a(b,a){this.value=b;this.sign=a;this.isSmall=false;this.caml_custom=mB}a.prototype=Object.create(d.prototype);function -b(a){this.value=a;this.sign=a<0;this.isSmall=true;this.caml_custom=mB}b.prototype=Object.create(d.prototype);function -c(a){this.value=a;this.caml_custom=mB}c.prototype=Object.create(d.prototype);function +a(b,a){this.value=b;this.sign=a;this.isSmall=false;this.caml_custom=mD}a.prototype=Object.create(d.prototype);function +b(a){this.value=a;this.sign=a<0;this.isSmall=true;this.caml_custom=mD}b.prototype=Object.create(d.prototype);function +c(a){this.value=a;this.caml_custom=mD}c.prototype=Object.create(d.prototype);function l(a){return-s=0)c=x(e,f);else{c=x(f,e);d=!d}c=o(c);if(typeof +c;if(p(e,f)>=0)c=x(e,f);else{c=x(f,e);d=!d}c=n(c);if(typeof c==="number"){if(d)c=-c;return new b(c)}return new a(c,d)}function E(h,l,k){var j=h.length,c=new -Array(j),i=-l,g=f,e,d;for(e=0;e0){e[b++]=a%c;a=Math.floor(a/c)}return e}function -X(c,b){var +W(c,b){var a=[];while(b-->0)a.push(0);return a.concat(c)}function C(b,c){var a=Math.max(b.length,c.length);if(a<=30)return L(b,c);a=Math.ceil(a/2);var -f=b.slice(a),d=b.slice(0,a),i=c.slice(a),h=c.slice(0,a),e=C(d,h),g=C(f,i),k=C(t(d,f),t(h,i)),j=t(t(e,X(x(x(k,e),g),a)),X(g,2*a));m(j);return j}function -aj(a,b){return-(wz*a)-wz*b+0.000015*a*b>0}a.prototype.multiply=function(j){var +f=b.slice(a),d=b.slice(0,a),i=c.slice(a),h=c.slice(0,a),e=C(d,h),g=C(f,i),k=C(t(d,f),t(h,i)),j=t(t(e,W(x(x(k,e),g),a)),W(g,2*a));m(j);return j}function +aj(a,b){return-(wC*a)-wC*b+0.000015*a*b>0}a.prototype.multiply=function(j){var h=e(j),c=this.value,b=h.value,i=this.sign!==h.sign,g;if(h.isSmall){if(b===0)return d[0];if(b===1)return this;if(b===-1)return this.negate();g=Math.abs(b);if(g=0;d--){j=g-1;if(b[d+h]!==l)j=Math.floor((b[d+h]*g+b[d+h-1])/l);c=0;e=0;m=i.length;for(a=0;a=0;d--){j=g-1;if(b[d+h]!==l)j=Math.floor((b[d+h]*g+b[d+h-1])/l);c=0;e=0;m=i.length;for(a=0;ah)d=(d+1)*i;c=Math.ceil(d/n);do{j=u(b,c);if(p(j,a)<=0)break;c--}while(c);e.push(c);a=x(a,j)}e.reverse();return[o(e),o(a)]}function +l=k.length,h=b.length,e=[],a=[],i=f,c,g,d,o,j;while(l){a.unshift(k[--l]);m(a);if(p(a,b)<0){e.push(0);continue}g=a.length;d=a[g-1]*i+a[g-2];o=b[h-1]*i+b[h-2];if(g>h)d=(d+1)*i;c=Math.ceil(d/o);do{j=u(b,c);if(p(j,a)<=0)break;c--}while(c);e.push(c);a=x(a,j)}e.reverse();return[n(e),n(a)]}function O(i,e){var g=i.length,h=B(g),j=f,a,d,b,c;b=0;for(a=g-1;a>=0;--a){c=b*j+i[a];d=r(c/e);b=c-d*e;h[a]=d|0}return[h,b|0]}function i(h,w){var @@ -976,13 +976,13 @@ l=h.value,i=j.value,g;if(i===0)throw new Error("Cannot divide by zero");if(h.isSmall){if(j.isSmall)return[new b(r(l/i)),new b(l%i)];return[d[0],h]}if(j.isSmall){if(i===1)return[h,d[0]];if(i==-1)return[h.negate(),d[0]];var -s=Math.abs(i);if(s=w){b=b.multiply(j);a-=w-1}return b.multiply(h[a])};c.prototype.shiftLeft=b.prototype.shiftLeft=a.prototype.shiftLeft;a.prototype.shiftRight=function(d){var -a,b=e(d).toJSNumber();if(!Y(b))throw new -Error(String(b)+vN);if(b<0)return this.shiftLeft(-b);var -c=this;while(b>=w){if(c.isZero()||c.isNegative()&&c.isUnit())return c;a=i(c,j);c=a[1].isNegative()?a[0].prev():a[0];b-=w-1}a=i(c,h[b]);return a[1].isNegative()?a[0].prev():a[0]};c.prototype.shiftRight=b.prototype.shiftRight=a.prototype.shiftRight;function +v=h.length,j=h[v-1];function +X(a){return Math.abs(a)<=f}a.prototype.shiftLeft=function(c){var +a=e(c).toJSNumber();if(!X(a))throw new +Error(String(a)+vQ);if(a<0)return this.shiftRight(-a);var +b=this;if(b.isZero())return b;while(a>=v){b=b.multiply(j);a-=v-1}return b.multiply(h[a])};c.prototype.shiftLeft=b.prototype.shiftLeft=a.prototype.shiftLeft;a.prototype.shiftRight=function(d){var +a,b=e(d).toJSNumber();if(!X(b))throw new +Error(String(b)+vQ);if(b<0)return this.shiftLeft(-b);var +c=this;while(b>=v){if(c.isZero()||c.isNegative()&&c.isUnit())return c;a=i(c,j);c=a[1].isNegative()?a[0].prev():a[0];b-=v-1}a=i(c,h[b]);return a[1].isNegative()?a[0].prev():a[0]};c.prototype.shiftRight=b.prototype.shiftRight=a.prototype.shiftRight;function I(h,a,q){a=e(a);var m=h.isNegative(),p=a.isNegative(),l=m?h.not():h,o=p?a.not():a,b=0,c=0,k=null,n=null,f=[];while(!l.isZero()||!o.isZero()){k=i(l,j);b=k[1].toJSNumber();if(m)b=j-1-b;n=i(o,j);c=n[1].toJSNumber();if(p)c=j-1-c;l=k[0];o=n[0];f.push(q(b,c))}var -g=q(m?1:0,p?1:0)!==0?ap(-1):ap(0);for(var -d=f.length-1;d>=0;d-=1)g=g.multiply(j).add(ap(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return I(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return I(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return I(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var +g=q(m?1:0,p?1:0)!==0?ar(-1):ar(0);for(var +d=f.length-1;d>=0;d-=1)g=g.multiply(j).add(ar(f[d]));return g}a.prototype.not=function(){return this.negate().prev()};c.prototype.not=b.prototype.not=a.prototype.not;a.prototype.and=function(a){return I(this,a,function(a,b){return a&b})};c.prototype.and=b.prototype.and=a.prototype.and;a.prototype.or=function(a){return I(this,a,function(a,b){return a|b})};c.prototype.or=b.prototype.or=a.prototype.or;a.prototype.xor=function(a){return I(this,a,function(a,b){return a^b})};c.prototype.xor=b.prototype.xor=a.prototype.xor;var G=1<<30,$=(f&-f)*(f&-f)|G;function D(c){var a=c.value,b=typeof a==="number"?a|G:typeof a==="bigint"?a|g(G):a[0]+a[1]*f|$;return b&-b}function Q(b,a){if(a.compareTo(b)<=0){var -f=Q(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:ap(1),e:0}}a.prototype.bitLength=function(){var -a=this;if(a.compareTo(ap(0))<0)a=a.negate().subtract(ap(1));if(a.compareTo(ap(0))===0)return ap(0);return ap(Q(a,ap(2)).e).add(ap(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function +f=Q(b,a.square(a)),d=f.p,c=f.e,e=d.multiply(a);return e.compareTo(b)<=0?{p:e,e:c*2+1}:{p:d,e:c*2}}return{p:ar(1),e:0}}a.prototype.bitLength=function(){var +a=this;if(a.compareTo(ar(0))<0)a=a.negate().subtract(ar(1));if(a.compareTo(ar(0))===0)return ar(0);return ar(Q(a,ar(2)).e).add(ar(1))};c.prototype.bitLength=b.prototype.bitLength=a.prototype.bitLength;function S(a,b){a=e(a);b=e(b);return a.greater(b)?a:b}function K(a,b){a=e(a);b=e(b);return a.lesser(b)?a:b}function P(a,b){a=e(a).abs();b=e(b).abs();if(a.equals(b))return a;if(a.isZero())return b;if(b.isZero())return a;var @@ -1072,48 +1072,48 @@ c=0;c=i){if(c===v&&i===1)continue;throw new -Error(c+" is not a valid digit in base "+g+en)}}g=e(g);var -h=[],j=b[0]===cF;for(a=j?1:0;a=i){if(c===w&&i===1)continue;throw new +Error(c+" is not a valid digit in base "+g+ep)}}g=e(g);var +h=[],j=b[0]===cH;for(a=j?1:0;a=0;a--){b=b.add(e[a].times(c));c=c.times(f)}return g?b.negate():b}function -ah(b,a){a=a||M;if(b=0){e=c.divmod(b);c=e.quotient;var d=e.remainder;if(d.isNegative()){d=b.minus(d).abs();c=c.next()}g.push(d.toJSNumber())}g.push(c.toJSNumber());return{value:g.reverse(),isNegative:f}}function _(d,c,b){var -a=y(d,c);return(a.isNegative?cF:W)+a.value.map(function(a){return ah(a,b)}).join(W)}a.prototype.toArray=function(a){return y(this,a)};b.prototype.toArray=function(a){return y(this,a)};c.prototype.toArray=function(a){return y(this,a)};a.prototype.toString=function(a,f){if(a===z)a=10;if(a!==10)return _(this,a,f);var +a=y(d,c);return(a.isNegative?cH:Y)+a.value.map(function(a){return ah(a,b)}).join(Y)}a.prototype.toArray=function(a){return y(this,a)};b.prototype.toArray=function(a){return y(this,a)};c.prototype.toArray=function(a){return y(this,a)};a.prototype.toString=function(a,f){if(a===z)a=10;if(a!==10)return _(this,a,f);var d=this.value,c=d.length,e=String(d[--c]),h="0000000",b;while(--c>=0){b=String(d[c]);e+=h.slice(b.length)+b}var -g=this.sign?cF:W;return g+e};b.prototype.toString=function(a,b){if(a===z)a=10;if(a!=10)return _(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function +g=this.sign?cH:Y;return g+e};b.prototype.toString=function(a,b){if(a===z)a=10;if(a!=10)return _(this,a,b);return String(this.value)};c.prototype.toString=b.prototype.toString;c.prototype.toJSON=a.prototype.toJSON=b.prototype.toJSON=function(){return this.toString()};a.prototype.valueOf=function(){return parseInt(this.toString(),10)};a.prototype.toJSNumber=a.prototype.valueOf;b.prototype.valueOf=function(){return this.value};b.prototype.toJSNumber=b.prototype.valueOf;c.prototype.valueOf=c.prototype.toJSNumber=function(){return parseInt(this.toString(),10)};function V(d){if(l(+d)){var -o=+d;if(o===r(o))return F?new -c(g(o)):new -b(o);throw new -Error(os+d)}var -s=d[0]===cF;if(s)d=d.slice(1);var +n=+d;if(n===r(n))return F?new +c(g(n)):new +b(n);throw new +Error(ou+d)}var +s=d[0]===cH;if(s)d=d.slice(1);var h=d.split(/e/i);if(h.length>2)throw new -Error(os+h.join(oL));if(h.length===2){var -e=h[1];if(e[0]===ff)e=e.slice(1);e=+e;if(e!==r(e)||!l(e))throw new -Error(os+e+" is not a valid exponent.");var -f=h[0],i=f.indexOf(en);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new +Error(ou+h.join(oN));if(h.length===2){var +e=h[1];if(e[0]===fh)e=e.slice(1);e=+e;if(e!==r(e)||!l(e))throw new +Error(ou+e+" is not a valid exponent.");var +f=h[0],i=f.indexOf(ep);if(i>=0){e-=f.length-i-1;f=f.slice(0,i)+f.slice(i+1)}if(e<0)throw new Error("Cannot include negative exponent part for integers");f+=new -Array(e+1).join(n);d=f}var +Array(e+1).join(o);d=f}var t=/^([0-9][0-9]*)$/.test(d);if(!t)throw new -Error(os+d);if(F)return new -c(g(s?cF+d:d));var +Error(ou+d);if(F)return new +c(g(s?cH+d:d));var q=[],j=d.length,p=aa,k=j-p;while(j>0){q.push(+d.slice(k,j));k-=p;if(k<0)k=0;j-=p}m(q);return new a(q,s)}function af(a){if(F)return new @@ -1125,295 +1125,295 @@ a==="number")return af(a);if(typeof a==="string")return V(a);if(typeof a==="bigint")return new c(a);return a}for(var -k=0;k0)d[-k]=e(-k)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=S;d.min=K;d.gcd=P;d.lcm=ad;d.isInstance=function(d){return d +k=0;k0)d[-k]=e(-k)}d.one=d[1];d.zero=d[0];d.minusOne=d[-1];d.max=S;d.min=K;d.gcd=P;d.lcm=ad;d.isInstance=function(d){return d instanceof a||d instanceof b||d instanceof c};d.randBetween=ag;d.fromArray=function(b,a,c){return U(b.map(e),e(a||10),c)};return d}();function -cJ(a){var -b=a.toJSNumber()|0;if(a.equals(ap(b)))return b;return a}function -FO(a){return cJ(ap(a).abs())}function -FP(a,b){return cJ(ap(a).add(ap(b)))}function -ec(a,b){return ap(a).compare(ap(b))}function -jw(b,a){a=ap(a);if(a.equals(ap(0)))jt();return cJ(ap(b).divide(ap(a)))}function -buA(b,a){a=ap(a);if(a.equals(ap(0)))jt();return cJ(ap(b).mod(a))}function -sv(a,b){return[0,jw(a,b),buA(a,b)]}function -FQ(a,b){return jw(a,b)}function -buo(a,b){return ap(a).equals(ap(b))?1:0}function -c5(a){return ap(a).compare(ap.zero)}function -sx(a,b){return cJ(ap(a).subtract(ap(b)))}function -bup(a,b){var -c=c5(a),d=c5(b);if(c*d<0)if(!ap(a).mod(ap(b)).equals(ap(0)))return sx(jw(a,b),ap(1));return jw(a,b)}function -bur(a,b){return cJ(ap.gcd(ap(a),ap(b)).abs())}function -buf(c,e,g){e=ap(e);var +cL(a){var +b=a.toJSNumber()|0;if(a.equals(ar(b)))return b;return a}function +FR(a){return cL(ar(a).abs())}function +FS(a,b){return cL(ar(a).add(ar(b)))}function +ee(a,b){return ar(a).compare(ar(b))}function +jy(b,a){a=ar(a);if(a.equals(ar(0)))jv();return cL(ar(b).divide(ar(a)))}function +buE(b,a){a=ar(a);if(a.equals(ar(0)))jv();return cL(ar(b).mod(a))}function +sy(a,b){return[0,jy(a,b),buE(a,b)]}function +FT(a,b){return jy(a,b)}function +bus(a,b){return ar(a).equals(ar(b))?1:0}function +c7(a){return ar(a).compare(ar.zero)}function +sA(a,b){return cL(ar(a).subtract(ar(b)))}function +but(a,b){var +c=c7(a),d=c7(b);if(c*d<0)if(!ar(a).mod(ar(b)).equals(ar(0)))return sA(jy(a,b),ar(1));return jy(a,b)}function +buv(a,b){return cL(ar.gcd(ar(a),ar(b)).abs())}function +buj(c,e,g){e=ar(e);var a=e.toArray(Math.pow(2,32));c.write(8,a.isNegative?1:0);var f=a.value.length,d=f*4;c.write(32,d);for(var -b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&ds);c.write(8,a.value[b]>>>8&ds);c.write(8,a.value[b]>>>16&ds);c.write(8,a.value[b]>>>24&ds)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function -bug(b,g){var +b=f-1;b>=0;b--){c.write(8,a.value[b]>>>0&du);c.write(8,a.value[b]>>>8&du);c.write(8,a.value[b]>>>16&du);c.write(8,a.value[b]>>>24&du)}g[0]=4*(1+((d+3)/4|0));g[1]=8*(1+((d+7)/8|0))}function +buk(b,g){var e;switch(b.read8u()){case 1:e=true;break;case -0:e=false;break;default:dk("input_value: z (malformed input)")}var -f=b.read32u(),c=ap(0);for(var +0:e=false;break;default:dm("input_value: z (malformed input)")}var +f=b.read32u(),c=ar(0);for(var d=0;d>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return cJ(c)}function -bus(d){var -b=ap(d).toArray(Math.pow(2,32)),a=0;for(var -c=0;c>>0);c=a.shiftLeft(d*32).add(c)}if(e)c=c.negate();g[0]=f+4;return cL(c)}function +buw(d){var +b=ar(d).toArray(Math.pow(2,32)),a=0;for(var +c=0;c=48&&a<=57)return a-48;if(a>=97&&a<=BW)return a-97+10;if(a>=65&&a<=70)return a-65+10}var -d=0;if(a[d]==ff)a=a.substring(1);else -if(a[d]==cF)d++;if(a[d]==r0)bL(zr);a=a.replace(/_/g,W);if(a==cF||a==W)a=n;for(;d=c)bL(zr)}return cJ(ap(a,c))}function -gT(d,a,b,c){a=dT(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function -o_(a){a=ap(a);if(!buq(a))kV(e0(l4));var -b=ap(CA),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=Fx(d,c);return e}function -btV(a){switch(a[2]){case-8:case-11:case-12:return 1;default:return 0}}function -btz(b){var -a=W;if(b[0]==0){a+=b[1][1];if(b.length==3&&b[2][0]==0&&btV(b[1]))var +if(e==Ev||e=="X")c=16;else +if(e==w4||e=="B")c=2;if(c!=10){a=a.substring(b+1);if(g==-1)a=cH+a}}}}function +h(a){if(a>=48&&a<=57)return a-48;if(a>=97&&a<=BZ)return a-97+10;if(a>=65&&a<=70)return a-65+10}var +d=0;if(a[d]==fh)a=a.substring(1);else +if(a[d]==cH)d++;if(a[d]==r3)bO(zu);a=a.replace(/_/g,Y);if(a==cH||a==Y)a=o;for(;d=c)bO(zu)}return cL(ar(a,c))}function +gV(d,a,b,c){a=dW(a);if(b!=0||c!=a.length){if(a.length-b=0?1:0}function +pa(a){a=ar(a);if(!buu(a))kX(e2(l6));var +b=ar(CD),d=a.and(b).toJSNumber(),c=a.shiftRight(32).and(b).toJSNumber(),e=FA(d,c);return e}function +btZ(a){switch(a[2]){case-8:case-11:case-12:return 1;default:return 0}}function +btD(b){var +a=Y;if(b[0]==0){a+=b[1][1];if(b.length==3&&b[2][0]==0&&btZ(b[1]))var e=b[2],f=1;else var f=2,e=b;a+="(";for(var -d=f;df)a+=gw;var +d=f;df)a+=gy;var c=e[d];if(typeof c=="number")a+=c.toString();else if(c instanceof -eW)a+=me+c.toString()+me;else +eY)a+=mg+c.toString()+mg;else if(typeof -c=="string")a+=me+c.toString()+me;else -a+=r0}a+=")"}else -if(b[0]==bc)a+=b[1];return a}function -Fs(a){if(a +c=="string")a+=mg+c.toString()+mg;else +a+=r3}a+=")"}else +if(b[0]==be)a+=b[1];return a}function +Fv(a){if(a instanceof -Array&&(a[0]==0||a[0]==bc)){var -c=e0(Dh);if(c)c(a,false);else{var -d=btz(a),b=e0(uB);if(b)b(0);aH.console.error(r3+d+u_)}}else +Array&&(a[0]==0||a[0]==be)){var +c=e2(Dk);if(c)c(a,false);else{var +d=btD(a),b=e2(uE);if(b)b(0);aJ.console.error(r6+d+vb)}}else throw a}function -bt$(){var -a=aH;if(a.process&&a.process.on)a.process.on("uncaughtException",function(b,c){Fs(b);a.process.exit(2)});else -if(a.addEventListener)a.addEventListener("error",function(a){if(a.error)Fs(a.error)})}bt$();function -q(a,b){return a.length==1?a(b):dz(a,[b])}function -al(a,b,c){return a.length==2?a(b,c):dz(a,[b,c])}function -cx(a,b,c,d){return a.length==3?a(b,c,d):dz(a,[b,c,d])}function -ux(a,b,c,d,e){return a.length==4?a(b,c,d,e):dz(a,[b,c,d,e])}function -qj(a,b,c,d,e,f){return a.length==5?a(b,c,d,e,f):dz(a,[b,c,d,e,f])}function -btm(a,b,c,d,e,f,g){return a.length==6?a(b,c,d,e,f,g):dz(a,[b,c,d,e,f,g])}function -btl(a,b,c,d,e,f,g,h){return a.length==7?a(b,c,d,e,f,g,h):dz(a,[b,c,d,e,f,g,h])}btB();var -pa=[bc,a(CE),-1],sD=[bc,a(Dj),-2],kX=[bc,a(qT),-3],sz=[bc,a(yN),-4],pb=[bc,a(wq),-6],cA=[bc,a(Eb),-7],sB=[bc,a(vi),-8],sC=[bc,a(za),-9],bn=[bc,a(EK),-11],sE=[bc,a(C1),CQ],btj=[4,0,0,0,[12,45,[4,0,0,0,0]]],pr=[0,[11,a('File "'),[2,0,[11,a('", line '),[4,0,0,0,[11,a(yn),[4,0,0,0,[12,45,[4,0,0,0,[11,a(": "),[2,0,0]]]]]]]]]],a('File "%s", line %d, characters %d-%d: %s')],btk=[4,0,0,0,[12,46,0]],uw=[0,a("eventsManager"),a("computeAllocationsFamiliales"),a("computeAidesAuLogement")];dU(11,sE,C1);dU(10,bn,EK);dU(9,[bc,a(Bk),-10],Bk);dU(8,sC,za);dU(7,sB,vi);dU(6,cA,Eb);dU(5,pb,wq);dU(4,[bc,a(xW),-5],xW);dU(3,sz,yN);dU(2,kX,qT);dU(1,sD,Dj);dU(0,pa,CE);var -F7=a("output_substring"),F4=a("%.12g"),F3=a(en),F1=a(vO),F2=a(y1),FU=a("Stdlib.Exit"),FW=f8(0,0,D8),FX=f8(0,0,65520),FY=f8(1,0,D8),F9=a("CamlinternalLazy.Undefined"),Gc=a(wa),Gd=a("\\'"),Ge=a(vo),Gf=a(zQ),Gg=a(AH),Gh=a(x5),Gb=a("Char.chr"),Gk=a("nth"),Gl=a("List.nth"),Gj=a("tl"),Gi=a("hd"),Go=a("String.blit / Bytes.blit_string"),Gn=a("Bytes.blit"),Gm=a("String.sub / Bytes.sub"),Gt=a("String.contains_from / Bytes.contains_from"),Gq=a(W),Gp=a("String.concat"),Gw=a("Array.blit"),Gv=a("Array.fill"),GB=a("Map.remove_min_elt"),GC=[0,0,0,0],GD=[0,a("map.ml"),wV,10],GE=[0,0,0],Gx=a(l7),Gy=a(l7),Gz=a(l7),GA=a(l7),GF=a("Stdlib.Queue.Empty"),GL=a("Buffer.add_substring/add_subbytes"),GK=a("Buffer.add: cannot grow buffer"),GJ=[0,a(zq),93,2],GI=[0,a(zq),94,2],GH=a("Buffer.sub"),GU=a("%c"),GV=a("%s"),GW=a(xo),GX=a(AX),GY=a(yK),GZ=a(Dd),G0=a("%f"),G1=a("%B"),G2=a("%{"),G3=a("%}"),G4=a("%("),G5=a("%)"),G6=a(qP),G7=a("%t"),G8=a("%?"),G9=a("%r"),G_=a("%_r"),G$=[0,a(cd),gB,23],Hk=[0,a(cd),814,21],Hc=[0,a(cd),gz,21],Hl=[0,a(cd),818,21],Hd=[0,a(cd),gr,21],Hm=[0,a(cd),822,19],He=[0,a(cd),q0,19],Hn=[0,a(cd),826,22],Hf=[0,a(cd),827,22],Ho=[0,a(cd),831,30],Hg=[0,a(cd),832,30],Hi=[0,a(cd),836,26],Ha=[0,a(cd),837,26],Hj=[0,a(cd),846,28],Hb=[0,a(cd),847,28],Hh=[0,a(cd),kC,23],Ir=a(vE),Ip=[0,a(cd),1558,4],Iq=a("Printf: bad conversion %["),Is=[0,a(cd),1626,39],It=[0,a(cd),1649,31],Iu=[0,a(cd),1650,31],Iv=a("Printf: bad conversion %_"),Iw=a(vB),Ix=a(vM),Iy=a(vB),Iz=a(vM),ID=[0,[11,a("invalid box description "),[3,0,0]],a("invalid box description %S")],IB=a(W),IC=[0,0,4],IE=a(W),IF=a(w0),IG=a("h"),IH=a("hov"),II=a("hv"),IJ=a("v"),In=a(qU),Il=a("neg_infinity"),Im=a(EU),Ik=a(en),If=[0,cH],H5=a("%+nd"),H6=a("% nd"),H8=a("%+ni"),H9=a("% ni"),H_=a("%nx"),H$=a("%#nx"),Ia=a("%nX"),Ib=a("%#nX"),Ic=a("%no"),Id=a("%#no"),H4=a("%nd"),H7=a(yK),Ie=a("%nu"),HS=a("%+ld"),HT=a("% ld"),HV=a("%+li"),HW=a("% li"),HX=a("%lx"),HY=a("%#lx"),HZ=a("%lX"),H0=a("%#lX"),H1=a("%lo"),H2=a("%#lo"),HR=a("%ld"),HU=a(AX),H3=a("%lu"),HF=a("%+Ld"),HG=a("% Ld"),HI=a("%+Li"),HJ=a("% Li"),HK=a("%Lx"),HL=a("%#Lx"),HM=a("%LX"),HN=a("%#LX"),HO=a("%Lo"),HP=a("%#Lo"),HE=a("%Ld"),HH=a(Dd),HQ=a("%Lu"),Hs=a("%+d"),Ht=a("% d"),Hv=a("%+i"),Hw=a("% i"),Hx=a("%x"),Hy=a("%#x"),Hz=a("%X"),HA=a("%#X"),HB=a("%o"),HC=a("%#o"),Hr=a(r7),Hu=a(xo),HD=a(vE),GM=a("@]"),GN=a("@}"),GO=a("@?"),GP=a("@\n"),GQ=a("@."),GR=a("@@"),GS=a("@%"),GT=a("@"),Hp=a("CamlinternalFormat.Type_mismatch"),IN=a(W),IO=[0,[11,a(gw),[2,0,[2,0,0]]],a(", %s%s")],Jb=[0,[11,a(r3),[2,0,[12,10,0]]],a(EE)],Jc=[0,[11,a("Fatal error in uncaught exception handler: exception "),[2,0,[12,10,0]]],a("Fatal error in uncaught exception handler: exception %s\n")],Ja=a("Fatal error: out of memory in uncaught exception handler"),I_=[0,[11,a(r3),[2,0,[12,10,0]]],a(EE)],I6=[0,[2,0,[12,10,0]],a("%s\n")],IY=a("Raised at"),IZ=a("Re-raised at"),I0=a("Raised by primitive operation at"),I1=a("Called from"),I2=a(" (inlined)"),I4=a(W),I3=[0,[2,0,[12,32,[2,0,[11,a(' in file "'),[2,0,[12,34,[2,0,[11,a(", line "),[4,0,0,0,[11,a(yn),btj]]]]]]]]]],a('%s %s in file "%s"%s, line %d, characters %d-%d')],I5=[0,[2,0,[11,a(" unknown location"),0]],a("%s unknown location")],IT=a("Out of memory"),IU=a("Stack overflow"),IV=a("Pattern matching failed"),IW=a("Assertion failed"),IX=a("Undefined recursive module"),IP=[0,[12,40,[2,0,[2,0,[12,41,0]]]],a("(%s%s)")],IQ=a(W),IR=a(W),IS=[0,[12,40,[2,0,[12,41,0]]],a("(%s)")],IM=[0,[4,0,0,0,0],a(r7)],IK=[0,[3,0,0],a("%S")],IL=a(r0),I7=[0,a(W),a("(Cannot print locations:\n bytecode executable program file not found)"),a("(Cannot print locations:\n bytecode executable program file appears to be corrupt)"),a("(Cannot print locations:\n bytecode executable program file has wrong magic number)"),a("(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)")],Jd=a(Es),Jr=[0,0],bth=a("OCAMLRUNPARAM"),btf=a("CAMLRUNPARAM"),Je=a(W),JR=[3,0,3],JS=a(en),JM=a(nf),JN=a("<\/"),JO=a(W),JI=a(nf),JJ=a(rF),JK=a(W),JG=a("\n"),JC=a(W),JD=a(W),JE=a(W),JF=a(W),JB=[0,a(W)],Jx=a(W),Jy=a(W),Jz=a(W),JA=a(W),Jv=[0,a(W),0,a(W)],Ju=a(W),Jt=a("Stdlib.Format.String_tag"),J3=a(W),J_=[0,a("lib/dates.ml"),226,2],J9=[0,[4,0,[0,2,4],0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,0]]]]],a("%04d-%02d-%02d")],J7=[0,[12,91,[4,0,0,0,[11,a(" years, "),[4,0,0,0,[11,a(" months, "),[4,0,0,0,[11,a(" days]"),0]]]]]]],a("[%d years, %d months, %d days]")],J4=a("Dates_calc.Dates.InvalidDate"),J5=a("Dates_calc.Dates.AmbiguousComputation"),Kd=f8(1,0,0),J$=a("Z.Overflow"),Ka=a(l4),Kh=a(W),Ki=a("+inf"),Kj=a("-inf"),Kk=a(E2),Kl=a("undef"),Kn=[0,a("q.ml"),486,25],Km=a("Q.of_string: invalid digit"),Kf=a(wJ),Ke=a(wJ),Kr=a("Buf.extend: reached Sys.max_string_length"),K1=[0,a(rG),72,32],KY=[0,a(rG),72,32],KX=a("Root is not an object or array"),KT=a("NaN value not allowed in standard JSON"),KU=[0,[8,[0,0,3],0,[0,16],0],a(xr)],KW=[0,[8,[0,0,3],0,[0,17],0],a(Cw)],KV=a(yj),KR=a("Infinity value not allowed in standard JSON"),KS=a("-Infinity value not allowed in standard JSON"),KN=a("NaN"),KO=[0,[8,[0,0,3],0,[0,16],0],a(xr)],KQ=[0,[8,[0,0,3],0,[0,17],0],a(Cw)],KP=a(yj),KL=a("Infinity"),KM=a("-Infinity"),KI=a(vO),KJ=a(y1),KH=a("null"),KB=a(vo),KC=a(zQ),KD=a(AH),KE=a("\\f"),KF=a(x5),KG=a('\\"'),KA=a(wa),Kz=[0,[11,a("src="),[3,0,[11,a(" start="),[4,3,0,0,[11,a(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]],a("src=%S start=%i len=%i\n%!")],Kx=a("\\u00"),Ku=[0,a(rG),72,32],Ks=a("Yojson.Json_error"),Kw=[0,a(qD),a(qS),a(q3),a(rA),a(rb),a(W),a(W),a(W),a(W),a(W),a(W)],K0=[0,a(qD),a(qS),a(q3),a(rA),a(rb),a(W),a(W),a(W),a(W),a(W),a(W)],K3=[0,a(qD),a(qS),a(q3),a(rA),a(rb),a(W),a(W),a(W),a(W),a(W),a(W)],LW=a("unreachable due to the [is_subscope_call] test"),LY=a("unreachable due to the [is_subscope_input_var_def] test"),LZ=a("]"),L0=a("["),L1=a(" ]): expected variable definition (function output), found: "),L2=a(gw),L3=a(uR),L4=a(" ]): expected variable definition (function output), found: end of tokens"),L5=a(gw),L6=a(uR),LX=a("Unexpected event: "),L8=a("Missing function output variable definition."),L7=a("Invalid start of function call."),LV=a(ai),LU=a(aj),L9=[0,[11,a("An error occurred while parsing raw events: "),[2,0,[12,10,0]]],a("An error occurred while parsing raw events: %s\n")],LK=a(xF),LL=a(gw),LM=[0,[11,a(Aq),0],a(Aq)],LN=a(xF),LO=a(gw),LP=[0,[11,a(D0),0],a(D0)],LQ=a(gw),LR=[0,[11,a("VariableDefinition([ "),[2,0,[11,a(" ], "),[2,0,[12,41,0]]]]],a("VariableDefinition([ %s ], %s)")],LS=[0,[11,a(vZ),0],a(vZ)],Lu=[0,cC,a("VarComputation")],Lv=[0,cC,a("FunCall")],Lw=a(BT),Lx=a("inputs"),Ly=a(xJ),Lz=[0,cC,a("SubScopeCall")],LA=a("fun_calls"),LB=a("value"),LC=a(xJ),LD=a("pos"),LE=a(aj),LF=a(BT),LG=a(ai),LH=a("fun_name"),Lj=[0,b8,[0,[0,cC,a("Unit")],0]],Lk=[0,b8,[0,[0,cC,a("Unembeddable")],0]],Ll=[0,cC,a("Bool")],Lm=[0,cC,a("Money")],Ln=[0,cC,a("Integer")],Lo=[0,cC,a("Decimal")],Lp=[0,cC,a("Date")],Lq=[0,cC,a("Duration")],Lr=[0,cC,a("Enum")],Ls=[0,cC,a("Struct")],Lt=[0,cC,a("Array")],Li=[0,[15,0],a(qP)],Lh=[0,[15,0],a(qP)],K5=a("law_headings"),K6=a("end_column"),K7=a("end_line"),K8=a("start_column"),K9=a("start_line"),K_=a("filename"),K$=a("Runtime_ocaml.Runtime.EmptyError"),La=a("Runtime_ocaml.Runtime.AssertionFailed"),Lb=a("Runtime_ocaml.Runtime.ConflictError"),Lc=a("Runtime_ocaml.Runtime.UncomparableDurations"),Le=a("Runtime_ocaml.Runtime.ImpossibleDate"),Lg=a("Runtime_ocaml.Runtime.NoValueProvided"),L_=a("Jsoo_runtime.Error.Exn"),L$=a(rq),Mr=[0,[2,0,[11,a(" in file "),[2,0,[11,a(", position "),[4,0,0,0,[12,58,[4,0,0,0,[11,a("--"),[4,0,0,0,[12,58,btk]]]]]]]]]],a("%s in file %s, position %d:%d--%d:%d.")],Ms=a("No rule applies in the given context to give a value to the variable"),Mt=a("A conflict happened between two rules giving a value to the variable"),Mu=a("A failure happened in the assertion"),Mk=a("Begin call"),Ml=a("End call"),Mm=a("Variable definition"),Mn=a("Decision taken"),Mi=a(W),Mg=a("date_of_jsoo: invalid date"),Me=[0,a(xA),a(Ba),a(DK)],Mf=[0,a(xA),a(DK),a(Ba)],_G=[0,a(aW),89,14,89,29,[0,a(bj),[0,a(aX),0]]],_z=[0,a(aW),c3,18,c3,64,[0,a(bj),[0,a(aX),0]]],_A=[0,a(aW),99,5,99,72,[0,a(bj),[0,a(aX),0]]],_y=[0,a(aW),99,5,99,72,[0,a(bj),[0,a(aX),0]]],_u=[0,a(aW),86,14,86,53,[0,a(bj),[0,a(aX),0]]],_q=[0,a(aW),85,14,85,50,[0,a(bj),[0,a(aX),0]]],_m=[0,a(aW),88,14,88,46,[0,a(bj),[0,a(aX),0]]],_i=[0,a(aW),87,14,87,54,[0,a(bj),[0,a(aX),0]]],_d=[0,a(aW),96,18,96,72,[0,a(bj),[0,a(aX),0]]],_e=[0,a(aW),95,5,95,80,[0,a(bj),[0,a(aX),0]]],_c=[0,a(aW),95,5,95,80,[0,a(bj),[0,a(aX),0]]],Z9=[0,a(aW),92,18,92,67,[0,a(bj),[0,a(aX),0]]],Z_=[0,a(aW),91,5,91,75,[0,a(bj),[0,a(aX),0]]],Z8=[0,a(aW),91,5,91,75,[0,a(bj),[0,a(aX),0]]],Z4=[0,a(aW),bi,14,bi,30,[0,a("Article L131-1"),[0,a(bj),[0,a(aX),0]]]],Z1=[0,0],Z2=[1,0],Z3=[2,0],Z5=[0,a(aW),75,11,75,27,[0,a(bj),[0,a(aX),0]]],Z0=[0,a(aW),75,11,75,27,[0,a(bj),[0,a(aX),0]]],Z6=[0,a(d6),[0,a("enfants_\xc3\xa0_charge"),0]],Z$=[0,a(aW),91,5,91,75,[0,a(bj),[0,a(aX),0]]],_a=[0,a(d6),[0,a("allocations_familiales.personne_charge_effective_permanente_est_parent"),0]],Z7=[0,a(aW),91,5,91,75,[0,a(bj),[0,a(aX),0]]],_f=[0,a(aW),95,5,95,80,[0,a(bj),[0,a(aX),0]]],_g=[0,a(d6),[0,a("allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"),0]],_b=[0,a(aW),95,5,95,80,[0,a(bj),[0,a(aX),0]]],_j=[0,a(aW),87,14,87,54,[0,a(bj),[0,a(aX),0]]],_k=[0,a(d6),[0,a("allocations_familiales.ressources_m\xc3\xa9nage"),0]],_h=[0,a(aW),87,14,87,54,[0,a(bj),[0,a(aX),0]]],_n=[0,a(aW),88,14,88,46,[0,a(bj),[0,a(aX),0]]],_o=[0,a(d6),[0,a("allocations_familiales.r\xc3\xa9sidence"),0]],_l=[0,a(aW),88,14,88,46,[0,a(bj),[0,a(aX),0]]],_r=[0,a(aW),85,14,85,50,[0,a(bj),[0,a(aX),0]]],_s=[0,a(d6),[0,a("allocations_familiales.date_courante"),0]],_p=[0,a(aW),85,14,85,50,[0,a(bj),[0,a(aX),0]]],_v=[0,a(aW),86,14,86,53,[0,a(bj),[0,a(aX),0]]],_w=[0,a(d6),[0,a("allocations_familiales.enfants_\xc3\xa0_charge"),0]],_t=[0,a(aW),86,14,86,53,[0,a(bj),[0,a(aX),0]]],_B=[0,a(aW),99,5,99,72,[0,a(bj),[0,a(aX),0]]],_C=[0,a(d6),[0,a("allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012"),0]],_x=[0,a(aW),99,5,99,72,[0,a(bj),[0,a(aX),0]]],_D=[0,a(d6),[0,a(vc),[0,a(Q),0]]],_E=[0,a(d6),[0,a(vc),[0,a(Q),0]]],_H=[0,a(aW),79,10,79,25,[0,a(bj),[0,a(aX),0]]],_F=[0,a(aW),79,10,79,25,[0,a(bj),[0,a(aX),0]]],_I=[0,a(d6),[0,a("i_montant_vers\xc3\xa9"),0]],ZV=[0,a(aW),44,14,44,27,[0,a(eL),[0,a(aX),0]]],ZU=a(n),ZQ=[0,a(bm),CS,14,CS,62,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],ZL=[0,a(Q),[0,a(kG),[0,a(ai),0]]],ZM=[0,a(Q),[0,a(kG),0]],ZN=[0,a(Q),[0,a(kG),[0,a(aj),0]]],ZO=[0,a(Q),[0,a(kG),0]],ZP=a(n),ZH=[0,a(bm),n$,14,n$,61,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],ZD=[0,a(aW),38,14,38,38,[0,a(eL),[0,a(aX),0]]],Zy=[0,a(Q),[0,a(j1),[0,a(ai),0]]],Zz=[0,a(Q),[0,a(j1),0]],ZA=[0,a(Q),[0,a(j1),[0,a(aj),0]]],ZB=[0,a(Q),[0,a(j1),0]],Zx=a(n),ZC=a(n),Zt=[0,a(aW),36,14,36,32,[0,a(eL),[0,a(aX),0]]],Zs=a(n),Zo=[0,a(dI),l_,5,l_,43,[0,a("Article R521-4"),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],Zd=[0,a(Q),[0,a(fi),[0,a(ai),0]]],Ze=[0,a(Q),[0,a(fi),0]],Zf=[0,a(Q),[0,a(fi),[0,a(aj),0]]],Zg=[0,a(Q),[0,a(fi),0]],Zh=a(ek),Zm=a(j5),Zn=a(bZ),Zi=[0,a(Q),[0,a(jW),[0,a(ai),0]]],Zj=[0,a(Q),[0,a(jW),0]],Zk=[0,a(Q),[0,a(jW),[0,a(aj),0]]],Zl=[0,a(Q),[0,a(jW),0]],Zp=[0,a(G),d$,11,d$,49,[0,a(I),[0,a(F),[0,a(B),0]]]],Zc=[0,a(G),d$,11,d$,49,[0,a(I),[0,a(F),[0,a(B),0]]]],Y$=[0,a(dI),cn,14,cn,46,[0,a(oH),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],Y4=a(cG),Y5=[0,a(bm),qu,5,rc,42,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Y1=a(cG),Y2=a(ek),Y3=a(cG),Y6=[0,a(G),eO,11,eO,52,[0,a(I),[0,a(F),[0,a(B),0]]]],YY=a(cG),YZ=[0,a(bm),277,5,BY,41,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],YV=a(cG),YW=a(ek),YX=a(cG),Y0=[0,a(G),eO,11,eO,52,[0,a(I),[0,a(F),[0,a(B),0]]]],Y7=[0,a(G),eO,11,eO,52,[0,a(I),[0,a(F),[0,a(B),0]]]],YU=[0,a(bm),m5,14,m5,55,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],YT=a(n),YI=[0,a(Q),[0,a(bC),[0,a(ai),0]]],YJ=[0,a(Q),[0,a(bC),0]],YK=[0,a(Q),[0,a(bC),[0,a(aj),0]]],YL=[0,a(Q),[0,a(bC),0]],YM=a(v),YN=[0,a(bm),gm,5,rN,57,[0,a(ke),[0,a(eT),[0,a(gA),[0,a(dO),[0,a(a6),[0,a($),0]]]]]]],YH=a("0.0369"),YO=[0,a(G),cy,11,cy,37,[0,a(I),[0,a(F),[0,a(B),0]]]],YA=[0,a(Q),[0,a(bC),[0,a(ai),0]]],YB=[0,a(Q),[0,a(bC),0]],YC=[0,a(Q),[0,a(bC),[0,a(aj),0]]],YD=[0,a(Q),[0,a(bC),0]],YE=a(v),YF=[0,a(bm),388,5,391,58,[0,a(ke),[0,a(eT),[0,a(gA),[0,a(dO),[0,a(a6),[0,a($),0]]]]]]],Yz=a("0.0567"),YG=[0,a(G),cy,11,cy,37,[0,a(I),[0,a(F),[0,a(B),0]]]],YP=[0,a(G),cy,11,cy,37,[0,a(I),[0,a(F),[0,a(B),0]]]],Yy=[0,a(bm),22,14,22,40,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Yu=[0,a(Q),[0,a(j2),[0,a(ai),0]]],Yv=[0,a(Q),[0,a(j2),0]],Yw=[0,a(Q),[0,a(j2),[0,a(aj),0]]],Yx=[0,a(Q),[0,a(j2),0]],YQ=[0,a(G),cy,11,cy,37,[0,a(I),[0,a(F),[0,a(B),0]]]],Yt=[0,a(G),cy,11,cy,37,[0,a(I),[0,a(F),[0,a(B),0]]]],Yn=a(v),Yo=[0,a(bm),355,5,356,69,[0,a(ke),[0,a(eT),[0,a(gA),[0,a(dO),[0,a(a6),[0,a($),0]]]]]]],Yp=[0,a(G),dH,11,dH,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Yk=[8,0],Yl=[0,a(aS),uF,24,uF,44,[0,a(cE),[0,a(a9),[0,a(a_),0]]]],Ym=[0,a(G),dH,11,dH,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Yq=[0,a(G),dH,11,dH,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Yj=[0,a(bm),18,14,18,34,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Yf=[0,a(bm),xz,14,xz,39,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Ya=[0,a(Q),[0,a(j8),[0,a(ai),0]]],Yb=[0,a(Q),[0,a(j8),0]],Yc=[0,a(Q),[0,a(j8),[0,a(aj),0]]],Yd=[0,a(Q),[0,a(j8),0]],Ye=a(v),X$=a(n),X2=[0,a(Q),[0,a(bC),[0,a(ai),0]]],X3=[0,a(Q),[0,a(bC),0]],X4=[0,a(Q),[0,a(bC),[0,a(aj),0]]],X5=[0,a(Q),[0,a(bC),0]],X6=[0,a(bm),60,5,60,38,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],X1=a(rj),X7=[0,a(G),cU,11,cU,47,[0,a(I),[0,a(F),[0,a(B),0]]]],XV=[0,a(Q),[0,a(bC),[0,a(ai),0]]],XW=[0,a(Q),[0,a(bC),0]],XX=[0,a(Q),[0,a(bC),[0,a(aj),0]]],XY=[0,a(Q),[0,a(bC),0]],XZ=[0,a(bm),hv,5,hv,38,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],XU=a(Bx),X0=[0,a(G),cU,11,cU,47,[0,a(I),[0,a(F),[0,a(B),0]]]],XO=[0,a(Q),[0,a(bC),[0,a(ai),0]]],XP=[0,a(Q),[0,a(bC),0]],XQ=[0,a(Q),[0,a(bC),[0,a(aj),0]]],XR=[0,a(Q),[0,a(bC),0]],XS=[0,a(bm),Du,5,Du,38,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],XN=a(BL),XT=[0,a(G),cU,11,cU,47,[0,a(I),[0,a(F),[0,a(B),0]]]],XH=[0,a(Q),[0,a(bC),[0,a(ai),0]]],XI=[0,a(Q),[0,a(bC),0]],XJ=[0,a(Q),[0,a(bC),[0,a(aj),0]]],XK=[0,a(Q),[0,a(bC),0]],XL=[0,a(aW),27,5,27,44,[0,a(eL),[0,a(aX),0]]],XG=a(n),XM=[0,a(G),cU,11,cU,47,[0,a(I),[0,a(F),[0,a(B),0]]]],X8=[0,a(G),cU,11,cU,47,[0,a(I),[0,a(F),[0,a(B),0]]]],XF=[0,a(G),cU,11,cU,47,[0,a(I),[0,a(F),[0,a(B),0]]]],XC=[0,a(dI),d$,14,d$,41,[0,a(oH),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],XA=a(bZ),XB=a(bZ),Xs=[8,0],Xt=[0,a(aS),EH,5,EH,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Xp=a(v),Xq=a(vy),Xr=a(n),Xu=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Xm=[8,0],Xn=[0,a(aS),E7,5,E7,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Xj=a(v),Xk=a("0.2379"),Xl=a(n),Xo=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Xg=[8,0],Xh=[0,a(aS),fO,5,fO,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Xd=a(v),Xe=a("0.2437"),Xf=a(n),Xi=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Xa=[8,0],Xb=[0,a(aS),zg,5,zg,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],W9=a(v),W_=a("0.2496"),W$=a(n),Xc=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],W6=[8,0],W7=[0,a(aS),rN,5,rN,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],W3=a(v),W4=a("0.2555"),W5=a(n),W8=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],W0=[8,0],W1=[0,a(aS),uK,5,uK,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],WX=a(v),WY=a("0.2613"),WZ=a(n),W2=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],WU=[8,0],WV=[0,a(aS),wA,5,wA,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],WR=a(v),WS=a("0.2672"),WT=a(n),WW=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],WO=[8,0],WP=[0,a(aS),w3,5,w3,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],WL=a(v),WM=a("0.2804"),WN=a(n),WQ=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],WI=[8,0],WJ=[0,a(aS),fT,5,fT,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],WF=a(v),WG=a("0.2936"),WH=a(n),WK=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],WC=[8,0],WD=[0,a(aS),wQ,5,wQ,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Wz=a(v),WA=a("0.3068"),WB=a(n),WE=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Xv=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Wx=[8,0],Wy=[0,a(aS),rn,14,rn,50,[0,a(cE),[0,a(a9),[0,a(a_),0]]]],Wu=a(v),Wv=a(r_),Ww=a(n),Xw=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Wr=[0,a(bm),38,14,38,50,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Wo=a(v),Wp=a(r_),Wq=a(n),Ws=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Wm=[0,a(bm),79,14,79,50,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Wj=a(v),Wk=a(rj),Wl=a(n),Wn=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Wh=[0,a(bm),h6,14,h6,50,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],We=a(v),Wf=a(Bx),Wg=a(n),Wi=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Wt=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],V$=[0,a(bm),43,14,43,59,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],V7=a(T),V8=a(T),V9=a("0.41"),V_=a(n),Wa=[0,a(G),du,11,du,56,[0,a(I),[0,a(F),[0,a(B),0]]]],V5=[0,a(bm),84,14,84,59,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],V1=a(T),V2=a(T),V3=a("0.205"),V4=a(n),V6=[0,a(G),du,11,du,56,[0,a(I),[0,a(F),[0,a(B),0]]]],VZ=[0,a(bm),gM,14,gM,59,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],VV=a(T),VW=a(T),VX=a("0.1025"),VY=a(n),V0=[0,a(G),du,11,du,56,[0,a(I),[0,a(F),[0,a(B),0]]]],VQ=[0,a(bm),nk,5,nk,43,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],VP=a("0.20234"),VR=[0,a(G),ej,11,ej,47,[0,a(I),[0,a(F),[0,a(B),0]]]],VN=[0,a(bm),234,5,y9,46,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],VM=a("0.10117"),VO=[0,a(G),ej,11,ej,47,[0,a(I),[0,a(F),[0,a(B),0]]]],VK=[0,a(bm),bc,5,bc,43,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],VJ=a("0.05059"),VL=[0,a(G),ej,11,ej,47,[0,a(I),[0,a(F),[0,a(B),0]]]],VC=a(cG),VD=[0,a(bm),qG,5,166,68,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Vz=a(cG),VA=a(ek),VB=a(cG),VE=[0,a(G),ez,11,ez,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Vw=a(cG),Vx=[0,a(bm),174,5,rM,68,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Vt=a(cG),Vu=a(ek),Vv=a(cG),Vy=[0,a(G),ez,11,ez,31,[0,a(I),[0,a(F),[0,a(B),0]]]],VF=[0,a(G),ez,11,ez,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Vs=[0,a(bm),jo,14,jo,34,[0,a(cS),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Vr=a(n),VG=[0,a(G),ez,11,ez,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Vq=[0,a(G),ez,11,ez,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Vh=[0,a(Q),[0,a(eM),[0,a(ai),0]]],Vi=[0,a(Q),[0,a(eM),0]],Vj=[0,a(Q),[0,a(eM),[0,a(aj),0]]],Vk=[0,a(Q),[0,a(eM),0]],Vl=[0,a(bQ),h4,5,318,21,[0,a(zB),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],Vm=[0,a(G),cn,11,cn,34,[0,a(I),[0,a(F),[0,a(B),0]]]],U_=[0,a(Q),[0,a(kA),[0,a(ai),0]]],U$=[0,a(Q),[0,a(kA),0]],Va=[0,a(Q),[0,a(kA),[0,a(aj),0]]],Vb=[0,a(Q),[0,a(kA),0]],Vc=[0,a(Q),[0,a(eM),[0,a(ai),0]]],Vd=[0,a(Q),[0,a(eM),0]],Ve=[0,a(Q),[0,a(eM),[0,a(aj),0]]],Vf=[0,a(Q),[0,a(eM),0]],Vg=[0,a(bQ),fl,5,cZ,21,[0,a(zB),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],Vn=[0,a(G),cn,11,cn,34,[0,a(I),[0,a(F),[0,a(B),0]]]],U9=[0,a(G),cn,11,cn,34,[0,a(I),[0,a(F),[0,a(B),0]]]],Vo=[0,a(G),cn,11,cn,34,[0,a(I),[0,a(F),[0,a(B),0]]]],U8=[0,a(G),cn,11,cn,34,[0,a(I),[0,a(F),[0,a(B),0]]]],UZ=[8,0],U0=a(v),U1=[0,a(aS),fK,6,fK,71,[0,a(cE),[0,a(a9),[0,a(a_),0]]]],U2=[0,a(G),cH,11,cH,28,[0,a(I),[0,a(F),[0,a(B),0]]]],UX=a(v),UY=[0,a(bQ),rK,5,410,72,[0,a(rH),[0,a(eT),[0,a(j6),[0,a(dO),[0,a(Z),[0,a($),0]]]]]]],U3=[0,a(G),cH,11,cH,28,[0,a(I),[0,a(F),[0,a(B),0]]]],U4=[0,a(G),cH,11,cH,28,[0,a(I),[0,a(F),[0,a(B),0]]]],UV=a(T),UW=[0,a(bQ),hv,5,hv,70,[0,a(Fd),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],U5=[0,a(G),cH,11,cH,28,[0,a(I),[0,a(F),[0,a(B),0]]]],UU=[0,a(G),cH,11,cH,28,[0,a(I),[0,a(F),[0,a(B),0]]]],UM=[8,0],UN=[0,a(aS),251,5,j3,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],UJ=a(n),UK=a("0.145"),UL=a(n),UO=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],UG=[8,0],UH=[0,a(aS),y5,5,261,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],UD=a(n),UE=a("0.1393"),UF=a(n),UI=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],UA=[8,0],UB=[0,a(aS),rc,5,v9,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Ux=a(n),Uy=a("0.1335"),Uz=a(n),UC=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],Uu=[8,0],Uv=[0,a(aS),278,5,BY,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Ur=a(n),Us=a("0.1278"),Ut=a(n),Uw=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],Uo=[8,0],Up=[0,a(aS),287,5,q_,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Ul=a(n),Um=a("0.122"),Un=a(n),Uq=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],Ui=[8,0],Uj=[0,a(aS),dZ,5,d_,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Uf=a(n),Ug=a("0.1163"),Uh=a(n),Uk=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],Uc=[8,0],Ud=[0,a(aS),kK,5,rd,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],T$=a(n),Ua=a("0.1105"),Ub=a(n),Ue=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],T8=[8,0],T9=[0,a(aS),d8,5,h4,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],T5=a(n),T6=a("0.0976"),T7=a(n),T_=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],T2=[8,0],T3=[0,a(aS),323,5,fk,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],TZ=a(n),T0=a("0.0847"),T1=a(n),T4=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],TW=[8,0],TX=[0,a(aS),uD,5,333,53,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],TT=a(n),TU=a("0.0717"),TV=a(n),TY=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],TQ=[8,0],TR=[0,a(aS),yE,5,yE,49,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],TN=a(n),TO=a("5728"),TP=a(n),TS=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],UP=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],TL=[8,0],TM=[0,a(aS),nE,14,nE,49,[0,a(cE),[0,a(a9),[0,a(a_),0]]]],TI=a(n),TJ=a(vF),TK=a(n),UQ=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],TF=a(v),TG=[0,a(bm),dw,5,de,71,[0,a(ke),[0,a(eT),[0,a(gA),[0,a(dO),[0,a(a6),[0,a($),0]]]]]]],TE=a(vF),TH=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],TD=[0,a(bm),xu,29,xu,64,[0,a(ke),[0,a(eT),[0,a(gA),[0,a(dO),[0,a(a6),[0,a($),0]]]]]]],TC=a(n),Ty=[0,a(dI),mk,14,mk,34,[0,a(oH),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],Tr=[0,a(Q),[0,a(fi),[0,a(ai),0]]],Ts=[0,a(Q),[0,a(fi),0]],Tt=[0,a(Q),[0,a(fi),[0,a(aj),0]]],Tu=[0,a(Q),[0,a(fi),0]],Tv=a(ek),Tw=a(j5),Tx=a(bZ),Tq=a(bZ),Tm=[0,a(dI),zu,14,zu,34,[0,a(oH),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],Tf=[8,0],Tg=[0,a(aS),hi,5,hi,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Tc=a(T),Td=a(BI),Te=a(n),Th=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],S$=[8,0],Ta=[0,a(aS),BX,5,BX,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],S8=a(T),S9=a("0.0539"),S_=a(n),Tb=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],S5=[8,0],S6=[0,a(aS),xH,5,xH,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],S2=a(T),S3=a("0.0615"),S4=a(n),S7=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],SZ=[8,0],S0=[0,a(aS),ep,5,ep,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],SW=a(T),SX=a("0.069"),SY=a(n),S1=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],ST=[8,0],SU=[0,a(aS),BK,5,BK,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],SQ=a(T),SR=a("0.0766"),SS=a(n),SV=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],SN=[8,0],SO=[0,a(aS),fN,5,fN,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],SK=a(T),SL=a("0.0842"),SM=a(n),SP=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],SH=[8,0],SI=[0,a(aS),v5,5,v5,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],SE=a(T),SF=a("0.0918"),SG=a(n),SJ=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],SB=[8,0],SC=[0,a(aS),vn,5,vn,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Sy=a(T),Sz=a("0.1089"),SA=a(n),SD=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Sv=[8,0],Sw=[0,a(aS),i4,5,i4,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Ss=a(T),St=a("0.1259"),Su=a(n),Sx=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Sp=[8,0],Sq=[0,a(aS),fX,5,fX,69,[0,a(bl),[0,a(a9),[0,a(a_),0]]]],Sm=a(T),Sn=a("0.143"),So=a(n),Sr=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Ti=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Sl=[0,a(aS),mZ,14,mZ,59,[0,a(cE),[0,a(a9),[0,a(a_),0]]]],Si=a(T),Sj=a(rj),Sk=a(n),Se=[0,a(aS),iC,14,iC,67,[0,a(cE),[0,a(a9),[0,a(a_),0]]]],Sa=a(Y),Sb=a(Y),Sc=a(BI),Sd=a(n),R5=a(v),R6=[0,a(bQ),423,6,424,72,[0,a(rH),[0,a(eT),[0,a(j6),[0,a(dO),[0,a(Z),[0,a($),0]]]]]]],R7=[0,a(G),dq,11,dq,35,[0,a(I),[0,a(F),[0,a(B),0]]]],R0=[0,a(ck),[0,a(iL),[0,a(ai),0]]],R1=[0,a(ck),[0,a(iL),0]],R2=[0,a(ck),[0,a(iL),[0,a(aj),0]]],R3=[0,a(ck),[0,a(iL),0]],R4=[0,a(bQ),kr,5,cU,59,[0,a(Fd),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],R8=[0,a(G),dq,11,dq,35,[0,a(I),[0,a(F),[0,a(B),0]]]],RZ=[0,a(G),dq,11,dq,35,[0,a(I),[0,a(F),[0,a(B),0]]]],R9=[0,a(G),dq,11,dq,35,[0,a(I),[0,a(F),[0,a(B),0]]]],RY=[0,a(G),dq,11,dq,35,[0,a(I),[0,a(F),[0,a(B),0]]]],RS=a(v),RT=[0,a(bQ),go,5,rB,71,[0,a(rH),[0,a(eT),[0,a(j6),[0,a(dO),[0,a(Z),[0,a($),0]]]]]]],RU=[0,a(G),dL,11,dL,34,[0,a(I),[0,a(F),[0,a(B),0]]]],RR=[0,a(aW),30,9,30,32,[0,a(eL),[0,a(aX),0]]],RV=[0,a(G),dL,11,dL,34,[0,a(I),[0,a(F),[0,a(B),0]]]],RQ=[0,a(G),dL,11,dL,34,[0,a(I),[0,a(F),[0,a(B),0]]]],RK=[0,a(aS),23,5,23,69,[0,a(EZ),[0,a(f1),0]]],RI=a(DN),RJ=a("5628600"),RL=[0,a(G),dj,11,dj,27,[0,a(I),[0,a(F),[0,a(B),0]]]],RG=[0,a(aS),56,5,56,69,[0,a(uP),[0,a(f1),0]]],RE=a(EI),RF=a("5684900"),RH=[0,a(G),dj,11,dj,27,[0,a(I),[0,a(F),[0,a(B),0]]]],RC=[0,a(aS),89,5,89,69,[0,a(v$),[0,a(f1),0]]],RA=a(DX),RB=a("5775900"),RD=[0,a(G),dj,11,dj,27,[0,a(I),[0,a(F),[0,a(B),0]]]],Ry=[0,a(aS),bi,5,bi,69,[0,a(cz),[0,a(Ce),[0,a(f1),0]]]],Rw=a(vG),Rx=a("5827900"),Rz=[0,a(G),dj,11,dj,27,[0,a(I),[0,a(F),[0,a(B),0]]]],RM=[0,a(G),dj,11,dj,27,[0,a(I),[0,a(F),[0,a(B),0]]]],Rv=[0,a(bm),di,14,di,30,[0,a(CG),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Rt=a(z$),Ru=a("5595000"),Rn=[0,a(aS),30,5,30,69,[0,a(EZ),[0,a(f1),0]]],Rl=a(DN),Rm=a("7877000"),Ro=[0,a(G),dg,11,dg,28,[0,a(I),[0,a(F),[0,a(B),0]]]],Rj=[0,a(aS),63,5,63,69,[0,a(uP),[0,a(f1),0]]],Rh=a(EI),Ri=a("7955800"),Rk=[0,a(G),dg,11,dg,28,[0,a(I),[0,a(F),[0,a(B),0]]]],Rf=[0,a(aS),96,5,96,69,[0,a(v$),[0,a(f1),0]]],Rd=a(DX),Re=a("8083100"),Rg=[0,a(G),dg,11,dg,28,[0,a(I),[0,a(F),[0,a(B),0]]]],Rb=[0,a(aS),dL,5,dL,69,[0,a(cz),[0,a(Ce),[0,a(f1),0]]]],Q$=a(vG),Ra=a("8155800"),Rc=[0,a(G),dg,11,dg,28,[0,a(I),[0,a(F),[0,a(B),0]]]],Rp=[0,a(G),dg,11,dg,28,[0,a(I),[0,a(F),[0,a(B),0]]]],Q_=[0,a(bm),jk,14,jk,31,[0,a(CG),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Q8=a(z$),Q9=a("7830000"),Q4=[0,a(aW),33,14,33,36,[0,a(eL),[0,a(aX),0]]],Q5=[0,a(G),ns,11,ns,33,[0,a(I),[0,a(F),[0,a(B),0]]]],Q3=[0,a(G),ns,11,ns,33,[0,a(I),[0,a(F),[0,a(B),0]]]],Q0=[0,a(bQ),75,14,75,64,[0,a(gt),[0,a(gq),[0,a(d5),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],QW=[0,a(ck),[0,a(dd),[0,a(ai),0]]],QX=[0,a(ck),[0,a(dd),0]],QY=[0,a(ck),[0,a(dd),[0,a(aj),0]]],QZ=[0,a(ck),[0,a(dd),0]],QR=[0,a(dI),83,19,83,69,[0,a(nu),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],QS=[0,a(G),eU,11,eU,38,[0,a(I),[0,a(F),[0,a(B),0]]]],QQ=[0,a(dI),56,14,56,41,[0,a(nu),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],QT=[0,a(G),eU,11,eU,38,[0,a(I),[0,a(F),[0,a(B),0]]]],QP=[0,a(G),eU,11,eU,38,[0,a(I),[0,a(F),[0,a(B),0]]]],QK=[0,a(aW),32,14,32,40,[0,a(eL),[0,a(aX),0]]],QE=[0,a(G),ha,14,ha,46,[0,a(I),[0,a(F),[0,a(B),0]]]],QA=[0,a(G),jn,14,jn,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Qz=[1,0],Qv=[0,a(G),fF,14,fF,50,[0,a(I),[0,a(F),[0,a(B),0]]]],Qp=[0,a(G),fK,14,fK,32,[0,a(I),[0,a(F),[0,a(B),0]]]],Qj=[0,a(dI),64,14,64,44,[0,a(nu),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],Qi=a(Y),Qe=[0,a(bm),eC,14,eC,35,[0,a(fM),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(a6),[0,a($),0]]]]]]],Qd=a(Y),P_=[0,a(bQ),q8,5,y5,56,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],P9=[1,0],P$=[0,a(G),98,11,98,20,[0,a(I),[0,a(F),[0,a(B),0]]]],P4=[0,a(bQ),v9,5,271,48,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],P3=[0,0],P5=[0,a(G),98,11,98,20,[0,a(I),[0,a(F),[0,a(B),0]]]],P2=[0,a(bQ),EG,5,EG,70,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],P1=[0,0],P6=[0,a(G),98,11,98,20,[0,a(I),[0,a(F),[0,a(B),0]]]],P0=[0,a(bQ),Ca,5,Ca,69,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],PZ=[0,0],P7=[0,a(G),98,11,98,20,[0,a(I),[0,a(F),[0,a(B),0]]]],PY=[0,a(bQ),n$,5,n$,60,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],PX=[0,0],P8=[0,a(G),98,11,98,20,[0,a(I),[0,a(F),[0,a(B),0]]]],Qa=[0,a(G),98,11,98,20,[0,a(I),[0,a(F),[0,a(B),0]]]],PW=[0,a(G),98,11,98,20,[0,a(I),[0,a(F),[0,a(B),0]]]],PS=[0,a(bQ),BC,5,BC,70,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],PR=[1,0],PT=[0,a(G),97,11,97,26,[0,a(I),[0,a(F),[0,a(B),0]]]],PP=[0,a(bQ),fa,5,mK,56,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],PO=[2,0],PQ=[0,a(G),97,11,97,26,[0,a(I),[0,a(F),[0,a(B),0]]]],PK=[0,a(bQ),264,5,265,48,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],PJ=[0,0],PL=[0,a(G),97,11,97,26,[0,a(I),[0,a(F),[0,a(B),0]]]],PI=[0,a(bQ),xC,5,xC,69,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],PH=[0,0],PM=[0,a(G),97,11,97,26,[0,a(I),[0,a(F),[0,a(B),0]]]],PG=[0,a(bQ),zG,5,zG,60,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],PF=[0,0],PN=[0,a(G),97,11,97,26,[0,a(I),[0,a(F),[0,a(B),0]]]],PU=[0,a(G),97,11,97,26,[0,a(I),[0,a(F),[0,a(B),0]]]],PE=[0,a(G),97,11,97,26,[0,a(I),[0,a(F),[0,a(B),0]]]],PV=[0,a(Q),[0,a(fi),0]],Qb=[0,a(Q),[0,a("versement"),0]],Qf=[0,a(G),n8,11,n8,32,[0,a(I),[0,a(F),[0,a(B),0]]]],Qc=[0,a(G),n8,11,n8,32,[0,a(I),[0,a(F),[0,a(B),0]]]],Qg=[0,a(Q),[0,a("nombre_enfants_l521_1"),0]],Qk=[0,a(G),nZ,11,nZ,41,[0,a(I),[0,a(F),[0,a(B),0]]]],Qh=[0,a(G),nZ,11,nZ,41,[0,a(I),[0,a(F),[0,a(B),0]]]],Ql=[0,a(Q),[0,a("nombre_enfants_alin\xc3\xa9a_2_l521_3"),0]],Qm=[0,a(Q),[0,a(wj),[0,a(qW),0]]],Qn=[0,a(Q),[0,a(wj),[0,a(qW),0]]],Qq=[0,a(G),fK,14,fK,32,[0,a(I),[0,a(F),[0,a(B),0]]]],Qr=[0,a(Q),[0,a("bmaf.date_courante"),0]],Qo=[0,a(G),fK,14,fK,32,[0,a(I),[0,a(F),[0,a(B),0]]]],Qs=[0,a(Q),[0,a(An),[0,a(f2),0]]],Qt=[0,a(Q),[0,a(An),[0,a(f2),0]]],Qw=[0,a(G),fF,14,fF,50,[0,a(I),[0,a(F),[0,a(B),0]]]],Qx=[0,a(Q),[0,a(wC),0]],Qu=[0,a(G),fF,14,fF,50,[0,a(I),[0,a(F),[0,a(B),0]]]],QB=[0,a(G),jn,14,jn,56,[0,a(I),[0,a(F),[0,a(B),0]]]],QC=[0,a(Q),[0,a(AI),0]],Qy=[0,a(G),jn,14,jn,56,[0,a(I),[0,a(F),[0,a(B),0]]]],QF=[0,a(G),ha,14,ha,46,[0,a(I),[0,a(F),[0,a(B),0]]]],QG=[0,a(Q),[0,a(ym),0]],QD=[0,a(G),ha,14,ha,46,[0,a(I),[0,a(F),[0,a(B),0]]]],QH=[0,a(Q),[0,a(oz),[0,a(ck),0]]],QI=[0,a(Q),[0,a(oz),[0,a(ck),0]]],QL=[0,a(aW),32,14,32,40,[0,a(eL),[0,a(aX),0]]],QM=[0,a(Q),[0,a("enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants"),0]],QJ=[0,a(aW),32,14,32,40,[0,a(eL),[0,a(aX),0]]],QN=[0,a(Q),[0,a(Cq),[0,a(q7),0]]],QO=[0,a(Q),[0,a(Cq),[0,a(q7),0]]],QU=[0,a(Q),[0,a(eM),0]],Q1=[0,a(G),95,11,95,61,[0,a(I),[0,a(F),[0,a(B),0]]]],QV=[0,a(G),95,11,95,61,[0,a(I),[0,a(F),[0,a(B),0]]]],Q2=[0,a(Q),[0,a("enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale"),0]],Q6=[0,a(Q),[0,a(kA),0]],Rq=[0,a(G),dg,11,dg,28,[0,a(I),[0,a(F),[0,a(B),0]]]],Q7=[0,a(G),dg,11,dg,28,[0,a(I),[0,a(F),[0,a(B),0]]]],Rr=[0,a(Q),[0,a("plafond_II_d521_3"),0]],RN=[0,a(G),dj,11,dj,27,[0,a(I),[0,a(F),[0,a(B),0]]]],Rs=[0,a(G),dj,11,dj,27,[0,a(I),[0,a(F),[0,a(B),0]]]],RO=[0,a(Q),[0,a("plafond_I_d521_3"),0]],RW=[0,a(G),dL,11,dL,34,[0,a(I),[0,a(F),[0,a(B),0]]]],RP=[0,a(G),dL,11,dL,34,[0,a(I),[0,a(F),[0,a(B),0]]]],RX=[0,a(Q),[0,a("droit_ouvert_compl\xc3\xa9ment"),0]],R_=[0,a(Q),[0,a(j8),0]],Sf=[0,a(G),h6,11,h6,64,[0,a(I),[0,a(F),[0,a(B),0]]]],R$=[0,a(G),h6,11,h6,64,[0,a(I),[0,a(F),[0,a(B),0]]]],Sg=[0,a(Q),[0,a("montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte"),0]],Tj=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Sh=[0,a(G),bi,11,bi,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Tk=[0,a(Q),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_mayotte"),0]],Tn=[0,a(G),h8,11,h8,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Tl=[0,a(G),h8,11,h8,31,[0,a(I),[0,a(F),[0,a(B),0]]]],To=[0,a(Q),[0,a("nombre_total_enfants"),0]],Tz=[0,a(G),nK,11,nK,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Tp=[0,a(G),nK,11,nK,31,[0,a(I),[0,a(F),[0,a(B),0]]]],TA=[0,a(Q),[0,a("nombre_moyen_enfants"),0]],UR=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],TB=[0,a(G),ba,11,ba,46,[0,a(I),[0,a(F),[0,a(B),0]]]],US=[0,a(Q),[0,a("montant_initial_base_premier_enfant"),0]],U6=[0,a(G),cH,11,cH,28,[0,a(I),[0,a(F),[0,a(B),0]]]],UT=[0,a(G),cH,11,cH,28,[0,a(I),[0,a(F),[0,a(B),0]]]],U7=[0,a(Q),[0,a("droit_ouvert_base"),0]],Vp=[0,a(Q),[0,a(bC),0]],VH=[0,a(Q),[0,a(kG),0]],VS=[0,a(G),ej,11,ej,47,[0,a(I),[0,a(F),[0,a(B),0]]]],VI=[0,a(G),ej,11,ej,47,[0,a(I),[0,a(F),[0,a(B),0]]]],VT=[0,a(Q),[0,a("montant_vers\xc3\xa9_forfaitaire_par_enfant"),0]],Wb=[0,a(G),du,11,du,56,[0,a(I),[0,a(F),[0,a(B),0]]]],VU=[0,a(G),du,11,du,56,[0,a(I),[0,a(F),[0,a(B),0]]]],Wc=[0,a(Q),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_et_plus"),0]],Xx=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Wd=[0,a(G),a7,11,a7,47,[0,a(I),[0,a(F),[0,a(B),0]]]],Xy=[0,a(Q),[0,a("montant_initial_base_deuxi\xc3\xa8me_enfant"),0]],XD=[0,a(G),ms,11,ms,38,[0,a(I),[0,a(F),[0,a(B),0]]]],Xz=[0,a(G),ms,11,ms,38,[0,a(I),[0,a(F),[0,a(B),0]]]],XE=[0,a(Q),[0,a("rapport_enfants_total_moyen"),0]],X9=[0,a(Q),[0,a(j2),0]],Yg=[0,a(G),gM,11,gM,36,[0,a(I),[0,a(F),[0,a(B),0]]]],X_=[0,a(G),gM,11,gM,36,[0,a(I),[0,a(F),[0,a(B),0]]]],Yh=[0,a(Q),[0,a("montant_vers\xc3\xa9_forfaitaire"),0]],Yr=[0,a(G),dH,11,dH,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Yi=[0,a(G),dH,11,dH,31,[0,a(I),[0,a(F),[0,a(B),0]]]],Ys=[0,a(Q),[0,a("montant_initial_base"),0]],YR=[0,a(Q),[0,a(jW),0]],Y8=[0,a(G),eO,11,eO,52,[0,a(I),[0,a(F),[0,a(B),0]]]],YS=[0,a(G),eO,11,eO,52,[0,a(I),[0,a(F),[0,a(B),0]]]],Y9=[0,a(Q),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire"),0]],Za=[0,a(G),kJ,11,kJ,43,[0,a(I),[0,a(F),[0,a(B),0]]]],Y_=[0,a(G),kJ,11,kJ,43,[0,a(I),[0,a(F),[0,a(B),0]]]],Zb=[0,a(Q),[0,a("montant_avec_garde_altern\xc3\xa9e_base"),0]],Zq=[0,a(Q),[0,a(j1),0]],Zu=[0,a(G),kI,11,kI,29,[0,a(I),[0,a(F),[0,a(B),0]]]],Zr=[0,a(G),kI,11,kI,29,[0,a(I),[0,a(F),[0,a(B),0]]]],Zv=[0,a(Q),[0,a("montant_vers\xc3\xa9_base"),0]],ZE=[0,a(G),ip,11,ip,35,[0,a(I),[0,a(F),[0,a(B),0]]]],Zw=[0,a(G),ip,11,ip,35,[0,a(I),[0,a(F),[0,a(B),0]]]],ZF=[0,a(Q),[0,a("montant_vers\xc3\xa9_majoration"),0]],ZI=[0,a(G),mR,11,mR,58,[0,a(I),[0,a(F),[0,a(B),0]]]],ZG=[0,a(G),mR,11,mR,58,[0,a(I),[0,a(F),[0,a(B),0]]]],ZJ=[0,a(Q),[0,a("montant_base_compl\xc3\xa9ment_pour_base_et_majoration"),0]],ZR=[0,a(G),mj,11,mj,59,[0,a(I),[0,a(F),[0,a(B),0]]]],ZK=[0,a(G),mj,11,mj,59,[0,a(I),[0,a(F),[0,a(B),0]]]],ZS=[0,a(Q),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration"),0]],ZW=[0,a(G),c3,10,c3,23,[0,a(I),[0,a(F),[0,a(B),0]]]],ZT=[0,a(G),c3,10,c3,23,[0,a(I),[0,a(F),[0,a(B),0]]]],ZX=[0,a(Q),[0,a("montant_vers\xc3\xa9"),0]],ZY=[0,a(bQ),231,5,y9,6,[0,a(d7),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],Pz=[0,a("examples/allocations_familiales/autres_codes.catala_fr"),24,5,24,63,[0,a("Article L821-3"),[0,a(zs),[0,a(D3),[0,a(xL),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]]]],PA=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],Pv=[0,a(bQ),60,5,62,64,[0,a(gt),[0,a(gq),[0,a(d5),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],Pw=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],Pu=[0,a(bQ),49,5,50,50,[0,a(gt),[0,a(gq),[0,a(d5),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],Px=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],Py=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],PB=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],Pt=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],PC=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],Ps=[0,a(G),57,10,57,22,[0,a(by),[0,a(F),[0,a(B),0]]]],Po=[0,a(bQ),68,5,71,57,[0,a(gt),[0,a(gq),[0,a(d5),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],Pp=[0,a(G),58,10,58,29,[0,a(by),[0,a(F),[0,a(B),0]]]],Pn=[0,a(G),58,10,58,29,[0,a(by),[0,a(F),[0,a(B),0]]]],Pq=[0,a(G),58,10,58,29,[0,a(by),[0,a(F),[0,a(B),0]]]],Pm=[0,a(G),58,10,58,29,[0,a(by),[0,a(F),[0,a(B),0]]]],Pi=[0,a(dI),uz,18,uz,41,[0,a(w2),[0,a(eT),[0,a(gA),[0,a(dO),[0,a(c1),[0,a($),0]]]]]]],Pg=a(oE),Ph=a(nL),Pj=[0,a(G),59,11,59,27,[0,a(by),[0,a(F),[0,a(B),0]]]],Pf=[0,a(dI),31,14,31,30,[0,a(lJ),[0,a(nC),[0,a(d5),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],Pd=a(oE),Pe=a(nL),O4=[0,0],O6=[1,0],O7=[2,0],O8=[3,0],O9=[4,0],O_=[5,0],O5=[0,a(bQ),357,5,Bj,30,[0,a(B0),[0,a(xY),[0,a(j6),[0,a(dO),[0,a(Z),[0,a($),0]]]]]]],O$=[0,a(G),61,10,61,33,[0,a(by),[0,a(F),[0,a(B),0]]]],O3=[0,a(G),61,10,61,33,[0,a(by),[0,a(F),[0,a(B),0]]]],OX=[0,a(G),68,14,68,28,[0,a(by),[0,a(F),[0,a(B),0]]]],OT=[0,a(G),69,14,69,32,[0,a(by),[0,a(F),[0,a(B),0]]]],OP=[0,a(dI),21,14,21,26,[0,a(lJ),[0,a(nC),[0,a(d5),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],OQ=[0,a(G),60,10,60,22,[0,a(by),[0,a(F),[0,a(B),0]]]],OO=[0,a(G),60,10,60,22,[0,a(by),[0,a(F),[0,a(B),0]]]],OR=[0,a(ck),[0,a(yw),0]],OU=[0,a(G),69,14,69,32,[0,a(by),[0,a(F),[0,a(B),0]]]],OV=[0,a(ck),[0,a(D$),0]],OS=[0,a(G),69,14,69,32,[0,a(by),[0,a(F),[0,a(B),0]]]],OY=[0,a(G),68,14,68,28,[0,a(by),[0,a(F),[0,a(B),0]]]],OZ=[0,a(ck),[0,a(CM),0]],OW=[0,a(G),68,14,68,28,[0,a(by),[0,a(F),[0,a(B),0]]]],O0=[0,a(ck),[0,a(f5),[0,a(hj),0]]],O1=[0,a(ck),[0,a(f5),[0,a(hj),0]]],Pa=[0,a(G),61,10,61,33,[0,a(by),[0,a(F),[0,a(B),0]]]],O2=[0,a(G),61,10,61,33,[0,a(by),[0,a(F),[0,a(B),0]]]],Pb=[0,a(ck),[0,a(uQ),0]],Pk=[0,a(G),59,11,59,27,[0,a(by),[0,a(F),[0,a(B),0]]]],Pc=[0,a(G),59,11,59,27,[0,a(by),[0,a(F),[0,a(B),0]]]],Pl=[0,a(ck),[0,a(zJ),0]],Pr=[0,a(ck),[0,a(iL),0]],PD=[0,a(ck),[0,a(dd),0]],OK=[0,a(ew),28,5,29,34,[0,a(BE),[0,a(cb),0]]],OJ=a(w9),OL=[0,a(ew),6,10,6,17,[0,a(cb),0]],OH=[0,a(ew),48,5,49,34,[0,a(z5),[0,a(cb),0]]],OG=a(wO),OI=[0,a(ew),6,10,6,17,[0,a(cb),0]],OE=[0,a(ew),64,5,65,34,[0,a(Bq),[0,a(cb),0]]],OD=a(Bc),OF=[0,a(ew),6,10,6,17,[0,a(cb),0]],OB=[0,a(ew),82,5,83,34,[0,a(wl),[0,a(cb),0]]],OA=a(A8),OC=[0,a(ew),6,10,6,17,[0,a(cb),0]],OM=[0,a(ew),6,10,6,17,[0,a(cb),0]],Oz=[0,a(ew),6,10,6,17,[0,a(cb),0]],ON=[0,a(f2),[0,a(bK),0]],On=[6,0],Op=[0,0],Oq=[1,0],Or=[2,0],Os=[3,0],Ot=[4,0],Ou=[5,0],Ov=[7,0],Oo=[0,a(b0),29,5,38,6,[0,a(cz),[0,a(lI),[0,a(aU),0]]]],Om=a(we),Ow=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],Oj=[8,0],Ok=[0,a(b0),47,5,49,6,[0,a(cz),[0,a(lI),[0,a(aU),0]]]],Oi=a(w7),Ol=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],N_=[6,0],Oa=[0,0],Ob=[1,0],Oc=[2,0],Od=[3,0],Oe=[4,0],Of=[5,0],Og=[7,0],N$=[0,a(b0),68,5,77,6,[0,a(cz),[0,a(nz),[0,a(aU),0]]]],N9=a(Aa),Oh=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],N6=[8,0],N7=[0,a(b0),86,5,88,6,[0,a(cz),[0,a(nz),[0,a(aU),0]]]],N5=a(uH),N8=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],NV=[6,0],NX=[0,0],NY=[1,0],NZ=[2,0],N0=[3,0],N1=[4,0],N2=[5,0],N3=[7,0],NW=[0,a(b0),du,5,bi,6,[0,a(cz),[0,a(lK),[0,a(aU),0]]]],NU=a(AM),N4=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],NR=[8,0],NS=[0,a(b0),cn,5,cy,6,[0,a(cz),[0,a(lK),[0,a(aU),0]]]],NQ=a(DC),NT=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],NG=[6,0],NI=[0,0],NJ=[1,0],NK=[2,0],NL=[3,0],NM=[4,0],NN=[5,0],NO=[7,0],NH=[0,a(b0),eU,5,fF,6,[0,a(cz),[0,a(m8),[0,a(aU),0]]]],NF=a(AY),NP=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],NC=[8,0],ND=[0,a(b0),qG,5,nE,6,[0,a(cz),[0,a(m8),[0,a(aU),0]]]],NB=a(wr),NE=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],Nr=[6,0],Nt=[0,0],Nu=[1,0],Nv=[2,0],Nw=[3,0],Nx=[4,0],Ny=[5,0],Nz=[7,0],Ns=[0,a(b0),mZ,5,iC,6,[0,a(m9),[0,a(mw),[0,a(aU),0]]]],Nq=a(y8),NA=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],Nn=[8,0],No=[0,a(b0),wv,5,x4,6,[0,a(m9),[0,a(mw),[0,a(aU),0]]]],Nm=a(DB),Np=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],Ox=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],Nl=[0,a(b0),11,10,11,22,[0,a(B),[0,a(aU),0]]],Oy=[0,a(hj),[0,a(zt),0]],Ni=[0,a(aW),12,14,12,25,[0,a(eL),[0,a(aX),0]]],Ne=[2,0],Nf=a(n),Ng=[1,0],Nh=a("-1"),Nj=[0,a(G),80,10,80,21,[0,a(I),[0,a(F),[0,a(B),0]]]],Nd=[0,a(G),80,10,80,21,[0,a(I),[0,a(F),[0,a(B),0]]]],Nk=[0,a(q7),[0,a("le_plus_\xc3\xa2g\xc3\xa9"),0]],Na=[0,a(dI),78,14,78,41,[0,a(nu),[0,a(aI),[0,a(aL),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],Nb=[0,a(G),76,10,76,37,[0,a(I),[0,a(F),[0,a(B),0]]]],M$=[0,a(G),76,10,76,37,[0,a(I),[0,a(F),[0,a(B),0]]]],Nc=[0,a(qW),[0,a(eM),0]],M3=a(qw),M4=a(qL),M5=a(DZ),M6=a(qQ),M7=a(qR),M8=a(rp),M9=a(ri),M_=[0,a("Enfant"),0],MT=a(mi),MV=a(oj),MW=a(lX),MX=a(Cz),MY=a(yg),MZ=a(oU),M0=a(Cb),M1=a(m$),M2=a(ow),MU=[0,a(A9),0],MK=a(n_),MM=a(Q),MN=a(qJ),MO=a(nI),MP=a(CU),MQ=a(iP),MR=a(A6),MS=a(yk),ML=[0,a(EQ),0],MF=a("Compl\xc3\xa8te"),MH=a("Partag\xc3\xa9e"),MI=a("Z\xc3\xa9ro"),MG=[0,a("PriseEnCompte"),0],MB=a(kj),MD=a(j9),ME=a(Bw),MC=[0,a(B7),0],Mv=a(Ap),Mx=a(C7),My=a(jX),Mz=a(Ep),MA=a(x8),Mw=[0,a("PriseEnCharge"),0],$I=a(W),$i=a(mi),$j=a(oj),$k=a(vQ),$l=a(lX),$m=a(ow),$n=a(Ej),$o=a(wH),$p=a(oU),$q=a(m$),$s=[7,0],$t=[5,0],$u=[4,0],$v=[6,0],$w=[8,0],$x=[2,0],$y=[3,0],$z=[1,0],$A=[0,0],$r=[0,[11,a(bd),[2,0,[11,a(A2),0]]],a(wg)],_3=a(vl),_4=a(xy),_5=a(nI),_6=a(Dz),_7=a(iP),_8=a(Q),_9=a(qk),__=a(n_),$a=[0,0],$b=[2,0],$c=[1,0],$d=[5,0],$e=[6,0],$f=[3,0],$g=[7,0],$h=[4,0],_$=[0,[11,a(bd),[2,0,[11,a(C8),0]]],a(ER)],_W=a(rO),_X=a(kj),_Y=a(j9),_0=[1,0],_1=[0,0],_2=[2,0],_Z=[0,[11,a(bd),[2,0,[11,a(xq),0]]],a(vV)],_L=a(jX),_M=a(qY),_N=a(qE),_O=a(rf),_P=a(qB),_R=[4,0],_S=[3,0],_T=[0,0],_U=[1,0],_V=[2,0],_Q=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'PriseEnCharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")],_J=[0,a(Bp),a(oN),a(f5),a(CH),a(EN),a(vq),a(wK)],_K=[0,a(f5),a(vq),a(EN),a(wK),a(oN),a(Bp),a(CH)],$Q=a("AllocationsFamilialesLib"),boN=[0,a(fy),fa,14,fa,25,[0,a("Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563"),0]],boG=a(n),boH=a(n),boM=a(bZ),boI=[0,a(a2),[0,a(bA),[0,a(ai),0]]],boJ=[0,a(a2),[0,a(bA),0]],boK=[0,a(a2),[0,a(bA),[0,a(aj),0]]],boL=[0,a(a2),[0,a(bA),0]],boC=[0,a(d),qI,14,qI,63,[0,a(bb),[0,a(e),0]]],boy=[0,a(d),BA,14,BA,25,[0,a(bb),[0,a(e),0]]],bos=[0,a(d),iz,5,iz,70,[0,a(bb),[0,a(e),0]]],boo=[0,a(d),gp,14,gp,58,[0,a(bb),[0,a(e),0]]],bok=[0,a(d),hY,14,hY,54,[0,a(bb),[0,a(e),0]]],bog=[0,a(d),gl,14,gl,51,[0,a(bb),[0,a(e),0]]],boa=[0,a(d),hc,14,hc,59,[0,a(bb),[0,a(e),0]]],bn8=[0,a(d),ij,14,ij,38,[0,a(bb),[0,a(e),0]]],bn4=[0,a(d),h_,14,h_,34,[0,a(bb),[0,a(e),0]]],bn0=[0,a(d),ih,14,ih,31,[0,a(bb),[0,a(e),0]]],bnW=[0,a(d),z1,14,z1,48,[0,a(bb),[0,a(e),0]]],bnX=[0,a(d),nd,11,nd,45,[0,a(bb),[0,a(e),0]]],bnV=[0,a(d),nd,11,nd,45,[0,a(bb),[0,a(e),0]]],bnY=[0,a(cM),[0,a("m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e"),0]],bn1=[0,a(d),ih,14,ih,31,[0,a(bb),[0,a(e),0]]],bn2=[0,a(cM),[0,a("calculette.m\xc3\xa9nage"),0]],bnZ=[0,a(d),ih,14,ih,31,[0,a(bb),[0,a(e),0]]],bn5=[0,a(d),h_,14,h_,34,[0,a(bb),[0,a(e),0]]],bn6=[0,a(cM),[0,a("calculette.demandeur"),0]],bn3=[0,a(d),h_,14,h_,34,[0,a(bb),[0,a(e),0]]],bn9=[0,a(d),ij,14,ij,38,[0,a(bb),[0,a(e),0]]],bn_=[0,a(cM),[0,a("calculette.date_courante"),0]],bn7=[0,a(d),ij,14,ij,38,[0,a(bb),[0,a(e),0]]],bob=[0,a(d),hc,14,hc,59,[0,a(bb),[0,a(e),0]]],boc=[0,a(cM),[0,a("calculette.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bn$=[0,a(d),hc,14,hc,59,[0,a(bb),[0,a(e),0]]],bod=[0,a(cM),[0,a(C6),[0,a(a2),0]]],boe=[0,a(cM),[0,a(C6),[0,a(a2),0]]],boh=[0,a(d),gl,14,gl,51,[0,a(bb),[0,a(e),0]]],boi=[0,a(cM),[0,a("calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage"),0]],bof=[0,a(d),gl,14,gl,51,[0,a(bb),[0,a(e),0]]],bol=[0,a(d),hY,14,hY,54,[0,a(bb),[0,a(e),0]]],bom=[0,a(cM),[0,a("calculette_sans_garde_altern\xc3\xa9e.demandeur"),0]],boj=[0,a(d),hY,14,hY,54,[0,a(bb),[0,a(e),0]]],bop=[0,a(d),gp,14,gp,58,[0,a(bb),[0,a(e),0]]],boq=[0,a(cM),[0,a("calculette_sans_garde_altern\xc3\xa9e.date_courante"),0]],bon=[0,a(d),gp,14,gp,58,[0,a(bb),[0,a(e),0]]],bot=[0,a(d),iz,5,iz,70,[0,a(bb),[0,a(e),0]]],bou=[0,a(cM),[0,a("calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bor=[0,a(d),iz,5,iz,70,[0,a(bb),[0,a(e),0]]],bov=[0,a(cM),[0,a(wk),[0,a(a2),0]]],bow=[0,a(cM),[0,a(wk),[0,a(a2),0]]],boz=[0,a(d),oM,10,oM,21,[0,a(bb),[0,a(e),0]]],box=[0,a(d),oM,10,oM,21,[0,a(bb),[0,a(e),0]]],boA=[0,a(cM),[0,a(nV),0]],boD=[0,a(d),l$,11,l$,60,[0,a(bb),[0,a(e),0]]],boB=[0,a(d),l$,11,l$,60,[0,a(bb),[0,a(e),0]]],boE=[0,a(cM),[0,a(ks),0]],boO=[0,a(d),hh,10,hh,21,[0,a(bb),[0,a(e),0]]],boF=[0,a(d),hh,10,hh,21,[0,a(bb),[0,a(e),0]]],boP=[0,a(cM),[0,a("aide_finale"),0]],bnR=[0,a(aB),rS,14,rS,33,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bnQ=a(n),bnI=[0,a(cO),[0,a(bA),[0,a(ai),0]]],bnJ=[0,a(cO),[0,a(bA),0]],bnK=[0,a(cO),[0,a(bA),[0,a(aj),0]]],bnL=[0,a(cO),[0,a(bA),0]],bnM=[0,a(cP),[0,a(bA),[0,a(ai),0]]],bnN=[0,a(cP),[0,a(bA),0]],bnO=[0,a(cP),[0,a(bA),[0,a(aj),0]]],bnP=[0,a(cP),[0,a(bA),0]],bnE=[0,a(aB),zo,14,zo,36,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bnw=[0,a(cP),[0,a(bA),[0,a(ai),0]]],bnx=[0,a(cP),[0,a(bA),0]],bny=[0,a(cP),[0,a(bA),[0,a(aj),0]]],bnz=[0,a(cP),[0,a(bA),0]],bnA=[0,a(cO),[0,a(bA),[0,a(ai),0]]],bnB=[0,a(cO),[0,a(bA),0]],bnC=[0,a(cO),[0,a(bA),[0,a(aj),0]]],bnD=[0,a(cO),[0,a(bA),0]],bnF=[0,a(d),mX,10,mX,32,[0,a(at),[0,a(e),0]]],bnv=[0,a(d),mX,10,mX,32,[0,a(at),[0,a(e),0]]],bns=[0,a(aB),Ek,14,Ek,25,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bno=[0,a(d),vs,14,vs,63,[0,a(at),[0,a(e),0]]],bni=[0,a(d),ht,14,ht,62,[0,a(at),[0,a(e),0]]],bne=[0,a(d),f0,14,f0,53,[0,a(at),[0,a(e),0]]],bna=[0,a(d),hK,5,hK,65,[0,a(at),[0,a(e),0]]],bm8=[0,a(d),hN,14,hN,68,[0,a(at),[0,a(e),0]]],bm4=[0,a(d),i$,14,i$,66,[0,a(at),[0,a(e),0]]],bm0=[0,a(aB),hX,14,hX,58,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bmZ=[0,0],bmV=[0,a(d),ib,14,ib,64,[0,a(at),[0,a(e),0]]],bmP=[0,a(aB),jm,14,jm,50,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bmM=[2,0],bmN=[1,0],bmO=[2,0],bmI=[0,a(d),jf,14,jf,54,[0,a(at),[0,a(e),0]]],bmE=[0,a(d),iI,14,iI,45,[0,a(at),[0,a(e),0]]],bmA=[0,a(d),hW,14,hW,66,[0,a(at),[0,a(e),0]]],bmw=[0,a(d),gv,14,gv,60,[0,a(at),[0,a(e),0]]],bms=[0,a(d),iU,14,iU,58,[0,a(at),[0,a(e),0]]],bmo=[0,a(d),gG,14,gG,56,[0,a(at),[0,a(e),0]]],bmi=[0,a(d),iS,14,iS,67,[0,a(at),[0,a(e),0]]],bme=[0,a(d),gF,14,gF,63,[0,a(at),[0,a(e),0]]],bma=[0,a(d),iH,14,iH,60,[0,a(at),[0,a(e),0]]],bl6=[0,a(aB),il,5,il,74,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bl2=[0,a(d),hs,14,hs,55,[0,a(at),[0,a(e),0]]],blY=[0,a(d),iv,14,iv,52,[0,a(at),[0,a(e),0]]],blU=[0,a(d),i6,14,i6,59,[0,a(at),[0,a(e),0]]],blV=[0,a(d),i6,14,i6,59,[0,a(at),[0,a(e),0]]],blW=[0,a(a2),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante"),0]],blT=[0,a(d),i6,14,i6,59,[0,a(at),[0,a(e),0]]],blZ=[0,a(d),iv,14,iv,52,[0,a(at),[0,a(e),0]]],bl0=[0,a(a2),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage"),0]],blX=[0,a(d),iv,14,iv,52,[0,a(at),[0,a(e),0]]],bl3=[0,a(d),hs,14,hs,55,[0,a(at),[0,a(e),0]]],bl4=[0,a(a2),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur"),0]],bl1=[0,a(d),hs,14,hs,55,[0,a(at),[0,a(e),0]]],bl7=[0,a(aB),il,5,il,74,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bl8=[0,a(a2),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement"),0]],bl5=[0,a(aB),il,5,il,74,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bl9=[0,a(a2),[0,a(uA),[0,a(b9),0]]],bl_=[0,a(a2),[0,a(uA),[0,a(b9),0]]],bmb=[0,a(d),iH,14,iH,60,[0,a(at),[0,a(e),0]]],bmc=[0,a(a2),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage"),0]],bl$=[0,a(d),iH,14,iH,60,[0,a(at),[0,a(e),0]]],bmf=[0,a(d),gF,14,gF,63,[0,a(at),[0,a(e),0]]],bmg=[0,a(a2),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur"),0]],bmd=[0,a(d),gF,14,gF,63,[0,a(at),[0,a(e),0]]],bmj=[0,a(d),iS,14,iS,67,[0,a(at),[0,a(e),0]]],bmk=[0,a(a2),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],bmh=[0,a(d),iS,14,iS,67,[0,a(at),[0,a(e),0]]],bml=[0,a(a2),[0,a(Ck),[0,a(b1),0]]],bmm=[0,a(a2),[0,a(Ck),[0,a(b1),0]]],bmp=[0,a(d),gG,14,gG,56,[0,a(at),[0,a(e),0]]],bmq=[0,a(a2),[0,a("calcul_allocation_logement.mode_occupation"),0]],bmn=[0,a(d),gG,14,gG,56,[0,a(at),[0,a(e),0]]],bmt=[0,a(d),iU,14,iU,58,[0,a(at),[0,a(e),0]]],bmu=[0,a(a2),[0,a("calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],bmr=[0,a(d),iU,14,iU,58,[0,a(at),[0,a(e),0]]],bmx=[0,a(d),gv,14,gv,60,[0,a(at),[0,a(e),0]]],bmy=[0,a(a2),[0,a("calcul_allocation_logement.situation_familiale"),0]],bmv=[0,a(d),gv,14,gv,60,[0,a(at),[0,a(e),0]]],bmB=[0,a(d),hW,14,hW,66,[0,a(at),[0,a(e),0]]],bmC=[0,a(a2),[0,a("calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge"),0]],bmz=[0,a(d),hW,14,hW,66,[0,a(at),[0,a(e),0]]],bmF=[0,a(d),iI,14,iI,45,[0,a(at),[0,a(e),0]]],bmG=[0,a(a2),[0,a("calcul_allocation_logement.zone"),0]],bmD=[0,a(d),iI,14,iI,45,[0,a(at),[0,a(e),0]]],bmJ=[0,a(d),jf,14,jf,54,[0,a(at),[0,a(e),0]]],bmK=[0,a(a2),[0,a("calcul_allocation_logement.date_courante"),0]],bmH=[0,a(d),jf,14,jf,54,[0,a(at),[0,a(e),0]]],bmQ=[0,a(aB),jm,14,jm,50,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bmR=[0,a(a2),[0,a("calcul_allocation_logement.type_aide"),0]],bmL=[0,a(aB),jm,14,jm,50,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bmS=[0,a(a2),[0,a(Dr),[0,a(cO),0]]],bmT=[0,a(a2),[0,a(Dr),[0,a(cO),0]]],bmW=[0,a(d),ib,14,ib,64,[0,a(at),[0,a(e),0]]],bmX=[0,a(a2),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation"),0]],bmU=[0,a(d),ib,14,ib,64,[0,a(at),[0,a(e),0]]],bm1=[0,a(aB),hX,14,hX,58,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bm2=[0,a(a2),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.type_aide"),0]],bmY=[0,a(aB),hX,14,hX,58,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bm5=[0,a(d),i$,14,i$,66,[0,a(at),[0,a(e),0]]],bm6=[0,a(a2),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],bm3=[0,a(d),i$,14,i$,66,[0,a(at),[0,a(e),0]]],bm9=[0,a(d),hN,14,hN,68,[0,a(at),[0,a(e),0]]],bm_=[0,a(a2),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale"),0]],bm7=[0,a(d),hN,14,hN,68,[0,a(at),[0,a(e),0]]],bnb=[0,a(d),hK,5,hK,65,[0,a(at),[0,a(e),0]]],bnc=[0,a(a2),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge"),0]],bm$=[0,a(d),hK,5,hK,65,[0,a(at),[0,a(e),0]]],bnf=[0,a(d),f0,14,f0,53,[0,a(at),[0,a(e),0]]],bng=[0,a(a2),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.zone"),0]],bnd=[0,a(d),f0,14,f0,53,[0,a(at),[0,a(e),0]]],bnj=[0,a(d),ht,14,ht,62,[0,a(at),[0,a(e),0]]],bnk=[0,a(a2),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],bnh=[0,a(d),ht,14,ht,62,[0,a(at),[0,a(e),0]]],bnl=[0,a(a2),[0,a(yL),[0,a(cP),0]]],bnm=[0,a(a2),[0,a(yL),[0,a(cP),0]]],bnp=[0,a(d),jV,10,jV,59,[0,a(at),[0,a(e),0]]],bnn=[0,a(d),jV,10,jV,59,[0,a(at),[0,a(e),0]]],bnq=[0,a(a2),[0,a(ks),0]],bnt=[0,a(d),nc,10,nc,21,[0,a(at),[0,a(e),0]]],bnr=[0,a(d),nc,10,nc,21,[0,a(at),[0,a(e),0]]],bnu=[0,a(a2),[0,a(nV),0]],bnG=[0,a(a2),[0,a(bA),0]],bnS=[0,a(d),oP,10,oP,29,[0,a(at),[0,a(e),0]]],bnH=[0,a(d),oP,10,oP,29,[0,a(at),[0,a(e),0]]],bnT=[0,a(a2),[0,a(eV),0]],blQ=[0,a(D),Ey,14,Ey,33,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],blM=[0,a(D),zl,14,zl,36,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],blN=[0,a(d),n7,10,n7,32,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blL=[0,a(d),n7,10,n7,32,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blI=[0,a(D),Dc,14,Dc,36,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],blD=a(n),blE=a(n),blC=[0,a(D),1528,16,1531,39,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],blG=a(n),blH=a(n),blF=[0,a(D),1560,16,1563,39,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bly=[0,a(O),88,14,88,44,[0,a(cE),[0,a(bR),[0,a(K),0]]]],bls=[0,0],blt=[1,0],blu=[1,0],blv=[1,0],blw=[0,0],blx=[1,0],blo=[0,a(D),xP,14,xP,31,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bll=a(c0),blm=a(Bh),bln=a(qN),blh=[0,a(D),uI,14,uI,34,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bli=[0,a(d),mz,11,mz,31,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blg=[0,a(d),mz,11,mz,31,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blj=[0,a(cO),[0,a(w8),0]],blp=[0,a(d),hU,10,hU,22,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blk=[0,a(d),hU,10,hU,22,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blq=[0,a(cO),[0,a(wG),0]],blz=[0,a(d),mp,11,mp,41,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blr=[0,a(d),mp,11,mp,41,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blA=[0,a(cO),[0,a(yv),0]],blJ=[0,a(d),mE,11,mE,33,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blB=[0,a(d),mE,11,mE,33,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blK=[0,a(cO),[0,a(Eh),0]],blO=[0,a(cO),[0,a(bA),0]],blR=[0,a(d),oC,10,oC,29,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blP=[0,a(d),oC,10,oC,29,[0,a(bJ),[0,a(M),[0,a(y),[0,a(e),0]]]]],blS=[0,a(cO),[0,a(eV),0]],blb=[0,a(aB),zn,5,zn,73,[0,a("Article L841-3"),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bla=[2,0],blc=[0,a(d),eJ,10,eJ,16,[0,a(aG),[0,a(i),[0,a(e),0]]]],bk_=[0,a(aB),1134,5,gl,28,[0,a("Article L841-4"),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bk9=[0,0],bk$=[0,a(d),eJ,10,eJ,16,[0,a(aG),[0,a(i),[0,a(e),0]]]],bld=[0,a(d),eJ,10,eJ,16,[0,a(aG),[0,a(i),[0,a(e),0]]]],bk8=[0,a(aB),D2,14,D2,25,[0,a(dr),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bk4=[0,0],bk5=[0,0],bk6=[1,0],bk7=[2,0],bkU=a(n),bkV=[0,a(aB),999,5,1003,29,[0,a(ie),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bkW=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkP=a(v),bkN=a(v),bkO=a(n),bkQ=[0,a(aB),976,5,987,12,[0,a(ie),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bkR=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkH=[0,a(aQ),[0,a(fe),[0,a(ai),0]]],bkI=[0,a(aQ),[0,a(fe),0]],bkJ=[0,a(aQ),[0,a(fe),[0,a(aj),0]]],bkK=[0,a(aQ),[0,a(fe),0]],bkL=a(v),bkF=a(v),bkG=a(n),bkM=[0,a(aB),959,5,gx,72,[0,a(ie),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bkS=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkT=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkX=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkx=[2,0],bkD=[0,0],bky=[0,a(cl),[0,a(dd),[0,a(ai),0]]],bkz=[0,a(cl),[0,a(dd),0]],bkA=[0,a(cl),[0,a(dd),[0,a(aj),0]]],bkB=[0,a(cl),[0,a(dd),0]],bkC=a(v),bkv=a(n),bkw=a(n),bkE=[0,a(aB),921,5,kz,29,[0,a(ie),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bkY=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkn=[2,0],bkt=[0,0],bko=[0,a(cl),[0,a(dd),[0,a(ai),0]]],bkp=[0,a(cl),[0,a(dd),0]],bkq=[0,a(cl),[0,a(dd),[0,a(aj),0]]],bkr=[0,a(cl),[0,a(dd),0]],bks=a(v),bkl=a(v),bkm=a(n),bku=[0,a(aB),889,5,910,11,[0,a(ie),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bkZ=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkg=[0,0],bkh=[1,0],bki=[3,0],bkj=[4,0],bkk=[0,a(aB),870,5,874,52,[0,a(ie),[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bk0=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkf=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkb=[0,a(aB),wT,14,wT,25,[0,a(bg),[0,a(b2),[0,a(w),[0,a(Z),[0,a(u),0]]]]]],bka=[0,0],bj$=[2,0],bj7=[0,a(d),hi,14,hi,56,[0,a(aG),[0,a(i),[0,a(e),0]]]],bj3=[0,a(d),Bl,14,Bl,63,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjX=[0,a(D),n2,9,n2,55,[0,a(n6),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjY=[0,a(D),n2,9,n2,55,[0,a(n6),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjZ=[0,a(b9),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface"),0]],bjU=[0,a(D),mY,9,mY,68,[0,a(n6),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjV=[0,a(D),mY,9,mY,68,[0,a(n6),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjW=[0,a(b9),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale"),0]],bjR=[0,a(d),go,14,go,47,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjN=[0,a(d),iY,14,iY,43,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjJ=[0,a(d),iO,14,iO,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjA=[0,a(D),4353,5,4358,28,[0,a(ot),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjB=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjz=[0,a(D),4336,5,4341,28,[0,a(ot),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjC=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjy=[0,a(D),4319,5,4326,28,[0,a(ot),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjD=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjE=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjx=[0,a(D),4289,5,4291,28,[0,a(ot),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bjF=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjw=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjq=[0,a(d),hk,14,hk,46,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjp=[6,0],bjl=[0,a(d),jj,14,jj,56,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjk=[1,0],bjg=[0,a(d),h1,14,h1,50,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjc=[0,a(D),El,14,El,28,[0,a("Article D841-1"),[0,a("Chapitre 1 : Champ d'application"),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]],bjd=[0,a(d),ny,11,ny,25,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjb=[0,a(d),ny,11,ny,25,[0,a(aG),[0,a(i),[0,a(e),0]]]],bje=[0,a(b9),[0,a("dur\xc3\xa9e_l841_1_3"),0]],bjh=[0,a(d),h1,14,h1,50,[0,a(aG),[0,a(i),[0,a(e),0]]]],bji=[0,a(b9),[0,a(wC),0]],bjf=[0,a(d),h1,14,h1,50,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjm=[0,a(d),jj,14,jj,56,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjn=[0,a(b9),[0,a(AI),0]],bjj=[0,a(d),jj,14,jj,56,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjr=[0,a(d),hk,14,hk,46,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjs=[0,a(b9),[0,a(ym),0]],bjo=[0,a(d),hk,14,hk,46,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjt=[0,a(b9),[0,a(oz),[0,a(cl),0]]],bju=[0,a(b9),[0,a(oz),[0,a(cl),0]]],bjG=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjv=[0,a(d),cT,11,cT,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjH=[0,a(b9),[0,a("condition_accession_propri\xc3\xa9t\xc3\xa9"),0]],bjK=[0,a(d),iO,14,iO,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjL=[0,a(b9),[0,a(vb),0]],bjI=[0,a(d),iO,14,iO,40,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjO=[0,a(d),iY,14,iY,43,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjP=[0,a(b9),[0,a(AG),0]],bjM=[0,a(d),iY,14,iY,43,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjS=[0,a(d),go,14,go,47,[0,a(aG),[0,a(i),[0,a(e),0]]]],bjT=[0,a(b9),[0,a(E4),0]],bjQ=[0,a(d),go,14,go,47,[0,a(aG),[0,a(i),[0,a(e),0]]]],bj0=[0,a(b9),[0,a(or),[0,a(aQ),0]]],bj1=[0,a(b9),[0,a(or),[0,a(aQ),0]]],bj4=[0,a(d),fT,10,fT,59,[0,a(aG),[0,a(i),[0,a(e),0]]]],bj2=[0,a(d),fT,10,fT,59,[0,a(aG),[0,a(i),[0,a(e),0]]]],bj5=[0,a(b9),[0,a(ks),0]],bj8=[0,a(d),oD,10,oD,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bj6=[0,a(d),oD,10,oD,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bj9=[0,a(b9),[0,a(rQ),0]],bkc=[0,a(d),mV,10,mV,31,[0,a(aG),[0,a(i),[0,a(e),0]]]],bj_=[0,a(d),mV,10,mV,31,[0,a(aG),[0,a(i),[0,a(e),0]]]],bkd=[0,a(b9),[0,a("\xc3\xa9ligibilit\xc3\xa9_dispositions_communes"),0]],bk1=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bke=[0,a(d),bY,11,bY,52,[0,a(aG),[0,a(i),[0,a(e),0]]]],bk2=[0,a(b9),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale"),0]],ble=[0,a(d),eJ,10,eJ,16,[0,a(aG),[0,a(i),[0,a(e),0]]]],bk3=[0,a(d),eJ,10,eJ,16,[0,a(aG),[0,a(i),[0,a(e),0]]]],blf=[0,a(b9),[0,a("\xc3\xa9ligibilit\xc3\xa9_l841_2"),0]],bi9=[0,a(aB),gy,5,593,36,[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]],bi_=[0,a(d),fV,10,fV,21,[0,a(aV),[0,a(i),[0,a(e),0]]]],bi8=[0,a(d),fV,10,fV,21,[0,a(aV),[0,a(i),[0,a(e),0]]]],bi4=[0,a(d),m2,14,m2,56,[0,a(aV),[0,a(i),[0,a(e),0]]]],bi0=[0,a(d),z9,14,z9,63,[0,a(aV),[0,a(i),[0,a(e),0]]]],biQ=[0,a(D),3682,5,3687,30,[0,a("Article R832-21"),[0,a("Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif"),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],biR=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biM=[0,a(b1),[0,a(j$),[0,a(ai),0]]],biN=[0,a(b1),[0,a(j$),0]],biO=[0,a(b1),[0,a(j$),[0,a(aj),0]]],biP=[0,a(b1),[0,a(j$),0]],biL=[0,a(aB),kH,5,704,30,[0,a(l1),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],biS=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biK=[0,a(aB),X,5,kg,30,[0,a(l1),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],biT=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biJ=[0,a(aB),j4,5,650,30,[0,a(l1),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],biU=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biF=[0,a(b1),[0,a(jU),[0,a(ai),0]]],biG=[0,a(b1),[0,a(jU),0]],biH=[0,a(b1),[0,a(jU),[0,a(aj),0]]],biI=[0,a(b1),[0,a(jU),0]],biE=[0,a(aB),j7,5,623,30,[0,a(l1),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],biV=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biW=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biD=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],bix=[0,a(d),im,14,im,47,[0,a(aV),[0,a(i),[0,a(e),0]]]],bit=[0,a(d),gm,14,gm,43,[0,a(aV),[0,a(i),[0,a(e),0]]]],bip=[0,a(d),hE,14,hE,40,[0,a(aV),[0,a(i),[0,a(e),0]]]],bii=[0,a(aB),kf,5,753,30,[0,a(qt),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bij=[0,a(d),dw,11,dw,34,[0,a(aV),[0,a(i),[0,a(e),0]]]],bih=[0,a(aB),721,5,726,30,[0,a(qt),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bik=[0,a(d),dw,11,dw,34,[0,a(aV),[0,a(i),[0,a(e),0]]]],big=[0,a(aB),hl,31,hl,54,[0,a(qt),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bil=[0,a(d),dw,11,dw,34,[0,a(aV),[0,a(i),[0,a(e),0]]]],bif=[0,a(d),dw,11,dw,34,[0,a(aV),[0,a(i),[0,a(e),0]]]],bib=[0,a(d),fO,11,fO,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bic=[0,a(d),fO,11,fO,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bia=[0,a(d),fO,11,fO,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bh6=[0,a(D),3010,5,3013,41,[0,a("Article R832-7"),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bh7=[0,a(d),de,11,de,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bh5=[0,a(D),2975,5,2977,42,[0,a("Article R832-5"),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bh8=[0,a(d),de,11,de,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bh9=[0,a(d),de,11,de,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bh4=[0,a(d),de,11,de,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bh_=[0,a(d),de,11,de,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bh3=[0,a(d),de,11,de,41,[0,a(aV),[0,a(i),[0,a(e),0]]]],bh$=[0,a(b1),[0,a(jU),0]],bid=[0,a(b1),[0,a(j$),0]],bim=[0,a(d),dw,11,dw,34,[0,a(aV),[0,a(i),[0,a(e),0]]]],bie=[0,a(d),dw,11,dw,34,[0,a(aV),[0,a(i),[0,a(e),0]]]],bin=[0,a(b1),[0,a("condition_logement_pr\xc3\xaat"),0]],biq=[0,a(d),hE,14,hE,40,[0,a(aV),[0,a(i),[0,a(e),0]]]],bir=[0,a(b1),[0,a(vb),0]],bio=[0,a(d),hE,14,hE,40,[0,a(aV),[0,a(i),[0,a(e),0]]]],biu=[0,a(d),gm,14,gm,43,[0,a(aV),[0,a(i),[0,a(e),0]]]],biv=[0,a(b1),[0,a(AG),0]],bis=[0,a(d),gm,14,gm,43,[0,a(aV),[0,a(i),[0,a(e),0]]]],biy=[0,a(d),im,14,im,47,[0,a(aV),[0,a(i),[0,a(e),0]]]],biz=[0,a(b1),[0,a(E4),0]],biw=[0,a(d),im,14,im,47,[0,a(aV),[0,a(i),[0,a(e),0]]]],biA=[0,a(b1),[0,a(or),[0,a(aQ),0]]],biB=[0,a(b1),[0,a(or),[0,a(aQ),0]]],biX=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biC=[0,a(d),cj,11,cj,38,[0,a(aV),[0,a(i),[0,a(e),0]]]],biY=[0,a(b1),[0,a("condition_logement_bailleur"),0]],bi1=[0,a(d),nU,10,nU,59,[0,a(aV),[0,a(i),[0,a(e),0]]]],biZ=[0,a(d),nU,10,nU,59,[0,a(aV),[0,a(i),[0,a(e),0]]]],bi2=[0,a(b1),[0,a(ks),0]],bi5=[0,a(d),hf,10,hf,52,[0,a(aV),[0,a(i),[0,a(e),0]]]],bi3=[0,a(d),hf,10,hf,52,[0,a(aV),[0,a(i),[0,a(e),0]]]],bi6=[0,a(b1),[0,a(rQ),0]],bi$=[0,a(d),fV,10,fV,21,[0,a(aV),[0,a(i),[0,a(e),0]]]],bi7=[0,a(d),fV,10,fV,21,[0,a(aV),[0,a(i),[0,a(e),0]]]],bja=[0,a(b1),[0,a(nV),0]],bh0=[0,a(D),yJ,14,yJ,40,[0,a("Article D823-22"),[0,a(lW),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bhV=[0,a(aB),d2,5,566,43,[0,a("Article L823-8"),[0,a(be),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],bhW=[0,a(d),f3,11,f3,31,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhU=[0,a(d),f3,11,f3,31,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhQ=[0,a(O),xp,14,xp,29,[0,a("Article 45"),[0,a("Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement"),[0,a(K),0]]]],bhN=a(v),bhJ=a(v),bhH=a(Y),bhI=a(n),bhK=a(qn),bhL=a(Y),bhM=a(n),bhP=a(n),bhO=a("2.4"),bhC=[0,a(D),2058,6,2068,77,[0,a(qA),[0,a(lW),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bhD=[0,a(d),ep,11,ep,41,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhB=[0,a(d),ep,11,ep,41,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhv=[0,a(d),iD,14,iD,43,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhr=[0,a(d),iG,14,iG,39,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhn=[0,a(d),fL,14,fL,36,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhh=[0,a(d),fN,14,fN,65,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhb=a(v),bg$=a(Y),bha=a(n),bhc=[0,a(D),2049,5,2054,77,[0,a(qA),[0,a(lW),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bhd=[0,a(d),fS,11,fS,32,[0,a(bp),[0,a(i),[0,a(e),0]]]],bg_=[0,a(d),fS,11,fS,32,[0,a(bp),[0,a(i),[0,a(e),0]]]],bg6=[0,a(D),AS,14,AS,47,[0,a(qA),[0,a(lW),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bg7=[0,a(d),nB,11,nB,44,[0,a(bp),[0,a(i),[0,a(e),0]]]],bg5=[0,a(d),nB,11,nB,44,[0,a(bp),[0,a(i),[0,a(e),0]]]],bg8=[0,a(df),[0,a("d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2"),0]],bhe=[0,a(d),fS,11,fS,32,[0,a(bp),[0,a(i),[0,a(e),0]]]],bg9=[0,a(d),fS,11,fS,32,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhf=[0,a(df),[0,a("condition_rang_enfant"),0]],bhi=[0,a(d),fN,14,fN,65,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhj=[0,a(df),[0,a(CZ),0]],bhg=[0,a(d),fN,14,fN,65,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhk=[0,a(df),[0,a(mC),[0,a(f2),0]]],bhl=[0,a(df),[0,a(mC),[0,a(f2),0]]],bho=[0,a(d),fL,14,fL,36,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhp=[0,a(df),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage"),0]],bhm=[0,a(d),fL,14,fL,36,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhs=[0,a(d),iG,14,iG,39,[0,a(bp),[0,a(i),[0,a(e),0]]]],bht=[0,a(df),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.demandeur"),0]],bhq=[0,a(d),iG,14,iG,39,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhw=[0,a(d),iD,14,iD,43,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhx=[0,a(df),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.date_courante"),0]],bhu=[0,a(d),iD,14,iD,43,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhy=[0,a(df),[0,a(Ar),[0,a(aQ),0]]],bhz=[0,a(df),[0,a(Ar),[0,a(aQ),0]]],bhE=[0,a(d),ep,11,ep,41,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhA=[0,a(d),ep,11,ep,41,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhF=[0,a(df),[0,a("condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement"),0]],bhR=[0,a(d),mu,11,mu,26,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhG=[0,a(d),mu,11,mu,26,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhS=[0,a(df),[0,a("plafond_d823_22"),0]],bhX=[0,a(d),f3,11,f3,31,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhT=[0,a(d),f3,11,f3,31,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhY=[0,a(df),[0,a(Aw),0]],bh1=[0,a(d),jg,10,jg,36,[0,a(bp),[0,a(i),[0,a(e),0]]]],bhZ=[0,a(d),jg,10,jg,36,[0,a(bp),[0,a(i),[0,a(e),0]]]],bh2=[0,a(df),[0,a("montant_prime_d\xc3\xa9m\xc3\xa9nagement"),0]],bg1=[0,a(D),yW,14,yW,33,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bgX=[0,a(D),qH,14,qH,36,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bgY=[0,a(d),lV,10,lV,32,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgW=[0,a(d),lV,10,lV,32,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgT=[0,a(D),Bt,14,Bt,36,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bgR=a(n),bgS=a(n),bgQ=[0,a(D),1444,16,1447,39,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bgM=[0,a(O),78,14,78,44,[0,a(cE),[0,a(bR),[0,a(K),0]]]],bgG=[0,0],bgH=[1,0],bgI=[1,0],bgJ=[1,0],bgK=[0,0],bgL=[1,0],bgC=[0,a(D),vL,14,vL,31,[0,a(rz),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],bgz=a(c0),bgA=a(Bh),bgB=a(qN),bgv=[0,a(D),v2,14,v2,34,[0,a(d3),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bgw=[0,a(d),kf,11,kf,31,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgu=[0,a(d),kf,11,kf,31,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgx=[0,a(cP),[0,a(w8),0]],bgD=[0,a(d),mM,10,mM,22,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgy=[0,a(d),mM,10,mM,22,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgE=[0,a(cP),[0,a(wG),0]],bgN=[0,a(d),n3,11,n3,41,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgF=[0,a(d),n3,11,n3,41,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgO=[0,a(cP),[0,a(yv),0]],bgU=[0,a(d),mL,11,mL,33,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgP=[0,a(d),mL,11,mL,33,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bgV=[0,a(cP),[0,a(Eh),0]],bgZ=[0,a(cP),[0,a(bA),0]],bg2=[0,a(d),mG,10,mG,29,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bg0=[0,a(d),mG,10,mG,29,[0,a(bJ),[0,a(s),[0,a(i),[0,a(e),0]]]]],bg3=[0,a(cP),[0,a(eV),0]],bgr=[0,a(D),yG,14,yG,36,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bgm=[0,a(U),[0,a(bE),[0,a(ai),0]]],bgn=[0,a(U),[0,a(bE),0]],bgo=[0,a(U),[0,a(bE),[0,a(aj),0]]],bgp=[0,a(U),[0,a(bE),0]],bgq=a(n),bgs=[0,a(d),lU,10,lU,25,[0,a(C),[0,a(y),[0,a(e),0]]]],bgl=[0,a(d),lU,10,lU,25,[0,a(C),[0,a(y),[0,a(e),0]]]],bgi=[0,a(D),Bd,14,Bd,36,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bf9=[0,a(U),[0,a(ei),[0,a(ai),0]]],bf_=[0,a(U),[0,a(ei),0]],bf$=[0,a(U),[0,a(ei),[0,a(aj),0]]],bga=[0,a(U),[0,a(ei),0]],bgb=[0,a(bh),[0,a(bK),[0,a(ai),0]]],bgc=[0,a(bh),[0,a(bK),0]],bgd=[0,a(bh),[0,a(bK),[0,a(aj),0]]],bge=[0,a(bh),[0,a(bK),0]],bgf=a(kL),bgg=a(n),bgh=a(n),bgj=[0,a(d),mo,10,mo,40,[0,a(C),[0,a(y),[0,a(e),0]]]],bf8=[0,a(d),mo,10,mo,40,[0,a(C),[0,a(y),[0,a(e),0]]]],bf5=[0,a(D),u9,14,u9,36,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfW=[0,a(U),[0,a(bD),[0,a(ai),0]]],bfX=[0,a(U),[0,a(bD),0]],bfY=[0,a(U),[0,a(bD),[0,a(aj),0]]],bfZ=[0,a(U),[0,a(bD),0]],bf0=[0,a(U),[0,a(eG),[0,a(ai),0]]],bf1=[0,a(U),[0,a(eG),0]],bf2=[0,a(U),[0,a(eG),[0,a(aj),0]]],bf3=[0,a(U),[0,a(eG),0]],bf4=a(n),bf6=[0,a(d),of,10,of,32,[0,a(C),[0,a(y),[0,a(e),0]]]],bfV=[0,a(d),of,10,of,32,[0,a(C),[0,a(y),[0,a(e),0]]]],bfS=[0,a(D),B1,14,B1,33,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfO=[0,a(D),zU,14,zU,47,[0,a(oA),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfJ=[0,a(U),[0,a(da),[0,a(ai),0]]],bfK=[0,a(U),[0,a(da),0]],bfL=[0,a(U),[0,a(da),[0,a(aj),0]]],bfM=[0,a(U),[0,a(da),0]],bfN=a(n),bfP=[0,a(d),np,11,np,44,[0,a(C),[0,a(y),[0,a(e),0]]]],bfI=[0,a(d),np,11,np,44,[0,a(C),[0,a(y),[0,a(e),0]]]],bfF=[0,a(D),E_,14,E_,41,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfB=[0,a(D),vj,14,vj,33,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfx=[0,a(D),wE,14,wE,33,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfs=[0,a(D),4660,7,4663,45,[0,a(oA),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bft=[0,a(d),gN,11,gN,47,[0,a(C),[0,a(y),[0,a(e),0]]]],bfr=[0,a(D),uG,14,uG,50,[0,a(oA),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfl=[0,a(D),nh,14,nh,62,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfm=[0,a(D),nh,14,nh,62,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfn=[0,a(U),[0,a("calcul_apl_logement_foyer.n_nombre_parts_d832_25"),0]],bfi=[0,a(D),nx,14,nx,61,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfj=[0,a(D),nx,14,nx,61,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bfk=[0,a(U),[0,a(Dm),0]],bff=[0,a(d),hC,14,hC,49,[0,a(C),[0,a(y),[0,a(e),0]]]],bfe=a(n),bfa=[0,a(d),hP,14,hP,53,[0,a(C),[0,a(y),[0,a(e),0]]]],be8=[0,a(d),iR,14,iR,44,[0,a(C),[0,a(y),[0,a(e),0]]]],be4=[0,a(d),ia,14,ia,70,[0,a(C),[0,a(y),[0,a(e),0]]]],be0=[0,a(d),fY,14,fY,65,[0,a(C),[0,a(y),[0,a(e),0]]]],beW=[0,a(d),ji,14,ji,67,[0,a(C),[0,a(y),[0,a(e),0]]]],beS=[0,a(d),is,14,is,61,[0,a(C),[0,a(y),[0,a(e),0]]]],beO=[0,a(d),jp,14,jp,59,[0,a(C),[0,a(y),[0,a(e),0]]]],beN=[3,0],beH=[0,a(D),i5,14,i5,70,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beD=[0,a(D),hu,14,hu,69,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bez=[0,a(D),iT,14,iT,75,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beu=[0,a(D),vW,5,vW,44,[0,a(A1),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bem=[0,a(U),[0,a(dy),[0,a(ai),0]]],ben=[0,a(U),[0,a(dy),0]],beo=[0,a(U),[0,a(dy),[0,a(aj),0]]],bep=[0,a(U),[0,a(dy),0]],beq=[0,a(U),[0,a(dy),[0,a(ai),0]]],ber=[0,a(U),[0,a(dy),0]],bes=[0,a(U),[0,a(dy),[0,a(aj),0]]],bet=[0,a(U),[0,a(dy),0]],bev=[0,a(d),hV,11,hV,36,[0,a(C),[0,a(y),[0,a(e),0]]]],bel=[0,a(D),u7,14,u7,39,[0,a(A1),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beh=[0,a(U),[0,a(dy),[0,a(ai),0]]],bei=[0,a(U),[0,a(dy),0]],bej=[0,a(U),[0,a(dy),[0,a(aj),0]]],bek=[0,a(U),[0,a(dy),0]],bec=[0,a(D),Db,5,Db,28,[0,a(m0),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bed=[0,a(d),iK,10,iK,15,[0,a(C),[0,a(y),[0,a(e),0]]]],beb=[0,a(D),EC,14,EC,41,[0,a(m0),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bd_=a(c0),bd$=a(qN),bea=a("4999"),bd3=[0,a(aJ),fU,24,fU,56,[0,a(oc),[0,a(bv),[0,a(aK),0]]]],bdU=a(db),bdV=[0,a(U),[0,a(b6),[0,a(ai),0]]],bdW=[0,a(U),[0,a(b6),0]],bdX=[0,a(U),[0,a(b6),[0,a(aj),0]]],bdY=[0,a(U),[0,a(b6),0]],bdZ=[0,a(U),[0,a(b6),[0,a(ai),0]]],bd0=[0,a(U),[0,a(b6),0]],bd1=[0,a(U),[0,a(b6),[0,a(aj),0]]],bd2=[0,a(U),[0,a(b6),0]],bd4=[0,a(d),eQ,10,eQ,26,[0,a(C),[0,a(y),[0,a(e),0]]]],bdT=[0,a(O),Dg,24,Dg,56,[0,a(oc),[0,a(bk),[0,a(K),0]]]],bdK=a(db),bdL=[0,a(U),[0,a(b6),[0,a(ai),0]]],bdM=[0,a(U),[0,a(b6),0]],bdN=[0,a(U),[0,a(b6),[0,a(aj),0]]],bdO=[0,a(U),[0,a(b6),0]],bdP=[0,a(U),[0,a(b6),[0,a(ai),0]]],bdQ=[0,a(U),[0,a(b6),0]],bdR=[0,a(U),[0,a(b6),[0,a(aj),0]]],bdS=[0,a(U),[0,a(b6),0]],bd5=[0,a(d),eQ,10,eQ,26,[0,a(C),[0,a(y),[0,a(e),0]]]],bd6=[0,a(d),eQ,10,eQ,26,[0,a(C),[0,a(y),[0,a(e),0]]]],bdJ=[0,a(O),xw,14,xw,46,[0,a(bP),[0,a(bk),[0,a(K),0]]]],bdF=[0,a(U),[0,a(b6),[0,a(ai),0]]],bdG=[0,a(U),[0,a(b6),0]],bdH=[0,a(U),[0,a(b6),[0,a(aj),0]]],bdI=[0,a(U),[0,a(b6),0]],bd7=[0,a(d),eQ,10,eQ,26,[0,a(C),[0,a(y),[0,a(e),0]]]],bdE=[0,a(d),eQ,10,eQ,26,[0,a(C),[0,a(y),[0,a(e),0]]]],bdB=[0,a(D),BH,15,BH,37,[0,a(oA),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bdC=[0,a(d),mA,11,mA,33,[0,a(C),[0,a(y),[0,a(e),0]]]],bdA=[0,a(d),mA,11,mA,33,[0,a(C),[0,a(y),[0,a(e),0]]]],bdw=[0,a(D),4685,6,4691,6,[0,a(m0),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bdx=[0,a(d),fP,11,fP,42,[0,a(C),[0,a(y),[0,a(e),0]]]],bdu=[0,a(D),4703,5,4704,59,[0,a(m0),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],bdv=[0,a(d),fP,11,fP,42,[0,a(C),[0,a(y),[0,a(e),0]]]],bdp=[0,a(O),yP,5,yP,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],bcF=a(n),bcG=a("158700"),bcH=a("191300"),bcI=a(v),bcJ=a("205500"),bcK=a(T),bcL=a("211300"),bcM=a(Y),bcN=a("217100"),bcO=a(aa),bcP=a("222900"),bcQ=a(N),bcR=a(zw),bcS=a(N),bcT=a("19800"),bcU=a(zw),bcV=a(n),bcW=a("139300"),bcX=a("170600"),bcY=a(v),bcZ=a("184700"),bc0=a(T),bc1=a("191200"),bc2=a(Y),bc3=a(yO),bc4=a(aa),bc5=a("204200"),bc6=a(N),bc7=a(v0),bc8=a(N),bc9=a(r5),bc_=a(v0),bc$=a(n),bda=a("130600"),bdb=a("158400"),bdc=a(v),bdd=a("172600"),bde=a(T),bdf=a(C2),bdg=a(Y),bdh=a("187000"),bdi=a(aa),bdj=a("194200"),bdk=a(N),bdl=a(rs),bdm=a(N),bdn=a("18200"),bdo=a(rs),bdq=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],bcD=[0,a(O),vf,5,vf,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],bbT=a(n),bbU=a("160400"),bbV=a("193400"),bbW=a(v),bbX=a("207800"),bbY=a(T),bbZ=a("213700"),bb0=a(Y),bb1=a("219600"),bb2=a(aa),bb3=a(x7),bb4=a(N),bb5=a(nY),bb6=a(N),bb7=a("20000"),bb8=a(nY),bb9=a(n),bb_=a(CO),bb$=a(C4),bca=a(v),bcb=a("186700"),bcc=a(T),bcd=a("193300"),bce=a(Y),bcf=a(qO),bcg=a(aa),bch=a("206500"),bci=a(N),bcj=a(wu),bck=a(N),bcl=a(yS),bcm=a(wu),bcn=a(n),bco=a(AL),bcp=a(qX),bcq=a(v),bcr=a("174500"),bcs=a(T),bct=a(w_),bcu=a(Y),bcv=a("189100"),bcw=a(aa),bcx=a("196400"),bcy=a(N),bcz=a(uS),bcA=a(N),bcB=a("18400"),bcC=a(uS),bcE=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],bbR=[0,a(O),u6,5,u6,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],ba7=a(n),ba8=a("163300"),ba9=a("196900"),ba_=a(v),ba$=a("211600"),bba=a(T),bbb=a(v6),bbc=a(Y),bbd=a("223600"),bbe=a(aa),bbf=a("229600"),bbg=a(N),bbh=a(AW),bbi=a(N),bbj=a("20400"),bbk=a(AW),bbl=a(n),bbm=a("143300"),bbn=a("175600"),bbo=a(v),bbp=a("190100"),bbq=a(T),bbr=a("196600"),bbs=a(Y),bbt=a("203500"),bbu=a(aa),bbv=a("210200"),bbw=a(N),bbx=a(DT),bby=a(N),bbz=a("19600"),bbA=a(DT),bbB=a(n),bbC=a("134400"),bbD=a(xd),bbE=a(v),bbF=a("177700"),bbG=a(T),bbH=a("185100"),bbI=a(Y),bbJ=a(v7),bbK=a(aa),bbL=a(qO),bbM=a(N),bbN=a(EP),bbO=a(N),bbP=a("18700"),bbQ=a(EP),bbS=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],ba5=[0,a(O),wN,5,wN,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],baj=a(n),bak=a("167200"),bal=a("201600"),bam=a(v),ban=a("216700"),bao=a(T),bap=a("222800"),baq=a(Y),bar=a("229000"),bas=a(aa),bat=a("235100"),bau=a(N),bav=a(EJ),baw=a(N),bax=a(vh),bay=a(EJ),baz=a(n),baA=a("146700"),baB=a(C2),baC=a(v),baD=a("194700"),baE=a(T),baF=a("201500"),baG=a(Y),baH=a("208400"),baI=a(aa),baJ=a("215200"),baK=a(N),baL=a(nY),baM=a(N),baN=a(AR),baO=a(nY),baP=a(n),baQ=a("137600"),baR=a("166900"),baS=a(v),baT=a("182000"),baU=a(T),baV=a("189500"),baW=a(Y),baX=a("197100"),baY=a(aa),baZ=a(Ci),ba0=a(N),ba1=a(Ay),ba2=a(N),ba3=a(r5),ba4=a(Ay),ba6=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],bah=[0,a(O),BF,5,BF,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a$x=a(n),a$y=a("167400"),a$z=a("201800"),a$A=a(v),a$B=a("216900"),a$C=a(T),a$D=a("223000"),a$E=a(Y),a$F=a("229200"),a$G=a(aa),a$H=a("235300"),a$I=a(N),a$J=a(zS),a$K=a(N),a$L=a(vh),a$M=a(zS),a$N=a(n),a$O=a("146800"),a$P=a("180000"),a$Q=a(v),a$R=a("194900"),a$S=a(T),a$T=a(Ef),a$U=a(Y),a$V=a(rs),a$W=a(aa),a$X=a("215400"),a$Y=a(N),a$Z=a(BJ),a$0=a(N),a$1=a(AR),a$2=a(BJ),a$3=a(n),a$4=a("137700"),a$5=a("167100"),a$6=a(v),a$7=a("182200"),a$8=a(T),a$9=a("189700"),a$_=a(Y),a$$=a("197300"),baa=a(aa),bab=a("204900"),bac=a(N),bad=a(CY),bae=a(N),baf=a(r5),bag=a(CY),bai=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a$v=[0,a(O),zD,5,zD,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a_L=a(n),a_M=a("169100"),a_N=a("203800"),a_O=a(v),a_P=a("219100"),a_Q=a(T),a_R=a("225200"),a_S=a(Y),a_T=a("231500"),a_U=a(aa),a_V=a("237700"),a_W=a(N),a_X=a(l6),a_Y=a(N),a_Z=a("21100"),a_0=a(l6),a_1=a(n),a_2=a("148300"),a_3=a(w_),a_4=a(v),a_5=a("196800"),a_6=a(T),a_7=a("203700"),a_8=a(Y),a_9=a("210700"),a__=a(aa),a_$=a(v6),a$a=a(N),a$b=a(wy),a$c=a(N),a$d=a("20300"),a$e=a(wy),a$f=a(n),a$g=a("139100"),a$h=a("168800"),a$i=a(v),a$j=a(rt),a$k=a(T),a$l=a("191600"),a$m=a(Y),a$n=a("199300"),a$o=a(aa),a$p=a("206900"),a$q=a(N),a$r=a(Ai),a$s=a(N),a$t=a(yS),a$u=a(Ai),a$w=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a_J=[0,a(O),Em,5,Em,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a9Z=a(n),a90=a("171100"),a91=a("206200"),a92=a(v),a93=a("221700"),a94=a(T),a95=a("227900"),a96=a(Y),a97=a("234300"),a98=a(aa),a99=a("240600"),a9_=a(N),a9$=a(zm),a_a=a(N),a_b=a("21400"),a_c=a(zm),a_d=a(n),a_e=a("150100"),a_f=a(rt),a_g=a(v),a_h=a("199200"),a_i=a(T),a_j=a("206100"),a_k=a(Y),a_l=a("213200"),a_m=a(aa),a_n=a("220200"),a_o=a(N),a_p=a(yx),a_q=a(N),a_r=a("20500"),a_s=a(yx),a_t=a(n),a_u=a(CO),a_v=a("170800"),a_w=a(v),a_x=a("186200"),a_y=a(T),a_z=a("193900"),a_A=a(Y),a_B=a(Ef),a_C=a(aa),a_D=a("209400"),a_E=a(N),a_F=a(Ah),a_G=a(N),a_H=a("19500"),a_I=a(Ah),a_K=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a9X=[0,a(O),Bf,5,Bf,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a9b=a(n),a9c=a("26084"),a9d=a("31435"),a9e=a(v),a9f=a("33798"),a9g=a(T),a9h=a("34743"),a9i=a(Y),a9j=a("35719"),a9k=a(aa),a9l=a("36679"),a9m=a(N),a9n=a(yC),a9o=a(N),a9p=a("3262"),a9q=a(yC),a9r=a(n),a9s=a("22883"),a9t=a("28051"),a9u=a(v),a9v=a("30368"),a9w=a(T),a9x=a("31420"),a9y=a(Y),a9z=a("32502"),a9A=a(aa),a9B=a("33569"),a9C=a(N),a9D=a(Eu),a9E=a(N),a9F=a("3125"),a9G=a(Eu),a9H=a(n),a9I=a("21465"),a9J=a("26038"),a9K=a(v),a9L=a("28386"),a9M=a(T),a9N=a("29560"),a9O=a(Y),a9P=a("30749"),a9Q=a(aa),a9R=a("31923"),a9S=a(N),a9T=a(DW),a9U=a(N),a9V=a("2973"),a9W=a(DW),a9Y=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a8$=[0,a(O),D_,5,D_,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a8p=a(n),a8q=a("26397"),a8r=a("31812"),a8s=a(v),a8t=a("34204"),a8u=a(T),a8v=a("35160"),a8w=a(Y),a8x=a("36148"),a8y=a(aa),a8z=a("37119"),a8A=a(N),a8B=a(y0),a8C=a(N),a8D=a("3301"),a8E=a(y0),a8F=a(n),a8G=a("23158"),a8H=a("28388"),a8I=a(v),a8J=a("30732"),a8K=a(T),a8L=a(mF),a8M=a(Y),a8N=a("32892"),a8O=a(aa),a8P=a("33972"),a8Q=a(N),a8R=a(DF),a8S=a(N),a8T=a("3163"),a8U=a(DF),a8V=a(n),a8W=a("21723"),a8X=a("26350"),a8Y=a(v),a8Z=a("28727"),a80=a(T),a81=a("29915"),a82=a(Y),a83=a("31118"),a84=a(aa),a85=a("32306"),a86=a(N),a87=a(wS),a88=a(N),a89=a("3009"),a8_=a(wS),a9a=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a8n=[0,a(O),D5,5,D5,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a7D=a(n),a7E=a(Fb),a7F=a("32194"),a7G=a(v),a7H=a("34614"),a7I=a(T),a7J=a("35582"),a7K=a(Y),a7L=a("36582"),a7M=a(aa),a7N=a("37564"),a7O=a(N),a7P=a(wi),a7Q=a(N),a7R=a("3341"),a7S=a(wi),a7T=a(n),a7U=a("23436"),a7V=a("28729"),a7W=a(v),a7X=a("31101"),a7Y=a(T),a7Z=a("32179"),a70=a(Y),a71=a("33287"),a72=a(aa),a73=a("34380"),a74=a(N),a75=a(Ag),a76=a(N),a77=a("3201"),a78=a(Ag),a79=a(n),a7_=a("21984"),a7$=a("26666"),a8a=a(v),a8b=a("29072"),a8c=a(T),a8d=a("30274"),a8e=a(Y),a8f=a("31491"),a8g=a(aa),a8h=a("32694"),a8i=a(N),a8j=a(AZ),a8k=a(N),a8l=a("3045"),a8m=a(AZ),a8o=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a7B=[0,a(O),yo,5,yo,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a6R=a(n),a6S=a("27195"),a6T=a("32773"),a6U=a(v),a6V=a("35237"),a6W=a(T),a6X=a("36222"),a6Y=a(Y),a6Z=a("37240"),a60=a(aa),a61=a("38240"),a62=a(N),a63=a(AV),a64=a(N),a65=a("3401"),a66=a(AV),a67=a(n),a68=a("23858"),a69=a("29246"),a6_=a(v),a6$=a("31661"),a7a=a(T),a7b=a("32758"),a7c=a(Y),a7d=a("33886"),a7e=a(aa),a7f=a("34999"),a7g=a(N),a7h=a(y3),a7i=a(N),a7j=a("3259"),a7k=a(y3),a7l=a(n),a7m=a("22380"),a7n=a("27146"),a7o=a(v),a7p=a("29595"),a7q=a(T),a7r=a("30819"),a7s=a(Y),a7t=a("32058"),a7u=a(aa),a7v=a("33282"),a7w=a(N),a7x=a(z7),a7y=a(N),a7z=a("3100"),a7A=a(z7),a7C=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a6P=[0,a(O),zc,5,zc,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a55=a(n),a56=a("27956"),a57=a("33691"),a58=a(v),a59=a("36224"),a5_=a(T),a5$=a("37236"),a6a=a(Y),a6b=a("38283"),a6c=a(aa),a6d=a("39311"),a6e=a(N),a6f=a(x_),a6g=a(N),a6h=a("3496"),a6i=a(x_),a6j=a(n),a6k=a("24526"),a6l=a("30065"),a6m=a(v),a6n=a("32548"),a6o=a(T),a6p=a("33675"),a6q=a(Y),a6r=a(ED),a6s=a(aa),a6t=a("35979"),a6u=a(N),a6v=a(Ad),a6w=a(N),a6x=a("3350"),a6y=a(Ad),a6z=a(n),a6A=a("23007"),a6B=a("27906"),a6C=a(v),a6D=a("30424"),a6E=a(T),a6F=a("31682"),a6G=a(Y),a6H=a(yf),a6I=a(aa),a6J=a("34214"),a6K=a(N),a6L=a(DA),a6M=a(N),a6N=a("3187"),a6O=a(DA),a6Q=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a53=[0,a(O),wd,5,wd,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a5h=a(n),a5i=a("28728"),a5j=a("34621"),a5k=a(v),a5l=a("37224"),a5m=a(T),a5n=a("38264"),a5o=a(Y),a5p=a(xK),a5q=a(aa),a5r=a("40396"),a5s=a(N),a5t=a(xj),a5u=a(N),a5v=a("3592"),a5w=a(xj),a5x=a(n),a5y=a("25203"),a5z=a("30895"),a5A=a(v),a5B=a("33446"),a5C=a(T),a5D=a("34604"),a5E=a(Y),a5F=a("35796"),a5G=a(aa),a5H=a("36972"),a5I=a(N),a5J=a(Eo),a5K=a(N),a5L=a("3442"),a5M=a(Eo),a5N=a(n),a5O=a("23642"),a5P=a("28676"),a5Q=a(v),a5R=a(wY),a5S=a(T),a5T=a("32556"),a5U=a(Y),a5V=a("33866"),a5W=a(aa),a5X=a("35158"),a5Y=a(N),a5Z=a(vS),a50=a(N),a51=a("3275"),a52=a(vS),a54=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a5f=[0,a(O),xt,5,xt,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a4v=a(n),a4w=a("29575"),a4x=a("35642"),a4y=a(v),a4z=a("38322"),a4A=a(T),a4B=a("39393"),a4C=a(Y),a4D=a("40501"),a4E=a(aa),a4F=a("41588"),a4G=a(N),a4H=a(CD),a4I=a(N),a4J=a("3698"),a4K=a(CD),a4L=a(n),a4M=a("25946"),a4N=a("31806"),a4O=a(v),a4P=a("34433"),a4Q=a(T),a4R=a("35625"),a4S=a(Y),a4T=a("36852"),a4U=a(aa),a4V=a("38063"),a4W=a(N),a4X=a(z2),a4Y=a(N),a4Z=a("3544"),a40=a(z2),a41=a(n),a42=a("24339"),a43=a("29522"),a44=a(v),a45=a("32186"),a46=a(T),a47=a("33516"),a48=a(Y),a49=a(ED),a4_=a(aa),a4$=a("36195"),a5a=a(N),a5b=a(Dt),a5c=a(N),a5d=a("3372"),a5e=a(Dt),a5g=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a4t=[0,a(O),EL,5,EL,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a3J=a(n),a3K=a("29670"),a3L=a("35757"),a3M=a(v),a3N=a("38445"),a3O=a(T),a3P=a("39519"),a3Q=a(Y),a3R=a("40601"),a3S=a(aa),a3T=a("41721"),a3U=a(N),a3V=a(CJ),a3W=a(N),a3X=a("3710"),a3Y=a(CJ),a3Z=a(n),a30=a("26029"),a31=a("31908"),a32=a(v),a33=a("34643"),a34=a(T),a35=a("35739"),a36=a(Y),a37=a("36970"),a38=a(aa),a39=a("38185"),a3_=a(N),a3$=a(Az),a4a=a(N),a4b=a("3555"),a4c=a(Az),a4d=a(n),a4e=a("24417"),a4f=a("29616"),a4g=a(v),a4h=a("32289"),a4i=a(T),a4j=a(y4),a4k=a(Y),a4l=a("34977"),a4m=a(aa),a4n=a("36311"),a4o=a(N),a4p=a(zK),a4q=a(N),a4r=a("3383"),a4s=a(zK),a4u=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a3H=[0,a(O),x2,5,x2,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a2X=a(n),a2Y=a("29996"),a2Z=a("36149"),a20=a(v),a21=a("38868"),a22=a(T),a23=a("39954"),a24=a(Y),a25=a("41078"),a26=a(aa),a27=a("42180"),a28=a(N),a29=a(AO),a2_=a(N),a2$=a("3751"),a3a=a(AO),a3b=a(n),a3c=a("26315"),a3d=a("32259"),a3e=a(v),a3f=a("34923"),a3g=a(T),a3h=a("36132"),a3i=a(Y),a3j=a("37373"),a3k=a(aa),a3l=a("38605"),a3m=a(N),a3n=a(CR),a3o=a(N),a3p=a("3594"),a3q=a(CR),a3r=a(n),a3s=a("24686"),a3t=a("29942"),a3u=a(v),a3v=a("32644"),a3w=a(T),a3x=a("33993"),a3y=a(Y),a3z=a("35362"),a3A=a(aa),a3B=a("36710"),a3C=a(N),a3D=a(z0),a3E=a(N),a3F=a("3420"),a3G=a(z0),a3I=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a2V=[0,a(O),yD,5,yD,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a1$=a(n),a2a=a("30296"),a2b=a("36510"),a2c=a(v),a2d=a("39257"),a2e=a(T),a2f=a("40354"),a2g=a(Y),a2h=a("41489"),a2i=a(aa),a2j=a("42602"),a2k=a(N),a2l=a(vx),a2m=a(N),a2n=a("3789"),a2o=a(vx),a2p=a(n),a2q=a("26578"),a2r=a("32582"),a2s=a(v),a2t=a("35272"),a2u=a(T),a2v=a("36493"),a2w=a(Y),a2x=a("37751"),a2y=a(aa),a2z=a("38991"),a2A=a(N),a2B=a(w$),a2C=a(N),a2D=a("3630"),a2E=a(w$),a2F=a(n),a2G=a("24933"),a2H=a("30241"),a2I=a(v),a2J=a("32970"),a2K=a(T),a2L=a("34333"),a2M=a(Y),a2N=a("35716"),a2O=a(aa),a2P=a("37077"),a2Q=a(N),a2R=a(uL),a2S=a(N),a2T=a("3454"),a2U=a(uL),a2W=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a19=[0,a(O),Ee,5,Ee,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a1n=a(n),a1o=a("30947"),a1p=a("37295"),a1q=a(v),a1r=a("40101"),a1s=a(T),a1t=a("41222"),a1u=a(Y),a1v=a("42381"),a1w=a(aa),a1x=a("43518"),a1y=a(N),a1z=a(B6),a1A=a(N),a1B=a("3870"),a1C=a(B6),a1D=a(n),a1E=a("27149"),a1F=a("33283"),a1G=a(v),a1H=a("36030"),a1I=a(T),a1J=a("37278"),a1K=a(Y),a1L=a("38563"),a1M=a(aa),a1N=a("39829"),a1O=a(N),a1P=a("42649"),a1Q=a(N),a1R=a("3708"),a1S=a("42659"),a1T=a(n),a1U=a("25469"),a1V=a("30891"),a1W=a(v),a1X=a("33679"),a1Y=a(T),a1Z=a("35071"),a10=a(Y),a11=a("36484"),a12=a(aa),a13=a("37874"),a14=a(N),a15=a(B$),a16=a(N),a17=a("3528"),a18=a(B$),a1_=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a1l=[0,a(O),yb,5,yb,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],a0B=a(n),a0C=a("31123"),a0D=a("37508"),a0E=a(v),a0F=a("40330"),a0G=a(T),a0H=a("41457"),a0I=a(Y),a0J=a("42623"),a0K=a(aa),a0L=a("43766"),a0M=a(N),a0N=a(uN),a0O=a(N),a0P=a("3892"),a0Q=a(uN),a0R=a(n),a0S=a("27304"),a0T=a("33473"),a0U=a(v),a0V=a("36235"),a0W=a(T),a0X=a("37490"),a0Y=a(Y),a0Z=a("38783"),a00=a(aa),a01=a("40056"),a02=a(N),a03=a(Bv),a04=a(N),a05=a("3729"),a06=a(Bv),a07=a(n),a08=a("25614"),a09=a("31067"),a0_=a(v),a0$=a("33871"),a1a=a(T),a1b=a("35271"),a1c=a(Y),a1d=a("36692"),a1e=a(aa),a1f=a("38090"),a1g=a(N),a1h=a(yR),a1i=a(N),a1j=a("3548"),a1k=a(yR),a1m=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],a0z=[0,a(O),xG,5,xG,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],aZP=a(n),aZQ=a("31148"),aZR=a("37538"),aZS=a(v),aZT=a("40362"),aZU=a(T),aZV=a("41490"),aZW=a(Y),aZX=a("42657"),aZY=a(aa),aZZ=a("43801"),aZ0=a(N),aZ1=a(wU),aZ2=a(N),aZ3=a("3895"),aZ4=a(wU),aZ5=a(n),aZ6=a("27326"),aZ7=a(EW),aZ8=a(v),aZ9=a("36264"),aZ_=a(T),aZ$=a("37520"),a0a=a(Y),a0b=a("38814"),a0c=a(aa),a0d=a("40088"),a0e=a(N),a0f=a(EO),a0g=a(N),a0h=a("3732"),a0i=a(EO),a0j=a(n),a0k=a("25634"),a0l=a("31092"),a0m=a(v),a0n=a("33898"),a0o=a(T),a0p=a("35299"),a0q=a(Y),a0r=a("36721"),a0s=a(aa),a0t=a("38120"),a0u=a(N),a0v=a(zH),a0w=a(N),a0x=a("3551"),a0y=a(zH),a0A=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],aZN=[0,a(O),Am,5,Am,64,[0,a(bP),[0,a(bk),[0,a(K),0]]]],aY3=a(n),aY4=a("31382"),aY5=a("37820"),aY6=a(v),aY7=a("40665"),aY8=a(T),aY9=a("41801"),aY_=a(Y),aY$=a("42977"),aZa=a(aa),aZb=a("44130"),aZc=a(N),aZd=a(zA),aZe=a(N),aZf=a("3924"),aZg=a(zA),aZh=a(n),aZi=a("27531"),aZj=a("33751"),aZk=a(v),aZl=a("36536"),aZm=a(T),aZn=a("37801"),aZo=a(Y),aZp=a("39105"),aZq=a(aa),aZr=a("40389"),aZs=a(N),aZt=a(wb),aZu=a(N),aZv=a("3760"),aZw=a(wb),aZx=a(n),aZy=a("25826"),aZz=a("31325"),aZA=a(v),aZB=a("34152"),aZC=a(T),aZD=a("35564"),aZE=a(Y),aZF=a("36996"),aZG=a(aa),aZH=a("38406"),aZI=a(N),aZJ=a(y7),aZK=a(N),aZL=a("3578"),aZM=a(y7),aZO=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],aY1=[0,a(O),A5,5,A5,33,[0,a(bP),[0,a(bk),[0,a(K),0]]]],aYf=a(n),aYg=a("31476"),aYh=a("37933"),aYi=a(v),aYj=a("40787"),aYk=a(T),aYl=a("41927"),aYm=a(Y),aYn=a("43106"),aYo=a(aa),aYp=a("44262"),aYq=a(N),aYr=a(vX),aYs=a(N),aYt=a("3936"),aYu=a(vX),aYv=a(n),aYw=a("27614"),aYx=a("33853"),aYy=a(v),aYz=a("36646"),aYA=a(T),aYB=a("37915"),aYC=a(Y),aYD=a("39222"),aYE=a(aa),aYF=a("40510"),aYG=a(N),aYH=a(D6),aYI=a(N),aYJ=a("3771"),aYK=a(D6),aYL=a(n),aYM=a("25904"),aYN=a("31419"),aYO=a(v),aYP=a("34255"),aYQ=a(T),aYR=a("35670"),aYS=a(Y),aYT=a("37107"),aYU=a(aa),aYV=a("38521"),aYW=a(N),aYX=a(EY),aYY=a(N),aYZ=a("3588"),aY0=a(EY),aY2=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],bdr=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],aYe=[0,a(d),aN,10,aN,14,[0,a(C),[0,a(y),[0,a(e),0]]]],aYb=[0,a(D),Fc,14,Fc,36,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aX$=a(n),aYa=a(n),aYc=[0,a(d),nS,10,nS,32,[0,a(C),[0,a(y),[0,a(e),0]]]],aX_=[0,a(d),nS,10,nS,32,[0,a(C),[0,a(y),[0,a(e),0]]]],aX5=[0,a(aJ),yI,5,yI,16,[0,a(oc),[0,a(bv),[0,a(aK),0]]]],aX2=a(gE),aX3=a(qo),aX4=a(fb),aX6=[0,a(d),c2,11,c2,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aX1=[0,a(aJ),dP,43,dP,70,[0,a(u8),[0,a(bv),[0,a(aK),0]]]],aXX=a(n),aXY=a(fb),aXZ=a(gE),aX0=a(fb),aX7=[0,a(d),c2,11,c2,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXU=[0,a(O),xX,5,xX,16,[0,a(oc),[0,a(bk),[0,a(K),0]]]],aXR=a(gs),aXS=a(qM),aXT=a(fj),aXV=[0,a(d),c2,11,c2,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXQ=[0,a(O),xe,31,xe,58,[0,a(u8),[0,a(bk),[0,a(K),0]]]],aXM=a(n),aXN=a(fj),aXO=a(gs),aXP=a(fj),aXW=[0,a(d),c2,11,c2,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXL=[0,a(d),c2,47,c2,53,[0,a(C),[0,a(y),[0,a(e),0]]]],aXF=[0,a(d),iJ,14,iJ,50,[0,a(C),[0,a(y),[0,a(e),0]]]],aXz=[0,a(D),ig,14,ig,64,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aXv=[0,a(D),hF,14,hF,59,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aXr=[0,a(O),Cy,14,Cy,33,[0,a(B9),[0,a(bk),[0,a(K),0]]]],aXq=a(z3),aXm=[0,a(O),v4,14,v4,33,[0,a(BM),[0,a(bk),[0,a(K),0]]]],aXl=a(r2),aXh=[0,a(O),Dk,14,Dk,41,[0,a(B9),[0,a(bk),[0,a(K),0]]]],aXg=a("390000"),aXc=[0,a(O),zk,14,zk,41,[0,a(BM),[0,a(bk),[0,a(K),0]]]],aXb=a(qx),aW9=[0,a(O),Af,14,Af,41,[0,a("Article 36"),[0,a(bk),[0,a(K),0]]]],aW8=a(h9),aW4=[0,a(fy),cZ,14,cZ,36,[0,a(Cf),[0,a(yB),0]]],aW2=a(va),aW3=a(ek),aWY=[0,a(O),yq,14,yq,40,[0,a("Article 35"),[0,a(bk),[0,a(K),0]]]],aWX=a(ka),aWZ=[0,a(d),n9,11,n9,37,[0,a(C),[0,a(y),[0,a(e),0]]]],aWW=[0,a(d),n9,11,n9,37,[0,a(C),[0,a(y),[0,a(e),0]]]],aW0=[0,a(U),[0,a("montant_forfaitaire_d842_6"),0]],aW5=[0,a(d),nW,11,nW,33,[0,a(C),[0,a(y),[0,a(e),0]]]],aW1=[0,a(d),nW,11,nW,33,[0,a(C),[0,a(y),[0,a(e),0]]]],aW6=[0,a(U),[0,a(EA),0]],aW_=[0,a(d),oT,11,oT,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aW7=[0,a(d),oT,11,oT,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aW$=[0,a(U),[0,a("montant_minimal_aide_d842_6"),0]],aXd=[0,a(d),lF,11,lF,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXa=[0,a(d),lF,11,lF,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXe=[0,a(U),[0,a("montant_forfaitaire_d842_11"),0]],aXi=[0,a(d),mD,11,mD,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXf=[0,a(d),mD,11,mD,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXj=[0,a(U),[0,a("montant_forfaitaire_d842_12"),0]],aXn=[0,a(d),oG,11,oG,30,[0,a(C),[0,a(y),[0,a(e),0]]]],aXk=[0,a(d),oG,11,oG,30,[0,a(C),[0,a(y),[0,a(e),0]]]],aXo=[0,a(U),[0,a("coefficient_d842_11"),0]],aXs=[0,a(d),l0,11,l0,30,[0,a(C),[0,a(y),[0,a(e),0]]]],aXp=[0,a(d),l0,11,l0,30,[0,a(C),[0,a(y),[0,a(e),0]]]],aXt=[0,a(U),[0,a("coefficient_d842_12"),0]],aXw=[0,a(D),hF,14,hF,59,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aXx=[0,a(U),[0,a(m4),0]],aXu=[0,a(D),hF,14,hF,59,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aXA=[0,a(D),ig,14,ig,64,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aXB=[0,a(U),[0,a(nN),0]],aXy=[0,a(D),ig,14,ig,64,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aXC=[0,a(U),[0,a(f4),[0,a(kh),0]]],aXD=[0,a(U),[0,a(f4),[0,a(kh),0]]],aXG=[0,a(d),iJ,14,iJ,50,[0,a(C),[0,a(y),[0,a(e),0]]]],aXH=[0,a(U),[0,a(kp),0]],aXE=[0,a(d),iJ,14,iJ,50,[0,a(C),[0,a(y),[0,a(e),0]]]],aXI=[0,a(U),[0,a(eF),[0,a(bh),0]]],aXJ=[0,a(U),[0,a(eF),[0,a(bh),0]]],aX8=[0,a(d),c2,11,c2,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aXK=[0,a(d),c2,11,c2,38,[0,a(C),[0,a(y),[0,a(e),0]]]],aX9=[0,a(U),[0,a(uY),0]],aYd=[0,a(U),[0,a(bD),0]],bds=[0,a(U),[0,a(b6),0]],bdy=[0,a(d),fP,11,fP,42,[0,a(C),[0,a(y),[0,a(e),0]]]],bdt=[0,a(d),fP,11,fP,42,[0,a(C),[0,a(y),[0,a(e),0]]]],bdz=[0,a(U),[0,a("seuil_minimal_ressources_m\xc3\xa9nage"),0]],bdD=[0,a(U),[0,a(da),0]],bd8=[0,a(U),[0,a(dy),0]],bee=[0,a(d),iK,10,iK,15,[0,a(C),[0,a(y),[0,a(e),0]]]],bd9=[0,a(d),iK,10,iK,15,[0,a(C),[0,a(y),[0,a(e),0]]]],bef=[0,a(U),[0,a(B_),0]],bew=[0,a(d),hV,11,hV,36,[0,a(C),[0,a(y),[0,a(e),0]]]],beg=[0,a(d),hV,11,hV,36,[0,a(C),[0,a(y),[0,a(e),0]]]],bex=[0,a(U),[0,a("plafond_mensualit\xc3\xa9_d842_6"),0]],beA=[0,a(D),iT,14,iT,75,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beB=[0,a(U),[0,a(mv),0]],bey=[0,a(D),iT,14,iT,75,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beE=[0,a(D),hu,14,hu,69,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beF=[0,a(U),[0,a(oa),0]],beC=[0,a(D),hu,14,hu,69,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beI=[0,a(D),i5,14,i5,70,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beJ=[0,a(U),[0,a(ml),0]],beG=[0,a(D),i5,14,i5,70,[0,a(bx),[0,a(ag),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],beK=[0,a(U),[0,a(fD),[0,a(dE),0]]],beL=[0,a(U),[0,a(fD),[0,a(dE),0]]],beP=[0,a(d),jp,14,jp,59,[0,a(C),[0,a(y),[0,a(e),0]]]],beQ=[0,a(U),[0,a(xg),0]],beM=[0,a(d),jp,14,jp,59,[0,a(C),[0,a(y),[0,a(e),0]]]],beT=[0,a(d),is,14,is,61,[0,a(C),[0,a(y),[0,a(e),0]]]],beU=[0,a(U),[0,a(yX),0]],beR=[0,a(d),is,14,is,61,[0,a(C),[0,a(y),[0,a(e),0]]]],beX=[0,a(d),ji,14,ji,67,[0,a(C),[0,a(y),[0,a(e),0]]]],beY=[0,a(U),[0,a(ve),0]],beV=[0,a(d),ji,14,ji,67,[0,a(C),[0,a(y),[0,a(e),0]]]],be1=[0,a(d),fY,14,fY,65,[0,a(C),[0,a(y),[0,a(e),0]]]],be2=[0,a(U),[0,a(Ev),0]],beZ=[0,a(d),fY,14,fY,65,[0,a(C),[0,a(y),[0,a(e),0]]]],be5=[0,a(d),ia,14,ia,70,[0,a(C),[0,a(y),[0,a(e),0]]]],be6=[0,a(U),[0,a(BD),0]],be3=[0,a(d),ia,14,ia,70,[0,a(C),[0,a(y),[0,a(e),0]]]],be9=[0,a(d),iR,14,iR,44,[0,a(C),[0,a(y),[0,a(e),0]]]],be_=[0,a(U),[0,a(BS),0]],be7=[0,a(d),iR,14,iR,44,[0,a(C),[0,a(y),[0,a(e),0]]]],bfb=[0,a(d),hP,14,hP,53,[0,a(C),[0,a(y),[0,a(e),0]]]],bfc=[0,a(U),[0,a(Ea),0]],be$=[0,a(d),hP,14,hP,53,[0,a(C),[0,a(y),[0,a(e),0]]]],bfg=[0,a(d),hC,14,hC,49,[0,a(C),[0,a(y),[0,a(e),0]]]],bfh=[0,a(U),[0,a(vI),0]],bfd=[0,a(d),hC,14,hC,49,[0,a(C),[0,a(y),[0,a(e),0]]]],bfo=[0,a(U),[0,a(nw),[0,a(az),0]]],bfp=[0,a(U),[0,a(nw),[0,a(az),0]]],bfu=[0,a(d),gN,11,gN,47,[0,a(C),[0,a(y),[0,a(e),0]]]],bfq=[0,a(d),gN,11,gN,47,[0,a(C),[0,a(y),[0,a(e),0]]]],bfv=[0,a(U),[0,a("seuil_minimal_d\xc3\xa9pense_nette_minimale"),0]],bfy=[0,a(d),n5,11,n5,30,[0,a(C),[0,a(y),[0,a(e),0]]]],bfw=[0,a(d),n5,11,n5,30,[0,a(C),[0,a(y),[0,a(e),0]]]],bfz=[0,a(U),[0,a(Ez),0]],bfC=[0,a(d),gB,11,gB,30,[0,a(C),[0,a(y),[0,a(e),0]]]],bfA=[0,a(d),gB,11,gB,30,[0,a(C),[0,a(y),[0,a(e),0]]]],bfD=[0,a(U),[0,a(yi),0]],bfG=[0,a(d),kC,11,kC,38,[0,a(C),[0,a(y),[0,a(e),0]]]],bfE=[0,a(d),kC,11,kC,38,[0,a(C),[0,a(y),[0,a(e),0]]]],bfH=[0,a(U),[0,a(x3),0]],bfQ=[0,a(U),[0,a(eG),0]],bfT=[0,a(d),mQ,10,mQ,29,[0,a(C),[0,a(y),[0,a(e),0]]]],bfR=[0,a(d),mQ,10,mQ,29,[0,a(C),[0,a(y),[0,a(e),0]]]],bfU=[0,a(U),[0,a(eV),0]],bf7=[0,a(U),[0,a(ei),0]],bgk=[0,a(U),[0,a(bE),0]],bgt=[0,a(U),[0,a(fg),0]],aWT=[0,a(D),E0,14,E0,36,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aWO=[0,a(aq),[0,a(bE),[0,a(ai),0]]],aWP=[0,a(aq),[0,a(bE),0]],aWQ=[0,a(aq),[0,a(bE),[0,a(aj),0]]],aWR=[0,a(aq),[0,a(bE),0]],aWS=a(n),aWU=[0,a(d),mU,10,mU,25,[0,a(M),[0,a(y),[0,a(e),0]]]],aWN=[0,a(d),mU,10,mU,25,[0,a(M),[0,a(y),[0,a(e),0]]]],aWK=[0,a(D),zp,14,zp,36,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aWz=[0,a(aq),[0,a(ku),[0,a(ai),0]]],aWA=[0,a(aq),[0,a(ku),0]],aWB=[0,a(aq),[0,a(ku),[0,a(aj),0]]],aWC=[0,a(aq),[0,a(ku),0]],aWD=[0,a(bh),[0,a(bK),[0,a(ai),0]]],aWE=[0,a(bh),[0,a(bK),0]],aWF=[0,a(bh),[0,a(bK),[0,a(aj),0]]],aWG=[0,a(bh),[0,a(bK),0]],aWH=a(kL),aWI=a(n),aWJ=a(n),aWL=[0,a(d),lH,10,lH,40,[0,a(M),[0,a(y),[0,a(e),0]]]],aWy=[0,a(d),lH,10,lH,40,[0,a(M),[0,a(y),[0,a(e),0]]]],aWv=[0,a(D),zy,14,zy,36,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aWr=[0,a(aq),[0,a(ei),[0,a(ai),0]]],aWs=[0,a(aq),[0,a(ei),0]],aWt=[0,a(aq),[0,a(ei),[0,a(aj),0]]],aWu=[0,a(aq),[0,a(ei),0]],aWw=[0,a(d),nG,10,nG,19,[0,a(M),[0,a(y),[0,a(e),0]]]],aWq=[0,a(d),nG,10,nG,19,[0,a(M),[0,a(y),[0,a(e),0]]]],aWn=[0,a(D),AB,14,AB,36,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aWd=[0,a(aq),[0,a(bD),[0,a(ai),0]]],aWe=[0,a(aq),[0,a(bD),0]],aWf=[0,a(aq),[0,a(bD),[0,a(aj),0]]],aWg=[0,a(aq),[0,a(bD),0]],aWh=[0,a(aq),[0,a(eG),[0,a(ai),0]]],aWi=[0,a(aq),[0,a(eG),0]],aWj=[0,a(aq),[0,a(eG),[0,a(aj),0]]],aWk=[0,a(aq),[0,a(eG),0]],aWl=a(n),aWm=a(n),aWo=[0,a(d),lS,10,lS,32,[0,a(M),[0,a(y),[0,a(e),0]]]],aWc=[0,a(d),lS,10,lS,32,[0,a(M),[0,a(y),[0,a(e),0]]]],aV$=[0,a(D),Bi,14,Bi,33,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aV7=[0,a(D),BN,14,BN,47,[0,a(B2),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVY=[0,a(aq),[0,a(da),[0,a(ai),0]]],aVZ=[0,a(aq),[0,a(da),0]],aV0=[0,a(aq),[0,a(da),[0,a(aj),0]]],aV1=[0,a(aq),[0,a(da),0]],aV2=[0,a(aq),[0,a(da),[0,a(ai),0]]],aV3=[0,a(aq),[0,a(da),0]],aV4=[0,a(aq),[0,a(da),[0,a(aj),0]]],aV5=[0,a(aq),[0,a(da),0]],aV6=a(n),aV8=[0,a(d),nM,11,nM,44,[0,a(M),[0,a(y),[0,a(e),0]]]],aVX=[0,a(d),nM,11,nM,44,[0,a(M),[0,a(y),[0,a(e),0]]]],aVU=[0,a(D),yM,14,yM,27,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVQ=[0,a(D),vH,14,vH,36,[0,a(B2),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVR=[0,a(d),jY,11,jY,33,[0,a(M),[0,a(y),[0,a(e),0]]]],aVP=[0,a(d),jY,11,jY,33,[0,a(M),[0,a(y),[0,a(e),0]]]],aVM=[0,a(D),wn,14,wn,41,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVG=[0,a(D),hq,14,hq,70,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVC=[0,a(D),g$,14,g$,69,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVy=[0,a(D),hn,14,hn,75,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVu=[0,a(D),DH,14,DH,36,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVs=a(n),aVt=a(n),aVv=[0,a(d),kz,10,kz,32,[0,a(M),[0,a(y),[0,a(e),0]]]],aVr=[0,a(d),kz,10,kz,32,[0,a(M),[0,a(y),[0,a(e),0]]]],aVn=[0,a(O),yu,6,yu,79,[0,a(fA),[0,a(fR),[0,a(K),0]]]],aVl=a("8708"),aVm=a("13559"),aVo=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aVj=[0,a(O),4369,6,4370,38,[0,a(fA),[0,a(fR),[0,a(K),0]]]],aVh=a("21362"),aVi=a("33196"),aVk=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aVe=[0,a(O),4387,6,4388,24,[0,a(fA),[0,a(fR),[0,a(K),0]]]],aVc=a(zE),aVd=a(zV),aVf=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aVb=[0,a(O),4351,6,4352,46,[0,a(fA),[0,a(fR),[0,a(K),0]]]],aU$=a(zE),aVa=a(zV),aVg=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aU9=[0,a(aJ),D1,6,D1,79,[0,a(fA),[0,a(bv),[0,a(aK),0]]]],aU7=a("8414"),aU8=a("13100"),aU_=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aU5=[0,a(aJ),gI,6,b7,38,[0,a(fA),[0,a(bv),[0,a(aK),0]]]],aU3=a("20640"),aU4=a("32073"),aU6=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aU0=[0,a(aJ),712,6,kl,24,[0,a(fA),[0,a(bv),[0,a(aK),0]]]],aUY=a(C$),aUZ=a(ze),aU1=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aUX=[0,a(aJ),674,6,675,46,[0,a(fA),[0,a(bv),[0,a(aK),0]]]],aUV=a(C$),aUW=a(ze),aU2=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aUQ=[0,a(O),DM,14,DM,41,[0,a(Bg),[0,a(fR),[0,a(K),0]]]],aUM=a(n),aUN=a(fj),aUO=a(gs),aUP=a(fj),aUR=[0,a(d),fx,10,fx,37,[0,a(M),[0,a(y),[0,a(e),0]]]],aUK=[0,a(aJ),w6,14,w6,41,[0,a(Bg),[0,a(bv),[0,a(aK),0]]]],aUG=a(n),aUH=a(fb),aUI=a(gE),aUJ=a(fb),aUL=[0,a(d),fx,10,fx,37,[0,a(M),[0,a(y),[0,a(e),0]]]],aUA=[0,a(D),ok,14,ok,61,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aUB=[0,a(D),ok,14,ok,61,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aUC=[0,a(aq),[0,a(Dm),0]],aUx=[0,a(d),h0,14,h0,49,[0,a(M),[0,a(y),[0,a(e),0]]]],aUt=[0,a(d),gH,14,gH,53,[0,a(M),[0,a(y),[0,a(e),0]]]],aUp=[0,a(d),iq,14,iq,44,[0,a(M),[0,a(y),[0,a(e),0]]]],aUl=[0,a(d),it,14,it,70,[0,a(M),[0,a(y),[0,a(e),0]]]],aUh=[0,a(d),gx,14,gx,65,[0,a(M),[0,a(y),[0,a(e),0]]]],aUd=[0,a(d),he,14,he,67,[0,a(M),[0,a(y),[0,a(e),0]]]],aT$=[0,a(d),iB,14,iB,61,[0,a(M),[0,a(y),[0,a(e),0]]]],aT7=[0,a(d),iF,14,iF,59,[0,a(M),[0,a(y),[0,a(e),0]]]],aT1=[0,a(d),iN,14,iN,50,[0,a(M),[0,a(y),[0,a(e),0]]]],aTV=[0,a(D),je,14,je,64,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTR=[0,a(D),hJ,14,hJ,59,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTN=[0,a(D),hr,14,hr,55,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTJ=[0,a(O),uO,14,uO,51,[0,a("Article 44"),[0,a(fR),[0,a(K),0]]]],aTI=a(qx),aTE=[0,a(O),zW,14,zW,41,[0,a("Article 41"),[0,a(fR),[0,a(K),0]]]],aTD=a(ka),aTz=[0,a(O),xv,14,xv,42,[0,a("Article 42"),[0,a(fR),[0,a(K),0]]]],aTy=a(h9),aTA=[0,a(d),iW,11,iW,39,[0,a(M),[0,a(y),[0,a(e),0]]]],aTx=[0,a(d),iW,11,iW,39,[0,a(M),[0,a(y),[0,a(e),0]]]],aTB=[0,a(aq),[0,a("montant_minimal_aide_d842_15"),0]],aTF=[0,a(d),lM,11,lM,38,[0,a(M),[0,a(y),[0,a(e),0]]]],aTC=[0,a(d),lM,11,lM,38,[0,a(M),[0,a(y),[0,a(e),0]]]],aTG=[0,a(aq),[0,a("montant_forfaitaire_d842_15"),0]],aTK=[0,a(d),na,11,na,48,[0,a(M),[0,a(y),[0,a(e),0]]]],aTH=[0,a(d),na,11,na,48,[0,a(M),[0,a(y),[0,a(e),0]]]],aTL=[0,a(aq),[0,a("montant_minimal_d\xc3\xa9pense_nette_d842_17"),0]],aTO=[0,a(D),hr,14,hr,55,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTP=[0,a(aq),[0,a(AT),0]],aTM=[0,a(D),hr,14,hr,55,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTS=[0,a(D),hJ,14,hJ,59,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTT=[0,a(aq),[0,a(m4),0]],aTQ=[0,a(D),hJ,14,hJ,59,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTW=[0,a(D),je,14,je,64,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTX=[0,a(aq),[0,a(nN),0]],aTU=[0,a(D),je,14,je,64,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTY=[0,a(aq),[0,a(f4),[0,a(ko),0]]],aTZ=[0,a(aq),[0,a(f4),[0,a(ko),0]]],aT2=[0,a(d),iN,14,iN,50,[0,a(M),[0,a(y),[0,a(e),0]]]],aT3=[0,a(aq),[0,a(kp),0]],aT0=[0,a(d),iN,14,iN,50,[0,a(M),[0,a(y),[0,a(e),0]]]],aT4=[0,a(aq),[0,a(eF),[0,a(bh),0]]],aT5=[0,a(aq),[0,a(eF),[0,a(bh),0]]],aT8=[0,a(d),iF,14,iF,59,[0,a(M),[0,a(y),[0,a(e),0]]]],aT9=[0,a(aq),[0,a(xg),0]],aT6=[0,a(d),iF,14,iF,59,[0,a(M),[0,a(y),[0,a(e),0]]]],aUa=[0,a(d),iB,14,iB,61,[0,a(M),[0,a(y),[0,a(e),0]]]],aUb=[0,a(aq),[0,a(yX),0]],aT_=[0,a(d),iB,14,iB,61,[0,a(M),[0,a(y),[0,a(e),0]]]],aUe=[0,a(d),he,14,he,67,[0,a(M),[0,a(y),[0,a(e),0]]]],aUf=[0,a(aq),[0,a(ve),0]],aUc=[0,a(d),he,14,he,67,[0,a(M),[0,a(y),[0,a(e),0]]]],aUi=[0,a(d),gx,14,gx,65,[0,a(M),[0,a(y),[0,a(e),0]]]],aUj=[0,a(aq),[0,a(Ev),0]],aUg=[0,a(d),gx,14,gx,65,[0,a(M),[0,a(y),[0,a(e),0]]]],aUm=[0,a(d),it,14,it,70,[0,a(M),[0,a(y),[0,a(e),0]]]],aUn=[0,a(aq),[0,a(BD),0]],aUk=[0,a(d),it,14,it,70,[0,a(M),[0,a(y),[0,a(e),0]]]],aUq=[0,a(d),iq,14,iq,44,[0,a(M),[0,a(y),[0,a(e),0]]]],aUr=[0,a(aq),[0,a(BS),0]],aUo=[0,a(d),iq,14,iq,44,[0,a(M),[0,a(y),[0,a(e),0]]]],aUu=[0,a(d),gH,14,gH,53,[0,a(M),[0,a(y),[0,a(e),0]]]],aUv=[0,a(aq),[0,a(Ea),0]],aUs=[0,a(d),gH,14,gH,53,[0,a(M),[0,a(y),[0,a(e),0]]]],aUy=[0,a(d),h0,14,h0,49,[0,a(M),[0,a(y),[0,a(e),0]]]],aUz=[0,a(aq),[0,a(vI),0]],aUw=[0,a(d),h0,14,h0,49,[0,a(M),[0,a(y),[0,a(e),0]]]],aUD=[0,a(aq),[0,a(nw),[0,a(az),0]]],aUE=[0,a(aq),[0,a(nw),[0,a(az),0]]],aUS=[0,a(d),fx,10,fx,37,[0,a(M),[0,a(y),[0,a(e),0]]]],aUF=[0,a(d),fx,10,fx,37,[0,a(M),[0,a(y),[0,a(e),0]]]],aUT=[0,a(aq),[0,a(uY),0]],aVp=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aUU=[0,a(d),cc,10,cc,27,[0,a(M),[0,a(y),[0,a(e),0]]]],aVq=[0,a(aq),[0,a("\xc3\xa9quivalence_loyer"),0]],aVw=[0,a(aq),[0,a(bD),0]],aVz=[0,a(D),hn,14,hn,75,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVA=[0,a(aq),[0,a(mv),0]],aVx=[0,a(D),hn,14,hn,75,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVD=[0,a(D),g$,14,g$,69,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVE=[0,a(aq),[0,a(oa),0]],aVB=[0,a(D),g$,14,g$,69,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVH=[0,a(D),hq,14,hq,70,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVI=[0,a(aq),[0,a(ml),0]],aVF=[0,a(D),hq,14,hq,70,[0,a(bs),[0,a(ah),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aVJ=[0,a(aq),[0,a(fD),[0,a(dE),0]]],aVK=[0,a(aq),[0,a(fD),[0,a(dE),0]]],aVN=[0,a(d),mS,10,mS,37,[0,a(M),[0,a(y),[0,a(e),0]]]],aVL=[0,a(d),mS,10,mS,37,[0,a(M),[0,a(y),[0,a(e),0]]]],aVO=[0,a(aq),[0,a(x3),0]],aVS=[0,a(aq),[0,a(da),0]],aVV=[0,a(d),ne,10,ne,23,[0,a(M),[0,a(y),[0,a(e),0]]]],aVT=[0,a(d),ne,10,ne,23,[0,a(M),[0,a(y),[0,a(e),0]]]],aVW=[0,a(aq),[0,a("loyer_minimal"),0]],aV9=[0,a(aq),[0,a(eG),0]],aWa=[0,a(d),nr,10,nr,29,[0,a(M),[0,a(y),[0,a(e),0]]]],aV_=[0,a(d),nr,10,nr,29,[0,a(M),[0,a(y),[0,a(e),0]]]],aWb=[0,a(aq),[0,a(eV),0]],aWp=[0,a(aq),[0,a(ei),0]],aWx=[0,a(aq),[0,a(ku),0]],aWM=[0,a(aq),[0,a(bE),0]],aWV=[0,a(aq),[0,a(fg),0]],aTt=[0,a(D),zx,24,zx,43,[0,a(Eq),[0,a(r$),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTs=a(n),aTu=[0,a(d),h5,10,h5,29,[0,a(J),[0,a(y),[0,a(e),0]]]],aTr=[0,a(d),q0,14,q0,33,[0,a(J),[0,a(y),[0,a(e),0]]]],aTm=[0,a(D),xi,24,xi,46,[0,a(Eq),[0,a(r$),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aTn=[0,a(d),iZ,10,iZ,32,[0,a(J),[0,a(y),[0,a(e),0]]]],aTl=[0,a(d),AF,14,AF,36,[0,a(J),[0,a(y),[0,a(e),0]]]],aTh=[0,a(aM),[0,a(fg),[0,a(ai),0]]],aTi=[0,a(aM),[0,a(fg),0]],aTj=[0,a(aM),[0,a(fg),[0,a(aj),0]]],aTk=[0,a(aM),[0,a(fg),0]],aTo=[0,a(d),iZ,10,iZ,32,[0,a(J),[0,a(y),[0,a(e),0]]]],aTg=[0,a(d),iZ,10,iZ,32,[0,a(J),[0,a(y),[0,a(e),0]]]],aTb=[0,a(d),gr,14,gr,55,[0,a(J),[0,a(y),[0,a(e),0]]]],aS9=[0,a(d),eR,14,eR,59,[0,a(J),[0,a(y),[0,a(e),0]]]],aS5=[0,a(d),gz,14,gz,43,[0,a(J),[0,a(y),[0,a(e),0]]]],aS1=[0,a(d),hA,14,hA,42,[0,a(J),[0,a(y),[0,a(e),0]]]],aSX=[0,a(d),rC,5,q6,63,[0,a(J),[0,a(y),[0,a(e),0]]]],aST=[0,a(d),hH,14,hH,53,[0,a(J),[0,a(y),[0,a(e),0]]]],aSP=[0,a(d),jl,14,jl,37,[0,a(J),[0,a(y),[0,a(e),0]]]],aSL=[0,a(d),gJ,14,gJ,63,[0,a(J),[0,a(y),[0,a(e),0]]]],aSH=[0,a(d),hx,14,hx,58,[0,a(J),[0,a(y),[0,a(e),0]]]],aSD=[0,a(d),ic,14,ic,46,[0,a(J),[0,a(y),[0,a(e),0]]]],aSz=[0,a(d),iX,14,iX,78,[0,a(J),[0,a(y),[0,a(e),0]]]],aSv=[0,a(d),hD,14,hD,60,[0,a(J),[0,a(y),[0,a(e),0]]]],aSr=[0,a(d),i_,14,i_,48,[0,a(J),[0,a(y),[0,a(e),0]]]],aSs=[0,a(d),i_,14,i_,48,[0,a(J),[0,a(y),[0,a(e),0]]]],aSt=[0,a(cB),[0,a("calcul_apl_locatif.loyer_principal_base"),0]],aSq=[0,a(d),i_,14,i_,48,[0,a(J),[0,a(y),[0,a(e),0]]]],aSw=[0,a(d),hD,14,hD,60,[0,a(J),[0,a(y),[0,a(e),0]]]],aSx=[0,a(cB),[0,a("calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies"),0]],aSu=[0,a(d),hD,14,hD,60,[0,a(J),[0,a(y),[0,a(e),0]]]],aSA=[0,a(d),iX,14,iX,78,[0,a(J),[0,a(y),[0,a(e),0]]]],aSB=[0,a(cB),[0,a("calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),0]],aSy=[0,a(d),iX,14,iX,78,[0,a(J),[0,a(y),[0,a(e),0]]]],aSE=[0,a(d),ic,14,ic,46,[0,a(J),[0,a(y),[0,a(e),0]]]],aSF=[0,a(cB),[0,a("calcul_apl_locatif.date_courante"),0]],aSC=[0,a(d),ic,14,ic,46,[0,a(J),[0,a(y),[0,a(e),0]]]],aSI=[0,a(d),hx,14,hx,58,[0,a(J),[0,a(y),[0,a(e),0]]]],aSJ=[0,a(cB),[0,a("calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge"),0]],aSG=[0,a(d),hx,14,hx,58,[0,a(J),[0,a(y),[0,a(e),0]]]],aSM=[0,a(d),gJ,14,gJ,63,[0,a(J),[0,a(y),[0,a(e),0]]]],aSN=[0,a(cB),[0,a("calcul_apl_locatif.situation_familiale_calcul_apl"),0]],aSK=[0,a(d),gJ,14,gJ,63,[0,a(J),[0,a(y),[0,a(e),0]]]],aSQ=[0,a(d),jl,14,jl,37,[0,a(J),[0,a(y),[0,a(e),0]]]],aSR=[0,a(cB),[0,a("calcul_apl_locatif.zone"),0]],aSO=[0,a(d),jl,14,jl,37,[0,a(J),[0,a(y),[0,a(e),0]]]],aSU=[0,a(d),hH,14,hH,53,[0,a(J),[0,a(y),[0,a(e),0]]]],aSV=[0,a(cB),[0,a("calcul_apl_locatif.logement_est_chambre"),0]],aSS=[0,a(d),hH,14,hH,53,[0,a(J),[0,a(y),[0,a(e),0]]]],aSY=[0,a(d),rC,5,q6,63,[0,a(J),[0,a(y),[0,a(e),0]]]],aSZ=[0,a(cB),[0,a("calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),0]],aSW=[0,a(d),rC,5,q6,63,[0,a(J),[0,a(y),[0,a(e),0]]]],aS2=[0,a(d),hA,14,hA,42,[0,a(J),[0,a(y),[0,a(e),0]]]],aS3=[0,a(cB),[0,a("calcul_apl_locatif.type_aide"),0]],aS0=[0,a(d),hA,14,hA,42,[0,a(J),[0,a(y),[0,a(e),0]]]],aS6=[0,a(d),gz,14,gz,43,[0,a(J),[0,a(y),[0,a(e),0]]]],aS7=[0,a(cB),[0,a("calcul_apl_locatif.colocation"),0]],aS4=[0,a(d),gz,14,gz,43,[0,a(J),[0,a(y),[0,a(e),0]]]],aS_=[0,a(d),eR,14,eR,59,[0,a(J),[0,a(y),[0,a(e),0]]]],aS$=[0,a(cB),[0,a("calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9"),0]],aS8=[0,a(d),eR,14,eR,59,[0,a(J),[0,a(y),[0,a(e),0]]]],aTc=[0,a(d),gr,14,gr,55,[0,a(J),[0,a(y),[0,a(e),0]]]],aTd=[0,a(cB),[0,a("calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2"),0]],aTa=[0,a(d),gr,14,gr,55,[0,a(J),[0,a(y),[0,a(e),0]]]],aTe=[0,a(cB),[0,a(D9),[0,a(aM),0]]],aTf=[0,a(cB),[0,a(D9),[0,a(aM),0]]],aTp=[0,a(cB),[0,a(bA),0]],aTv=[0,a(d),h5,10,h5,29,[0,a(J),[0,a(y),[0,a(e),0]]]],aTq=[0,a(d),h5,10,h5,29,[0,a(J),[0,a(y),[0,a(e),0]]]],aTw=[0,a(cB),[0,a(eV),0]],aSk=[0,a(md),67,5,71,21,[0,a(gt),[0,a(gq),[0,a(d5),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],aSl=[0,a(bB),40,10,40,22,[0,a(bF),0]],aSj=[0,a(md),56,5,57,50,[0,a(gt),[0,a(gq),[0,a(d5),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],aSm=[0,a(bB),40,10,40,22,[0,a(bF),0]],aSn=[0,a(bB),40,10,40,22,[0,a(bF),0]],aSi=[0,a(bB),40,10,40,22,[0,a(bF),0]],aSo=[0,a(bB),40,10,40,22,[0,a(bF),0]],aSh=[0,a(bB),40,10,40,22,[0,a(bF),0]],aSd=[0,a(md),77,5,81,24,[0,a(gt),[0,a(gq),[0,a(d5),[0,a(ax),[0,a(Z),[0,a($),0]]]]]]],aSe=[0,a(bB),41,10,41,29,[0,a(bF),0]],aSc=[0,a(bB),41,10,41,29,[0,a(bF),0]],aSf=[0,a(bB),41,10,41,29,[0,a(bF),0]],aSb=[0,a(bB),41,10,41,29,[0,a(bF),0]],aR9=[0,a(qV),62,18,62,41,[0,a(w2),[0,a(eT),[0,a(gA),[0,a(dO),[0,a(c1),[0,a($),0]]]]]]],aR7=a(oE),aR8=a(nL),aR_=[0,a(bB),42,11,42,27,[0,a(bF),0]],aR6=[0,a(qV),31,14,31,30,[0,a(lJ),[0,a(nC),[0,a(d5),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],aR4=a(oE),aR5=a(nL),aRT=[0,0],aRV=[1,0],aRW=[2,0],aRX=[3,0],aRY=[4,0],aRZ=[5,0],aRU=[0,a(md),cU,5,ww,30,[0,a(B0),[0,a(xY),[0,a(j6),[0,a(dO),[0,a(Z),[0,a($),0]]]]]]],aR0=[0,a(bB),44,10,44,33,[0,a(bF),0]],aRS=[0,a(bB),44,10,44,33,[0,a(bF),0]],aRM=[0,a(bB),51,14,51,28,[0,a(bF),0]],aRI=[0,a(bB),52,14,52,32,[0,a(bF),0]],aRE=[0,a(qV),21,14,21,26,[0,a(lJ),[0,a(nC),[0,a(d5),[0,a(ax),[0,a(c1),[0,a($),0]]]]]]],aRF=[0,a(bB),43,10,43,22,[0,a(bF),0]],aRD=[0,a(bB),43,10,43,22,[0,a(bF),0]],aRG=[0,a(cl),[0,a(yw),0]],aRJ=[0,a(bB),52,14,52,32,[0,a(bF),0]],aRK=[0,a(cl),[0,a(D$),0]],aRH=[0,a(bB),52,14,52,32,[0,a(bF),0]],aRN=[0,a(bB),51,14,51,28,[0,a(bF),0]],aRO=[0,a(cl),[0,a(CM),0]],aRL=[0,a(bB),51,14,51,28,[0,a(bF),0]],aRP=[0,a(cl),[0,a(f5),[0,a(hj),0]]],aRQ=[0,a(cl),[0,a(f5),[0,a(hj),0]]],aR1=[0,a(bB),44,10,44,33,[0,a(bF),0]],aRR=[0,a(bB),44,10,44,33,[0,a(bF),0]],aR2=[0,a(cl),[0,a(uQ),0]],aR$=[0,a(bB),42,11,42,27,[0,a(bF),0]],aR3=[0,a(bB),42,11,42,27,[0,a(bF),0]],aSa=[0,a(cl),[0,a(zJ),0]],aSg=[0,a(cl),[0,a(iL),0]],aSp=[0,a(cl),[0,a(dd),0]],aRy=[0,a(D),rK,14,rK,32,[0,a(mq),[0,a(ix),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRw=a(cG),aRx=a(n),aRr=[0,a(D),aN,6,gN,35,[0,a("Article R822-20"),[0,a("Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants"),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRs=[0,a(d),ja,10,ja,37,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRq=[0,a(D),n0,14,n0,41,[0,a(lO),[0,a(lR),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRm=[0,a(D),E6,14,E6,32,[0,a("Article R822-8"),[0,a(ix),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRl=a(n),aRf=[0,a(D),ik,14,ik,65,[0,a(mq),[0,a(ix),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRb=[0,a(D),yp,14,yp,33,[0,a("Article R822-10"),[0,a(ix),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aQ4=a(n),aQ5=a(n),aQ_=a(T),aQ$=a("90100"),aRa=a("135000"),aQ6=a(n),aQ7=a(n),aQ8=a(n),aQ9=a(n),aQ0=[0,a(D),ip,14,ip,62,[0,a(lO),[0,a(lR),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aQZ=a(n),aQV=[0,a(d),fX,51,fX,57,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQR=[0,a(O),11,14,11,41,[0,a("Article 3"),[0,a(w4),[0,a(K),0]]]],aQQ=a("9500"),aQM=[0,a(O),21,14,21,41,[0,a("Article 4"),[0,a(w4),[0,a(K),0]]]],aQL=a("258900"),aQH=[0,a(d),D4,46,D4,52,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQI=[0,a(d),i4,10,i4,15,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQG=[0,a(d),i4,10,i4,15,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQJ=[0,a(dM),[0,a(B_),0]],aQN=[0,a(d),hd,11,hd,38,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQK=[0,a(d),hd,11,hd,38,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQO=[0,a(dM),[0,a("montant_forfaitaire_r_822_8"),0]],aQS=[0,a(d),mf,11,mf,38,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQP=[0,a(d),mf,11,mf,38,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQT=[0,a(dM),[0,a("montant_forfaitaire_r_822_7"),0]],aQW=[0,a(d),fX,11,fX,42,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQU=[0,a(d),fX,11,fX,42,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQX=[0,a(dM),[0,a("ressources_forfaitaires_r822_20"),0]],aQ1=[0,a(d),lQ,11,lQ,59,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQY=[0,a(d),lQ,11,lQ,59,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQ2=[0,a(dM),[0,a("ressources_personnes_vivant_habituellement_foyer"),0]],aRc=[0,a(d),nF,11,nF,30,[0,a(b_),[0,a(i),[0,a(e),0]]]],aQ3=[0,a(d),nF,11,nF,30,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRd=[0,a(dM),[0,a("abattement_r_822_10"),0]],aRg=[0,a(D),ik,14,ik,65,[0,a(mq),[0,a(ix),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRh=[0,a(dM),[0,a(CZ),0]],aRe=[0,a(D),ik,14,ik,65,[0,a(mq),[0,a(ix),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRi=[0,a(dM),[0,a(mC),[0,a(f2),0]]],aRj=[0,a(dM),[0,a(mC),[0,a(f2),0]]],aRn=[0,a(d),nn,11,nn,29,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRk=[0,a(d),nn,11,nn,29,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRo=[0,a(dM),[0,a("abattement_r_822_8"),0]],aRt=[0,a(d),ja,10,ja,37,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRp=[0,a(d),ja,10,ja,37,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRu=[0,a(dM),[0,a("ressources_prises_en_compte"),0]],aRz=[0,a(d),mg,11,mg,29,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRv=[0,a(d),mg,11,mg,29,[0,a(b_),[0,a(i),[0,a(e),0]]]],aRA=[0,a(dM),[0,a("abattement_r_822_7"),0]],aRB=[0,a(D),mk,13,Cv,74,[0,a(lO),[0,a(lR),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aRC=[0,a(D),mk,13,Cv,74,[0,a(lO),[0,a(lR),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aQw=[0,a(d),qv,14,qv,56,[0,a(V),[0,a(i),[0,a(e),0]]]],aQs=[0,a(d),Be,14,Be,63,[0,a(V),[0,a(i),[0,a(e),0]]]],aQq=a(bZ),aQr=a(bZ),aQm=[0,a(D),hh,14,hh,49,[0,a(kb),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aQi=[0,a(aQ),[0,a(kB),[0,a(ai),0]]],aQj=[0,a(aQ),[0,a(kB),0]],aQk=[0,a(aQ),[0,a(kB),[0,a(aj),0]]],aQl=[0,a(aQ),[0,a(kB),0]],aQc=a(Cu),aQb=[0,a(D),1202,4,1208,49,[0,a(kb),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aQd=[0,a(d),di,11,di,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aP8=[0,a(aQ),[0,a(fe),[0,a(ai),0]]],aP9=[0,a(aQ),[0,a(fe),0]],aP_=[0,a(aQ),[0,a(fe),[0,a(aj),0]]],aP$=[0,a(aQ),[0,a(fe),0]],aQa=[0,a(D),E5,5,E5,44,[0,a(kb),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aQe=[0,a(d),di,11,di,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aP6=[0,a(D),1138,5,gp,44,[0,a(kb),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aP7=[0,a(d),di,11,di,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aP5=[0,a(d),di,11,di,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aQf=[0,a(d),di,11,di,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aP4=[0,a(d),di,11,di,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aPZ=[0,0],aP0=a(Cu),aPY=[0,a(D),1162,5,1178,10,[0,a(kb),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aP1=[0,a(d),fk,10,fk,28,[0,a(V),[0,a(i),[0,a(e),0]]]],aPX=[0,a(d),fk,10,fk,28,[0,a(V),[0,a(i),[0,a(e),0]]]],aP2=[0,a(d),fk,10,fk,28,[0,a(V),[0,a(i),[0,a(e),0]]]],aPW=[0,a(d),fk,10,fk,28,[0,a(V),[0,a(i),[0,a(e),0]]]],aPS=[0,a(d),zP,5,uD,25,[0,a(V),[0,a(i),[0,a(e),0]]]],aPT=[0,a(d),fz,10,fz,21,[0,a(V),[0,a(i),[0,a(e),0]]]],aPR=[0,a(d),fz,10,fz,21,[0,a(V),[0,a(i),[0,a(e),0]]]],aPN=[0,a(c4),Fa,14,Fa,31,[0,a("Article L351-8"),[0,a("Section 5 : Taux et montant de la pension"),[0,a("Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite"),[0,a("Titre V : Assurance vieillesse - Assurance veuvage"),[0,a("Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale"),[0,a(Z),[0,a($),0]]]]]]]],aPH=[0,a(aB),72,5,73,52,[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]],aPI=[0,a(d),cZ,11,cZ,31,[0,a(V),[0,a(i),[0,a(e),0]]]],aPG=[0,a(aB),65,5,68,52,[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]],aPJ=[0,a(d),cZ,11,cZ,31,[0,a(V),[0,a(i),[0,a(e),0]]]],aPF=[0,a(d),cZ,11,cZ,31,[0,a(V),[0,a(i),[0,a(e),0]]]],aPy=[0,a(aB),mP,18,mP,75,[0,a(mn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aPx=a(n),aPz=[0,a(d),d8,11,d8,36,[0,a(V),[0,a(i),[0,a(e),0]]]],aPu=[4,0],aPv=[5,0],aPw=[0,a(aB),qu,18,rc,45,[0,a(mn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aPt=a(n),aPA=[0,a(d),d8,11,d8,36,[0,a(V),[0,a(i),[0,a(e),0]]]],aPs=[0,a(D),nJ,5,nJ,59,[0,a(DY),[0,a(Dn),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aPB=[0,a(d),d8,11,d8,36,[0,a(V),[0,a(i),[0,a(e),0]]]],aPr=[0,a(aB),hg,33,hg,58,[0,a(mn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aPq=a(n),aPm=[0,a(c4),cn,14,cn,32,[0,a(kd),[0,a(jZ),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(i2),[0,a(Z),[0,a($),0]]]]]]]]]],aPh=[0,a(aB),ES,18,ES,44,[0,a("Article L822-10"),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aPi=[0,a(d),fl,11,fl,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aPg=[0,a(d),fl,11,fl,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aO$=a(bZ),aO_=a(bZ),aO9=[0,a(aB),171,5,rn,66,[0,a(gn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aPa=[0,a(d),dQ,11,dQ,45,[0,a(V),[0,a(i),[0,a(e),0]]]],aO8=[0,a(aB),156,5,158,30,[0,a(gn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aPb=[0,a(d),dQ,11,dQ,45,[0,a(V),[0,a(i),[0,a(e),0]]]],aO7=[0,a(aB),cn,5,ww,33,[0,a(E3),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aPc=[0,a(d),dQ,11,dQ,45,[0,a(V),[0,a(i),[0,a(e),0]]]],aO6=[0,a(d),dQ,11,dQ,45,[0,a(V),[0,a(i),[0,a(e),0]]]],aO0=[0,a(aB),203,5,208,39,[0,a(CV),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aO1=[0,a(d),dZ,11,dZ,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aOZ=[0,a(aB),197,5,198,34,[0,a(CV),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aO2=[0,a(d),dZ,11,dZ,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aOY=[0,a(d),dZ,11,dZ,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aOT=[0,a(c4),329,5,zP,35,[0,a(rE),[0,a(rm),[0,a(rL),[0,a(qz),[0,a(q$),[0,a(a6),[0,a($),0]]]]]]]],aOS=a("999840"),aOU=[0,a(d),dc,11,dc,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aOQ=[0,a(c4),qv,5,335,35,[0,a(rE),[0,a(rm),[0,a(rL),[0,a(qz),[0,a(q$),[0,a(a6),[0,a($),0]]]]]]]],aOP=a("1041840"),aOR=[0,a(d),dc,11,dc,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aON=[0,a(c4),339,5,340,35,[0,a(rE),[0,a(rm),[0,a(rL),[0,a(qz),[0,a(q$),[0,a(a6),[0,a($),0]]]]]]]],aOM=a("1083840"),aOO=[0,a(d),dc,11,dc,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aOK=[0,a(fy),60,5,61,34,[0,a('Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"'),[0,a(Dy),0]]],aOJ=a("1100144"),aOL=[0,a(d),dc,11,dc,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aOH=[0,a(fy),93,5,94,34,[0,a('Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"'),[0,a(Dy),0]]],aOG=a("1088175"),aOI=[0,a(d),dc,11,dc,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aOB=[0,a(aB),du,5,h8,67,[0,a(E3),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aOC=[0,a(d),eC,11,eC,32,[0,a(V),[0,a(i),[0,a(e),0]]]],aOA=[0,a(d),eC,11,eC,32,[0,a(V),[0,a(i),[0,a(e),0]]]],aOw=[0,a(aB),l2,14,l2,40,[0,a(mn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aOq=[0,a(c4),eq,14,eq,61,[0,a(kd),[0,a(jZ),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(i2),[0,a(Z),[0,a($),0]]]]]]]]]],aOk=[0,a(aB),46,5,46,41,[0,a("Article L821-2"),[0,a(zs),[0,a(D3),[0,a(xL),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]]]],aOl=[0,a(d),dJ,12,dJ,51,[0,a(V),[0,a(i),[0,a(e),0]]]],aOj=[0,a(d),dJ,12,dJ,51,[0,a(V),[0,a(i),[0,a(e),0]]]],aOm=[0,a(d),dJ,12,dJ,51,[0,a(V),[0,a(i),[0,a(e),0]]]],aNZ=a(v),aN$=a(T),aOa=a(T),aOb=a(T),aOc=a(v),aOd=a(T),aN0=a(qq),aN1=a(qq),aN6=a(lN),aN7=a(lN),aN8=a(lN),aN9=a(qq),aN_=a(lN),aN2=a(BZ),aN3=a("8"),aN4=a(BZ),aN5=[0,a(D),1035,5,gF,65,[0,a("Article R822-25"),[0,a("Section 3 : Conditions relatives au logement"),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aOe=[0,a(d),d_,12,d_,38,[0,a(V),[0,a(i),[0,a(e),0]]]],aNY=[0,a(d),d_,12,d_,38,[0,a(V),[0,a(i),[0,a(e),0]]]],aOf=[0,a(d),d_,12,d_,38,[0,a(V),[0,a(i),[0,a(e),0]]]],aNT=[0,a(aB),D7,18,D7,67,[0,a("Article L822-8"),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aNU=[0,a(d),fC,11,fC,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aNS=[0,a(d),fC,11,fC,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aNN=[0,a(aB),Br,18,Br,61,[0,a("Article L822-9"),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aNO=[0,a(d),ey,11,ey,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aNM=[0,a(d),ey,11,ey,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aNI=[0,a(aB),eU,14,eU,43,[0,a(gn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aNE=[0,a(D),iW,14,iW,37,[0,a(DY),[0,a(Dn),[0,a(dv),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aND=a("3000000"),aNz=[0,a(D),a7,14,a7,41,[0,a(EB),[0,a(AP),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aNy=a(CT),aNu=[0,a(D),ba,14,ba,42,[0,a(EB),[0,a(AP),[0,a(a$),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aNt=a(CT),aNp=[0,a(d),hT,11,hT,48,[0,a(V),[0,a(i),[0,a(e),0]]]],aNl=[0,a(d),hB,11,hB,25,[0,a(V),[0,a(i),[0,a(e),0]]]],aNm=[0,a(d),hB,11,hB,25,[0,a(V),[0,a(i),[0,a(e),0]]]],aNk=[0,a(d),hB,11,hB,25,[0,a(V),[0,a(i),[0,a(e),0]]]],aNn=[0,a(aQ),[0,a("condition_pr\xc3\xaat"),0]],aNq=[0,a(d),hT,11,hT,48,[0,a(V),[0,a(i),[0,a(e),0]]]],aNo=[0,a(d),hT,11,hT,48,[0,a(V),[0,a(i),[0,a(e),0]]]],aNr=[0,a(aQ),[0,a("condition_peuplement_logement_l822_10"),0]],aNv=[0,a(d),oi,11,oi,39,[0,a(V),[0,a(i),[0,a(e),0]]]],aNs=[0,a(d),oi,11,oi,39,[0,a(V),[0,a(i),[0,a(e),0]]]],aNw=[0,a(aQ),[0,a("seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9"),0]],aNA=[0,a(d),nt,11,nt,38,[0,a(V),[0,a(i),[0,a(e),0]]]],aNx=[0,a(d),nt,11,nt,38,[0,a(V),[0,a(i),[0,a(e),0]]]],aNB=[0,a(aQ),[0,a("seuil_l822_3_parts_usufruit"),0]],aNF=[0,a(d),jk,11,jk,34,[0,a(V),[0,a(i),[0,a(e),0]]]],aNC=[0,a(d),jk,11,jk,34,[0,a(V),[0,a(i),[0,a(e),0]]]],aNG=[0,a(aQ),[0,a("seuil_l822_5_patrimoine"),0]],aNJ=[0,a(d),lP,11,lP,40,[0,a(V),[0,a(i),[0,a(e),0]]]],aNH=[0,a(d),lP,11,lP,40,[0,a(V),[0,a(i),[0,a(e),0]]]],aNK=[0,a(aQ),[0,a("usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille"),0]],aNP=[0,a(d),ey,11,ey,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aNL=[0,a(d),ey,11,ey,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aNQ=[0,a(aQ),[0,a("condition_non_ouverture_l822_9_decence_logement"),0]],aNV=[0,a(d),fC,11,fC,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aNR=[0,a(d),fC,11,fC,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aNW=[0,a(aQ),[0,a("condition_non_ouverture_l822_8"),0]],aOg=[0,a(d),d_,12,d_,38,[0,a(V),[0,a(i),[0,a(e),0]]]],aNX=[0,a(d),d_,12,d_,38,[0,a(V),[0,a(i),[0,a(e),0]]]],aOh=[0,a(aQ),[0,a("condition_logement_surface"),0]],aOn=[0,a(d),dJ,12,dJ,51,[0,a(V),[0,a(i),[0,a(e),0]]]],aOi=[0,a(d),dJ,12,dJ,51,[0,a(V),[0,a(i),[0,a(e),0]]]],aOo=[0,a(aQ),[0,a("condition_logement_r\xc3\xa9sidence_principale"),0]],aOr=[0,a(c4),eq,14,eq,61,[0,a(kd),[0,a(jZ),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(i2),[0,a(Z),[0,a($),0]]]]]]]]]],aOs=[0,a(aQ),[0,a("ouverture_droits_retraite.date_naissance_assur\xc3\xa9"),0]],aOp=[0,a(c4),eq,14,eq,61,[0,a(kd),[0,a(jZ),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(i2),[0,a(Z),[0,a($),0]]]]]]]]]],aOt=[0,a(aQ),[0,a(BV),[0,a(rv),0]]],aOu=[0,a(aQ),[0,a(BV),[0,a(rv),0]]],aOx=[0,a(d),l3,11,l3,37,[0,a(V),[0,a(i),[0,a(e),0]]]],aOv=[0,a(d),l3,11,l3,37,[0,a(V),[0,a(i),[0,a(e),0]]]],aOy=[0,a(aQ),[0,a("patrimoine_total_demandeur"),0]],aOD=[0,a(d),eC,11,eC,32,[0,a(V),[0,a(i),[0,a(e),0]]]],aOz=[0,a(d),eC,11,eC,32,[0,a(V),[0,a(i),[0,a(e),0]]]],aOE=[0,a(aQ),[0,a("condition_nationalit\xc3\xa9"),0]],aOV=[0,a(d),dc,11,dc,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aOF=[0,a(d),dc,11,dc,41,[0,a(V),[0,a(i),[0,a(e),0]]]],aOW=[0,a(aQ),[0,a("plafond_individuel_l815_9_s\xc3\xa9cu"),0]],aO3=[0,a(d),dZ,11,dZ,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aOX=[0,a(d),dZ,11,dZ,44,[0,a(V),[0,a(i),[0,a(e),0]]]],aO4=[0,a(aQ),[0,a("condition_logement_location_tiers"),0]],aPd=[0,a(d),dQ,11,dQ,45,[0,a(V),[0,a(i),[0,a(e),0]]]],aO5=[0,a(d),dQ,11,dQ,45,[0,a(V),[0,a(i),[0,a(e),0]]]],aPe=[0,a(aQ),[0,a("condition_logement_mode_occupation"),0]],aPj=[0,a(d),fl,11,fl,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aPf=[0,a(d),fl,11,fl,58,[0,a(V),[0,a(i),[0,a(e),0]]]],aPk=[0,a(aQ),[0,a("condition_ouverture_l822_10_peuplement_logement"),0]],aPn=[0,a(d),l9,11,l9,29,[0,a(V),[0,a(i),[0,a(e),0]]]],aPl=[0,a(d),l9,11,l9,29,[0,a(V),[0,a(i),[0,a(e),0]]]],aPo=[0,a(aQ),[0,a("\xc3\xa2ge_l161_17_2_s\xc3\xa9cu"),0]],aPC=[0,a(d),d8,11,d8,36,[0,a(V),[0,a(i),[0,a(e),0]]]],aPp=[0,a(d),d8,11,d8,36,[0,a(V),[0,a(i),[0,a(e),0]]]],aPD=[0,a(aQ),[0,a("patrimoine_pris_en_compte"),0]],aPK=[0,a(d),cZ,11,cZ,31,[0,a(V),[0,a(i),[0,a(e),0]]]],aPE=[0,a(d),cZ,11,cZ,31,[0,a(V),[0,a(i),[0,a(e),0]]]],aPL=[0,a(aQ),[0,a(Aw),0]],aPO=[0,a(d),h4,11,h4,28,[0,a(V),[0,a(i),[0,a(e),0]]]],aPM=[0,a(d),h4,11,h4,28,[0,a(V),[0,a(i),[0,a(e),0]]]],aPP=[0,a(aQ),[0,a("\xc3\xa2ge_l351_8_1_s\xc3\xa9cu"),0]],aPU=[0,a(d),fz,10,fz,21,[0,a(V),[0,a(i),[0,a(e),0]]]],aPQ=[0,a(d),fz,10,fz,21,[0,a(V),[0,a(i),[0,a(e),0]]]],aPV=[0,a(aQ),[0,a(nV),0]],aP3=[0,a(aQ),[0,a(fe),0]],aQg=[0,a(aQ),[0,a(kB),0]],aQn=[0,a(d),kK,11,kK,46,[0,a(V),[0,a(i),[0,a(e),0]]]],aQh=[0,a(d),kK,11,kK,46,[0,a(V),[0,a(i),[0,a(e),0]]]],aQo=[0,a(aQ),[0,a("personnes_\xc3\xa0_charge_prises_en_compte"),0]],aQt=[0,a(d),oo,10,oo,59,[0,a(V),[0,a(i),[0,a(e),0]]]],aQp=[0,a(d),oo,10,oo,59,[0,a(V),[0,a(i),[0,a(e),0]]]],aQu=[0,a(aQ),[0,a(ks),0]],aQx=[0,a(d),nP,10,nP,52,[0,a(V),[0,a(i),[0,a(e),0]]]],aQv=[0,a(d),nP,10,nP,52,[0,a(V),[0,a(i),[0,a(e),0]]]],aQy=[0,a(aQ),[0,a(rQ),0]],aQA=a(qn),aQz=[0,a(aB),mb,13,mb,48,[0,a(gn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aQE=[0,a(aB),mb,13,mb,48,[0,a(gn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aQC=a(qn),aQB=[0,a(aB),jo,13,jo,49,[0,a(gn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aQD=[0,a(aB),jo,13,jo,49,[0,a(gn),[0,a(a$),[0,a(ab),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aNh=[0,a(D),Cs,14,Cs,36,[0,a(iE),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aNc=[0,a(am),[0,a(bE),[0,a(ai),0]]],aNd=[0,a(am),[0,a(bE),0]],aNe=[0,a(am),[0,a(bE),[0,a(aj),0]]],aNf=[0,a(am),[0,a(bE),0]],aNg=a(n),aNi=[0,a(d),hl,10,hl,25,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aNb=[0,a(d),hl,10,hl,25,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aM_=[0,a(D),CC,14,CC,33,[0,a(iE),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aM8=a(n),aM9=a(n),aM4=[0,a(D),y_,14,y_,36,[0,a(iE),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aMT=[0,a(am),[0,a(eK),[0,a(ai),0]]],aMU=[0,a(am),[0,a(eK),0]],aMV=[0,a(am),[0,a(eK),[0,a(aj),0]]],aMW=[0,a(am),[0,a(eK),0]],aMX=[0,a(bh),[0,a(bK),[0,a(ai),0]]],aMY=[0,a(bh),[0,a(bK),0]],aMZ=[0,a(bh),[0,a(bK),[0,a(aj),0]]],aM0=[0,a(bh),[0,a(bK),0]],aM1=a(kL),aM2=a(n),aM3=a(n),aM5=[0,a(d),mJ,10,mJ,40,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMS=[0,a(d),mJ,10,mJ,40,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMP=[0,a(D),EM,14,EM,49,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aMN=a(g_),aMO=a(g_),aMJ=[0,a(D),Df,14,Df,33,[0,a(iE),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aMF=[0,a(D),Dp,14,Dp,36,[0,a(iE),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aMv=[0,a(am),[0,a(bD),[0,a(ai),0]]],aMw=[0,a(am),[0,a(bD),0]],aMx=[0,a(am),[0,a(bD),[0,a(aj),0]]],aMy=[0,a(am),[0,a(bD),0]],aMz=[0,a(am),[0,a(kD),[0,a(ai),0]]],aMA=[0,a(am),[0,a(kD),0]],aMB=[0,a(am),[0,a(kD),[0,a(aj),0]]],aMC=[0,a(am),[0,a(kD),0]],aMD=a(n),aME=a(n),aMG=[0,a(d),nO,10,nO,20,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMu=[0,a(d),nO,10,nO,20,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMr=[0,a(D),AJ,14,AJ,49,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aMo=a(c0),aMp=a(c0),aMq=a(lL),aMj=[0,a(D),3415,5,3427,77,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aMh=a(cG),aMi=a(bZ),aMk=[0,a(d),fQ,10,fQ,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMf=[0,a(D),BG,5,BG,75,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aMg=[0,a(d),fQ,10,fQ,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aL_=[0,a(aJ),uM,14,uM,42,[0,a(i0),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],aL9=a(db),aL$=[0,a(d),ex,10,ex,25,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aL8=[0,a(aJ),yT,14,yT,42,[0,a(i0),[0,a(bv),[0,a(aK),0]]]],aL7=a(db),aMa=[0,a(d),ex,10,ex,25,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aL6=[0,a(O),zR,14,zR,42,[0,a(i0),[0,a(aD),[0,a(K),0]]]],aL5=a(db),aMb=[0,a(d),ex,10,ex,25,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aL1=[0,a(D),C9,14,C9,55,[0,a(rx),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLW=[0,a(am),[0,a(kn),[0,a(ai),0]]],aLX=[0,a(am),[0,a(kn),0]],aLY=[0,a(am),[0,a(kn),[0,a(aj),0]]],aLZ=[0,a(am),[0,a(kn),0]],aL0=a(n),aL2=[0,a(d),mO,11,mO,52,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLV=[0,a(d),mO,11,mO,52,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLS=[0,a(D),Cn,14,Cn,49,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLR=a(g_),aLL=[0,a(D),hy,14,hy,70,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLH=[0,a(D),hS,14,hS,69,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLD=[0,a(D),i9,14,i9,75,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLy=[0,a(D),zb,5,zb,44,[0,a(AD),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLq=[0,a(am),[0,a(dt),[0,a(ai),0]]],aLr=[0,a(am),[0,a(dt),0]],aLs=[0,a(am),[0,a(dt),[0,a(aj),0]]],aLt=[0,a(am),[0,a(dt),0]],aLu=[0,a(am),[0,a(dt),[0,a(ai),0]]],aLv=[0,a(am),[0,a(dt),0]],aLw=[0,a(am),[0,a(dt),[0,a(aj),0]]],aLx=[0,a(am),[0,a(dt),0]],aLz=[0,a(d),hL,10,hL,14,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLp=[0,a(D),DQ,14,DQ,42,[0,a(AD),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLl=[0,a(am),[0,a(dt),[0,a(ai),0]]],aLm=[0,a(am),[0,a(dt),0]],aLn=[0,a(am),[0,a(dt),[0,a(aj),0]]],aLo=[0,a(am),[0,a(dt),0]],aLg=[0,a(D),DL,5,DL,41,[0,a(rx),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLh=[0,a(d),i7,11,i7,41,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLf=[0,a(D),wX,14,wX,44,[0,a(rx),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLi=[0,a(d),i7,11,i7,41,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLe=[0,a(d),i7,11,i7,41,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLb=[0,a(D),DJ,14,DJ,36,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aK8=[0,a(O),616,5,gL,33,[0,a(oO),[0,a(aD),[0,a(K),0]]]],aKQ=a(n),aKR=a(wB),aKS=a(vk),aKT=a(v),aKU=a(E8),aKV=a(ye),aKW=a(n),aKX=a(z4),aKY=a(Dv),aKZ=a(v),aK0=a(vD),aK1=a(zC),aK2=a(n),aK3=a(yH),aK4=a(DO),aK5=a(v),aK6=a("35600"),aK7=a(l6),aK9=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aKO=[0,a(O),705,5,707,33,[0,a(oO),[0,a(aD),[0,a(K),0]]]],aKw=a(n),aKx=a(rt),aKy=a("220000"),aKz=a(v),aKA=a("38000"),aKB=a("260000"),aKC=a(n),aKD=a("164200"),aKE=a(yO),aKF=a(v),aKG=a(EW),aKH=a("231200"),aKI=a(n),aKJ=a("153200"),aKK=a("183700"),aKL=a(v),aKM=a(oe),aKN=a("214200"),aKP=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aKu=[0,a(O),748,5,750,33,[0,a(oO),[0,a(aD),[0,a(K),0]]]],aKc=a(n),aKd=a("148100"),aKe=a("178700"),aKf=a(v),aKg=a("30600"),aKh=a("209300"),aKi=a(n),aKj=a(AL),aKk=a("158900"),aKl=a(v),aKm=a("26900"),aKn=a(xN),aKo=a(n),aKp=a("123300"),aKq=a("147900"),aKr=a(v),aKs=a("24600"),aKt=a(C4),aKv=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aKa=[0,a(O),799,5,gJ,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aJU=a(n),aJV=a(wB),aJW=a(vk),aJX=a(v),aJY=a(E8),aJZ=a(ye),aJ0=a(n),aJ1=a(z4),aJ2=a(Dv),aJ3=a(v),aJ4=a(vD),aJ5=a(zC),aJ6=a(n),aJ7=a(yH),aJ8=a(DO),aJ9=a(v),aJ_=a("34600"),aJ$=a(l6),aKb=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aJR=[0,a(O),rl,5,c2,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aJz=a(n),aJA=a(xT),aJB=a(rw),aJC=a(v),aJD=a(E$),aJE=a(By),aJF=a(n),aJG=a(DE),aJH=a(qX),aJI=a(v),aJJ=a(oe),aJK=a(zO),aJL=a(n),aJM=a(CW),aJN=a(En),aJO=a(v),aJP=a(CB),aJQ=a(xs),aJS=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aJy=[0,a(O),660,5,663,33,[0,a(oO),[0,a(aD),[0,a(K),0]]]],aJg=a(n),aJh=a(xT),aJi=a(rw),aJj=a(v),aJk=a(E$),aJl=a(By),aJm=a(n),aJn=a(DE),aJo=a(qX),aJp=a(v),aJq=a(oe),aJr=a(zO),aJs=a(n),aJt=a(CW),aJu=a(En),aJv=a(v),aJw=a(CB),aJx=a(xs),aJT=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aJe=[0,a(O),890,5,896,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aI_=a(n),aI$=a("86900"),aJa=a("97100"),aJb=a(v),aJc=a("10200"),aJd=a("107300"),aJf=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aI8=[0,a(O),922,5,jY,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aIQ=a(n),aIR=a("198100"),aIS=a("239000"),aIT=a(v),aIU=a("40900"),aIV=a("279900"),aIW=a(n),aIX=a("176800"),aIY=a("212800"),aIZ=a(v),aI0=a("36000"),aI1=a("248800"),aI2=a(n),aI3=a("165000"),aI4=a("197900"),aI5=a(v),aI6=a("32900"),aI7=a("230800"),aI9=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aIO=[0,a(O),gH,5,969,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aIw=a(n),aIx=a("159500"),aIy=a(v7),aIz=a(v),aIA=a("33000"),aIB=a(x7),aIC=a(n),aID=a("142200"),aIE=a("171200"),aIF=a(v),aIG=a("29000"),aIH=a("200200"),aII=a(n),aIJ=a("132800"),aIK=a("159300"),aIL=a(v),aIM=a("26500"),aIN=a(xN),aIP=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aIu=[0,a(O),1011,5,kt,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aIc=a(n),aId=a("200100"),aIe=a("141400"),aIf=a(v),aIg=a("41300"),aIh=a("182700"),aIi=a(n),aIj=a("178600"),aIk=a("215000"),aIl=a(v),aIm=a("36400"),aIn=a("251400"),aIo=a(n),aIp=a("166700"),aIq=a(qO),aIr=a(v),aIs=a("33200"),aIt=a("233100"),aIv=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aIa=[0,a(O),jV,5,1058,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aHU=a(n),aHV=a("161100"),aHW=a("194400"),aHX=a(v),aHY=a("33300"),aHZ=a("227700"),aH0=a(n),aH1=a("143600"),aH2=a("172900"),aH3=a(v),aH4=a("29300"),aH5=a("202200"),aH6=a(n),aH7=a("134100"),aH8=a("160900"),aH9=a(v),aH_=a("26800"),aH$=a("187700"),aIb=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aHS=[0,a(O),1102,5,1105,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aHA=a(n),aHB=a(rw),aHC=a("244300"),aHD=a(v),aHE=a("41800"),aHF=a("286100"),aHG=a(n),aHH=a("180700"),aHI=a("217500"),aHJ=a(v),aHK=a("36800"),aHL=a("254300"),aHM=a(n),aHN=a("168700"),aHO=a("202300"),aHP=a(v),aHQ=a("33600"),aHR=a("235900"),aHT=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aHy=[0,a(O),1145,5,qI,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aHg=a(n),aHh=a("30871"),aHi=a("37243"),aHj=a(v),aHk=a("6372"),aHl=a("43615"),aHm=a(n),aHn=a("27548"),aHo=a("33148"),aHp=a(v),aHq=a("5610"),aHr=a("38768"),aHs=a(n),aHt=a("25718"),aHu=a("30840"),aHv=a(v),aHw=a("5122"),aHx=a("35962"),aHz=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aHe=[0,a(O),1191,5,1194,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aGY=a(n),aGZ=a(xd),aG0=a("196700"),aG1=a(v),aG2=a("33700"),aG3=a("230400"),aG4=a(n),aG5=a("145300"),aG6=a("175000"),aG7=a(v),aG8=a("29700"),aG9=a(Ci),aG_=a(n),aG$=a("135700"),aHa=a("162800"),aHb=a(v),aHc=a("27100"),aHd=a("189900"),aHf=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aGW=[0,a(O),1234,5,1237,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aGE=a(n),aGF=a("24849"),aGG=a("29987"),aGH=a(v),aGI=a("5138"),aGJ=a("35125"),aGK=a(n),aGL=a("22151"),aGM=a("26679"),aGN=a(v),aGO=a("4528"),aGP=a("31207"),aGQ=a(n),aGR=a("20687"),aGS=a("24818"),aGT=a(v),aGU=a("4131"),aGV=a("28949"),aGX=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aGC=[0,a(O),1279,5,1282,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aGk=a(n),aGl=a("31241"),aGm=a("37689"),aGn=a(v),aGo=a("6448"),aGp=a("44137"),aGq=a(n),aGr=a("27879"),aGs=a("33556"),aGt=a(v),aGu=a("5677"),aGv=a("39233"),aGw=a(n),aGx=a("26027"),aGy=a("31210"),aGz=a(v),aGA=a("5183"),aGB=a("36393"),aGD=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aGi=[0,a(O),1323,5,1326,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aF2=a(n),aF3=a("25147"),aF4=a("30347"),aF5=a(v),aF6=a("5200"),aF7=a("35547"),aF8=a(n),aF9=a("22417"),aF_=a("26999"),aF$=a(v),aGa=a("4582"),aGb=a("31581"),aGc=a(n),aGd=a("20935"),aGe=a(Bz),aGf=a(v),aGg=a("4181"),aGh=a("29297"),aGj=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aF0=[0,a(O),1368,5,1371,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aFI=a(n),aFJ=a("31616"),aFK=a("38141"),aFL=a(v),aFM=a("6525"),aFN=a("44666"),aFO=a(n),aFP=a("28214"),aFQ=a("33959"),aFR=a(v),aFS=a("5745"),aFT=a("39704"),aFU=a(n),aFV=a("26339"),aFW=a("31584"),aFX=a(v),aFY=a("5245"),aFZ=a("36829"),aF1=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aFG=[0,a(O),1412,5,qH,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aFo=a(n),aFp=a("25449"),aFq=a("30711"),aFr=a(v),aFs=a("5262"),aFt=a("35973"),aFu=a(n),aFv=a("22686"),aFw=a("27323"),aFx=a(v),aFy=a("4637"),aFz=a("31960"),aFA=a(n),aFB=a("21186"),aFC=a("25417"),aFD=a(v),aFE=a("4231"),aFF=a("29648"),aFH=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aFm=[0,a(O),1457,5,1460,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aE6=a(n),aE7=a("32185"),aE8=a("38827"),aE9=a(v),aE_=a("6642"),aE$=a("45469"),aFa=a(n),aFb=a("28722"),aFc=a(xB),aFd=a(v),aFe=a("5848"),aFf=a("40418"),aFg=a(n),aFh=a("26813"),aFi=a("32152"),aFj=a(v),aFk=a("5339"),aFl=a("37491"),aFn=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aE4=[0,a(O),1501,5,1504,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aEM=a(n),aEN=a("25907"),aEO=a(wY),aEP=a(v),aEQ=a("5357"),aER=a("36621"),aES=a(n),aET=a("23094"),aEU=a("27814"),aEV=a(v),aEW=a("4720"),aEX=a("32534"),aEY=a(n),aEZ=a("21567"),aE0=a("25874"),aE1=a(v),aE2=a("4307"),aE3=a("30181"),aE5=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aEK=[0,a(O),1546,5,1549,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aEs=a(n),aEt=a("33086"),aEu=a("39914"),aEv=a(v),aEw=a("6828"),aEx=a("46742"),aEy=a(n),aEz=a("29526"),aEA=a("35538"),aEB=a(v),aEC=a("6012"),aED=a("41550"),aEE=a(n),aEF=a("27564"),aEG=a("33052"),aEH=a(v),aEI=a("5488"),aEJ=a("38541"),aEL=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aEq=[0,a(O),1590,5,1593,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aD_=a(n),aD$=a("26632"),aEa=a("32139"),aEb=a(v),aEc=a("5507"),aEd=a("37646"),aEe=a(n),aEf=a("23741"),aEg=a("28593"),aEh=a(v),aEi=a("4852"),aEj=a("33445"),aEk=a(n),aEl=a("22171"),aEm=a("36598"),aEn=a(v),aEo=a("4428"),aEp=a("31026"),aEr=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aD8=[0,a(O),1635,5,1638,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aDQ=a(n),aDR=a("33999"),aDS=a("41016"),aDT=a(v),aDU=a("7016"),aDV=a("48032"),aDW=a(n),aDX=a("30341"),aDY=a("36519"),aDZ=a(v),aD0=a("6178"),aD1=a("42697"),aD2=a(n),aD3=a("28325"),aD4=a("33964"),aD5=a(v),aD6=a("5639"),aD7=a("39605"),aD9=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aDO=[0,a(O),1679,5,1682,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aDw=a(n),aDx=a("27367"),aDy=a("33026"),aDz=a(v),aDA=a("5659"),aDB=a("38685"),aDC=a(n),aDD=a("24396"),aDE=a("29382"),aDF=a(v),aDG=a(Bn),aDH=a("34368"),aDI=a(n),aDJ=a("22783"),aDK=a("27332"),aDL=a(v),aDM=a("4550"),aDN=a("31882"),aDP=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aDu=[0,a(O),1724,5,1727,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aDc=a(n),aDd=a("35002"),aDe=a("42226"),aDf=a(v),aDg=a("7223"),aDh=a("49449"),aDi=a(n),aDj=a("31236"),aDk=a("37596"),aDl=a(v),aDm=a("6360"),aDn=a("43957"),aDo=a(n),aDp=a("29161"),aDq=a("34966"),aDr=a(v),aDs=a("5805"),aDt=a("40773"),aDv=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aDa=[0,a(O),1768,5,1771,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aCU=a(n),aCV=a("28174"),aCW=a("34000"),aCX=a(v),aCY=a("5826"),aCZ=a("39826"),aC0=a(n),aC1=a(Bz),aC2=a("30249"),aC3=a(v),aC4=a("5133"),aC5=a("35382"),aC6=a(n),aC7=a("23455"),aC8=a("28138"),aC9=a(v),aC_=a("4684"),aC$=a("32823"),aDb=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aCS=[0,a(O),1813,5,1816,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aCA=a(n),aCB=a("35114"),aCC=a("42361"),aCD=a(v),aCE=a("7246"),aCF=a("49607"),aCG=a(n),aCH=a("31336"),aCI=a("37716"),aCJ=a(v),aCK=a("6380"),aCL=a("44098"),aCM=a(n),aCN=a("29254"),aCO=a("35078"),aCP=a(v),aCQ=a("5824"),aCR=a("40903"),aCT=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aCy=[0,a(O),1857,5,1860,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aCg=a(n),aCh=a("28264"),aCi=a("34109"),aCj=a(v),aCk=a("5845"),aCl=a("39953"),aCm=a(n),aCn=a("25196"),aCo=a("30346"),aCp=a(v),aCq=a("5149"),aCr=a("35495"),aCs=a(n),aCt=a("23530"),aCu=a("28228"),aCv=a(v),aCw=a("4699"),aCx=a("32928"),aCz=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aCe=[0,a(O),1902,5,1905,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aBY=a(n),aBZ=a("35500"),aB0=a("42827"),aB1=a(v),aB2=a("7326"),aB3=a("50153"),aB4=a(n),aB5=a("31681"),aB6=a("38131"),aB7=a(v),aB8=a("6450"),aB9=a("44583"),aB_=a(n),aB$=a("29576"),aCa=a("35464"),aCb=a(v),aCc=a("5888"),aCd=a("41353"),aCf=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aBW=[0,a(O),1946,5,1949,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aBE=a(n),aBF=a("28575"),aBG=a("34484"),aBH=a(v),aBI=a("5909"),aBJ=a("40392"),aBK=a(n),aBL=a("25473"),aBM=a("30680"),aBN=a(v),aBO=a("5206"),aBP=a("35885"),aBQ=a(n),aBR=a("23789"),aBS=a("28539"),aBT=a(v),aBU=a("4751"),aBV=a("33290"),aBX=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aBC=[0,a(O),1991,5,cR,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aBk=a(n),aBl=a("35855"),aBm=a("43255"),aBn=a(v),aBo=a("7399"),aBp=a("50655"),aBq=a(n),aBr=a("31998"),aBs=a("38512"),aBt=a(v),aBu=a("6515"),aBv=a("45029"),aBw=a(n),aBx=a("29872"),aBy=a("35819"),aBz=a(v),aBA=a("5947"),aBB=a("41767"),aBD=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aBi=[0,a(O),2036,5,2039,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aA2=a(n),aA3=a("28861"),aA4=a(DG),aA5=a(v),aA6=a("5968"),aA7=a("40796"),aA8=a(n),aA9=a("25728"),aA_=a("30987"),aA$=a(v),aBa=a("5258"),aBb=a("36244"),aBc=a(n),aBd=a("24027"),aBe=a("28824"),aBf=a(v),aBg=a("4799"),aBh=a(y4),aBj=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aA0=[0,a(O),2081,5,2084,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aAI=a(n),aAJ=a("36626"),aAK=a("44185"),aAL=a(v),aAM=a("7558"),aAN=a("51744"),aAO=a(n),aAP=a("32686"),aAQ=a(xK),aAR=a(v),aAS=a("6655"),aAT=a("45997"),aAU=a(n),aAV=a("30514"),aAW=a("36589"),aAX=a(v),aAY=a("6075"),aAZ=a("42665"),aA1=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aAG=[0,a(O),2125,5,2128,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],aAo=a(n),aAp=a("29482"),aAq=a("35578"),aAr=a(v),aAs=a("6096"),aAt=a("41673"),aAu=a(n),aAv=a("26281"),aAw=a("31653"),aAx=a(v),aAy=a("5371"),aAz=a("37023"),aAA=a(n),aAB=a("24544"),aAC=a("29444"),aAD=a(v),aAE=a("4902"),aAF=a("34346"),aAH=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aAm=[0,a(O),2170,5,2173,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],az6=a(n),az7=a("36835"),az8=a("44437"),az9=a(v),az_=a("7601"),az$=a("52039"),aAa=a(n),aAb=a("32872"),aAc=a("39564"),aAd=a(v),aAe=a("6693"),aAf=a("46259"),aAg=a(n),aAh=a("30688"),aAi=a("36798"),aAj=a(v),aAk=a("6110"),aAl=a("42908"),aAn=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],az4=[0,a(O),2214,5,2217,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],azM=a(n),azN=a("29650"),azO=a("35781"),azP=a(v),azQ=a("6131"),azR=a("41911"),azS=a(n),azT=a("26431"),azU=a("31833"),azV=a(v),azW=a("5402"),azX=a("37234"),azY=a(n),azZ=a("24684"),az0=a("29612"),az1=a(v),az2=a("4930"),az3=a("34542"),az5=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],azK=[0,a(O),2259,5,2262,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],azs=a(n),azt=a("36864"),azu=a("44473"),azv=a(v),azw=a("7607"),azx=a("52081"),azy=a(n),azz=a("32898"),azA=a("39596"),azB=a(v),azC=a("6698"),azD=a("46296"),azE=a(n),azF=a("30713"),azG=a("36827"),azH=a(v),azI=a("6115"),azJ=a("42942"),azL=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],azq=[0,a(O),2303,5,2306,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],ay_=a(n),ay$=a("29674"),aza=a("35810"),azb=a(v),azc=a("6136"),azd=a("41945"),aze=a(n),azf=a("26452"),azg=a("31858"),azh=a(v),azi=a("5406"),azj=a("37264"),azk=a(n),azl=a("24704"),azm=a("29636"),azn=a(v),azo=a("4934"),azp=a(xB),azr=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],ay8=[0,a(O),2348,5,2351,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],ayQ=a(n),ayR=a("37140"),ayS=a("44807"),ayT=a(v),ayU=a("7664"),ayV=a("52472"),ayW=a(n),ayX=a("33145"),ayY=a("39893"),ayZ=a(v),ay0=a("6748"),ay1=a("46643"),ay2=a(n),ay3=a("30943"),ay4=a("37103"),ay5=a(v),ay6=a("6161"),ay7=a("43264"),ay9=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],ayO=[0,a(O),2392,5,2395,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],ayw=a(n),ayx=a("29897"),ayy=a("36079"),ayz=a(v),ayA=a("6182"),ayB=a("42260"),ayC=a(n),ayD=a("26650"),ayE=a("32097"),ayF=a(v),ayG=a("5447"),ayH=a("37543"),ayI=a(n),ayJ=a("24889"),ayK=a("29858"),ayL=a(v),ayM=a("4971"),ayN=a(DG),ayP=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],ayu=[0,a(O),2437,5,2439,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],ayc=a(n),ayd=a("37252"),aye=a("44941"),ayf=a(v),ayg=a("7687"),ayh=a("52629"),ayi=a(n),ayj=a("33244"),ayk=a("40013"),ayl=a(v),aym=a("6768"),ayn=a("46783"),ayo=a(n),ayp=a("31036"),ayq=a("37215"),ayr=a(v),ays=a("6179"),ayt=a("43394"),ayv=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aya=[0,a(O),2480,5,2482,36,[0,a(a5),[0,a(aD),[0,a(K),0]]]],axU=a(n),axV=a("29986"),axW=a("36187"),axX=a(v),axY=a("6201"),axZ=a("42386"),ax0=a(n),ax1=a("26730"),ax2=a("32193"),ax3=a(v),ax4=a("5463"),ax5=a("37656"),ax6=a(n),ax7=a("24964"),ax8=a("29948"),ax9=a(v),ax_=a(Bn),ax$=a("34934"),ayb=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aK_=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axT=[0,a(d),X,11,X,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axP=[0,a(D),wm,5,wm,28,[0,a(CK),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],axQ=[0,a(d),gI,11,gI,41,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axO=[0,a(D),uX,14,uX,44,[0,a(CK),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],axK=[0,a(D),wI,14,wI,36,[0,a(iE),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],axI=a(n),axJ=a(n),axL=[0,a(d),kl,10,kl,32,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axH=[0,a(d),kl,10,kl,32,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axC=[0,a(O),wc,7,wc,18,[0,a(i0),[0,a(aD),[0,a(K),0]]]],axz=a(gs),axA=a(qM),axB=a(fj),axD=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axx=[0,a(aJ),jg,7,jg,18,[0,a(i0),[0,a(bv),[0,a(aK),0]]]],axu=a(gE),axv=a(qo),axw=a(fb),axy=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axs=[0,a(aJ),vK,7,vK,18,[0,a(i0),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],axp=a(ov),axq=a(A$),axr=a(my),axt=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axE=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axm=[0,a(O),zh,29,zh,64,[0,a(ng),[0,a(aD),[0,a(K),0]]]],axk=a(gs),axl=a(fj),axn=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axi=[0,a(aJ),rB,29,rB,64,[0,a(ng),[0,a(bv),[0,a(aK),0]]]],axg=a(gE),axh=a(fb),axj=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axe=[0,a(aJ),wW,29,wW,64,[0,a(ng),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],axc=a(ov),axd=a(my),axf=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axo=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aw8=[0,a(d),iM,14,iM,50,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aw4=[0,a(O),v3,14,v3,50,[0,a("Article 25"),[0,a(aD),[0,a(K),0]]]],awZ=a(v8),aw0=a(r2),aw1=a("0.0172"),aw2=a(v8),aw3=a(r2),awT=[0,a(D),jh,14,jh,64,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],awP=[0,a(D),jb,14,jb,59,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],awL=[0,a(fy),ey,14,ey,36,[0,a(Cf),[0,a(yB),0]]],awJ=a(va),awK=a(ek),awF=[0,a(O),zM,14,zM,47,[0,a(r4),[0,a(aD),[0,a(K),0]]]],awE=a("0.416"),awA=[0,a(O),BP,14,BP,47,[0,a(r4),[0,a(aD),[0,a(K),0]]]],awz=a(uU),awv=[0,a(O),x9,14,x9,47,[0,a(r4),[0,a(aD),[0,a(K),0]]]],awu=a("560085"),awq=[0,a(O),A3,14,A3,48,[0,a("Article 26"),[0,a(aD),[0,a(K),0]]]],awp=a(z3),awl=[0,a(O),xD,15,xD,49,[0,a("Article 22"),[0,a(aD),[0,a(K),0]]]],awk=a("2211133"),awg=[0,a(O),xb,14,xb,42,[0,a("Article 21"),[0,a(aD),[0,a(K),0]]]],awf=a(h9),awb=[0,a(O),u3,14,u3,41,[0,a("Article 20"),[0,a(aD),[0,a(K),0]]]],awa=a(ka),awc=[0,a(d),ox,11,ox,38,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],av$=[0,a(d),ox,11,ox,38,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awd=[0,a(am),[0,a("montant_forfaitaire_d832_10"),0]],awh=[0,a(d),ou,11,ou,39,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awe=[0,a(d),ou,11,ou,39,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awi=[0,a(am),[0,a("montant_minimal_aide_d832_10"),0]],awm=[0,a(d),ob,11,ob,45,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awj=[0,a(d),ob,11,ob,45,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awn=[0,a(am),[0,a("coefficient_multiplicateur_d832_11"),0]],awr=[0,a(d),oF,11,oF,45,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awo=[0,a(d),oF,11,oF,45,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aws=[0,a(am),[0,a("coefficient_multiplicateur_d832_18"),0]],aww=[0,a(d),ma,11,ma,44,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awt=[0,a(d),ma,11,ma,44,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awx=[0,a(am),[0,a("montant_limite_tranches_d832_15_1"),0]],awB=[0,a(d),kH,11,kH,44,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awy=[0,a(d),kH,11,kH,44,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awC=[0,a(am),[0,a("taux_tranche_inf\xc3\xa9rieure_d832_15_1"),0]],awG=[0,a(d),m3,11,m3,44,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awD=[0,a(d),m3,11,m3,44,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awH=[0,a(am),[0,a("taux_tranche_sup\xc3\xa9rieure_d832_15_1"),0]],awM=[0,a(d),mI,11,mI,33,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awI=[0,a(d),mI,11,mI,33,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awN=[0,a(am),[0,a(EA),0]],awQ=[0,a(D),jb,14,jb,59,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],awR=[0,a(am),[0,a(m4),0]],awO=[0,a(D),jb,14,jb,59,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],awU=[0,a(D),jh,14,jh,64,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],awV=[0,a(am),[0,a(nN),0]],awS=[0,a(D),jh,14,jh,64,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],awW=[0,a(am),[0,a(f4),[0,a(kh),0]]],awX=[0,a(am),[0,a(f4),[0,a(kh),0]]],aw5=[0,a(d),nQ,11,nQ,47,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],awY=[0,a(d),nQ,11,nQ,47,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aw6=[0,a(am),[0,a("coefficient_multiplicateur_d832_17_3"),0]],aw9=[0,a(d),iM,14,iM,50,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aw_=[0,a(am),[0,a(kp),0]],aw7=[0,a(d),iM,14,iM,50,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aw$=[0,a(am),[0,a(eF),[0,a(bh),0]]],axa=[0,a(am),[0,a(eF),[0,a(bh),0]]],axF=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axb=[0,a(d),b7,11,b7,46,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axG=[0,a(am),[0,a("montant_forfaitaire_charges_d832_10"),0]],axM=[0,a(am),[0,a(bD),0]],axR=[0,a(d),gI,11,gI,41,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axN=[0,a(d),gI,11,gI,41,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],axS=[0,a(am),[0,a("ressources_m\xc3\xa9nage_avec_d832_18"),0]],aK$=[0,a(am),[0,a(dt),0]],aLc=[0,a(d),nb,11,nb,33,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLa=[0,a(d),nb,11,nb,33,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLd=[0,a(am),[0,a(vu),0]],aLj=[0,a(am),[0,a(kn),0]],aLA=[0,a(d),hL,10,hL,14,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLk=[0,a(d),hL,10,hL,14,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLB=[0,a(am),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_base"),0]],aLE=[0,a(D),i9,14,i9,75,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLF=[0,a(am),[0,a(mv),0]],aLC=[0,a(D),i9,14,i9,75,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLI=[0,a(D),hS,14,hS,69,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLJ=[0,a(am),[0,a(oa),0]],aLG=[0,a(D),hS,14,hS,69,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLM=[0,a(D),hy,14,hy,70,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLN=[0,a(am),[0,a(ml),0]],aLK=[0,a(D),hy,14,hy,70,[0,a(d0),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aLO=[0,a(am),[0,a(fD),[0,a(dE),0]]],aLP=[0,a(am),[0,a(fD),[0,a(dE),0]]],aLT=[0,a(d),kg,10,kg,17,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLQ=[0,a(d),kg,10,kg,17,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aLU=[0,a(am),[0,a("coefficient_prise_en_charge_d832_10_formule"),0]],aL3=[0,a(am),[0,a(kD),0]],aMc=[0,a(d),ex,10,ex,25,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aL4=[0,a(d),ex,10,ex,25,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMd=[0,a(am),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires"),0]],aMl=[0,a(d),fQ,10,fQ,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMe=[0,a(d),fQ,10,fQ,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMm=[0,a(am),[0,a(yi),0]],aMs=[0,a(d),l5,10,l5,17,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMn=[0,a(d),l5,10,l5,17,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMt=[0,a(am),[0,a("coefficient_prise_en_charge_d832_10_arrondi"),0]],aMH=[0,a(am),[0,a(eK),0]],aMK=[0,a(d),oK,10,oK,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMI=[0,a(d),oK,10,oK,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aML=[0,a(am),[0,a(Ez),0]],aMQ=[0,a(d),on,10,on,15,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMM=[0,a(d),on,10,on,15,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aMR=[0,a(am),[0,a("coefficient_prise_en_charge_d832_10_seuil"),0]],aM6=[0,a(am),[0,a(bE),0]],aM$=[0,a(d),nA,10,nA,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aM7=[0,a(d),nA,10,nA,29,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],aNa=[0,a(am),[0,a(eV),0]],aNj=[0,a(am),[0,a(fg),0]],av8=[0,a(D),E9,14,E9,36,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],av3=[0,a(az),[0,a(bE),[0,a(ai),0]]],av4=[0,a(az),[0,a(bE),0]],av5=[0,a(az),[0,a(bE),[0,a(aj),0]]],av6=[0,a(az),[0,a(bE),0]],av7=a(n),av9=[0,a(d),mN,10,mN,25,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],av2=[0,a(d),mN,10,mN,25,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avZ=[0,a(D),Di,14,Di,33,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],avX=a(n),avY=a(n),avT=[0,a(D),xI,14,xI,36,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],avI=[0,a(az),[0,a(eK),[0,a(ai),0]]],avJ=[0,a(az),[0,a(eK),0]],avK=[0,a(az),[0,a(eK),[0,a(aj),0]]],avL=[0,a(az),[0,a(eK),0]],avM=[0,a(bh),[0,a(bK),[0,a(ai),0]]],avN=[0,a(bh),[0,a(bK),0]],avO=[0,a(bh),[0,a(bK),[0,a(aj),0]]],avP=[0,a(bh),[0,a(bK),0]],avQ=a(kL),avR=a(n),avS=a(n),avU=[0,a(d),no,10,no,40,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avH=[0,a(d),no,10,no,40,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avD=[0,a(D),xk,5,xk,26,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],avB=a(oq),avC=a(oq),avE=[0,a(d),jd,10,jd,15,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avA=[0,a(D),yV,14,yV,49,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],avy=a(g_),avz=a(g_),avu=[0,a(D),AE,14,AE,36,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],avk=[0,a(az),[0,a(bD),[0,a(ai),0]]],avl=[0,a(az),[0,a(bD),0]],avm=[0,a(az),[0,a(bD),[0,a(aj),0]]],avn=[0,a(az),[0,a(bD),0]],avo=[0,a(az),[0,a(km),[0,a(ai),0]]],avp=[0,a(az),[0,a(km),0]],avq=[0,a(az),[0,a(km),[0,a(aj),0]]],avr=[0,a(az),[0,a(km),0]],avs=a(n),avt=a(n),avv=[0,a(d),lZ,10,lZ,20,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avj=[0,a(d),lZ,10,lZ,20,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avf=[0,a(D),DV,5,DV,26,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],avc=a(c0),avd=a(c0),ave=a(lL),avg=[0,a(d),hz,10,hz,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avb=[0,a(D),Ab,14,Ab,49,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],au_=a(c0),au$=a(c0),ava=a(lL),au6=[0,a(D),zd,14,zd,40,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],au2=[0,a(D),x0,14,x0,55,[0,a(yc),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auX=[0,a(az),[0,a(kq),[0,a(ai),0]]],auY=[0,a(az),[0,a(kq),0]],auZ=[0,a(az),[0,a(kq),[0,a(aj),0]]],au0=[0,a(az),[0,a(kq),0]],au1=a(n),au3=[0,a(d),oB,11,oB,52,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auW=[0,a(d),oB,11,oB,52,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auS=[0,a(D),z8,5,z8,26,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auR=a(oq),auT=[0,a(d),h2,10,h2,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auQ=[0,a(D),yF,14,yF,49,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auN=a(n),auO=a(n),auP=a(g_),auH=[0,a(D),iu,14,iu,70,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auD=[0,a(D),i8,14,i8,69,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auz=[0,a(D),i1,14,i1,75,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auv=[0,a(D),ya,14,ya,44,[0,a(yc),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auw=[0,a(d),nv,11,nv,41,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auu=[0,a(d),nv,11,nv,41,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auq=[0,a(D),Ae,14,Ae,36,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aur=[0,a(d),gL,19,gL,41,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aum=[0,a(D),zX,14,zX,40,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aui=[0,a(O),Ec,14,Ec,48,[0,a(vA),[0,a(fc),[0,a(K),0]]]],aug=a("2142091"),auh=a("1339340"),auc=[0,a(O),x1,14,x1,41,[0,a("Article 32"),[0,a(fc),[0,a(K),0]]]],aua=a(qx),aub=a("2668"),at6=[0,a(D),h3,14,h3,64,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],at2=[0,a(D),jc,14,jc,59,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],atY=[0,a(D),hM,14,hM,55,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],atU=[0,a(D),z6,14,z6,36,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],atS=a(n),atT=a(n),atV=[0,a(d),lE,10,lE,32,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],atR=[0,a(d),lE,10,lE,32,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],atN=[0,a(O),y6,14,y6,48,[0,a(sb),[0,a(fc),[0,a(K),0]]]],atd=a(n),ate=a("46192"),atf=a("54152"),atg=a(v),ath=a("57741"),ati=a(T),atj=a("61794"),atk=a(Y),atl=a("65862"),atm=a(aa),atn=a("7368"),ato=a("71039"),atp=a(n),atq=a("42242"),atr=a("49299"),ats=a(v),att=a("52565"),atu=a(T),atv=a("56268"),atw=a(Y),atx=a("59957"),aty=a(aa),atz=a("6659"),atA=a("63887"),atB=a(n),atC=a("40096"),atD=a("46634"),atE=a(v),atF=a("49475"),atG=a(T),atH=a("52740"),atI=a(Y),atJ=a("56004"),atK=a(aa),atL=a("6180"),atM=a("59675"),atO=[0,a(d),eH,10,eH,44,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],atb=[0,a(aJ),hd,14,hd,48,[0,a(sb),[0,a(bv),[0,a(aK),0]]]],asD=a(n),asE=a("44630"),asF=a("52321"),asG=a(v),asH=a("55788"),asI=a(T),asJ=a("59704"),asK=a(Y),asL=a("63635"),asM=a(aa),asN=a("7119"),asO=a("68637"),asP=a(n),asQ=a("40814"),asR=a("47632"),asS=a(v),asT=a("50787"),asU=a(T),asV=a("54365"),asW=a(Y),asX=a("57929"),asY=a(aa),asZ=a("6434"),as0=a("61727"),as1=a(n),as2=a("38740"),as3=a("45057"),as4=a(v),as5=a("47802"),as6=a(T),as7=a("50957"),as8=a(Y),as9=a("54110"),as_=a(aa),as$=a("5971"),ata=a("57657"),atc=[0,a(d),eH,10,eH,44,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],asB=[0,a(aJ),u2,14,u2,48,[0,a(sb),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],ar3=a(n),ar4=a("44443"),ar5=a("52101"),ar6=a(v),ar7=a("55555"),ar8=a(T),ar9=a("59454"),ar_=a(Y),ar$=a("63369"),asa=a(aa),asb=a("7089"),asc=a("68350"),asd=a(n),ase=a("40643"),asf=a("47433"),asg=a(v),ash=a("50575"),asi=a(T),asj=a("54138"),ask=a(Y),asl=a("57687"),asm=a(aa),asn=a("6407"),aso=a("61469"),asp=a(n),asq=a("38578"),asr=a("44869"),ass=a(v),ast=a("47602"),asu=a(T),asv=a("50744"),asw=a(Y),asx=a("53884"),asy=a(aa),asz=a("5946"),asA=a("57416"),asC=[0,a(d),eH,10,eH,44,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arX=[0,a(d),hZ,14,hZ,50,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arS=[0,a(D),Ct,14,Ct,35,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],arT=[0,a(d),h7,12,h7,33,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arO=[0,a(O),yd,14,yd,42,[0,a("Article 29"),[0,a(fc),[0,a(K),0]]]],arN=a(h9),arJ=[0,a(O),uy,14,uy,41,[0,a("Article 28"),[0,a(fc),[0,a(K),0]]]],arI=a(ka),arE=[0,a(O),Cc,14,Cc,35,[0,a(vA),[0,a(fc),[0,a(K),0]]]],arD=a("121726"),arF=[0,a(d),od,10,od,31,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arC=[0,a(d),od,10,od,31,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arG=[0,a(az),[0,a("coefficient_r_d832_25"),0]],arK=[0,a(d),lY,11,lY,38,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arH=[0,a(d),lY,11,lY,38,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arL=[0,a(az),[0,a("montant_forfaitaire_d832_24"),0]],arP=[0,a(d),mh,11,mh,39,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arM=[0,a(d),mh,11,mh,39,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arQ=[0,a(az),[0,a("montant_minimal_aide_d823_24"),0]],arU=[0,a(d),h7,12,h7,33,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arR=[0,a(d),h7,12,h7,33,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arV=[0,a(az),[0,a("condition_2_du_832_25"),0]],arY=[0,a(d),hZ,14,hZ,50,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],arZ=[0,a(az),[0,a(kp),0]],arW=[0,a(d),hZ,14,hZ,50,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],ar0=[0,a(az),[0,a(eF),[0,a(bh),0]]],ar1=[0,a(az),[0,a(eF),[0,a(bh),0]]],atP=[0,a(d),eH,10,eH,44,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],ar2=[0,a(d),eH,10,eH,44,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],atQ=[0,a(az),[0,a("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],atW=[0,a(az),[0,a(bD),0]],atZ=[0,a(D),hM,14,hM,55,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],at0=[0,a(az),[0,a(AT),0]],atX=[0,a(D),hM,14,hM,55,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],at3=[0,a(D),jc,14,jc,59,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],at4=[0,a(az),[0,a(m4),0]],at1=[0,a(D),jc,14,jc,59,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],at7=[0,a(D),h3,14,h3,64,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],at8=[0,a(az),[0,a(nN),0]],at5=[0,a(D),h3,14,h3,64,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],at9=[0,a(az),[0,a(f4),[0,a(ko),0]]],at_=[0,a(az),[0,a(f4),[0,a(ko),0]]],aud=[0,a(d),nj,11,nj,38,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],at$=[0,a(d),nj,11,nj,38,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aue=[0,a(az),[0,a("montant_forfaitaire_d832_27"),0]],auj=[0,a(d),mc,10,mc,44,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auf=[0,a(d),mc,10,mc,44,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auk=[0,a(az),[0,a("coefficient_multiplicateur_d832_25"),0]],aun=[0,a(d),j7,10,j7,36,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aul=[0,a(d),j7,10,j7,36,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auo=[0,a(az),[0,a("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],aus=[0,a(d),gL,19,gL,41,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aup=[0,a(d),gL,19,gL,41,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aut=[0,a(az),[0,a(C3),0]],aux=[0,a(az),[0,a(kq),0]],auA=[0,a(D),i1,14,i1,75,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auB=[0,a(az),[0,a(mv),0]],auy=[0,a(D),i1,14,i1,75,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auE=[0,a(D),i8,14,i8,69,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auF=[0,a(az),[0,a(oa),0]],auC=[0,a(D),i8,14,i8,69,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auI=[0,a(D),iu,14,iu,70,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auJ=[0,a(az),[0,a(ml),0]],auG=[0,a(D),iu,14,iu,70,[0,a(cQ),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],auK=[0,a(az),[0,a(fD),[0,a(dE),0]]],auL=[0,a(az),[0,a(fD),[0,a(dE),0]]],auU=[0,a(d),h2,10,h2,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auM=[0,a(d),h2,10,h2,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],auV=[0,a(az),[0,a("coefficient_prise_en_charge_d832_25_formule"),0]],au4=[0,a(az),[0,a(km),0]],au7=[0,a(d),n1,10,n1,36,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],au5=[0,a(d),n1,10,n1,36,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],au8=[0,a(az),[0,a("\xc3\xa9quivalence_loyer_minimale"),0]],avh=[0,a(d),hz,10,hz,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],au9=[0,a(d),hz,10,hz,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avi=[0,a(az),[0,a("coefficient_prise_en_charge_d832_25_arrondi"),0]],avw=[0,a(az),[0,a(eK),0]],avF=[0,a(d),jd,10,jd,15,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avx=[0,a(d),jd,10,jd,15,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avG=[0,a(az),[0,a("coefficient_prise_en_charge_d832_25_seuil"),0]],avV=[0,a(az),[0,a(bE),0]],av0=[0,a(d),j4,10,j4,29,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],avW=[0,a(d),j4,10,j4,29,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],av1=[0,a(az),[0,a(eV),0]],av_=[0,a(az),[0,a(fg),0]],ars=[0,a(D),xZ,14,xZ,33,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],arq=a(n),arr=a(n),arm=[0,a(D),xx,14,xx,39,[0,a(rz),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],ark=a(n),arl=a(n),arg=[0,a(D),uW,14,uW,36,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],arb=[0,a(aM),[0,a(j_),[0,a(ai),0]]],arc=[0,a(aM),[0,a(j_),0]],ard=[0,a(aM),[0,a(j_),[0,a(aj),0]]],are=[0,a(aM),[0,a(j_),0]],arf=a(n),arh=[0,a(d),mx,10,mx,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ara=[0,a(d),mx,10,mx,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aq9=[0,a(D),Do,14,Do,42,[0,a(rz),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aq5=[0,a(aB),Bu,14,Bu,36,[0,a(qF),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aqZ=[0,a(aM),[0,a(bE),[0,a(ai),0]]],aq0=[0,a(aM),[0,a(bE),0]],aq1=[0,a(aM),[0,a(bE),[0,a(aj),0]]],aq2=[0,a(aM),[0,a(bE),0]],aq3=a(n),aq4=a(n),aq6=[0,a(d),nX,10,nX,36,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqY=[0,a(d),nX,10,nX,36,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqS=[0,a(aJ),EV,14,EV,33,[0,a(cD),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],aqQ=a(hw),aqR=a(hw),aqT=[0,a(d),eB,10,eB,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqP=[0,a(aJ),q_,14,q_,33,[0,a(cD),[0,a(bv),[0,a(aK),0]]]],aqN=a(hw),aqO=a(hw),aqU=[0,a(d),eB,10,eB,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqM=[0,a(O),fT,14,fT,33,[0,a(cD),[0,a(bR),[0,a(K),0]]]],aqK=a(hw),aqL=a(hw),aqV=[0,a(d),eB,10,eB,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqG=[0,a(D),u0,14,u0,36,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aqv=[0,a(aM),[0,a(bD),[0,a(ai),0]]],aqw=[0,a(aM),[0,a(bD),0]],aqx=[0,a(aM),[0,a(bD),[0,a(aj),0]]],aqy=[0,a(aM),[0,a(bD),0]],aqz=[0,a(bh),[0,a(bK),[0,a(ai),0]]],aqA=[0,a(bh),[0,a(bK),0]],aqB=[0,a(bh),[0,a(bK),[0,a(aj),0]]],aqC=[0,a(bh),[0,a(bK),0]],aqD=a(kL),aqE=a(n),aqF=a(n),aqH=[0,a(d),oR,10,oR,40,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqu=[0,a(d),oR,10,oR,40,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqo=[0,a(aJ),zT,14,zT,33,[0,a(cD),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],aqc=a(hb),aqd=a(bZ),aqe=a(hb),aqf=a(db),aqg=a(e$),aqh=a(e$),aqi=a(db),aqj=a(db),aqk=a(rU),aql=a(qy),aqm=a(e$),aqn=a(bZ),aqp=[0,a(d),eD,10,eD,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqb=[0,a(aJ),v1,14,v1,33,[0,a(cD),[0,a(bv),[0,a(aK),0]]]],ap1=a(hb),ap2=a(bZ),ap3=a(hb),ap4=a(db),ap5=a(e$),ap6=a(e$),ap7=a(db),ap8=a(db),ap9=a(rU),ap_=a(qy),ap$=a(e$),aqa=a(bZ),aqq=[0,a(d),eD,10,eD,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ap0=[0,a(O),wf,14,wf,33,[0,a(cD),[0,a(bR),[0,a(K),0]]]],apO=a(hb),apP=a(bZ),apQ=a(hb),apR=a(db),apS=a(e$),apT=a(e$),apU=a(db),apV=a(db),apW=a(rU),apX=a(qy),apY=a(e$),apZ=a(bZ),aqr=[0,a(d),eD,10,eD,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apK=[0,a(D),xS,14,xS,36,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],apE=[0,a(aM),[0,a(ki),[0,a(ai),0]]],apF=[0,a(aM),[0,a(ki),0]],apG=[0,a(aM),[0,a(ki),[0,a(aj),0]]],apH=[0,a(aM),[0,a(ki),0]],apI=a(n),apJ=a(n),apL=[0,a(d),mm,10,mm,32,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apD=[0,a(d),mm,10,mm,32,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apx=[0,a(aJ),hU,14,hU,28,[0,a(cD),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],apv=a(c0),apw=a(c0),apy=[0,a(d),eA,11,eA,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apu=[0,a(aJ),fa,14,fa,28,[0,a(cD),[0,a(bv),[0,a(aK),0]]]],aps=a(c0),apt=a(c0),apz=[0,a(d),eA,11,eA,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apr=[0,a(O),m2,14,m2,28,[0,a(cD),[0,a(bR),[0,a(K),0]]]],app=a(c0),apq=a(c0),apA=[0,a(d),eA,11,eA,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apk=[0,a(O),cZ,14,cZ,36,[0,a(r8),[0,a(bR),[0,a(K),0]]]],apg=a(ET),aph=a(iw),api=a(iw),apj=a(ET),apl=[0,a(d),d2,10,d2,32,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ape=[0,a(aJ),rM,14,rM,36,[0,a(r8),[0,a(bv),[0,a(aK),0]]]],apa=a(Cd),apb=a(iw),apc=a(iw),apd=a(Cd),apf=[0,a(d),d2,10,d2,32,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ao_=[0,a(aJ),fY,14,fY,36,[0,a(r8),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],ao6=a(Dx),ao7=a(iw),ao8=a(iw),ao9=a(Dx),ao$=[0,a(d),d2,10,d2,32,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ao1=[0,a(D),wp,5,wp,50,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],ao2=[0,a(d),ii,10,ii,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ao0=[0,a(D),xn,14,xn,36,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aoZ=a(n),ao3=[0,a(d),ii,10,ii,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoY=[0,a(d),ii,10,ii,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoV=[0,a(D),zz,14,zz,28,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aoR=[0,a(O),q4,14,q4,42,[0,a(Bo),[0,a(bR),[0,a(K),0]]]],aoO=a("3.4"),aoP=a(h$),aoQ=a(h$),aoK=[0,a(O),q8,14,q8,41,[0,a(Bo),[0,a(bR),[0,a(K),0]]]],aoH=a("4."),aoI=a(yt),aoJ=a(yt),aoD=[0,a(D),xh,14,xh,29,[0,a("Article D842-2"),[0,a(r$),[0,a(ae),[0,a(ad),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],aoB=a(og),aoC=a(kx),aov=[0,a(O),hI,29,hI,64,[0,a(dG),[0,a(bR),[0,a(K),0]]]],aos=a(gs),aot=a(qM),aou=a(fj),aow=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoq=[0,a(aJ),vt,29,vt,64,[0,a(dG),[0,a(bv),[0,a(aK),0]]]],aon=a(gE),aoo=a(qo),aop=a(fb),aor=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aol=[0,a(aJ),xa,29,xa,64,[0,a(dG),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],aoi=a(ov),aoj=a(A$),aok=a(my),aom=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aox=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aof=[0,a(O),zj,29,zj,64,[0,a(rZ),[0,a(bR),[0,a(K),0]]]],aod=a(gs),aoe=a(fj),aog=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aob=[0,a(aJ),m1,29,m1,64,[0,a(rZ),[0,a(bv),[0,a(aK),0]]]],an$=a(gE),aoa=a(fb),aoc=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],an9=[0,a(aJ),Ex,29,Ex,64,[0,a(rZ),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],an7=a(ov),an8=a(my),an_=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoh=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],an0=a(n),an1=[0,a(O),527,5,528,34,[0,a(dG),[0,a(bR),[0,a(K),0]]]],anX=a(AC),anY=a(vr),anZ=a(CF),an2=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],anU=a(n),anV=[0,a(O),536,5,537,34,[0,a(dG),[0,a(bR),[0,a(K),0]]]],anR=a("27905"),anS=a("24683"),anT=a("22911"),anW=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],anO=a(v),anP=[0,a(O),vd,5,vd,35,[0,a(dG),[0,a(bR),[0,a(K),0]]]],anF=a(v),anG=a("4576"),anH=a("31539"),anI=a(v),anJ=a("4043"),anK=a("27774"),anL=a(v),anM=a("3682"),anN=a("25689"),anQ=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],anC=a(n),anD=[0,a(aJ),353,5,354,34,[0,a(dG),[0,a(bv),[0,a(aK),0]]]],anz=a(CP),anA=a(xE),anB=a(wh),anE=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],anw=a(n),anx=[0,a(aJ),Bj,5,cj,34,[0,a(dG),[0,a(bv),[0,a(aK),0]]]],ant=a("26962"),anu=a("23848"),anv=a("22136"),any=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],anq=a(v),anr=[0,a(aJ),hf,5,hf,35,[0,a(dG),[0,a(bv),[0,a(aK),0]]]],anh=a(v),ani=a("4421"),anj=a("30473"),ank=a(v),anl=a("3906"),anm=a("26835"),ann=a(v),ano=a("3557"),anp=a("24821"),ans=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ane=a(n),anf=[0,a(aJ),rS,5,gG,34,[0,a(dG),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],anb=a(B3),anc=a(vC),and=a(Cm),ang=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],am_=a(n),am$=[0,a(aJ),gv,5,1082,34,[0,a(dG),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],am7=a("26849"),am8=a("23748"),am9=a("22044"),ana=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],am4=a(v),am5=[0,a(aJ),f0,5,f0,35,[0,a(dG),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],amV=a(v),amW=a("4403"),amX=a("30345"),amY=a(v),amZ=a("3890"),am0=a("26723"),am1=a(v),am2=a("3542"),am3=a("24717"),am6=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],an3=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amR=[0,a(O),iC,5,iC,61,[0,a(ir),[0,a(bR),[0,a(K),0]]]],amO=a(AC),amP=a(vr),amQ=a(CF),amS=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amM=[0,a(aJ),cU,5,cU,61,[0,a(ir),[0,a(bv),[0,a(aK),0]]]],amJ=a(CP),amK=a(xE),amL=a(wh),amN=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amH=[0,a(aJ),gB,5,gB,61,[0,a(ir),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],amE=a(B3),amF=a(vC),amG=a(Cm),amI=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amT=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amB=[0,a(O),l_,14,l_,37,[0,a(ir),[0,a(bR),[0,a(K),0]]]],amy=a("27765"),amz=a("24198"),amA=a("22680"),amC=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amw=[0,a(aJ),kr,14,kr,37,[0,a(ir),[0,a(bv),[0,a(aK),0]]]],amt=a("26826"),amu=a("23380"),amv=a("21913"),amx=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amr=[0,a(aJ),rl,14,rl,37,[0,a(ir),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],amo=a(Fb),amp=a("23282"),amq=a("21821"),ams=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amD=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amU=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amk=a(n),aml=[0,a(O),dH,5,ba,34,[0,a(cE),[0,a(bR),[0,a(K),0]]]],amh=a("30850"),ami=a("26887"),amj=a("25200"),amm=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ame=a(n),amf=[0,a(O),yQ,5,115,34,[0,a(cE),[0,a(bR),[0,a(K),0]]]],amb=a("37207"),amc=a("32910"),amd=a("30548"),amg=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],al_=a(v),al$=[0,a(O),n0,5,n0,35,[0,a(cE),[0,a(bR),[0,a(K),0]]]],al1=a(v),al2=a("6101"),al3=a("42052"),al4=a(v),al5=a("5390"),al6=a("37032"),al7=a(v),al8=a("4909"),al9=a("34252"),ama=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],alY=a(n),alZ=[0,a(aJ),34,5,35,34,[0,a(cE),[0,a(bv),[0,a(aK),0]]]],alV=a("29807"),alW=a(r1),alX=a("24348"),al0=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],alS=a(n),alT=[0,a(aJ),44,5,45,34,[0,a(cE),[0,a(bv),[0,a(aK),0]]]],alP=a("35949"),alQ=a(mF),alR=a("29515"),alU=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],alM=a(v),alN=[0,a(aJ),54,5,54,35,[0,a(cE),[0,a(bv),[0,a(aK),0]]]],alD=a(v),alE=a("5895"),alF=a("40630"),alG=a(v),alH=a(ry),alI=a(rY),alJ=a(v),alK=a("4743"),alL=a("33094"),alO=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],alA=a(n),alB=[0,a(aJ),759,5,760,34,[0,a(cE),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],alx=a("29682"),aly=a("25859"),alz=a("24246"),alC=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],alu=a(n),alv=[0,a(aJ),769,5,770,34,[0,a(cE),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],alr=a("35799"),als=a(Ax),alt=a("29392"),alw=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],alo=a(v),alp=[0,a(aJ),BO,5,BO,35,[0,a(cE),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],alf=a(v),alg=a("5870"),alh=a("40460"),ali=a(v),alj=a(vU),alk=a(z_),all=a(v),alm=a("4723"),aln=a(yf),alq=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],amn=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],alb=[0,a(O),mP,14,mP,42,[0,a("Article 12"),[0,a(bR),[0,a(K),0]]]],ak_=a(n),ak$=a(h9),ala=a(h9),ak4=[0,a(aJ),rd,14,rd,29,[0,a(cD),[0,a(bv),[0,a(aK),0]]]],akY=a(n),akZ=a(r1),ak0=a(mF),ak1=a(v),ak2=a(ry),ak3=a(rY),ak5=[0,a(d),em,11,em,26,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],akX=[0,a(O),hi,14,hi,29,[0,a(cD),[0,a(bR),[0,a(K),0]]]],akR=a(n),akS=a(r1),akT=a(mF),akU=a(v),akV=a(ry),akW=a(rY),ak6=[0,a(d),em,11,em,26,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],akP=[0,a(aJ),oQ,14,oQ,29,[0,a(cD),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],akJ=a(n),akK=a("25869"),akL=a(Ax),akM=a(v),akN=a(vU),akO=a(z_),akQ=[0,a(d),em,11,em,26,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],akE=[0,a(O),fL,14,fL,44,[0,a(qK),[0,a(bR),[0,a(K),0]]]],akm=a(n),akn=a("487000"),ako=a("697700"),akp=a(v),akq=a(A7),akr=a(T),aks=a("850900"),akt=a(Y),aku=a("883400"),akv=a(aa),akw=a("916300"),akx=a(N),aky=a("948800"),akz=a(dN),akA=a(Cx),akB=a(dN),akC=a("32300"),akD=a(Cx),akF=[0,a(d),eu,11,eu,41,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],akk=[0,a(aJ),xV,14,xV,44,[0,a(qK),[0,a("Articles valables du 1er janvier 2022 au 1er juillet 2022"),[0,a(aK),0]]]],aj4=a(n),aj5=a("468300"),aj6=a("670900"),aj7=a(v),aj8=a("800200"),aj9=a(T),aj_=a("819200"),aj$=a(Y),aka=a("849500"),akb=a(aa),akc=a("881100"),akd=a(N),ake=a("912400"),akf=a(dN),akg=a(Ao),akh=a(dN),aki=a("31100"),akj=a(Ao),akl=[0,a(d),eu,11,eu,41,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aj2=[0,a(aJ),xR,14,xR,44,[0,a(qK),[0,a(K),[0,a("Articles valables du 1er janvier 2020 au 1er janvier 2022"),[0,a(aK),0]]]]],ajK=a(n),ajL=a("458800"),ajM=a("657200"),ajN=a(v),ajO=a("783900"),ajP=a(T),ajQ=a("801500"),ajR=a(Y),ajS=a(A7),ajT=a(aa),ajU=a("863100"),ajV=a(N),ajW=a("893800"),ajX=a(dN),ajY=a(u5),ajZ=a(dN),aj0=a(oe),aj1=a(u5),aj3=[0,a(d),eu,11,eu,41,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ajD=[0,a(aJ),nJ,14,nJ,40,[0,a(cD),[0,a(K),[0,a(cf),[0,a(aK),0]]]]],ajl=a(n),ajm=a(rk),ajn=a(re),ajo=a(v),ajp=a(qs),ajq=a(T),ajr=a(qZ),ajs=a(Y),ajt=a(rR),aju=a(aa),ajv=a(qp),ajw=a(N),ajx=a(q5),ajy=a(dN),ajz=a(hG),ajA=a(dN),ajB=a(q9),ajC=a(hG),ajE=[0,a(d),dP,10,dP,36,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ajk=[0,a(aJ),nk,14,nk,40,[0,a(cD),[0,a(bv),[0,a(aK),0]]]],ai4=a(n),ai5=a(rk),ai6=a(re),ai7=a(v),ai8=a(qs),ai9=a(T),ai_=a(qZ),ai$=a(Y),aja=a(rR),ajb=a(aa),ajc=a(qp),ajd=a(N),aje=a(q5),ajf=a(dN),ajg=a(hG),ajh=a(dN),aji=a(q9),ajj=a(hG),ajF=[0,a(d),dP,10,dP,36,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ai3=[0,a(O),zI,14,zI,40,[0,a(cD),[0,a(bR),[0,a(K),0]]]],aiL=a(n),aiM=a(rk),aiN=a(re),aiO=a(v),aiP=a(qs),aiQ=a(T),aiR=a(qZ),aiS=a(Y),aiT=a(rR),aiU=a(aa),aiV=a(qp),aiW=a(N),aiX=a(q5),aiY=a(dN),aiZ=a(hG),ai0=a(dN),ai1=a(q9),ai2=a(hG),ajG=[0,a(d),dP,10,dP,36,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiF=[0,a(d),fU,14,fU,50,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiB=[0,a(O),Bm,14,Bm,41,[0,a("Article 11"),[0,a(bR),[0,a(K),0]]]],aiA=a(ka),aiw=[0,a(D),w5,14,w5,29,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aiv=a(wR),aix=[0,a(d),oy,11,oy,26,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiu=[0,a(d),oy,11,oy,26,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiy=[0,a(aM),[0,a("fraction_l832_3"),0]],aiC=[0,a(d),m7,11,m7,38,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiz=[0,a(d),m7,11,m7,38,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiD=[0,a(aM),[0,a("montant_forfaitaire_d823_16"),0]],aiG=[0,a(d),fU,14,fU,50,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiH=[0,a(aM),[0,a(kp),0]],aiE=[0,a(d),fU,14,fU,50,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiI=[0,a(aM),[0,a(eF),[0,a(bh),0]]],aiJ=[0,a(aM),[0,a(eF),[0,a(bh),0]]],ajH=[0,a(d),dP,10,dP,36,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aiK=[0,a(d),dP,10,dP,36,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ajI=[0,a(aM),[0,a("taux_composition_familiale"),0]],akG=[0,a(d),eu,11,eu,41,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ajJ=[0,a(d),eu,11,eu,41,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],akH=[0,a(aM),[0,a("abattement_forfaitaire_d823_17"),0]],ak7=[0,a(d),em,11,em,26,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],akI=[0,a(d),em,11,em,26,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ak8=[0,a(aM),[0,a("loyer_r\xc3\xa9f\xc3\xa9rence"),0]],alc=[0,a(d),l8,11,l8,39,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ak9=[0,a(d),l8,11,l8,39,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ald=[0,a(aM),[0,a("montant_minimal_aide_d823_16"),0]],an4=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ale=[0,a(d),au,10,au,33,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],an5=[0,a(aM),[0,a("plafond_loyer_d823_16_2"),0]],aoy=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],an6=[0,a(d),cg,10,cg,45,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoz=[0,a(aM),[0,a("montant_forfaitaire_charges_d823_16"),0]],aoE=[0,a(d),nD,10,nD,31,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoA=[0,a(d),nD,10,nD,31,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoF=[0,a(aM),[0,a("loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9"),0]],aoL=[0,a(d),mT,11,mT,38,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoG=[0,a(d),mT,11,mT,38,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoM=[0,a(aM),[0,a("plafond_suppression_d823_16"),0]],aoS=[0,a(d),oJ,11,oJ,39,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoN=[0,a(d),oJ,11,oJ,39,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoT=[0,a(aM),[0,a("plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16"),0]],aoW=[0,a(d),m6,11,m6,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoU=[0,a(d),m6,11,m6,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aoX=[0,a(aM),[0,a("loyer_\xc3\xa9ligible"),0]],ao4=[0,a(aM),[0,a(ki),0]],apm=[0,a(d),d2,10,d2,32,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],ao5=[0,a(d),d2,10,d2,32,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apn=[0,a(aM),[0,a("participation_minimale"),0]],apB=[0,a(d),eA,11,eA,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apo=[0,a(d),eA,11,eA,25,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apC=[0,a(aM),[0,a("rapport_loyers"),0]],apM=[0,a(aM),[0,a(bD),0]],aqs=[0,a(d),eD,10,eD,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],apN=[0,a(d),eD,10,eD,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqt=[0,a(aM),[0,a("taux_loyer_\xc3\xa9ligible_formule"),0]],aqI=[0,a(aM),[0,a(bE),0]],aqW=[0,a(d),eB,10,eB,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqJ=[0,a(d),eB,10,eB,17,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aqX=[0,a(aM),[0,a("taux_loyer_\xc3\xa9ligible_arrondi"),0]],aq7=[0,a(aM),[0,a(j_),0]],aq_=[0,a(d),op,11,op,39,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aq8=[0,a(d),op,11,op,39,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aq$=[0,a(aM),[0,a("taux_prise_compte_ressources"),0]],ari=[0,a(aM),[0,a(fg),0]],arn=[0,a(d),nH,10,nH,35,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],arj=[0,a(d),nH,10,nH,35,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aro=[0,a(aM),[0,a("participation_personnelle"),0]],art=[0,a(d),hI,10,hI,29,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],arp=[0,a(d),hI,10,hI,29,[0,a(J),[0,a(s),[0,a(i),[0,a(e),0]]]]],aru=[0,a(aM),[0,a(eV),0]],arw=a(h$),arv=[0,a(D),om,13,om,76,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],arB=[0,a(D),om,13,om,76,[0,a(er),[0,a(dx),[0,a(bt),[0,a(be),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],ary=a(oq),arz=a(wR),arx=[0,a(aB),eR,13,eR,63,[0,a(qF),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],arA=[0,a(aB),eR,13,eR,63,[0,a(qF),[0,a(bg),[0,a(_),[0,a(w),[0,a(Z),[0,a(u),0]]]]]]],aii=[6,0],aik=[0,0],ail=[1,0],aim=[2,0],ain=[3,0],aio=[4,0],aip=[5,0],aiq=[7,0],aij=[0,a(b3),29,5,38,6,[0,a(cz),[0,a(lI),[0,a(aU),0]]]],aih=a(we),air=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],aie=[8,0],aif=[0,a(b3),47,5,49,6,[0,a(cz),[0,a(lI),[0,a(aU),0]]]],aid=a(w7),aig=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ah5=[6,0],ah7=[0,0],ah8=[1,0],ah9=[2,0],ah_=[3,0],ah$=[4,0],aia=[5,0],aib=[7,0],ah6=[0,a(b3),68,5,77,6,[0,a(cz),[0,a(nz),[0,a(aU),0]]]],ah4=a(Aa),aic=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ah1=[8,0],ah2=[0,a(b3),86,5,88,6,[0,a(cz),[0,a(nz),[0,a(aU),0]]]],ah0=a(uH),ah3=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ahQ=[6,0],ahS=[0,0],ahT=[1,0],ahU=[2,0],ahV=[3,0],ahW=[4,0],ahX=[5,0],ahY=[7,0],ahR=[0,a(b3),du,5,bi,6,[0,a(cz),[0,a(lK),[0,a(aU),0]]]],ahP=a(AM),ahZ=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ahM=[8,0],ahN=[0,a(b3),cn,5,cy,6,[0,a(cz),[0,a(lK),[0,a(aU),0]]]],ahL=a(DC),ahO=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ahB=[6,0],ahD=[0,0],ahE=[1,0],ahF=[2,0],ahG=[3,0],ahH=[4,0],ahI=[5,0],ahJ=[7,0],ahC=[0,a(b3),eU,5,fF,6,[0,a(cz),[0,a(m8),[0,a(aU),0]]]],ahA=a(AY),ahK=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ahx=[8,0],ahy=[0,a(b3),qG,5,nE,6,[0,a(cz),[0,a(m8),[0,a(aU),0]]]],ahw=a(wr),ahz=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ahm=[6,0],aho=[0,0],ahp=[1,0],ahq=[2,0],ahr=[3,0],ahs=[4,0],aht=[5,0],ahu=[7,0],ahn=[0,a(b3),mZ,5,iC,6,[0,a(m9),[0,a(mw),[0,a(aU),0]]]],ahl=a(y8),ahv=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ahi=[8,0],ahj=[0,a(b3),wv,5,x4,6,[0,a(m9),[0,a(mw),[0,a(aU),0]]]],ahh=a(DB),ahk=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ais=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ahg=[0,a(b3),11,10,11,22,[0,a(B),[0,a(aU),0]]],ait=[0,a(hj),[0,a(zt),0]],ahc=[0,a(eI),28,5,29,34,[0,a(BE),[0,a(cb),0]]],ahb=a(w9),ahd=[0,a(eI),6,10,6,17,[0,a(cb),0]],ag$=[0,a(eI),48,5,49,34,[0,a(z5),[0,a(cb),0]]],ag_=a(wO),aha=[0,a(eI),6,10,6,17,[0,a(cb),0]],ag8=[0,a(eI),64,5,65,34,[0,a(Bq),[0,a(cb),0]]],ag7=a(Bc),ag9=[0,a(eI),6,10,6,17,[0,a(cb),0]],ag5=[0,a(eI),82,5,83,34,[0,a(wl),[0,a(cb),0]]],ag4=a(A8),ag6=[0,a(eI),6,10,6,17,[0,a(cb),0]],ahe=[0,a(eI),6,10,6,17,[0,a(cb),0]],ag3=[0,a(eI),6,10,6,17,[0,a(cb),0]],ahf=[0,a(f2),[0,a(bK),0]],agY=[0,a(D),vY,14,vY,28,[0,a(kE),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agX=a(n),agZ=[0,a(d),fZ,10,fZ,24,[0,a(ce),[0,a(y),[0,a(e),0]]]],agW=[0,a(D),DD,14,DD,28,[0,a(ky),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agV=a(n),ag0=[0,a(d),fZ,10,fZ,24,[0,a(ce),[0,a(y),[0,a(e),0]]]],agQ=[0,a(D),Ch,20,Ch,55,[0,a(ky),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agN=a(n),agO=a(n),agP=a(kx),agR=[0,a(d),dF,11,dF,43,[0,a(ce),[0,a(y),[0,a(e),0]]]],agL=[0,a(D),yl,20,yl,51,[0,a(ky),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agI=a(n),agJ=a(n),agK=a(kx),agM=[0,a(d),dF,11,dF,43,[0,a(ce),[0,a(y),[0,a(e),0]]]],agG=[0,a(D),C_,7,C_,42,[0,a(kE),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agC=a(BR),agD=a(ek),agE=a(kx),agF=a(n),agH=[0,a(d),dF,11,dF,43,[0,a(ce),[0,a(y),[0,a(e),0]]]],agA=[0,a(D),Av,7,Av,51,[0,a(kE),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agw=a(BR),agx=a(ek),agy=a(kx),agz=a(n),agB=[0,a(d),dF,11,dF,43,[0,a(ce),[0,a(y),[0,a(e),0]]]],agr=[0,a(D),A_,14,A_,36,[0,a(ky),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],ags=[0,a(d),fE,11,fE,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agp=[0,a(D),vP,14,vP,36,[0,a(kE),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],ago=a(cG),agq=[0,a(d),fE,11,fE,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agi=[0,a(D),A0,14,A0,36,[0,a(kE),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agj=[0,a(d),fG,11,fG,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agh=[0,a(D),CL,14,CL,36,[0,a(ky),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],agk=[0,a(d),fG,11,fG,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agd=[0,a(D),At,14,At,36,[0,a("Article R824-3"),[0,a(d4),[0,a(d9),[0,a(ab),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],af_=[0,0],af$=[1,0],aga=[1,0],agb=[0,0],agc=[0,0],age=[0,a(d),kt,11,kt,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],af9=[0,a(d),kt,11,kt,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agf=[0,a(kw),[0,a("mode_occupation_impay\xc3\xa9"),0]],agl=[0,a(d),fG,11,fG,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agg=[0,a(d),fG,11,fG,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agm=[0,a(kw),[0,a("d\xc3\xa9pense_logement_brute"),0]],agt=[0,a(d),fE,11,fE,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agn=[0,a(d),fE,11,fE,33,[0,a(ce),[0,a(y),[0,a(e),0]]]],agu=[0,a(kw),[0,a("d\xc3\xa9pense_logement_nette"),0]],agS=[0,a(d),dF,11,dF,43,[0,a(ce),[0,a(y),[0,a(e),0]]]],agv=[0,a(d),dF,11,dF,43,[0,a(ce),[0,a(y),[0,a(e),0]]]],agT=[0,a(kw),[0,a("seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement"),0]],ag1=[0,a(d),fZ,10,fZ,24,[0,a(ce),[0,a(y),[0,a(e),0]]]],agU=[0,a(d),fZ,10,fZ,24,[0,a(ce),[0,a(y),[0,a(e),0]]]],ag2=[0,a(kw),[0,a("montant_impay\xc3\xa9"),0]],af4=[0,a(c4),kr,5,kr,43,[0,a(kd),[0,a(jZ),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(i2),[0,a(Z),[0,a($),0]]]]]]]]]],af5=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],af2=[0,a(c4),ev,5,ev,42,[0,a(kv),[0,a(kk),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(j0),[0,a(a6),[0,a($),0]]]]]]]]]],af3=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],af0=[0,a(c4),266,5,qu,43,[0,a(kv),[0,a(kk),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(j0),[0,a(a6),[0,a($),0]]]]]]]]]],af1=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],afX=a("1952"),afY=[0,a(c4),wL,5,wL,48,[0,a(kv),[0,a(kk),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(j0),[0,a(a6),[0,a($),0]]]]]]]]]],afZ=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],afU=a("1953"),afV=[0,a(c4),m5,5,m5,48,[0,a(kv),[0,a(kk),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(j0),[0,a(a6),[0,a($),0]]]]]]]]]],afW=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],afR=a("1954"),afS=[0,a(c4),dJ,5,dJ,48,[0,a(kv),[0,a(kk),[0,a(es),[0,a(eP),[0,a(eS),[0,a(el),[0,a(j0),[0,a(a6),[0,a($),0]]]]]]]]]],afT=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],af6=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],afQ=[0,a(d),cN,10,cN,29,[0,a(fB),[0,a(y),[0,a(e),0]]]],af7=[0,a(rv),[0,a("\xc3\xa2ge_ouverture_droit"),0]],afN=[0,a(D),C0,14,C0,36,[0,a(dY),[0,a(ag),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]],afz=a(n),afA=a(De),afB=a(vJ),afC=a(v),afD=a(h$),afE=a(T),afF=a(og),afG=a(Y),afH=a(qr),afI=a(aa),afJ=a(hO),afK=a(aa),afL=a(j5),afM=a(hO),afO=[0,a(d),nR,10,nR,32,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],afy=[0,a(d),nR,10,nR,32,[0,a(C),[0,a(s),[0,a(i),[0,a(e),0]]]]],afP=[0,a(kh),[0,a(vu),0]],afu=[0,a(D),DP,5,DP,26,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],afg=a(n),afh=a("1.2"),afi=a("1.5"),afj=a(v),afk=a(h$),afl=a(T),afm=a(og),afn=a(Y),afo=a(qr),afp=a(aa),afq=a(hO),afr=a(aa),afs=a(j5),aft=a(hO),afv=[0,a(d),hp,10,hp,32,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aff=[0,a(D),zf,14,zf,36,[0,a(cm),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],ae3=a(n),ae4=a(De),ae5=a(vJ),ae6=a(v),ae7=a(h$),ae8=a(T),ae9=a(og),ae_=a(Y),ae$=a(qr),afa=a(aa),afb=a(hO),afc=a(aa),afd=a(j5),afe=a(hO),afw=[0,a(d),hp,10,hp,32,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],ae2=[0,a(d),hp,10,hp,32,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],afx=[0,a(ko),[0,a(C3),0]],aeY=[0,a(D),Da,5,Da,26,[0,a(rh),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aeX=a(bZ),aeV=a(cG),aeW=a(bZ),aeZ=[0,a(d),iA,10,iA,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aeU=[0,a(D),BU,14,BU,21,[0,a(rh),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aeT=a(bZ),aeR=a(cG),aeS=a(bZ),aeN=[0,a(D),Ei,14,Ei,50,[0,a(rh),[0,a(a3),[0,a(ah),[0,a(af),[0,a(_),[0,a(w),[0,a(E),[0,a(u),0]]]]]]]]],aeM=[1,0],aeH=[0,a(O),Dw,5,Dw,26,[0,a(sc),[0,a(fc),[0,a(K),0]]]],aes=a("0.328"),aet=a(xm),aeu=[1,0],aev=a(vy),aew=a(CX),aex=a(xm),aey=a(uU),aez=a(ys),aeA=a(CX),aeB=a("0.024"),aeC=a(vR),aeD=a(ys),aeE=a(bZ),aeF=a(n),aeG=a(vR),aeI=[0,a(d),gy,11,gy,35,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aer=[0,a(O),v_,14,v_,38,[0,a(sc),[0,a(fc),[0,a(K),0]]]],ad$=a("0.48"),aea=a(wP),aeb=[1,0],aec=a(r_),aed=a(yy),aee=a(wP),aef=a("0.264"),aeg=a(xO),aeh=a(yy),aei=a("0.216"),aej=a(Dl),aek=a(xO),ael=a("0.104"),aem=a(xM),aen=a(Dl),aeo=a(BL),aep=a(n),aeq=a(xM),ad7=[0,a(O),vT,14,vT,41,[0,a(sc),[0,a(fc),[0,a(K),0]]]],ad5=a("7632"),ad6=a("4557"),ad8=[0,a(d),lT,11,lT,38,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],ad4=[0,a(d),lT,11,lT,38,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],ad9=[0,a(dE),[0,a("montant_forfaitaire_d832_26"),0]],aeJ=[0,a(d),gy,11,gy,35,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],ad_=[0,a(d),gy,11,gy,35,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aeK=[0,a(dE),[0,a("tranches_revenus_d832_26"),0]],aeO=[0,a(d),nm,11,nm,47,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aeL=[0,a(d),nm,11,nm,47,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aeP=[0,a(dE),[0,a("tranches_revenus_d832_26_multipli\xc3\xa9es"),0]],ae0=[0,a(d),iA,10,iA,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],aeQ=[0,a(d),iA,10,iA,17,[0,a(M),[0,a(s),[0,a(i),[0,a(e),0]]]]],ae1=[0,a(dE),[0,a(bK),0]],ad0=[0,a(fy),eq,5,eq,35,[0,a(cD),[0,a(ra),[0,a(sa),0]]]],ad1=[0,a(d),nT,10,nT,17,[0,a(fH),[0,a(i),[0,a(e),0]]]],adZ=[0,a(d),nT,10,nT,17,[0,a(fH),[0,a(i),[0,a(e),0]]]],adW=[0,a(fy),m1,39,m1,69,[0,a(ng),[0,a(ra),[0,a(sa),0]]]],adV=a(lL),adQ=[0,a(c4),37,9,37,20,[0,a("Article L136-1-3"),[0,a("Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement"),[0,a("Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e"),[0,a(i2),[0,a(Z),[0,a($),0]]]]]]],adR=[0,a(d),fW,11,fW,22,[0,a(fH),[0,a(i),[0,a(e),0]]]],adP=[0,a(d),fW,11,fW,22,[0,a(fH),[0,a(i),[0,a(e),0]]]],adS=[0,a(d),fW,11,fW,22,[0,a(fH),[0,a(i),[0,a(e),0]]]],adO=[0,a(d),fW,11,fW,22,[0,a(fH),[0,a(i),[0,a(e),0]]]],adT=[0,a(bh),[0,a("exon\xc3\xa9r\xc3\xa9_csg"),0]],adX=[0,a(d),mW,11,mW,20,[0,a(fH),[0,a(i),[0,a(e),0]]]],adU=[0,a(d),mW,11,mW,20,[0,a(fH),[0,a(i),[0,a(e),0]]]],adY=[0,a(bh),[0,a("taux_crds"),0]],ad2=[0,a(bh),[0,a(bK),0]],ad3=[0,a(fy),cy,13,cy,24,[0,a(cD),[0,a(ra),[0,a(sa),0]]]],adG=a("enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse"),adH=a("condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi"),adI=a("situation_familiale"),adJ=a("nombre_autres_occupants_logement"),adK=a("personnes_\xc3\xa0_charge"),adL=a("logement"),adM=a("prestations_re\xc3\xa7ues"),adN=[0,a("M\xc3\xa9nage"),0],adw=a("zone"),adx=a("surface_m_carr\xc3\xa9s"),ady=a("logement_decent_l89_462"),adz=a("usufruit"),adA=a("lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers"),adB=a("propri\xc3\xa9taire"),adC=a("mode_occupation"),adD=a("est_ehpad_ou_maison_autonomie_l313_12_asf"),adE=a("r\xc3\xa9sidence_principale"),adF=[0,a("Logement"),0],adq=a(yA),ads=a("R\xc3\xa9sidentLogementFoyer"),adt=a("AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation"),adu=a(Cr),adv=a(xf),adr=[0,a("ModeOccupation"),0],adm=a(EX),ado=a("AccessionPropri\xc3\xa9t\xc3\xa9"),adp=a(xl),adn=[0,a("Cat\xc3\xa9gorieCalculAPL"),0],add=a("changement_logement_d842_4"),ade=a("logement_meubl\xc3\xa9_d842_2"),adf=a("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),adg=a("colocation"),adh=a("logement_est_chambre"),adi=a("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),adj=a("loyer_principal"),adk=a("bailleur"),adl=[0,a(EX),0],ac_=a("personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale"),ac$=a("patrimoine"),ada=a("nationalit\xc3\xa9"),adb=a(AK),adc=[0,a(ql),0],ac7=a(C5),ac9=a(B5),ac8=[0,a("Personne\xc3\x80Charge"),0],acV=a("pr\xc3\xaat"),acW=a("anciennet\xc3\xa9_logement"),acX=a("situation_r822_11_13_17"),acY=a("copropri\xc3\xa9t\xc3\xa9"),acZ=a("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire"),ac0=a("type_travaux_logement_r842_5"),ac1=a("type_travaux_logement_d832_15"),ac2=a("date_entr\xc3\xa9e_logement"),ac3=a("charges_mensuelles_pr\xc3\xaat"),ac4=a("mensualit\xc3\xa9_principale"),ac5=a("logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2"),ac6=[0,a("Propri\xc3\xa9taire"),0],acS=a(Ac),acU=a(yY),acT=[0,a("ChangementLogementD842_4"),0],acP=a("Fran\xc3\xa7aise"),acR=a("\xc3\x89trang\xc3\xa8re"),acQ=[0,a("Nationalit\xc3\xa9"),0],acM=a(kF),acO=a(oS),acN=[0,a("Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers"),0],acI=a(B8),acK=a("BailleurPriv\xc3\xa9AvecConventionnementSocial"),acL=a("BailleurPriv\xc3\xa9"),acJ=[0,a("TypeBailleur"),0],acA=a("situation_garde_altern\xc3\xa9e"),acB=a(rp),acC=a(qR),acD=a(qQ),acE=a(qL),acF=a(qw),acG=a(ri),acH=[0,a(C5),0],acs=a(qw),act=a(qL),acu=a(DZ),acv=a(qQ),acw=a(qR),acx=a(rp),acy=a(ri),acz=[0,a("EnfantPrestationsFamiliales"),0],ack=a("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"),acl=a("redevance"),acm=a("construit_application_loi_1957_12_III"),acn=a("date_conventionnement"),aco=a(Eg),acp=a("remplit_conditions_r832_21"),acq=a("type"),acr=[0,a(xl),0],acc=a("titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e"),acd=a("b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu"),ace=a("incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi"),acf=a("parent\xc3\xa9"),acg=a("ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9"),ach=a("ressources"),aci=a(AK),acj=[0,a(B5),0],ab_=a(uE),ab$=a(uT),aca=a(DI),acb=[0,a("TrancheRevenuD\xc3\xa9cimal"),0],ab5=a(uE),ab6=a(uT),ab7=a(DI),ab8=[0,a("TrancheRevenu"),0],ab1=a(zZ),ab3=a(Cg),ab2=[0,a("NeufOuAncien"),0],abX=a("titulaire_pr\xc3\xaat"),abY=a("date_signature"),abZ=a("type_pr\xc3\xaat"),ab0=[0,a("Pr\xc3\xaat"),0],abU=a("ancienne_allocation_logement"),abV=a("ancien_loyer_principal"),abW=[0,a("InfosChangementLogementD842_4"),0],abR=a(bA),abS=a(eV),abT=[0,a("Traitement_formule_aide_finale"),0],abP=a("satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale"),abQ=[0,a("Conditions\xc3\x89trangers"),0],abM=a("ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),abN=a("produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),abO=[0,a("Patrimoine"),0],abJ=a("conforme_article_l442_1"),abK=a("date_naissance_personne_sous_location"),abL=[0,a("PersonneSousLocation"),0],abH=a("conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3"),abI=[0,a("ConventionANHA"),0],abE=a("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue"),abF=a(Eg),abG=[0,a("ConventionBailleurSocial"),0],abv=a(n_),abx=a(Q),aby=a(qJ),abz=a(nI),abA=a(CU),abB=a(iP),abC=a(A6),abD=a(yk),abw=[0,a(EQ),0],abq=a(kj),abs=a(j9),abt=a(Bw),abr=[0,a(B7),0],abk=a(Ap),abm=a(C7),abn=a(jX),abo=a(Ep),abp=a(x8),abl=[0,a("PriseEnChargeEnfant"),0],aba=a(mi),abc=a(oj),abd=a(lX),abe=a(Cz),abf=a(yg),abg=a(oU),abh=a(Cb),abi=a(m$),abj=a(ow),abb=[0,a(A9),0],aa9=a(DU),aa$=a(zN),aa_=[0,a("SituationFamilialeCalculAPL"),0],aa4=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS"),aa6=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e"),aa7=a("Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16"),aa8=a(DS),aa5=[0,a("Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer"),0],aaZ=a("LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es"),aa1=a("R\xc3\xa9sidenceSociale"),aa2=a("FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995"),aa3=a(id),aa0=[0,a("TypeLogementFoyer"),0],aaS=a("C\xc3\xa9libataire"),aaU=a("Mari\xc3\xa9s"),aaV=a("Pacs\xc3\xa9s"),aaW=a(yh),aaX=a("C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait"),aaY=a("ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait"),aaT=[0,a("SituationFamiliale"),0],aaO=a("AidePersonnalis\xc3\xa9eLogement"),aaQ=a(oI),aaR=a(m_),aaP=[0,a("TypeAidesPersonnelleLogement"),0],aaK=a("Pas\xc3\x89ligible"),aaM=a(oI),aaN=a(m_),aaL=[0,a("Type\xc3\x89ligibilit\xc3\xa9AllocationLogement"),0],aaH=a("Impay\xc3\xa9Loyer"),aaJ=a("Impay\xc3\xa9Pr\xc3\xaat"),aaI=[0,a("ModeOccupationImpay\xc3\xa9"),0],aaC=a("TotalAnnuel\xc3\x89ch\xc3\xa9ances"),aaE=a("Mensualit\xc3\xa9"),aaF=a(Et),aaD=[0,a("D\xc3\xa9penseLogement"),0],aay=a(yz),aaA=a(vw),aaB=a(x$),aaz=[0,a("ZoneDHabitation"),0],aau=a(AA),aaw=a(As),aax=a("Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9"),aav=[0,a("Parent\xc3\xa9"),0],aar=a("PasDeGardeAltern\xc3\xa9e"),aat=a("GardeAltern\xc3\xa9eCoefficientPriseEnCharge"),aas=[0,a("SituationGardeAltern\xc3\xa9e"),0],aao=a("DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s"),aaq=a(id),aap=[0,a("ParentOuAutre"),0],aah=a(Q),aaj=a(qJ),aak=a(B4),aal=a(iP),aam=a("AllocationSoutienEnfantHandicap\xc3\xa9"),aan=a("AllocationAdulteHandicap\xc3\xa9"),aai=[0,a("PrestationRe\xc3\xa7ue"),0],aad=a(Dq),aaf=a(vp),aae=[0,a("LimiteTrancheD\xc3\xa9cimal"),0],aaa=a(Dq),aac=a(vp),aab=[0,a("LimiteTranche"),0],$9=a(oS),$$=a(kF),$_=[0,a("Am\xc3\xa9lior\xc3\xa9ParOccupant"),0],$4=a("ObjectifD\xc3\xa9cenceLogement"),$6=a("Pr\xc3\xa9vuDansListeR321_15"),$7=a(BB),$8=a(oh),$5=[0,a("TypeTravauxLogementR842_5"),0],$0=a(wF),$2=a("TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2"),$3=a(oh),$1=[0,a("TypeTravauxLogementD832_15"),0],$X=a(ql),$Z=a(w1),$Y=[0,a("TitulairePr\xc3\xaat"),0],$R=a(AQ),$T=a(wZ),$U=a(zv),$V=a(zF),$W=a(id),$S=[0,a("TypePr\xc3\xaat"),0],bsN=a(W),bsn=a("The function 'n_nombre_parts_d832_25_in' translation isn't yet supported..."),bso=a("The function 'condition_2_du_832_25_in' translation isn't yet supported..."),bsl=a("The function 'condition_logement_surface_in' translation isn't yet supported..."),bsm=a("The function 'condition_logement_residence_principale_in' translation isn't yet supported..."),bsf=a("AccessionProprieteLocalUsageExclusifHabitation"),bsg=a(yA),bsh=a(xf),bsi=a("ResidentLogementFoyer"),bsj=a(Cr),bsk=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'ModeOccupation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ModeOccupation.t'")],bsc=a("AutrePersonneACharge"),bsd=a("EnfantACharge"),bse=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'PersonneACharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PersonneACharge.t'")],br_=a(Ac),br$=a(yY),bsb=[1,0],bsa=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'ChangementLogementD8424.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'")],br6=a("Etrangere"),br7=a("Francaise"),br9=[0,0],br8=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'Nationalite.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Nationalite.t'")],br2=a(kF),br3=a(oS),br5=[0,0],br4=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'")],brX=a("BailleurPrive"),brY=a("BailleurPriveAvecConventionnementSocial"),brZ=a(B8),br1=[2,0],br0=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'TypeBailleur.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeBailleur.t'")],brT=a("MoinsDeTroisEnfants"),brU=a("PlusDeTroisEnfants"),brW=[0,0],brV=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'")],brP=a(Cg),brQ=a(zZ),brS=[0,0],brR=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'NeufOuAncien.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'")],bry=a(vl),brz=a(xy),brA=a(nI),brB=a(Dz),brC=a(iP),brD=a(Q),brE=a(qk),brF=a(n_),brH=[0,0],brI=[2,0],brJ=[1,0],brK=[5,0],brL=[6,0],brM=[3,0],brN=[7,0],brO=[4,0],brG=[0,[11,a(bd),[2,0,[11,a(C8),0]]],a(ER)],brr=a(rO),brs=a(kj),brt=a(j9),brv=[1,0],brw=[0,0],brx=[2,0],bru=[0,[11,a(bd),[2,0,[11,a(xq),0]]],a(vV)],brg=a(jX),brh=a(qY),bri=a(qE),brj=a(rf),brk=a(qB),brm=[4,0],brn=[3,0],bro=[0,0],brp=[1,0],brq=[2,0],brl=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'PriseEnChargeEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'")],bqZ=a(mi),bq0=a(oj),bq1=a(vQ),bq2=a(lX),bq3=a(ow),bq4=a(Ej),bq5=a(wH),bq6=a(oU),bq7=a(m$),bq9=[7,0],bq_=[5,0],bq$=[4,0],bra=[6,0],brb=[8,0],brc=[2,0],brd=[3,0],bre=[1,0],brf=[0,0],bq8=[0,[11,a(bd),[2,0,[11,a(A2),0]]],a(wg)],bqU=a(zN),bqV=a(DU),bqX=[0,0],bqY=[1,0],bqW=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'SituationFamilialeCalculAPL.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'")],bqL=a(DS),bqM=a("EtudiantLogeEnChambreCROUS"),bqN=a("EtudiantLogeEnChambreCROUSRehabilitee"),bqO=a("PersonnesAgeesSelon3DeD842_16"),bqQ=[2,0],bqR=[1,0],bqS=[0,0],bqT=[3,0],bqP=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'")],bqC=a(id),bqD=a("FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"),bqE=a("LogementPersonnesAgeesOuHandicapees"),bqF=a("ResidenceSociale"),bqH=[1,0],bqI=[0,0],bqJ=[2,0],bqK=[3,0],bqG=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'TypeLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'")],bqq=a("Celibataire"),bqr=a("CelibataireSepareDeFait"),bqs=a("ConcubinageDontSepareDeFait"),bqt=a(yh),bqu=a("Maries"),bqv=a("Pacses"),bqx=[2,0],bqy=[3,0],bqz=[5,0],bqA=[4,0],bqB=[0,0],bqw=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'SituationFamiliale.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'")],bqj=a("AidePersonnaliseeLogement"),bqk=a(oI),bql=a(m_),bqn=[2,0],bqo=[1,0],bqp=[0,0],bqm=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'")],bqf=a(Et),bqg=a("Mensualite"),bqh=a("TotalAnnuelEcheances"),bqi=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'DepenseLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DepenseLogement.t'")],bp_=a("Bailleur"),bp$=a("Beneficiaire"),bqa=a("EtablissementHabilite"),bqc=[2,0],bqd=[1,0],bqe=[0,0],bqb=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'VersementA.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'VersementA.t'")],bp6=a(kF),bp7=a("OuiAvecLoyerOuCharges"),bp9=[1,0],bp8=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'")],bpZ=a(yz),bp0=a(vw),bp1=a(x$),bp3=[2,0],bp4=[1,0],bp5=[0,0],bp2=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'ZoneDHabitation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'")],bpT=a("ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse"),bpU=a("AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse"),bpV=a("DateDeNaissance"),bpX=[1,0],bpY=[2,0],bpW=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'")],bpM=a(AA),bpN=a("CollateralDeuxiemeTroisiemeDegre"),bpO=a(As),bpQ=[1,0],bpR=[2,0],bpS=[0,0],bpP=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'Parente.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Parente.t'")],bpI=a("GardeAlterneeCoefficientPriseEnCharge"),bpJ=a("PasDeGardeAlternee"),bpL=[0,0],bpK=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'SituationGardeAlternee.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'")],bpE=a(id),bpF=a("DemandeurOuConjointOuParentOuViaPartsSocietes"),bpH=[1,0],bpG=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'ParentOuAutre.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'")],bpr=a("AllocationAdulteHandicape"),bps=a(B4),bpt=a("AllocationSoutienEnfantHandicape"),bpu=a(iP),bpv=a(Q),bpw=a(qk),bpy=[1,0],bpz=[0,0],bpA=[3,0],bpB=[4,0],bpC=[2,0],bpD=[5,0],bpx=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'PrestationRecue.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PrestationRecue.t'")],bpm=a(kF),bpn=a(oS),bpp=[0,0],bpq=[1,0],bpo=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'AmelioreParOccupant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'")],bpd=a(BB),bpe=a("ObjectifDecenceLogement"),bpf=a(oh),bpg=a("PrevuDansListeR321_15"),bpi=[1,0],bpj=[3,0],bpk=[0,0],bpl=[2,0],bph=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementR8425.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'")],bo8=a(oh),bo9=a(wF),bo_=a("TravauxSurLogementDejaAcquisD832_15_2"),bpa=[1,0],bpb=[0,0],bpc=[2,0],bo$=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementD83215.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'")],bo3=a(ql),bo4=a(w1),bo6=[1,0],bo7=[0,0],bo5=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'TitulairePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TitulairePret.t'")],boS=a(id),boT=a(AQ),boU=a(zv),boV=a(wZ),boW=a(zF),boY=[3,0],boZ=[1,0],bo0=[2,0],bo1=[0,0],bo2=[4,0],boX=[0,[11,a(bd),[2,0,[11,a("' kind for the enumeration 'TypePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypePret.t'")],boQ=[0,a(Er),a(yZ),a(DR),a(Ak),a(wM),a(oN),a(f5),a(Aj),a(yr),a(u$),a(CI),a(xU),a(Au),a(x6),a(Ed),a(Cj),a(AU),a(yU),a(E1),a(Bb),a(uZ),a(wx),a(Al),a(uJ)],boR=[0,a(f5),a(Ak),a(Cj),a(AU),a(yU),a(wM),a(uZ),a(DR),a(u$),a(Aj),a(E1),a(Au),a(CI),a(x6),a(Al),a(yZ),a(xU),a(Bb),a(uJ),a(wx),a(yr),a(Er),a(Ed),a(oN)],bta=a("AidesLogementLib"),btc=a(W);function -bH(a){if(typeof +bud(){var +a=aJ;if(a.process&&a.process.on)a.process.on("uncaughtException",function(b,c){Fv(b);a.process.exit(2)});else +if(a.addEventListener)a.addEventListener("error",function(a){if(a.error)Fv(a.error)})}bud();function +r(a,b){return a.length==1?a(b):dB(a,[b])}function +an(a,b,c){return a.length==2?a(b,c):dB(a,[b,c])}function +cz(a,b,c,d){return a.length==3?a(b,c,d):dB(a,[b,c,d])}function +uA(a,b,c,d,e){return a.length==4?a(b,c,d,e):dB(a,[b,c,d,e])}function +ql(a,b,c,d,e,f){return a.length==5?a(b,c,d,e,f):dB(a,[b,c,d,e,f])}function +btq(a,b,c,d,e,f,g){return a.length==6?a(b,c,d,e,f,g):dB(a,[b,c,d,e,f,g])}function +btp(a,b,c,d,e,f,g,h){return a.length==7?a(b,c,d,e,f,g,h):dB(a,[b,c,d,e,f,g,h])}btF();var +pc=[be,a(CH),-1],sG=[be,a(Dm),-2],kZ=[be,a(qV),-3],sC=[be,a(yR),-4],pd=[be,a(wt),-6],cC=[be,a(Ee),-7],sE=[be,a(vl),-8],sF=[be,a(zd),-9],bp=[be,a(EN),-11],sH=[be,a(C4),CT],btn=[4,0,0,0,[12,45,[4,0,0,0,0]]],pt=[0,[11,a('File "'),[2,0,[11,a('", line '),[4,0,0,0,[11,a(yr),[4,0,0,0,[12,45,[4,0,0,0,[11,a(": "),[2,0,0]]]]]]]]]],a('File "%s", line %d, characters %d-%d: %s')],bto=[4,0,0,0,[12,46,0]],uz=[0,a("eventsManager"),a("computeAllocationsFamiliales"),a("computeAidesAuLogement")];dX(11,sH,C4);dX(10,bp,EN);dX(9,[be,a(Bn),-10],Bn);dX(8,sF,zd);dX(7,sE,vl);dX(6,cC,Ee);dX(5,pd,wt);dX(4,[be,a(x0),-5],x0);dX(3,sC,yR);dX(2,kZ,qV);dX(1,sG,Dm);dX(0,pc,CH);var +F_=a("output_substring"),F7=a("%.12g"),F6=a(ep),F4=a(vR),F5=a(y5),FX=a("Stdlib.Exit"),FZ=f_(0,0,D$),F0=f_(0,0,65520),F1=f_(1,0,D$),Ga=a("CamlinternalLazy.Undefined"),Gf=a(wd),Gg=a("\\'"),Gh=a(vr),Gi=a(zT),Gj=a(AK),Gk=a(x9),Ge=a("Char.chr"),Gn=a("nth"),Go=a("List.nth"),Gm=a("tl"),Gl=a("hd"),Gr=a("String.blit / Bytes.blit_string"),Gq=a("Bytes.blit"),Gp=a("String.sub / Bytes.sub"),Gw=a("String.contains_from / Bytes.contains_from"),Gt=a(Y),Gs=a("String.concat"),Gz=a("Array.blit"),Gy=a("Array.fill"),GE=a("Map.remove_min_elt"),GF=[0,0,0,0],GG=[0,a("map.ml"),wZ,10],GH=[0,0,0],GA=a(l9),GB=a(l9),GC=a(l9),GD=a(l9),GI=a("Stdlib.Queue.Empty"),GO=a("Buffer.add_substring/add_subbytes"),GN=a("Buffer.add: cannot grow buffer"),GM=[0,a(zt),93,2],GL=[0,a(zt),94,2],GK=a("Buffer.sub"),GX=a("%c"),GY=a("%s"),GZ=a(xs),G0=a(A0),G1=a(yO),G2=a(Dg),G3=a("%f"),G4=a("%B"),G5=a("%{"),G6=a("%}"),G7=a("%("),G8=a("%)"),G9=a(qR),G_=a("%t"),G$=a("%?"),Ha=a("%r"),Hb=a("%_r"),Hc=[0,a(cf),gD,23],Hn=[0,a(cf),814,21],Hf=[0,a(cf),gB,21],Ho=[0,a(cf),818,21],Hg=[0,a(cf),gt,21],Hp=[0,a(cf),822,19],Hh=[0,a(cf),q2,19],Hq=[0,a(cf),826,22],Hi=[0,a(cf),827,22],Hr=[0,a(cf),831,30],Hj=[0,a(cf),832,30],Hl=[0,a(cf),836,26],Hd=[0,a(cf),837,26],Hm=[0,a(cf),846,28],He=[0,a(cf),847,28],Hk=[0,a(cf),kE,23],Iu=a(vH),Is=[0,a(cf),1558,4],It=a("Printf: bad conversion %["),Iv=[0,a(cf),1626,39],Iw=[0,a(cf),1649,31],Ix=[0,a(cf),1650,31],Iy=a("Printf: bad conversion %_"),Iz=a(vE),IA=a(vP),IB=a(vE),IC=a(vP),IG=[0,[11,a("invalid box description "),[3,0,0]],a("invalid box description %S")],IE=a(Y),IF=[0,0,4],IH=a(Y),II=a(w4),IJ=a("h"),IK=a("hov"),IL=a("hv"),IM=a("v"),Iq=a(qW),Io=a("neg_infinity"),Ip=a(EX),In=a(ep),Ii=[0,cJ],H8=a("%+nd"),H9=a("% nd"),H$=a("%+ni"),Ia=a("% ni"),Ib=a("%nx"),Ic=a("%#nx"),Id=a("%nX"),Ie=a("%#nX"),If=a("%no"),Ig=a("%#no"),H7=a("%nd"),H_=a(yO),Ih=a("%nu"),HV=a("%+ld"),HW=a("% ld"),HY=a("%+li"),HZ=a("% li"),H0=a("%lx"),H1=a("%#lx"),H2=a("%lX"),H3=a("%#lX"),H4=a("%lo"),H5=a("%#lo"),HU=a("%ld"),HX=a(A0),H6=a("%lu"),HI=a("%+Ld"),HJ=a("% Ld"),HL=a("%+Li"),HM=a("% Li"),HN=a("%Lx"),HO=a("%#Lx"),HP=a("%LX"),HQ=a("%#LX"),HR=a("%Lo"),HS=a("%#Lo"),HH=a("%Ld"),HK=a(Dg),HT=a("%Lu"),Hv=a("%+d"),Hw=a("% d"),Hy=a("%+i"),Hz=a("% i"),HA=a("%x"),HB=a("%#x"),HC=a("%X"),HD=a("%#X"),HE=a("%o"),HF=a("%#o"),Hu=a(r_),Hx=a(xs),HG=a(vH),GP=a("@]"),GQ=a("@}"),GR=a("@?"),GS=a("@\n"),GT=a("@."),GU=a("@@"),GV=a("@%"),GW=a("@"),Hs=a("CamlinternalFormat.Type_mismatch"),IQ=a(Y),IR=[0,[11,a(gy),[2,0,[2,0,0]]],a(", %s%s")],Je=[0,[11,a(r6),[2,0,[12,10,0]]],a(EH)],Jf=[0,[11,a("Fatal error in uncaught exception handler: exception "),[2,0,[12,10,0]]],a("Fatal error in uncaught exception handler: exception %s\n")],Jd=a("Fatal error: out of memory in uncaught exception handler"),Jb=[0,[11,a(r6),[2,0,[12,10,0]]],a(EH)],I9=[0,[2,0,[12,10,0]],a("%s\n")],I1=a("Raised at"),I2=a("Re-raised at"),I3=a("Raised by primitive operation at"),I4=a("Called from"),I5=a(" (inlined)"),I7=a(Y),I6=[0,[2,0,[12,32,[2,0,[11,a(' in file "'),[2,0,[12,34,[2,0,[11,a(", line "),[4,0,0,0,[11,a(yr),btn]]]]]]]]]],a('%s %s in file "%s"%s, line %d, characters %d-%d')],I8=[0,[2,0,[11,a(" unknown location"),0]],a("%s unknown location")],IW=a("Out of memory"),IX=a("Stack overflow"),IY=a("Pattern matching failed"),IZ=a("Assertion failed"),I0=a("Undefined recursive module"),IS=[0,[12,40,[2,0,[2,0,[12,41,0]]]],a("(%s%s)")],IT=a(Y),IU=a(Y),IV=[0,[12,40,[2,0,[12,41,0]]],a("(%s)")],IP=[0,[4,0,0,0,0],a(r_)],IN=[0,[3,0,0],a("%S")],IO=a(r3),I_=[0,a(Y),a("(Cannot print locations:\n bytecode executable program file not found)"),a("(Cannot print locations:\n bytecode executable program file appears to be corrupt)"),a("(Cannot print locations:\n bytecode executable program file has wrong magic number)"),a("(Cannot print locations:\n bytecode executable program file cannot be opened;\n -- too many open files. Try running with OCAMLRUNPARAM=b=2)")],Jg=a(Ev),Ju=[0,0],btl=a("OCAMLRUNPARAM"),btj=a("CAMLRUNPARAM"),Jh=a(Y),JU=[3,0,3],JV=a(ep),JP=a(nh),JQ=a("<\/"),JR=a(Y),JL=a(nh),JM=a(rI),JN=a(Y),JJ=a("\n"),JF=a(Y),JG=a(Y),JH=a(Y),JI=a(Y),JE=[0,a(Y)],JA=a(Y),JB=a(Y),JC=a(Y),JD=a(Y),Jy=[0,a(Y),0,a(Y)],Jx=a(Y),Jw=a("Stdlib.Format.String_tag"),J6=a(Y),Kb=[0,a("lib/dates.ml"),226,2],Ka=[0,[4,0,[0,2,4],0,[12,45,[4,0,[0,2,2],0,[12,45,[4,0,[0,2,2],0,0]]]]],a("%04d-%02d-%02d")],J_=[0,[12,91,[4,0,0,0,[11,a(" years, "),[4,0,0,0,[11,a(" months, "),[4,0,0,0,[11,a(" days]"),0]]]]]]],a("[%d years, %d months, %d days]")],J7=a("Dates_calc.Dates.InvalidDate"),J8=a("Dates_calc.Dates.AmbiguousComputation"),Kg=f_(1,0,0),Kc=a("Z.Overflow"),Kd=a(l6),Kk=a(Y),Kl=a("+inf"),Km=a("-inf"),Kn=a(E5),Ko=a("undef"),Kq=[0,a("q.ml"),486,25],Kp=a("Q.of_string: invalid digit"),Ki=a(wN),Kh=a(wN),Ku=a("Buf.extend: reached Sys.max_string_length"),K4=[0,a(rJ),72,32],K1=[0,a(rJ),72,32],K0=a("Root is not an object or array"),KW=a("NaN value not allowed in standard JSON"),KX=[0,[8,[0,0,3],0,[0,16],0],a(xv)],KZ=[0,[8,[0,0,3],0,[0,17],0],a(Cz)],KY=a(yn),KU=a("Infinity value not allowed in standard JSON"),KV=a("-Infinity value not allowed in standard JSON"),KQ=a("NaN"),KR=[0,[8,[0,0,3],0,[0,16],0],a(xv)],KT=[0,[8,[0,0,3],0,[0,17],0],a(Cz)],KS=a(yn),KO=a("Infinity"),KP=a("-Infinity"),KL=a(vR),KM=a(y5),KK=a("null"),KE=a(vr),KF=a(zT),KG=a(AK),KH=a("\\f"),KI=a(x9),KJ=a('\\"'),KD=a(wd),KC=[0,[11,a("src="),[3,0,[11,a(" start="),[4,3,0,0,[11,a(" len="),[4,3,0,0,[12,10,[10,0]]]]]]]],a("src=%S start=%i len=%i\n%!")],KA=a("\\u00"),Kx=[0,a(rJ),72,32],Kv=a("Yojson.Json_error"),Kz=[0,a(qF),a(qU),a(q6),a(rD),a(re),a(Y),a(Y),a(Y),a(Y),a(Y),a(Y)],K3=[0,a(qF),a(qU),a(q6),a(rD),a(re),a(Y),a(Y),a(Y),a(Y),a(Y),a(Y)],K6=[0,a(qF),a(qU),a(q6),a(rD),a(re),a(Y),a(Y),a(Y),a(Y),a(Y),a(Y)],LZ=a("unreachable due to the [is_subscope_call] test"),L1=a("unreachable due to the [is_subscope_input_var_def] test"),L2=a("]"),L3=a("["),L4=a(" ]): expected variable definition (function output), found: "),L5=a(gy),L6=a(uU),L7=a(" ]): expected variable definition (function output), found: end of tokens"),L8=a(gy),L9=a(uU),L0=a("Unexpected event: "),L$=a("Missing function output variable definition."),L_=a("Invalid start of function call."),LY=a(ak),LX=a(al),Ma=[0,[11,a("An error occurred while parsing raw events: "),[2,0,[12,10,0]]],a("An error occurred while parsing raw events: %s\n")],LN=a(xJ),LO=a(gy),LP=[0,[11,a(At),0],a(At)],LQ=a(xJ),LR=a(gy),LS=[0,[11,a(D3),0],a(D3)],LT=a(gy),LU=[0,[11,a("VariableDefinition([ "),[2,0,[11,a(" ], "),[2,0,[12,41,0]]]]],a("VariableDefinition([ %s ], %s)")],LV=[0,[11,a(v2),0],a(v2)],Lx=[0,cE,a("VarComputation")],Ly=[0,cE,a("FunCall")],Lz=a(BW),LA=a("inputs"),LB=a(xN),LC=[0,cE,a("SubScopeCall")],LD=a("fun_calls"),LE=a("value"),LF=a(xN),LG=a("pos"),LH=a(al),LI=a(BW),LJ=a(ak),LK=a("fun_name"),Lm=[0,b_,[0,[0,cE,a("Unit")],0]],Ln=[0,b_,[0,[0,cE,a("Unembeddable")],0]],Lo=[0,cE,a("Bool")],Lp=[0,cE,a("Money")],Lq=[0,cE,a("Integer")],Lr=[0,cE,a("Decimal")],Ls=[0,cE,a("Date")],Lt=[0,cE,a("Duration")],Lu=[0,cE,a("Enum")],Lv=[0,cE,a("Struct")],Lw=[0,cE,a("Array")],Ll=[0,[15,0],a(qR)],Lk=[0,[15,0],a(qR)],K8=a("law_headings"),K9=a("end_column"),K_=a("end_line"),K$=a("start_column"),La=a("start_line"),Lb=a("filename"),Lc=a("Runtime_ocaml.Runtime.EmptyError"),Ld=a("Runtime_ocaml.Runtime.AssertionFailed"),Le=a("Runtime_ocaml.Runtime.ConflictError"),Lf=a("Runtime_ocaml.Runtime.UncomparableDurations"),Lh=a("Runtime_ocaml.Runtime.ImpossibleDate"),Lj=a("Runtime_ocaml.Runtime.NoValueProvided"),Mb=a("Jsoo_runtime.Error.Exn"),Mc=a(rt),Mu=[0,[2,0,[11,a(" in file "),[2,0,[11,a(", position "),[4,0,0,0,[12,58,[4,0,0,0,[11,a("--"),[4,0,0,0,[12,58,bto]]]]]]]]]],a("%s in file %s, position %d:%d--%d:%d.")],Mv=a("No rule applies in the given context to give a value to the variable"),Mw=a("A conflict happened between two rules giving a value to the variable"),Mx=a("A failure happened in the assertion"),Mn=a("Begin call"),Mo=a("End call"),Mp=a("Variable definition"),Mq=a("Decision taken"),Ml=a(Y),Mj=a("date_of_jsoo: invalid date"),Mh=[0,a(xE),a(Bd),a(DN)],Mi=[0,a(xE),a(DN),a(Bd)],_K=[0,a(aY),89,14,89,29,[0,a(bl),[0,a(aZ),0]]],_D=[0,a(aY),c5,18,c5,64,[0,a(bl),[0,a(aZ),0]]],_E=[0,a(aY),99,5,99,72,[0,a(bl),[0,a(aZ),0]]],_C=[0,a(aY),99,5,99,72,[0,a(bl),[0,a(aZ),0]]],_y=[0,a(aY),86,14,86,53,[0,a(bl),[0,a(aZ),0]]],_u=[0,a(aY),85,14,85,50,[0,a(bl),[0,a(aZ),0]]],_q=[0,a(aY),88,14,88,46,[0,a(bl),[0,a(aZ),0]]],_m=[0,a(aY),87,14,87,54,[0,a(bl),[0,a(aZ),0]]],_h=[0,a(aY),96,18,96,72,[0,a(bl),[0,a(aZ),0]]],_i=[0,a(aY),95,5,95,80,[0,a(bl),[0,a(aZ),0]]],_g=[0,a(aY),95,5,95,80,[0,a(bl),[0,a(aZ),0]]],_b=[0,a(aY),92,18,92,67,[0,a(bl),[0,a(aZ),0]]],_c=[0,a(aY),91,5,91,75,[0,a(bl),[0,a(aZ),0]]],_a=[0,a(aY),91,5,91,75,[0,a(bl),[0,a(aZ),0]]],Z8=[0,a(aY),bk,14,bk,30,[0,a("Article L131-1"),[0,a(bl),[0,a(aZ),0]]]],Z5=[0,0],Z6=[1,0],Z7=[2,0],Z9=[0,a(aY),75,11,75,27,[0,a(bl),[0,a(aZ),0]]],Z4=[0,a(aY),75,11,75,27,[0,a(bl),[0,a(aZ),0]]],Z_=[0,a(d9),[0,a("enfants_\xc3\xa0_charge"),0]],_d=[0,a(aY),91,5,91,75,[0,a(bl),[0,a(aZ),0]]],_e=[0,a(d9),[0,a("allocations_familiales.personne_charge_effective_permanente_est_parent"),0]],Z$=[0,a(aY),91,5,91,75,[0,a(bl),[0,a(aZ),0]]],_j=[0,a(aY),95,5,95,80,[0,a(bl),[0,a(aZ),0]]],_k=[0,a(d9),[0,a("allocations_familiales.personne_charge_effective_permanente_remplit_titre_I"),0]],_f=[0,a(aY),95,5,95,80,[0,a(bl),[0,a(aZ),0]]],_n=[0,a(aY),87,14,87,54,[0,a(bl),[0,a(aZ),0]]],_o=[0,a(d9),[0,a("allocations_familiales.ressources_m\xc3\xa9nage"),0]],_l=[0,a(aY),87,14,87,54,[0,a(bl),[0,a(aZ),0]]],_r=[0,a(aY),88,14,88,46,[0,a(bl),[0,a(aZ),0]]],_s=[0,a(d9),[0,a("allocations_familiales.r\xc3\xa9sidence"),0]],_p=[0,a(aY),88,14,88,46,[0,a(bl),[0,a(aZ),0]]],_v=[0,a(aY),85,14,85,50,[0,a(bl),[0,a(aZ),0]]],_w=[0,a(d9),[0,a("allocations_familiales.date_courante"),0]],_t=[0,a(aY),85,14,85,50,[0,a(bl),[0,a(aZ),0]]],_z=[0,a(aY),86,14,86,53,[0,a(bl),[0,a(aZ),0]]],_A=[0,a(d9),[0,a("allocations_familiales.enfants_\xc3\xa0_charge"),0]],_x=[0,a(aY),86,14,86,53,[0,a(bl),[0,a(aZ),0]]],_F=[0,a(aY),99,5,99,72,[0,a(bl),[0,a(aZ),0]]],_G=[0,a(d9),[0,a("allocations_familiales.avait_enfant_\xc3\xa0_charge_avant_1er_janvier_2012"),0]],_B=[0,a(aY),99,5,99,72,[0,a(bl),[0,a(aZ),0]]],_H=[0,a(d9),[0,a(vf),[0,a(R),0]]],_I=[0,a(d9),[0,a(vf),[0,a(R),0]]],_L=[0,a(aY),79,10,79,25,[0,a(bl),[0,a(aZ),0]]],_J=[0,a(aY),79,10,79,25,[0,a(bl),[0,a(aZ),0]]],_M=[0,a(d9),[0,a("i_montant_vers\xc3\xa9"),0]],ZY=[0,a(aY),44,14,44,27,[0,a(eN),[0,a(aZ),0]]],ZX=a(o),ZT=[0,a(bo),CV,14,CV,62,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],ZO=[0,a(R),[0,a(kI),[0,a(ak),0]]],ZP=[0,a(R),[0,a(kI),0]],ZQ=[0,a(R),[0,a(kI),[0,a(al),0]]],ZR=[0,a(R),[0,a(kI),0]],ZS=a(o),ZK=[0,a(bo),ob,14,ob,61,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],ZG=[0,a(aY),38,14,38,38,[0,a(eN),[0,a(aZ),0]]],ZB=[0,a(R),[0,a(j3),[0,a(ak),0]]],ZC=[0,a(R),[0,a(j3),0]],ZD=[0,a(R),[0,a(j3),[0,a(al),0]]],ZE=[0,a(R),[0,a(j3),0]],ZA=a(o),ZF=a(o),Zw=[0,a(aY),36,14,36,32,[0,a(eN),[0,a(aZ),0]]],Zv=a(o),Zr=[0,a(dK),ma,5,ma,43,[0,a("Article R521-4"),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],Zg=[0,a(R),[0,a(fk),[0,a(ak),0]]],Zh=[0,a(R),[0,a(fk),0]],Zi=[0,a(R),[0,a(fk),[0,a(al),0]]],Zj=[0,a(R),[0,a(fk),0]],Zk=a(em),Zp=a(j7),Zq=a(b1),Zl=[0,a(R),[0,a(jY),[0,a(ak),0]]],Zm=[0,a(R),[0,a(jY),0]],Zn=[0,a(R),[0,a(jY),[0,a(al),0]]],Zo=[0,a(R),[0,a(jY),0]],Zs=[0,a(H),eb,11,eb,49,[0,a(J),[0,a(G),[0,a(C),0]]]],Zf=[0,a(H),eb,11,eb,49,[0,a(J),[0,a(G),[0,a(C),0]]]],Zc=[0,a(dK),cp,14,cp,46,[0,a(oJ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],Y7=a(cI),Y8=[0,a(bo),qw,5,rf,42,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Y4=a(cI),Y5=a(em),Y6=a(cI),Y9=[0,a(H),eQ,11,eQ,52,[0,a(J),[0,a(G),[0,a(C),0]]]],Y1=a(cI),Y2=[0,a(bo),277,5,B1,41,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],YY=a(cI),YZ=a(em),Y0=a(cI),Y3=[0,a(H),eQ,11,eQ,52,[0,a(J),[0,a(G),[0,a(C),0]]]],Y_=[0,a(H),eQ,11,eQ,52,[0,a(J),[0,a(G),[0,a(C),0]]]],YX=[0,a(bo),m7,14,m7,55,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],YW=a(o),YL=a(w),YM=[0,a(R),[0,a(bE),[0,a(ak),0]]],YN=[0,a(R),[0,a(bE),0]],YO=[0,a(R),[0,a(bE),[0,a(al),0]]],YP=[0,a(R),[0,a(bE),0]],YQ=[0,a(bo),go,5,rQ,57,[0,a(kg),[0,a(eV),[0,a(gC),[0,a(dR),[0,a(a8),[0,a(aa),0]]]]]]],YK=a("0.0369"),YR=[0,a(H),cA,11,cA,37,[0,a(J),[0,a(G),[0,a(C),0]]]],YD=a(w),YE=[0,a(R),[0,a(bE),[0,a(ak),0]]],YF=[0,a(R),[0,a(bE),0]],YG=[0,a(R),[0,a(bE),[0,a(al),0]]],YH=[0,a(R),[0,a(bE),0]],YI=[0,a(bo),388,5,391,58,[0,a(kg),[0,a(eV),[0,a(gC),[0,a(dR),[0,a(a8),[0,a(aa),0]]]]]]],YC=a("0.0567"),YJ=[0,a(H),cA,11,cA,37,[0,a(J),[0,a(G),[0,a(C),0]]]],YS=[0,a(H),cA,11,cA,37,[0,a(J),[0,a(G),[0,a(C),0]]]],YB=[0,a(bo),22,14,22,40,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Yx=[0,a(R),[0,a(j4),[0,a(ak),0]]],Yy=[0,a(R),[0,a(j4),0]],Yz=[0,a(R),[0,a(j4),[0,a(al),0]]],YA=[0,a(R),[0,a(j4),0]],YT=[0,a(H),cA,11,cA,37,[0,a(J),[0,a(G),[0,a(C),0]]]],Yw=[0,a(H),cA,11,cA,37,[0,a(J),[0,a(G),[0,a(C),0]]]],Yq=a(w),Yr=[0,a(bo),355,5,356,69,[0,a(kg),[0,a(eV),[0,a(gC),[0,a(dR),[0,a(a8),[0,a(aa),0]]]]]]],Ys=[0,a(H),dJ,11,dJ,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Yn=[8,0],Yo=[0,a(aU),uI,24,uI,44,[0,a(cG),[0,a(a$),[0,a(ba),0]]]],Yp=[0,a(H),dJ,11,dJ,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Yt=[0,a(H),dJ,11,dJ,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Ym=[0,a(bo),18,14,18,34,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Yi=[0,a(bo),xD,14,xD,39,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Yd=[0,a(R),[0,a(j_),[0,a(ak),0]]],Ye=[0,a(R),[0,a(j_),0]],Yf=[0,a(R),[0,a(j_),[0,a(al),0]]],Yg=[0,a(R),[0,a(j_),0]],Yh=a(w),Yc=a(o),X5=[0,a(R),[0,a(bE),[0,a(ak),0]]],X6=[0,a(R),[0,a(bE),0]],X7=[0,a(R),[0,a(bE),[0,a(al),0]]],X8=[0,a(R),[0,a(bE),0]],X9=[0,a(bo),60,5,60,38,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],X4=a(rm),X_=[0,a(H),cW,11,cW,47,[0,a(J),[0,a(G),[0,a(C),0]]]],XY=[0,a(R),[0,a(bE),[0,a(ak),0]]],XZ=[0,a(R),[0,a(bE),0]],X0=[0,a(R),[0,a(bE),[0,a(al),0]]],X1=[0,a(R),[0,a(bE),0]],X2=[0,a(bo),hx,5,hx,38,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],XX=a(BA),X3=[0,a(H),cW,11,cW,47,[0,a(J),[0,a(G),[0,a(C),0]]]],XR=[0,a(R),[0,a(bE),[0,a(ak),0]]],XS=[0,a(R),[0,a(bE),0]],XT=[0,a(R),[0,a(bE),[0,a(al),0]]],XU=[0,a(R),[0,a(bE),0]],XV=[0,a(bo),Dx,5,Dx,38,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],XQ=a(BO),XW=[0,a(H),cW,11,cW,47,[0,a(J),[0,a(G),[0,a(C),0]]]],XK=[0,a(R),[0,a(bE),[0,a(ak),0]]],XL=[0,a(R),[0,a(bE),0]],XM=[0,a(R),[0,a(bE),[0,a(al),0]]],XN=[0,a(R),[0,a(bE),0]],XO=[0,a(aY),27,5,27,44,[0,a(eN),[0,a(aZ),0]]],XJ=a(o),XP=[0,a(H),cW,11,cW,47,[0,a(J),[0,a(G),[0,a(C),0]]]],X$=[0,a(H),cW,11,cW,47,[0,a(J),[0,a(G),[0,a(C),0]]]],XI=[0,a(H),cW,11,cW,47,[0,a(J),[0,a(G),[0,a(C),0]]]],XF=[0,a(dK),eb,14,eb,41,[0,a(oJ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],XD=a(b1),XE=a(b1),Xv=[8,0],Xw=[0,a(aU),EK,5,EK,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Xs=a(w),Xt=a(vB),Xu=a(o),Xx=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Xp=[8,0],Xq=[0,a(aU),E_,5,E_,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Xm=a(w),Xn=a("0.2379"),Xo=a(o),Xr=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Xj=[8,0],Xk=[0,a(aU),fQ,5,fQ,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Xg=a(w),Xh=a("0.2437"),Xi=a(o),Xl=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Xd=[8,0],Xe=[0,a(aU),zj,5,zj,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Xa=a(w),Xb=a("0.2496"),Xc=a(o),Xf=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],W9=[8,0],W_=[0,a(aU),rQ,5,rQ,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],W6=a(w),W7=a("0.2555"),W8=a(o),W$=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],W3=[8,0],W4=[0,a(aU),uN,5,uN,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],W0=a(w),W1=a("0.2613"),W2=a(o),W5=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],WX=[8,0],WY=[0,a(aU),wD,5,wD,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],WU=a(w),WV=a("0.2672"),WW=a(o),WZ=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],WR=[8,0],WS=[0,a(aU),w7,5,w7,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],WO=a(w),WP=a("0.2804"),WQ=a(o),WT=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],WL=[8,0],WM=[0,a(aU),fV,5,fV,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],WI=a(w),WJ=a("0.2936"),WK=a(o),WN=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],WF=[8,0],WG=[0,a(aU),wU,5,wU,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],WC=a(w),WD=a("0.3068"),WE=a(o),WH=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Xy=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],WA=[8,0],WB=[0,a(aU),rq,14,rq,50,[0,a(cG),[0,a(a$),[0,a(ba),0]]]],Wx=a(w),Wy=a(sb),Wz=a(o),Xz=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Wu=[0,a(bo),38,14,38,50,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Wr=a(w),Ws=a(sb),Wt=a(o),Wv=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Wp=[0,a(bo),79,14,79,50,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Wm=a(w),Wn=a(rm),Wo=a(o),Wq=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Wk=[0,a(bo),h8,14,h8,50,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Wh=a(w),Wi=a(BA),Wj=a(o),Wl=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Ww=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Wc=[0,a(bo),43,14,43,59,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],V_=a(V),V$=a(V),Wa=a("0.41"),Wb=a(o),Wd=[0,a(H),dw,11,dw,56,[0,a(J),[0,a(G),[0,a(C),0]]]],V8=[0,a(bo),84,14,84,59,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],V4=a(V),V5=a(V),V6=a("0.205"),V7=a(o),V9=[0,a(H),dw,11,dw,56,[0,a(J),[0,a(G),[0,a(C),0]]]],V2=[0,a(bo),gO,14,gO,59,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],VY=a(V),VZ=a(V),V0=a("0.1025"),V1=a(o),V3=[0,a(H),dw,11,dw,56,[0,a(J),[0,a(G),[0,a(C),0]]]],VT=[0,a(bo),nm,5,nm,43,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],VS=a("0.20234"),VU=[0,a(H),el,11,el,47,[0,a(J),[0,a(G),[0,a(C),0]]]],VQ=[0,a(bo),234,5,q5,46,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],VP=a("0.10117"),VR=[0,a(H),el,11,el,47,[0,a(J),[0,a(G),[0,a(C),0]]]],VN=[0,a(bo),be,5,be,43,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],VM=a("0.05059"),VO=[0,a(H),el,11,el,47,[0,a(J),[0,a(G),[0,a(C),0]]]],VF=a(cI),VG=[0,a(bo),qI,5,166,68,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],VC=a(cI),VD=a(em),VE=a(cI),VH=[0,a(H),eB,11,eB,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Vz=a(cI),VA=[0,a(bo),174,5,rP,68,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Vw=a(cI),Vx=a(em),Vy=a(cI),VB=[0,a(H),eB,11,eB,31,[0,a(J),[0,a(G),[0,a(C),0]]]],VI=[0,a(H),eB,11,eB,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Vv=[0,a(bo),jq,14,jq,34,[0,a(cU),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Vu=a(o),VJ=[0,a(H),eB,11,eB,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Vt=[0,a(H),eB,11,eB,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Vk=[0,a(R),[0,a(eO),[0,a(ak),0]]],Vl=[0,a(R),[0,a(eO),0]],Vm=[0,a(R),[0,a(eO),[0,a(al),0]]],Vn=[0,a(R),[0,a(eO),0]],Vo=[0,a(bM),h6,5,318,21,[0,a(zE),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],Vp=[0,a(H),cp,11,cp,34,[0,a(J),[0,a(G),[0,a(C),0]]]],Vb=[0,a(R),[0,a(eO),[0,a(ak),0]]],Vc=[0,a(R),[0,a(eO),0]],Vd=[0,a(R),[0,a(eO),[0,a(al),0]]],Ve=[0,a(R),[0,a(eO),0]],Vf=[0,a(R),[0,a(kC),[0,a(ak),0]]],Vg=[0,a(R),[0,a(kC),0]],Vh=[0,a(R),[0,a(kC),[0,a(al),0]]],Vi=[0,a(R),[0,a(kC),0]],Vj=[0,a(bM),fn,5,c1,21,[0,a(zE),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],Vq=[0,a(H),cp,11,cp,34,[0,a(J),[0,a(G),[0,a(C),0]]]],Va=[0,a(H),cp,11,cp,34,[0,a(J),[0,a(G),[0,a(C),0]]]],Vr=[0,a(H),cp,11,cp,34,[0,a(J),[0,a(G),[0,a(C),0]]]],U$=[0,a(H),cp,11,cp,34,[0,a(J),[0,a(G),[0,a(C),0]]]],U2=a(w),U3=[8,0],U4=[0,a(aU),fM,6,fM,71,[0,a(cG),[0,a(a$),[0,a(ba),0]]]],U5=[0,a(H),cJ,11,cJ,28,[0,a(J),[0,a(G),[0,a(C),0]]]],U0=a(w),U1=[0,a(bM),rN,5,410,72,[0,a(rK),[0,a(eV),[0,a(j8),[0,a(dR),[0,a(_),[0,a(aa),0]]]]]]],U6=[0,a(H),cJ,11,cJ,28,[0,a(J),[0,a(G),[0,a(C),0]]]],U7=[0,a(H),cJ,11,cJ,28,[0,a(J),[0,a(G),[0,a(C),0]]]],UY=a(V),UZ=[0,a(bM),hx,5,hx,70,[0,a(Fg),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],U8=[0,a(H),cJ,11,cJ,28,[0,a(J),[0,a(G),[0,a(C),0]]]],UX=[0,a(H),cJ,11,cJ,28,[0,a(J),[0,a(G),[0,a(C),0]]]],UP=[8,0],UQ=[0,a(aU),251,5,j5,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],UM=a(o),UN=a("0.145"),UO=a(o),UR=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],UJ=[8,0],UK=[0,a(aU),y9,5,261,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],UG=a(o),UH=a("0.1393"),UI=a(o),UL=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],UD=[8,0],UE=[0,a(aU),rf,5,wa,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],UA=a(o),UB=a("0.1335"),UC=a(o),UF=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],Ux=[8,0],Uy=[0,a(aU),278,5,B1,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Uu=a(o),Uv=a("0.1278"),Uw=a(o),Uz=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],Ur=[8,0],Us=[0,a(aU),287,5,rb,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Uo=a(o),Up=a("0.122"),Uq=a(o),Ut=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],Ul=[8,0],Um=[0,a(aU),d2,5,ea,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Ui=a(o),Uj=a("0.1163"),Uk=a(o),Un=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],Uf=[8,0],Ug=[0,a(aU),kM,5,rg,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Uc=a(o),Ud=a("0.1105"),Ue=a(o),Uh=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],T$=[8,0],Ua=[0,a(aU),d_,5,h6,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],T8=a(o),T9=a("0.0976"),T_=a(o),Ub=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],T5=[8,0],T6=[0,a(aU),323,5,fm,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],T2=a(o),T3=a("0.0847"),T4=a(o),T7=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],TZ=[8,0],T0=[0,a(aU),uG,5,333,53,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],TW=a(o),TX=a("0.0717"),TY=a(o),T1=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],TT=[8,0],TU=[0,a(aU),yI,5,yI,49,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],TQ=a(o),TR=a("5728"),TS=a(o),TV=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],US=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],TO=[8,0],TP=[0,a(aU),nG,14,nG,49,[0,a(cG),[0,a(a$),[0,a(ba),0]]]],TL=a(o),TM=a(vI),TN=a(o),UT=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],TI=a(w),TJ=[0,a(bo),dy,5,dg,71,[0,a(kg),[0,a(eV),[0,a(gC),[0,a(dR),[0,a(a8),[0,a(aa),0]]]]]]],TH=a(vI),TK=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],TG=[0,a(bo),xy,29,xy,64,[0,a(kg),[0,a(eV),[0,a(gC),[0,a(dR),[0,a(a8),[0,a(aa),0]]]]]]],TF=a(o),TB=[0,a(dK),mm,14,mm,34,[0,a(oJ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],Tu=[0,a(R),[0,a(fk),[0,a(ak),0]]],Tv=[0,a(R),[0,a(fk),0]],Tw=[0,a(R),[0,a(fk),[0,a(al),0]]],Tx=[0,a(R),[0,a(fk),0]],Ty=a(em),Tz=a(j7),TA=a(b1),Tt=a(b1),Tp=[0,a(dK),zx,14,zx,34,[0,a(oJ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],Ti=[8,0],Tj=[0,a(aU),hk,5,hk,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Tf=a(V),Tg=a(BL),Th=a(o),Tk=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],Tc=[8,0],Td=[0,a(aU),B0,5,B0,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],S$=a(V),Ta=a("0.0539"),Tb=a(o),Te=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],S8=[8,0],S9=[0,a(aU),xL,5,xL,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],S5=a(V),S6=a("0.0615"),S7=a(o),S_=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],S2=[8,0],S3=[0,a(aU),er,5,er,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],SZ=a(V),S0=a("0.069"),S1=a(o),S4=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],SW=[8,0],SX=[0,a(aU),BN,5,BN,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],ST=a(V),SU=a("0.0766"),SV=a(o),SY=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],SQ=[8,0],SR=[0,a(aU),fP,5,fP,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],SN=a(V),SO=a("0.0842"),SP=a(o),SS=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],SK=[8,0],SL=[0,a(aU),v8,5,v8,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],SH=a(V),SI=a("0.0918"),SJ=a(o),SM=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],SE=[8,0],SF=[0,a(aU),vq,5,vq,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],SB=a(V),SC=a("0.1089"),SD=a(o),SG=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],Sy=[8,0],Sz=[0,a(aU),i6,5,i6,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Sv=a(V),Sw=a("0.1259"),Sx=a(o),SA=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],Ss=[8,0],St=[0,a(aU),fZ,5,fZ,69,[0,a(bn),[0,a(a$),[0,a(ba),0]]]],Sp=a(V),Sq=a("0.143"),Sr=a(o),Su=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],Tl=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],So=[0,a(aU),m1,14,m1,59,[0,a(cG),[0,a(a$),[0,a(ba),0]]]],Sl=a(V),Sm=a(rm),Sn=a(o),Sh=[0,a(aU),iE,14,iE,67,[0,a(cG),[0,a(a$),[0,a(ba),0]]]],Sd=a($),Se=a($),Sf=a(BL),Sg=a(o),R8=a(w),R9=[0,a(bM),423,6,424,72,[0,a(rK),[0,a(eV),[0,a(j8),[0,a(dR),[0,a(_),[0,a(aa),0]]]]]]],R_=[0,a(H),ds,11,ds,35,[0,a(J),[0,a(G),[0,a(C),0]]]],R3=[0,a(cm),[0,a(iN),[0,a(ak),0]]],R4=[0,a(cm),[0,a(iN),0]],R5=[0,a(cm),[0,a(iN),[0,a(al),0]]],R6=[0,a(cm),[0,a(iN),0]],R7=[0,a(bM),kt,5,cW,59,[0,a(Fg),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],R$=[0,a(H),ds,11,ds,35,[0,a(J),[0,a(G),[0,a(C),0]]]],R2=[0,a(H),ds,11,ds,35,[0,a(J),[0,a(G),[0,a(C),0]]]],Sa=[0,a(H),ds,11,ds,35,[0,a(J),[0,a(G),[0,a(C),0]]]],R1=[0,a(H),ds,11,ds,35,[0,a(J),[0,a(G),[0,a(C),0]]]],RV=a(w),RW=[0,a(bM),gq,5,rE,71,[0,a(rK),[0,a(eV),[0,a(j8),[0,a(dR),[0,a(_),[0,a(aa),0]]]]]]],RX=[0,a(H),dN,11,dN,34,[0,a(J),[0,a(G),[0,a(C),0]]]],RU=[0,a(aY),30,9,30,32,[0,a(eN),[0,a(aZ),0]]],RY=[0,a(H),dN,11,dN,34,[0,a(J),[0,a(G),[0,a(C),0]]]],RT=[0,a(H),dN,11,dN,34,[0,a(J),[0,a(G),[0,a(C),0]]]],RN=[0,a(aU),23,5,23,69,[0,a(E2),[0,a(f3),0]]],RL=a(DQ),RM=a("5628600"),RO=[0,a(H),dl,11,dl,27,[0,a(J),[0,a(G),[0,a(C),0]]]],RJ=[0,a(aU),56,5,56,69,[0,a(uS),[0,a(f3),0]]],RH=a(EL),RI=a("5684900"),RK=[0,a(H),dl,11,dl,27,[0,a(J),[0,a(G),[0,a(C),0]]]],RF=[0,a(aU),89,5,89,69,[0,a(wc),[0,a(f3),0]]],RD=a(D0),RE=a("5775900"),RG=[0,a(H),dl,11,dl,27,[0,a(J),[0,a(G),[0,a(C),0]]]],RB=[0,a(aU),bk,5,bk,69,[0,a(cB),[0,a(Ch),[0,a(f3),0]]]],Rz=a(vJ),RA=a("5827900"),RC=[0,a(H),dl,11,dl,27,[0,a(J),[0,a(G),[0,a(C),0]]]],RP=[0,a(H),dl,11,dl,27,[0,a(J),[0,a(G),[0,a(C),0]]]],Ry=[0,a(bo),dk,14,dk,30,[0,a(CJ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Rw=a(Ac),Rx=a("5595000"),Rq=[0,a(aU),30,5,30,69,[0,a(E2),[0,a(f3),0]]],Ro=a(DQ),Rp=a("7877000"),Rr=[0,a(H),di,11,di,28,[0,a(J),[0,a(G),[0,a(C),0]]]],Rm=[0,a(aU),63,5,63,69,[0,a(uS),[0,a(f3),0]]],Rk=a(EL),Rl=a("7955800"),Rn=[0,a(H),di,11,di,28,[0,a(J),[0,a(G),[0,a(C),0]]]],Ri=[0,a(aU),96,5,96,69,[0,a(wc),[0,a(f3),0]]],Rg=a(D0),Rh=a("8083100"),Rj=[0,a(H),di,11,di,28,[0,a(J),[0,a(G),[0,a(C),0]]]],Re=[0,a(aU),dN,5,dN,69,[0,a(cB),[0,a(Ch),[0,a(f3),0]]]],Rc=a(vJ),Rd=a("8155800"),Rf=[0,a(H),di,11,di,28,[0,a(J),[0,a(G),[0,a(C),0]]]],Rs=[0,a(H),di,11,di,28,[0,a(J),[0,a(G),[0,a(C),0]]]],Rb=[0,a(bo),jm,14,jm,31,[0,a(CJ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Q$=a(Ac),Ra=a("7830000"),Q7=[0,a(aY),33,14,33,36,[0,a(eN),[0,a(aZ),0]]],Q8=[0,a(H),nu,11,nu,33,[0,a(J),[0,a(G),[0,a(C),0]]]],Q6=[0,a(H),nu,11,nu,33,[0,a(J),[0,a(G),[0,a(C),0]]]],Q3=[0,a(bM),75,14,75,64,[0,a(gv),[0,a(gs),[0,a(d8),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],QZ=[0,a(cm),[0,a(df),[0,a(ak),0]]],Q0=[0,a(cm),[0,a(df),0]],Q1=[0,a(cm),[0,a(df),[0,a(al),0]]],Q2=[0,a(cm),[0,a(df),0]],QU=[0,a(dK),83,19,83,69,[0,a(nw),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],QV=[0,a(H),eW,11,eW,38,[0,a(J),[0,a(G),[0,a(C),0]]]],QT=[0,a(dK),56,14,56,41,[0,a(nw),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],QW=[0,a(H),eW,11,eW,38,[0,a(J),[0,a(G),[0,a(C),0]]]],QS=[0,a(H),eW,11,eW,38,[0,a(J),[0,a(G),[0,a(C),0]]]],QN=[0,a(aY),32,14,32,40,[0,a(eN),[0,a(aZ),0]]],QH=[0,a(H),hc,14,hc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],QD=[0,a(H),jp,14,jp,56,[0,a(J),[0,a(G),[0,a(C),0]]]],QC=[1,0],Qy=[0,a(H),fH,14,fH,50,[0,a(J),[0,a(G),[0,a(C),0]]]],Qs=[0,a(H),fM,14,fM,32,[0,a(J),[0,a(G),[0,a(C),0]]]],Qm=[0,a(dK),64,14,64,44,[0,a(nw),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],Ql=a($),Qh=[0,a(bo),eE,14,eE,35,[0,a(fO),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(a8),[0,a(aa),0]]]]]]],Qg=a($),Qb=[0,a(bM),q$,5,y9,56,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],Qa=[1,0],Qc=[0,a(H),98,11,98,20,[0,a(J),[0,a(G),[0,a(C),0]]]],P7=[0,a(bM),wa,5,271,48,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],P6=[0,0],P8=[0,a(H),98,11,98,20,[0,a(J),[0,a(G),[0,a(C),0]]]],P5=[0,a(bM),EJ,5,EJ,70,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],P4=[0,0],P9=[0,a(H),98,11,98,20,[0,a(J),[0,a(G),[0,a(C),0]]]],P3=[0,a(bM),Cd,5,Cd,69,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],P2=[0,0],P_=[0,a(H),98,11,98,20,[0,a(J),[0,a(G),[0,a(C),0]]]],P1=[0,a(bM),ob,5,ob,60,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],P0=[0,0],P$=[0,a(H),98,11,98,20,[0,a(J),[0,a(G),[0,a(C),0]]]],Qd=[0,a(H),98,11,98,20,[0,a(J),[0,a(G),[0,a(C),0]]]],PZ=[0,a(H),98,11,98,20,[0,a(J),[0,a(G),[0,a(C),0]]]],PV=[0,a(bM),BF,5,BF,70,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],PU=[1,0],PW=[0,a(H),97,11,97,26,[0,a(J),[0,a(G),[0,a(C),0]]]],PS=[0,a(bM),fc,5,mM,56,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],PR=[2,0],PT=[0,a(H),97,11,97,26,[0,a(J),[0,a(G),[0,a(C),0]]]],PN=[0,a(bM),264,5,265,48,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],PM=[0,0],PO=[0,a(H),97,11,97,26,[0,a(J),[0,a(G),[0,a(C),0]]]],PL=[0,a(bM),xG,5,xG,69,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],PK=[0,0],PP=[0,a(H),97,11,97,26,[0,a(J),[0,a(G),[0,a(C),0]]]],PJ=[0,a(bM),zJ,5,zJ,60,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],PI=[0,0],PQ=[0,a(H),97,11,97,26,[0,a(J),[0,a(G),[0,a(C),0]]]],PX=[0,a(H),97,11,97,26,[0,a(J),[0,a(G),[0,a(C),0]]]],PH=[0,a(H),97,11,97,26,[0,a(J),[0,a(G),[0,a(C),0]]]],PY=[0,a(R),[0,a(fk),0]],Qe=[0,a(R),[0,a("versement"),0]],Qi=[0,a(H),n_,11,n_,32,[0,a(J),[0,a(G),[0,a(C),0]]]],Qf=[0,a(H),n_,11,n_,32,[0,a(J),[0,a(G),[0,a(C),0]]]],Qj=[0,a(R),[0,a("nombre_enfants_l521_1"),0]],Qn=[0,a(H),n1,11,n1,41,[0,a(J),[0,a(G),[0,a(C),0]]]],Qk=[0,a(H),n1,11,n1,41,[0,a(J),[0,a(G),[0,a(C),0]]]],Qo=[0,a(R),[0,a("nombre_enfants_alin\xc3\xa9a_2_l521_3"),0]],Qp=[0,a(R),[0,a(wm),[0,a(qY),0]]],Qq=[0,a(R),[0,a(wm),[0,a(qY),0]]],Qt=[0,a(H),fM,14,fM,32,[0,a(J),[0,a(G),[0,a(C),0]]]],Qu=[0,a(R),[0,a("bmaf.date_courante"),0]],Qr=[0,a(H),fM,14,fM,32,[0,a(J),[0,a(G),[0,a(C),0]]]],Qv=[0,a(R),[0,a(Aq),[0,a(f4),0]]],Qw=[0,a(R),[0,a(Aq),[0,a(f4),0]]],Qz=[0,a(H),fH,14,fH,50,[0,a(J),[0,a(G),[0,a(C),0]]]],QA=[0,a(R),[0,a(wF),0]],Qx=[0,a(H),fH,14,fH,50,[0,a(J),[0,a(G),[0,a(C),0]]]],QE=[0,a(H),jp,14,jp,56,[0,a(J),[0,a(G),[0,a(C),0]]]],QF=[0,a(R),[0,a(AL),0]],QB=[0,a(H),jp,14,jp,56,[0,a(J),[0,a(G),[0,a(C),0]]]],QI=[0,a(H),hc,14,hc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],QJ=[0,a(R),[0,a(yq),0]],QG=[0,a(H),hc,14,hc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],QK=[0,a(R),[0,a(oB),[0,a(cm),0]]],QL=[0,a(R),[0,a(oB),[0,a(cm),0]]],QO=[0,a(aY),32,14,32,40,[0,a(eN),[0,a(aZ),0]]],QP=[0,a(R),[0,a("enfant_le_plus_\xc3\xa2g\xc3\xa9.enfants"),0]],QM=[0,a(aY),32,14,32,40,[0,a(eN),[0,a(aZ),0]]],QQ=[0,a(R),[0,a(Ct),[0,a(q_),0]]],QR=[0,a(R),[0,a(Ct),[0,a(q_),0]]],QX=[0,a(R),[0,a(eO),0]],Q4=[0,a(H),95,11,95,61,[0,a(J),[0,a(G),[0,a(C),0]]]],QY=[0,a(H),95,11,95,61,[0,a(J),[0,a(G),[0,a(C),0]]]],Q5=[0,a(R),[0,a("enfants_\xc3\xa0_charge_droit_ouvert_prestation_familiale"),0]],Q9=[0,a(R),[0,a(kC),0]],Rt=[0,a(H),di,11,di,28,[0,a(J),[0,a(G),[0,a(C),0]]]],Q_=[0,a(H),di,11,di,28,[0,a(J),[0,a(G),[0,a(C),0]]]],Ru=[0,a(R),[0,a("plafond_II_d521_3"),0]],RQ=[0,a(H),dl,11,dl,27,[0,a(J),[0,a(G),[0,a(C),0]]]],Rv=[0,a(H),dl,11,dl,27,[0,a(J),[0,a(G),[0,a(C),0]]]],RR=[0,a(R),[0,a("plafond_I_d521_3"),0]],RZ=[0,a(H),dN,11,dN,34,[0,a(J),[0,a(G),[0,a(C),0]]]],RS=[0,a(H),dN,11,dN,34,[0,a(J),[0,a(G),[0,a(C),0]]]],R0=[0,a(R),[0,a("droit_ouvert_compl\xc3\xa9ment"),0]],Sb=[0,a(R),[0,a(j_),0]],Si=[0,a(H),h8,11,h8,64,[0,a(J),[0,a(G),[0,a(C),0]]]],Sc=[0,a(H),h8,11,h8,64,[0,a(J),[0,a(G),[0,a(C),0]]]],Sj=[0,a(R),[0,a("montant_initial_base_quatri\xc3\xa8me_enfant_et_plus_mayotte"),0]],Tm=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],Sk=[0,a(H),bk,11,bk,56,[0,a(J),[0,a(G),[0,a(C),0]]]],Tn=[0,a(R),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_mayotte"),0]],Tq=[0,a(H),h_,11,h_,31,[0,a(J),[0,a(G),[0,a(C),0]]]],To=[0,a(H),h_,11,h_,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Tr=[0,a(R),[0,a("nombre_total_enfants"),0]],TC=[0,a(H),nM,11,nM,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Ts=[0,a(H),nM,11,nM,31,[0,a(J),[0,a(G),[0,a(C),0]]]],TD=[0,a(R),[0,a("nombre_moyen_enfants"),0]],UU=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],TE=[0,a(H),bc,11,bc,46,[0,a(J),[0,a(G),[0,a(C),0]]]],UV=[0,a(R),[0,a("montant_initial_base_premier_enfant"),0]],U9=[0,a(H),cJ,11,cJ,28,[0,a(J),[0,a(G),[0,a(C),0]]]],UW=[0,a(H),cJ,11,cJ,28,[0,a(J),[0,a(G),[0,a(C),0]]]],U_=[0,a(R),[0,a("droit_ouvert_base"),0]],Vs=[0,a(R),[0,a(bE),0]],VK=[0,a(R),[0,a(kI),0]],VV=[0,a(H),el,11,el,47,[0,a(J),[0,a(G),[0,a(C),0]]]],VL=[0,a(H),el,11,el,47,[0,a(J),[0,a(G),[0,a(C),0]]]],VW=[0,a(R),[0,a("montant_vers\xc3\xa9_forfaitaire_par_enfant"),0]],We=[0,a(H),dw,11,dw,56,[0,a(J),[0,a(G),[0,a(C),0]]]],VX=[0,a(H),dw,11,dw,56,[0,a(J),[0,a(G),[0,a(C),0]]]],Wf=[0,a(R),[0,a("montant_initial_base_troisi\xc3\xa8me_enfant_et_plus"),0]],XA=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],Wg=[0,a(H),a9,11,a9,47,[0,a(J),[0,a(G),[0,a(C),0]]]],XB=[0,a(R),[0,a("montant_initial_base_deuxi\xc3\xa8me_enfant"),0]],XG=[0,a(H),mu,11,mu,38,[0,a(J),[0,a(G),[0,a(C),0]]]],XC=[0,a(H),mu,11,mu,38,[0,a(J),[0,a(G),[0,a(C),0]]]],XH=[0,a(R),[0,a("rapport_enfants_total_moyen"),0]],Ya=[0,a(R),[0,a(j4),0]],Yj=[0,a(H),gO,11,gO,36,[0,a(J),[0,a(G),[0,a(C),0]]]],Yb=[0,a(H),gO,11,gO,36,[0,a(J),[0,a(G),[0,a(C),0]]]],Yk=[0,a(R),[0,a("montant_vers\xc3\xa9_forfaitaire"),0]],Yu=[0,a(H),dJ,11,dJ,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Yl=[0,a(H),dJ,11,dJ,31,[0,a(J),[0,a(G),[0,a(C),0]]]],Yv=[0,a(R),[0,a("montant_initial_base"),0]],YU=[0,a(R),[0,a(jY),0]],Y$=[0,a(H),eQ,11,eQ,52,[0,a(J),[0,a(G),[0,a(C),0]]]],YV=[0,a(H),eQ,11,eQ,52,[0,a(J),[0,a(G),[0,a(C),0]]]],Za=[0,a(R),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_forfaitaire"),0]],Zd=[0,a(H),kL,11,kL,43,[0,a(J),[0,a(G),[0,a(C),0]]]],Zb=[0,a(H),kL,11,kL,43,[0,a(J),[0,a(G),[0,a(C),0]]]],Ze=[0,a(R),[0,a("montant_avec_garde_altern\xc3\xa9e_base"),0]],Zt=[0,a(R),[0,a(j3),0]],Zx=[0,a(H),kK,11,kK,29,[0,a(J),[0,a(G),[0,a(C),0]]]],Zu=[0,a(H),kK,11,kK,29,[0,a(J),[0,a(G),[0,a(C),0]]]],Zy=[0,a(R),[0,a("montant_vers\xc3\xa9_base"),0]],ZH=[0,a(H),ir,11,ir,35,[0,a(J),[0,a(G),[0,a(C),0]]]],Zz=[0,a(H),ir,11,ir,35,[0,a(J),[0,a(G),[0,a(C),0]]]],ZI=[0,a(R),[0,a("montant_vers\xc3\xa9_majoration"),0]],ZL=[0,a(H),mT,11,mT,58,[0,a(J),[0,a(G),[0,a(C),0]]]],ZJ=[0,a(H),mT,11,mT,58,[0,a(J),[0,a(G),[0,a(C),0]]]],ZM=[0,a(R),[0,a("montant_base_compl\xc3\xa9ment_pour_base_et_majoration"),0]],ZU=[0,a(H),ml,11,ml,59,[0,a(J),[0,a(G),[0,a(C),0]]]],ZN=[0,a(H),ml,11,ml,59,[0,a(J),[0,a(G),[0,a(C),0]]]],ZV=[0,a(R),[0,a("montant_vers\xc3\xa9_compl\xc3\xa9ment_pour_base_et_majoration"),0]],ZZ=[0,a(H),c5,10,c5,23,[0,a(J),[0,a(G),[0,a(C),0]]]],ZW=[0,a(H),c5,10,c5,23,[0,a(J),[0,a(G),[0,a(C),0]]]],Z0=[0,a(R),[0,a("montant_vers\xc3\xa9"),0]],Z1=[0,a(bM),wH,5,q5,6,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],Z2=[0,a(bM),wH,5,q5,6,[0,a(dQ),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],PC=[0,a("examples/allocations_familiales/autres_codes.catala_fr"),24,5,24,63,[0,a("Article L821-3"),[0,a(zv),[0,a(D6),[0,a(xP),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]]]],PD=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],Py=[0,a(bM),60,5,62,64,[0,a(gv),[0,a(gs),[0,a(d8),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],Pz=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],Px=[0,a(bM),49,5,50,50,[0,a(gv),[0,a(gs),[0,a(d8),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],PA=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],PB=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],PE=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pw=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],PF=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pv=[0,a(H),57,10,57,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pr=[0,a(bM),68,5,71,57,[0,a(gv),[0,a(gs),[0,a(d8),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],Ps=[0,a(H),58,10,58,29,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pq=[0,a(H),58,10,58,29,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pt=[0,a(H),58,10,58,29,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pp=[0,a(H),58,10,58,29,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pl=[0,a(dK),uC,18,uC,41,[0,a(w6),[0,a(eV),[0,a(gC),[0,a(dR),[0,a(c3),[0,a(aa),0]]]]]]],Pj=a(oG),Pk=a(nN),Pm=[0,a(H),59,11,59,27,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pi=[0,a(dK),31,14,31,30,[0,a(lL),[0,a(nE),[0,a(d8),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],Pg=a(oG),Ph=a(nN),O7=[5,0],O8=[4,0],O9=[3,0],O_=[2,0],O$=[1,0],Pa=[0,0],Pb=[0,a(bM),357,5,Bm,30,[0,a(B3),[0,a(x2),[0,a(j8),[0,a(dR),[0,a(_),[0,a(aa),0]]]]]]],Pc=[0,a(H),61,10,61,33,[0,a(bA),[0,a(G),[0,a(C),0]]]],O6=[0,a(H),61,10,61,33,[0,a(bA),[0,a(G),[0,a(C),0]]]],O0=[0,a(H),68,14,68,28,[0,a(bA),[0,a(G),[0,a(C),0]]]],OW=[0,a(H),69,14,69,32,[0,a(bA),[0,a(G),[0,a(C),0]]]],OS=[0,a(dK),21,14,21,26,[0,a(lL),[0,a(nE),[0,a(d8),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],OT=[0,a(H),60,10,60,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],OR=[0,a(H),60,10,60,22,[0,a(bA),[0,a(G),[0,a(C),0]]]],OU=[0,a(cm),[0,a(yA),0]],OX=[0,a(H),69,14,69,32,[0,a(bA),[0,a(G),[0,a(C),0]]]],OY=[0,a(cm),[0,a(Ec),0]],OV=[0,a(H),69,14,69,32,[0,a(bA),[0,a(G),[0,a(C),0]]]],O1=[0,a(H),68,14,68,28,[0,a(bA),[0,a(G),[0,a(C),0]]]],O2=[0,a(cm),[0,a(CP),0]],OZ=[0,a(H),68,14,68,28,[0,a(bA),[0,a(G),[0,a(C),0]]]],O3=[0,a(cm),[0,a(f7),[0,a(hl),0]]],O4=[0,a(cm),[0,a(f7),[0,a(hl),0]]],Pd=[0,a(H),61,10,61,33,[0,a(bA),[0,a(G),[0,a(C),0]]]],O5=[0,a(H),61,10,61,33,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pe=[0,a(cm),[0,a(uT),0]],Pn=[0,a(H),59,11,59,27,[0,a(bA),[0,a(G),[0,a(C),0]]]],Pf=[0,a(H),59,11,59,27,[0,a(bA),[0,a(G),[0,a(C),0]]]],Po=[0,a(cm),[0,a(zM),0]],Pu=[0,a(cm),[0,a(iN),0]],PG=[0,a(cm),[0,a(df),0]],ON=[0,a(ey),28,5,29,34,[0,a(BH),[0,a(cd),0]]],OM=a(xb),OO=[0,a(ey),6,10,6,17,[0,a(cd),0]],OK=[0,a(ey),48,5,49,34,[0,a(z8),[0,a(cd),0]]],OJ=a(wS),OL=[0,a(ey),6,10,6,17,[0,a(cd),0]],OH=[0,a(ey),64,5,65,34,[0,a(Bt),[0,a(cd),0]]],OG=a(Bf),OI=[0,a(ey),6,10,6,17,[0,a(cd),0]],OE=[0,a(ey),82,5,83,34,[0,a(wo),[0,a(cd),0]]],OD=a(A$),OF=[0,a(ey),6,10,6,17,[0,a(cd),0]],OP=[0,a(ey),6,10,6,17,[0,a(cd),0]],OC=[0,a(ey),6,10,6,17,[0,a(cd),0]],OQ=[0,a(f4),[0,a(bN),0]],Oq=[7,0],Or=[5,0],Os=[4,0],Ot=[3,0],Ou=[2,0],Ov=[1,0],Ow=[0,0],Ox=[6,0],Oy=[0,a(b2),29,5,38,6,[0,a(cB),[0,a(lK),[0,a(aW),0]]]],Op=a(wh),Oz=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],Om=[8,0],On=[0,a(b2),47,5,49,6,[0,a(cB),[0,a(lK),[0,a(aW),0]]]],Ol=a(w$),Oo=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],Ob=[7,0],Oc=[5,0],Od=[4,0],Oe=[3,0],Of=[2,0],Og=[1,0],Oh=[0,0],Oi=[6,0],Oj=[0,a(b2),68,5,77,6,[0,a(cB),[0,a(nB),[0,a(aW),0]]]],Oa=a(Ad),Ok=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],N9=[8,0],N_=[0,a(b2),86,5,88,6,[0,a(cB),[0,a(nB),[0,a(aW),0]]]],N8=a(uK),N$=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],NY=[7,0],NZ=[5,0],N0=[4,0],N1=[3,0],N2=[2,0],N3=[1,0],N4=[0,0],N5=[6,0],N6=[0,a(b2),dw,5,bk,6,[0,a(cB),[0,a(lM),[0,a(aW),0]]]],NX=a(AP),N7=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],NU=[8,0],NV=[0,a(b2),cp,5,cA,6,[0,a(cB),[0,a(lM),[0,a(aW),0]]]],NT=a(DF),NW=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],NJ=[7,0],NK=[5,0],NL=[4,0],NM=[3,0],NN=[2,0],NO=[1,0],NP=[0,0],NQ=[6,0],NR=[0,a(b2),eW,5,fH,6,[0,a(cB),[0,a(m_),[0,a(aW),0]]]],NI=a(A1),NS=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],NF=[8,0],NG=[0,a(b2),qI,5,nG,6,[0,a(cB),[0,a(m_),[0,a(aW),0]]]],NE=a(wu),NH=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],Nu=[7,0],Nv=[5,0],Nw=[4,0],Nx=[3,0],Ny=[2,0],Nz=[1,0],NA=[0,0],NB=[6,0],NC=[0,a(b2),m1,5,iE,6,[0,a(m$),[0,a(my),[0,a(aW),0]]]],Nt=a(za),ND=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],Nq=[8,0],Nr=[0,a(b2),wy,5,x8,6,[0,a(m$),[0,a(my),[0,a(aW),0]]]],Np=a(DE),Ns=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],OA=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],No=[0,a(b2),11,10,11,22,[0,a(C),[0,a(aW),0]]],OB=[0,a(hl),[0,a(zw),0]],Nl=[0,a(aY),12,14,12,25,[0,a(eN),[0,a(aZ),0]]],Nh=[2,0],Ni=a(o),Nj=[1,0],Nk=a("-1"),Nm=[0,a(H),80,10,80,21,[0,a(J),[0,a(G),[0,a(C),0]]]],Ng=[0,a(H),80,10,80,21,[0,a(J),[0,a(G),[0,a(C),0]]]],Nn=[0,a(q_),[0,a("le_plus_\xc3\xa2g\xc3\xa9"),0]],Nd=[0,a(dK),78,14,78,41,[0,a(nw),[0,a(aK),[0,a(aL),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],Ne=[0,a(H),76,10,76,37,[0,a(J),[0,a(G),[0,a(C),0]]]],Nc=[0,a(H),76,10,76,37,[0,a(J),[0,a(G),[0,a(C),0]]]],Nf=[0,a(qY),[0,a(eO),0]],M6=a(qy),M7=a(qN),M8=a(D2),M9=a(qS),M_=a(qT),M$=a(rs),Na=a(rl),Nb=[0,a("Enfant"),0],MW=a(mk),MY=a(ol),MZ=a(lZ),M0=a(CC),M1=a(yk),M2=a(oW),M3=a(Ce),M4=a(nb),M5=a(oy),MX=[0,a(Ba),0],MN=a(oa),MP=a(R),MQ=a(qL),MR=a(nK),MS=a(CX),MT=a(iR),MU=a(A9),MV=a(yo),MO=[0,a(ET),0],MI=a("Compl\xc3\xa8te"),MK=a("Partag\xc3\xa9e"),ML=a("Z\xc3\xa9ro"),MJ=[0,a("PriseEnCompte"),0],ME=a(kl),MG=a(j$),MH=a(Bz),MF=[0,a(B_),0],My=a(As),MA=a(C_),MB=a(jZ),MC=a(Es),MD=a(ya),Mz=[0,a("PriseEnCharge"),0],$M=a(Y),$m=a(mk),$n=a(ol),$o=a(vT),$p=a(lZ),$q=a(oy),$r=a(Em),$s=a(wL),$t=a(oW),$u=a(nb),$w=[7,0],$x=[5,0],$y=[4,0],$z=[6,0],$A=[8,0],$B=[2,0],$C=[3,0],$D=[1,0],$E=[0,0],$v=[0,[11,a(bf),[2,0,[11,a(A5),0]]],a(wj)],_7=a(vo),_8=a(xC),_9=a(nK),__=a(DC),_$=a(iR),$a=a(R),$b=a(qm),$c=a(oa),$e=[0,0],$f=[2,0],$g=[1,0],$h=[5,0],$i=[6,0],$j=[3,0],$k=[7,0],$l=[4,0],$d=[0,[11,a(bf),[2,0,[11,a(C$),0]]],a(EU)],_0=a(rR),_1=a(kl),_2=a(j$),_4=[1,0],_5=[0,0],_6=[2,0],_3=[0,[11,a(bf),[2,0,[11,a(xu),0]]],a(vY)],_P=a(jZ),_Q=a(q0),_R=a(qG),_S=a(ri),_T=a(qD),_V=[4,0],_W=[3,0],_X=[0,0],_Y=[1,0],_Z=[2,0],_U=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'PriseEnCharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnCharge.t'")],_N=[0,a(Bs),a(oP),a(f7),a(CK),a(EQ),a(vt),a(wO)],_O=[0,a(f7),a(vt),a(EQ),a(wO),a(oP),a(Bs),a(CK)],$U=a("AllocationsFamilialesLib"),boR=[0,a(fA),fc,14,fc,25,[0,a("Conseil d'\xc3\x89tat, 5\xc3\xa8me - 4\xc3\xa8me chambres r\xc3\xa9unies, 21/07/2017, 398563"),0]],boK=a(o),boL=a(o),boQ=a(b1),boM=[0,a(a4),[0,a(bC),[0,a(ak),0]]],boN=[0,a(a4),[0,a(bC),0]],boO=[0,a(a4),[0,a(bC),[0,a(al),0]]],boP=[0,a(a4),[0,a(bC),0]],boG=[0,a(d),qK,14,qK,63,[0,a(bd),[0,a(e),0]]],boC=[0,a(d),BD,14,BD,25,[0,a(bd),[0,a(e),0]]],bow=[0,a(d),iB,5,iB,70,[0,a(bd),[0,a(e),0]]],bos=[0,a(d),gr,14,gr,58,[0,a(bd),[0,a(e),0]]],boo=[0,a(d),h0,14,h0,54,[0,a(bd),[0,a(e),0]]],bok=[0,a(d),gn,14,gn,51,[0,a(bd),[0,a(e),0]]],boe=[0,a(d),he,14,he,59,[0,a(bd),[0,a(e),0]]],boa=[0,a(d),il,14,il,38,[0,a(bd),[0,a(e),0]]],bn8=[0,a(d),ia,14,ia,34,[0,a(bd),[0,a(e),0]]],bn4=[0,a(d),ij,14,ij,31,[0,a(bd),[0,a(e),0]]],bn0=[0,a(d),z4,14,z4,48,[0,a(bd),[0,a(e),0]]],bn1=[0,a(d),nf,11,nf,45,[0,a(bd),[0,a(e),0]]],bnZ=[0,a(d),nf,11,nf,45,[0,a(bd),[0,a(e),0]]],bn2=[0,a(cO),[0,a("m\xc3\xa9nage_sans_enfants_garde_altern\xc3\xa9e"),0]],bn5=[0,a(d),ij,14,ij,31,[0,a(bd),[0,a(e),0]]],bn6=[0,a(cO),[0,a("calculette.m\xc3\xa9nage"),0]],bn3=[0,a(d),ij,14,ij,31,[0,a(bd),[0,a(e),0]]],bn9=[0,a(d),ia,14,ia,34,[0,a(bd),[0,a(e),0]]],bn_=[0,a(cO),[0,a("calculette.demandeur"),0]],bn7=[0,a(d),ia,14,ia,34,[0,a(bd),[0,a(e),0]]],bob=[0,a(d),il,14,il,38,[0,a(bd),[0,a(e),0]]],boc=[0,a(cO),[0,a("calculette.date_courante"),0]],bn$=[0,a(d),il,14,il,38,[0,a(bd),[0,a(e),0]]],bof=[0,a(d),he,14,he,59,[0,a(bd),[0,a(e),0]]],bog=[0,a(cO),[0,a("calculette.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bod=[0,a(d),he,14,he,59,[0,a(bd),[0,a(e),0]]],boh=[0,a(cO),[0,a(C9),[0,a(a4),0]]],boi=[0,a(cO),[0,a(C9),[0,a(a4),0]]],bol=[0,a(d),gn,14,gn,51,[0,a(bd),[0,a(e),0]]],bom=[0,a(cO),[0,a("calculette_sans_garde_altern\xc3\xa9e.m\xc3\xa9nage"),0]],boj=[0,a(d),gn,14,gn,51,[0,a(bd),[0,a(e),0]]],bop=[0,a(d),h0,14,h0,54,[0,a(bd),[0,a(e),0]]],boq=[0,a(cO),[0,a("calculette_sans_garde_altern\xc3\xa9e.demandeur"),0]],bon=[0,a(d),h0,14,h0,54,[0,a(bd),[0,a(e),0]]],bot=[0,a(d),gr,14,gr,58,[0,a(bd),[0,a(e),0]]],bou=[0,a(cO),[0,a("calculette_sans_garde_altern\xc3\xa9e.date_courante"),0]],bor=[0,a(d),gr,14,gr,58,[0,a(bd),[0,a(e),0]]],box=[0,a(d),iB,5,iB,70,[0,a(bd),[0,a(e),0]]],boy=[0,a(cO),[0,a("calculette_sans_garde_altern\xc3\xa9e.ressources_m\xc3\xa9nage_prises_en_compte"),0]],bov=[0,a(d),iB,5,iB,70,[0,a(bd),[0,a(e),0]]],boz=[0,a(cO),[0,a(wn),[0,a(a4),0]]],boA=[0,a(cO),[0,a(wn),[0,a(a4),0]]],boD=[0,a(d),oO,10,oO,21,[0,a(bd),[0,a(e),0]]],boB=[0,a(d),oO,10,oO,21,[0,a(bd),[0,a(e),0]]],boE=[0,a(cO),[0,a(nX),0]],boH=[0,a(d),mb,11,mb,60,[0,a(bd),[0,a(e),0]]],boF=[0,a(d),mb,11,mb,60,[0,a(bd),[0,a(e),0]]],boI=[0,a(cO),[0,a(ku),0]],boS=[0,a(d),hj,10,hj,21,[0,a(bd),[0,a(e),0]]],boJ=[0,a(d),hj,10,hj,21,[0,a(bd),[0,a(e),0]]],boT=[0,a(cO),[0,a("aide_finale"),0]],bnV=[0,a(aD),rV,14,rV,33,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bnM=a(o),bnN=[0,a(cQ),[0,a(bC),[0,a(ak),0]]],bnO=[0,a(cQ),[0,a(bC),0]],bnP=[0,a(cQ),[0,a(bC),[0,a(al),0]]],bnQ=[0,a(cQ),[0,a(bC),0]],bnR=[0,a(cR),[0,a(bC),[0,a(ak),0]]],bnS=[0,a(cR),[0,a(bC),0]],bnT=[0,a(cR),[0,a(bC),[0,a(al),0]]],bnU=[0,a(cR),[0,a(bC),0]],bnI=[0,a(aD),zr,14,zr,36,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bnA=[0,a(cR),[0,a(bC),[0,a(ak),0]]],bnB=[0,a(cR),[0,a(bC),0]],bnC=[0,a(cR),[0,a(bC),[0,a(al),0]]],bnD=[0,a(cR),[0,a(bC),0]],bnE=[0,a(cQ),[0,a(bC),[0,a(ak),0]]],bnF=[0,a(cQ),[0,a(bC),0]],bnG=[0,a(cQ),[0,a(bC),[0,a(al),0]]],bnH=[0,a(cQ),[0,a(bC),0]],bnJ=[0,a(d),mZ,10,mZ,32,[0,a(av),[0,a(e),0]]],bnz=[0,a(d),mZ,10,mZ,32,[0,a(av),[0,a(e),0]]],bnw=[0,a(aD),En,14,En,25,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bns=[0,a(d),vv,14,vv,63,[0,a(av),[0,a(e),0]]],bnm=[0,a(d),hv,14,hv,62,[0,a(av),[0,a(e),0]]],bni=[0,a(d),f2,14,f2,53,[0,a(av),[0,a(e),0]]],bne=[0,a(d),hM,5,hM,65,[0,a(av),[0,a(e),0]]],bna=[0,a(d),hP,14,hP,68,[0,a(av),[0,a(e),0]]],bm8=[0,a(d),jb,14,jb,66,[0,a(av),[0,a(e),0]]],bm4=[0,a(aD),hZ,14,hZ,58,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bm3=[0,0],bmZ=[0,a(d),id,14,id,64,[0,a(av),[0,a(e),0]]],bmT=[0,a(aD),jo,14,jo,50,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bmQ=[2,0],bmR=[1,0],bmS=[2,0],bmM=[0,a(d),jh,14,jh,54,[0,a(av),[0,a(e),0]]],bmI=[0,a(d),iK,14,iK,45,[0,a(av),[0,a(e),0]]],bmE=[0,a(d),hY,14,hY,66,[0,a(av),[0,a(e),0]]],bmA=[0,a(d),gx,14,gx,60,[0,a(av),[0,a(e),0]]],bmw=[0,a(d),iW,14,iW,58,[0,a(av),[0,a(e),0]]],bms=[0,a(d),gI,14,gI,56,[0,a(av),[0,a(e),0]]],bmm=[0,a(d),iU,14,iU,67,[0,a(av),[0,a(e),0]]],bmi=[0,a(d),gH,14,gH,63,[0,a(av),[0,a(e),0]]],bme=[0,a(d),iJ,14,iJ,60,[0,a(av),[0,a(e),0]]],bl_=[0,a(aD),io,5,io,74,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bl6=[0,a(d),hu,14,hu,55,[0,a(av),[0,a(e),0]]],bl2=[0,a(d),ix,14,ix,52,[0,a(av),[0,a(e),0]]],blY=[0,a(d),i8,14,i8,59,[0,a(av),[0,a(e),0]]],blZ=[0,a(d),i8,14,i8,59,[0,a(av),[0,a(e),0]]],bl0=[0,a(a4),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.date_courante"),0]],blX=[0,a(d),i8,14,i8,59,[0,a(av),[0,a(e),0]]],bl3=[0,a(d),ix,14,ix,52,[0,a(av),[0,a(e),0]]],bl4=[0,a(a4),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.m\xc3\xa9nage"),0]],bl1=[0,a(d),ix,14,ix,52,[0,a(av),[0,a(e),0]]],bl7=[0,a(d),hu,14,hu,55,[0,a(av),[0,a(e),0]]],bl8=[0,a(a4),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.demandeur"),0]],bl5=[0,a(d),hu,14,hu,55,[0,a(av),[0,a(e),0]]],bl$=[0,a(aD),io,5,io,74,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bma=[0,a(a4),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement.b\xc3\xa9n\xc3\xa9ficie_aide_personnalis\xc3\xa9e_logement"),0]],bl9=[0,a(aD),io,5,io,74,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bmb=[0,a(a4),[0,a(uD),[0,a(b$),0]]],bmc=[0,a(a4),[0,a(uD),[0,a(b$),0]]],bmf=[0,a(d),iJ,14,iJ,60,[0,a(av),[0,a(e),0]]],bmg=[0,a(a4),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.m\xc3\xa9nage"),0]],bmd=[0,a(d),iJ,14,iJ,60,[0,a(av),[0,a(e),0]]],bmj=[0,a(d),gH,14,gH,63,[0,a(av),[0,a(e),0]]],bmk=[0,a(a4),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.demandeur"),0]],bmh=[0,a(d),gH,14,gH,63,[0,a(av),[0,a(e),0]]],bmn=[0,a(d),iU,14,iU,67,[0,a(av),[0,a(e),0]]],bmo=[0,a(a4),[0,a("\xc3\xa9ligibilit\xc3\xa9_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],bml=[0,a(d),iU,14,iU,67,[0,a(av),[0,a(e),0]]],bmp=[0,a(a4),[0,a(Cn),[0,a(b3),0]]],bmq=[0,a(a4),[0,a(Cn),[0,a(b3),0]]],bmt=[0,a(d),gI,14,gI,56,[0,a(av),[0,a(e),0]]],bmu=[0,a(a4),[0,a("calcul_allocation_logement.mode_occupation"),0]],bmr=[0,a(d),gI,14,gI,56,[0,a(av),[0,a(e),0]]],bmx=[0,a(d),iW,14,iW,58,[0,a(av),[0,a(e),0]]],bmy=[0,a(a4),[0,a("calcul_allocation_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],bmv=[0,a(d),iW,14,iW,58,[0,a(av),[0,a(e),0]]],bmB=[0,a(d),gx,14,gx,60,[0,a(av),[0,a(e),0]]],bmC=[0,a(a4),[0,a("calcul_allocation_logement.situation_familiale"),0]],bmz=[0,a(d),gx,14,gx,60,[0,a(av),[0,a(e),0]]],bmF=[0,a(d),hY,14,hY,66,[0,a(av),[0,a(e),0]]],bmG=[0,a(a4),[0,a("calcul_allocation_logement.nombre_personnes_\xc3\xa0_charge"),0]],bmD=[0,a(d),hY,14,hY,66,[0,a(av),[0,a(e),0]]],bmJ=[0,a(d),iK,14,iK,45,[0,a(av),[0,a(e),0]]],bmK=[0,a(a4),[0,a("calcul_allocation_logement.zone"),0]],bmH=[0,a(d),iK,14,iK,45,[0,a(av),[0,a(e),0]]],bmN=[0,a(d),jh,14,jh,54,[0,a(av),[0,a(e),0]]],bmO=[0,a(a4),[0,a("calcul_allocation_logement.date_courante"),0]],bmL=[0,a(d),jh,14,jh,54,[0,a(av),[0,a(e),0]]],bmU=[0,a(aD),jo,14,jo,50,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bmV=[0,a(a4),[0,a("calcul_allocation_logement.type_aide"),0]],bmP=[0,a(aD),jo,14,jo,50,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bmW=[0,a(a4),[0,a(Du),[0,a(cQ),0]]],bmX=[0,a(a4),[0,a(Du),[0,a(cQ),0]]],bm0=[0,a(d),id,14,id,64,[0,a(av),[0,a(e),0]]],bm1=[0,a(a4),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.mode_occupation"),0]],bmY=[0,a(d),id,14,id,64,[0,a(av),[0,a(e),0]]],bm5=[0,a(aD),hZ,14,hZ,58,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bm6=[0,a(a4),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.type_aide"),0]],bm2=[0,a(aD),hZ,14,hZ,58,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bm9=[0,a(d),jb,14,jb,66,[0,a(av),[0,a(e),0]]],bm_=[0,a(a4),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.ressources_m\xc3\xa9nage_sans_arrondi"),0]],bm7=[0,a(d),jb,14,jb,66,[0,a(av),[0,a(e),0]]],bnb=[0,a(d),hP,14,hP,68,[0,a(av),[0,a(e),0]]],bnc=[0,a(a4),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.situation_familiale"),0]],bm$=[0,a(d),hP,14,hP,68,[0,a(av),[0,a(e),0]]],bnf=[0,a(d),hM,5,hM,65,[0,a(av),[0,a(e),0]]],bng=[0,a(a4),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.nombre_personnes_\xc3\xa0_charge"),0]],bnd=[0,a(d),hM,5,hM,65,[0,a(av),[0,a(e),0]]],bnj=[0,a(d),f2,14,f2,53,[0,a(av),[0,a(e),0]]],bnk=[0,a(a4),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.zone"),0]],bnh=[0,a(d),f2,14,f2,53,[0,a(av),[0,a(e),0]]],bnn=[0,a(d),hv,14,hv,62,[0,a(av),[0,a(e),0]]],bno=[0,a(a4),[0,a("calcul_aide_personnalis\xc3\xa9e_logement.date_courante"),0]],bnl=[0,a(d),hv,14,hv,62,[0,a(av),[0,a(e),0]]],bnp=[0,a(a4),[0,a(yP),[0,a(cR),0]]],bnq=[0,a(a4),[0,a(yP),[0,a(cR),0]]],bnt=[0,a(d),jX,10,jX,59,[0,a(av),[0,a(e),0]]],bnr=[0,a(d),jX,10,jX,59,[0,a(av),[0,a(e),0]]],bnu=[0,a(a4),[0,a(ku),0]],bnx=[0,a(d),ne,10,ne,21,[0,a(av),[0,a(e),0]]],bnv=[0,a(d),ne,10,ne,21,[0,a(av),[0,a(e),0]]],bny=[0,a(a4),[0,a(nX),0]],bnK=[0,a(a4),[0,a(bC),0]],bnW=[0,a(d),oR,10,oR,29,[0,a(av),[0,a(e),0]]],bnL=[0,a(d),oR,10,oR,29,[0,a(av),[0,a(e),0]]],bnX=[0,a(a4),[0,a(eX),0]],blU=[0,a(E),EB,14,EB,33,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],blQ=[0,a(E),zo,14,zo,36,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],blR=[0,a(d),n9,10,n9,32,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blP=[0,a(d),n9,10,n9,32,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blM=[0,a(E),Df,14,Df,36,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],blH=a(o),blI=a(o),blG=[0,a(E),1528,16,1531,39,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],blK=a(o),blL=a(o),blJ=[0,a(E),1560,16,1563,39,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],blC=[0,a(P),88,14,88,44,[0,a(cG),[0,a(bT),[0,a(L),0]]]],blw=[0,0],blx=[1,0],bly=[1,0],blz=[1,0],blA=[0,0],blB=[1,0],bls=[0,a(E),xT,14,xT,31,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],blp=a(c2),blq=a(Bk),blr=a(qP),bll=[0,a(E),uL,14,uL,34,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],blm=[0,a(d),mB,11,mB,31,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blk=[0,a(d),mB,11,mB,31,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],bln=[0,a(cQ),[0,a(xa),0]],blt=[0,a(d),hW,10,hW,22,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blo=[0,a(d),hW,10,hW,22,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blu=[0,a(cQ),[0,a(wK),0]],blD=[0,a(d),mr,11,mr,41,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blv=[0,a(d),mr,11,mr,41,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blE=[0,a(cQ),[0,a(yz),0]],blN=[0,a(d),mG,11,mG,33,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blF=[0,a(d),mG,11,mG,33,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blO=[0,a(cQ),[0,a(Ek),0]],blS=[0,a(cQ),[0,a(bC),0]],blV=[0,a(d),oE,10,oE,29,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blT=[0,a(d),oE,10,oE,29,[0,a(bL),[0,a(N),[0,a(z),[0,a(e),0]]]]],blW=[0,a(cQ),[0,a(eX),0]],blf=[0,a(aD),zq,5,zq,73,[0,a("Article L841-3"),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],ble=[2,0],blg=[0,a(d),eL,10,eL,16,[0,a(aI),[0,a(i),[0,a(e),0]]]],blc=[0,a(aD),1134,5,gn,28,[0,a("Article L841-4"),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],blb=[0,0],bld=[0,a(d),eL,10,eL,16,[0,a(aI),[0,a(i),[0,a(e),0]]]],blh=[0,a(d),eL,10,eL,16,[0,a(aI),[0,a(i),[0,a(e),0]]]],bla=[0,a(aD),D5,14,D5,25,[0,a(dt),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bk8=[0,0],bk9=[0,0],bk_=[1,0],bk$=[2,0],bkY=a(o),bkZ=[0,a(aD),999,5,1003,29,[0,a(ih),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bk0=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkT=a(w),bkR=a(w),bkS=a(o),bkU=[0,a(aD),976,5,987,12,[0,a(ih),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bkV=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkL=[0,a(aS),[0,a(fg),[0,a(ak),0]]],bkM=[0,a(aS),[0,a(fg),0]],bkN=[0,a(aS),[0,a(fg),[0,a(al),0]]],bkO=[0,a(aS),[0,a(fg),0]],bkP=a(w),bkJ=a(w),bkK=a(o),bkQ=[0,a(aD),959,5,gz,72,[0,a(ih),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bkW=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkX=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bk1=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkB=[2,0],bkH=[0,0],bkC=[0,a(cn),[0,a(df),[0,a(ak),0]]],bkD=[0,a(cn),[0,a(df),0]],bkE=[0,a(cn),[0,a(df),[0,a(al),0]]],bkF=[0,a(cn),[0,a(df),0]],bkG=a(w),bkz=a(o),bkA=a(o),bkI=[0,a(aD),921,5,kB,29,[0,a(ih),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bk2=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkr=[2,0],bkx=[0,0],bks=[0,a(cn),[0,a(df),[0,a(ak),0]]],bkt=[0,a(cn),[0,a(df),0]],bku=[0,a(cn),[0,a(df),[0,a(al),0]]],bkv=[0,a(cn),[0,a(df),0]],bkw=a(w),bkp=a(w),bkq=a(o),bky=[0,a(aD),889,5,910,11,[0,a(ih),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bk3=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkk=[4,0],bkl=[3,0],bkm=[1,0],bkn=[0,0],bko=[0,a(aD),870,5,874,52,[0,a(ih),[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bk4=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkj=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkf=[0,a(aD),wX,14,wX,25,[0,a(bi),[0,a(b4),[0,a(x),[0,a(_),[0,a(v),0]]]]]],bkd=[0,0],bke=[2,0],bj$=[0,a(d),hk,14,hk,56,[0,a(aI),[0,a(i),[0,a(e),0]]]],bj7=[0,a(d),Bo,14,Bo,63,[0,a(aI),[0,a(i),[0,a(e),0]]]],bj1=[0,a(E),n4,9,n4,55,[0,a(n8),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bj2=[0,a(E),n4,9,n4,55,[0,a(n8),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bj3=[0,a(b$),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_surface"),0]],bjY=[0,a(E),m0,9,m0,68,[0,a(n8),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bjZ=[0,a(E),m0,9,m0,68,[0,a(n8),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bj0=[0,a(b$),[0,a("\xc3\xa9ligibilit\xc3\xa9_commune.condition_logement_r\xc3\xa9sidence_principale"),0]],bjV=[0,a(d),gq,14,gq,47,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjR=[0,a(d),i0,14,i0,43,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjN=[0,a(d),iQ,14,iQ,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjE=[0,a(E),4353,5,4358,28,[0,a(ov),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bjF=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjD=[0,a(E),4336,5,4341,28,[0,a(ov),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bjG=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjC=[0,a(E),4319,5,4326,28,[0,a(ov),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bjH=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjI=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjB=[0,a(E),4289,5,4291,28,[0,a(ov),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bjJ=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjA=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bju=[0,a(d),hm,14,hm,46,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjt=[6,0],bjp=[0,a(d),jl,14,jl,56,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjo=[1,0],bjk=[0,a(d),h3,14,h3,50,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjg=[0,a(E),Eo,14,Eo,28,[0,a("Article D841-1"),[0,a("Chapitre 1 : Champ d'application"),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]],bjh=[0,a(d),nA,11,nA,25,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjf=[0,a(d),nA,11,nA,25,[0,a(aI),[0,a(i),[0,a(e),0]]]],bji=[0,a(b$),[0,a("dur\xc3\xa9e_l841_1_3"),0]],bjl=[0,a(d),h3,14,h3,50,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjm=[0,a(b$),[0,a(wF),0]],bjj=[0,a(d),h3,14,h3,50,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjq=[0,a(d),jl,14,jl,56,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjr=[0,a(b$),[0,a(AL),0]],bjn=[0,a(d),jl,14,jl,56,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjv=[0,a(d),hm,14,hm,46,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjw=[0,a(b$),[0,a(yq),0]],bjs=[0,a(d),hm,14,hm,46,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjx=[0,a(b$),[0,a(oB),[0,a(cn),0]]],bjy=[0,a(b$),[0,a(oB),[0,a(cn),0]]],bjK=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjz=[0,a(d),cV,11,cV,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjL=[0,a(b$),[0,a("condition_accession_propri\xc3\xa9t\xc3\xa9"),0]],bjO=[0,a(d),iQ,14,iQ,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjP=[0,a(b$),[0,a(ve),0]],bjM=[0,a(d),iQ,14,iQ,40,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjS=[0,a(d),i0,14,i0,43,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjT=[0,a(b$),[0,a(AJ),0]],bjQ=[0,a(d),i0,14,i0,43,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjW=[0,a(d),gq,14,gq,47,[0,a(aI),[0,a(i),[0,a(e),0]]]],bjX=[0,a(b$),[0,a(E7),0]],bjU=[0,a(d),gq,14,gq,47,[0,a(aI),[0,a(i),[0,a(e),0]]]],bj4=[0,a(b$),[0,a(ot),[0,a(aS),0]]],bj5=[0,a(b$),[0,a(ot),[0,a(aS),0]]],bj8=[0,a(d),fV,10,fV,59,[0,a(aI),[0,a(i),[0,a(e),0]]]],bj6=[0,a(d),fV,10,fV,59,[0,a(aI),[0,a(i),[0,a(e),0]]]],bj9=[0,a(b$),[0,a(ku),0]],bka=[0,a(d),oF,10,oF,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bj_=[0,a(d),oF,10,oF,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkb=[0,a(b$),[0,a(rT),0]],bkg=[0,a(d),mX,10,mX,31,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkc=[0,a(d),mX,10,mX,31,[0,a(aI),[0,a(i),[0,a(e),0]]]],bkh=[0,a(b$),[0,a("\xc3\xa9ligibilit\xc3\xa9_dispositions_communes"),0]],bk5=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bki=[0,a(d),b0,11,b0,52,[0,a(aI),[0,a(i),[0,a(e),0]]]],bk6=[0,a(b$),[0,a("\xc3\xa9ligibilit\xc3\xa9_allocation_logement_familiale"),0]],bli=[0,a(d),eL,10,eL,16,[0,a(aI),[0,a(i),[0,a(e),0]]]],bk7=[0,a(d),eL,10,eL,16,[0,a(aI),[0,a(i),[0,a(e),0]]]],blj=[0,a(b$),[0,a("\xc3\xa9ligibilit\xc3\xa9_l841_2"),0]],bjb=[0,a(aD),gA,5,593,36,[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]],bjc=[0,a(d),fX,10,fX,21,[0,a(aX),[0,a(i),[0,a(e),0]]]],bja=[0,a(d),fX,10,fX,21,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi8=[0,a(d),m4,14,m4,56,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi4=[0,a(d),Aa,14,Aa,63,[0,a(aX),[0,a(i),[0,a(e),0]]]],biU=[0,a(E),3682,5,3687,30,[0,a("Article R832-21"),[0,a("Sous-Section 1 : Conditions d'assimilation des logements-foyers aux logements \xc3\xa0 usage locatif"),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],biV=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],biQ=[0,a(b3),[0,a(kb),[0,a(ak),0]]],biR=[0,a(b3),[0,a(kb),0]],biS=[0,a(b3),[0,a(kb),[0,a(al),0]]],biT=[0,a(b3),[0,a(kb),0]],biP=[0,a(aD),kJ,5,704,30,[0,a(l3),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],biW=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],biO=[0,a(aD),Z,5,ki,30,[0,a(l3),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],biX=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],biN=[0,a(aD),j6,5,650,30,[0,a(l3),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],biY=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],biJ=[0,a(b3),[0,a(jW),[0,a(ak),0]]],biK=[0,a(b3),[0,a(jW),0]],biL=[0,a(b3),[0,a(jW),[0,a(al),0]]],biM=[0,a(b3),[0,a(jW),0]],biI=[0,a(aD),j9,5,623,30,[0,a(l3),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],biZ=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi0=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],biH=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],biB=[0,a(d),ip,14,ip,47,[0,a(aX),[0,a(i),[0,a(e),0]]]],bix=[0,a(d),go,14,go,43,[0,a(aX),[0,a(i),[0,a(e),0]]]],bit=[0,a(d),hG,14,hG,40,[0,a(aX),[0,a(i),[0,a(e),0]]]],bim=[0,a(aD),kh,5,753,30,[0,a(qv),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bin=[0,a(d),dy,11,dy,34,[0,a(aX),[0,a(i),[0,a(e),0]]]],bil=[0,a(aD),721,5,726,30,[0,a(qv),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bio=[0,a(d),dy,11,dy,34,[0,a(aX),[0,a(i),[0,a(e),0]]]],bik=[0,a(aD),hn,31,hn,54,[0,a(qv),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bip=[0,a(d),dy,11,dy,34,[0,a(aX),[0,a(i),[0,a(e),0]]]],bij=[0,a(d),dy,11,dy,34,[0,a(aX),[0,a(i),[0,a(e),0]]]],bif=[0,a(d),fQ,11,fQ,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],big=[0,a(d),fQ,11,fQ,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bie=[0,a(d),fQ,11,fQ,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bh_=[0,a(E),3010,5,3013,41,[0,a("Article R832-7"),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bh$=[0,a(d),dg,11,dg,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bh9=[0,a(E),2975,5,2977,42,[0,a("Article R832-5"),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bia=[0,a(d),dg,11,dg,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bib=[0,a(d),dg,11,dg,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bh8=[0,a(d),dg,11,dg,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bic=[0,a(d),dg,11,dg,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bh7=[0,a(d),dg,11,dg,41,[0,a(aX),[0,a(i),[0,a(e),0]]]],bid=[0,a(b3),[0,a(jW),0]],bih=[0,a(b3),[0,a(kb),0]],biq=[0,a(d),dy,11,dy,34,[0,a(aX),[0,a(i),[0,a(e),0]]]],bii=[0,a(d),dy,11,dy,34,[0,a(aX),[0,a(i),[0,a(e),0]]]],bir=[0,a(b3),[0,a("condition_logement_pr\xc3\xaat"),0]],biu=[0,a(d),hG,14,hG,40,[0,a(aX),[0,a(i),[0,a(e),0]]]],biv=[0,a(b3),[0,a(ve),0]],bis=[0,a(d),hG,14,hG,40,[0,a(aX),[0,a(i),[0,a(e),0]]]],biy=[0,a(d),go,14,go,43,[0,a(aX),[0,a(i),[0,a(e),0]]]],biz=[0,a(b3),[0,a(AJ),0]],biw=[0,a(d),go,14,go,43,[0,a(aX),[0,a(i),[0,a(e),0]]]],biC=[0,a(d),ip,14,ip,47,[0,a(aX),[0,a(i),[0,a(e),0]]]],biD=[0,a(b3),[0,a(E7),0]],biA=[0,a(d),ip,14,ip,47,[0,a(aX),[0,a(i),[0,a(e),0]]]],biE=[0,a(b3),[0,a(ot),[0,a(aS),0]]],biF=[0,a(b3),[0,a(ot),[0,a(aS),0]]],bi1=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],biG=[0,a(d),cl,11,cl,38,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi2=[0,a(b3),[0,a("condition_logement_bailleur"),0]],bi5=[0,a(d),nW,10,nW,59,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi3=[0,a(d),nW,10,nW,59,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi6=[0,a(b3),[0,a(ku),0]],bi9=[0,a(d),hh,10,hh,52,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi7=[0,a(d),hh,10,hh,52,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi_=[0,a(b3),[0,a(rT),0]],bjd=[0,a(d),fX,10,fX,21,[0,a(aX),[0,a(i),[0,a(e),0]]]],bi$=[0,a(d),fX,10,fX,21,[0,a(aX),[0,a(i),[0,a(e),0]]]],bje=[0,a(b3),[0,a(nX),0]],bh4=[0,a(E),yN,14,yN,40,[0,a("Article D823-22"),[0,a(lY),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bhZ=[0,a(aD),d5,5,566,43,[0,a("Article L823-8"),[0,a(bg),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],bh0=[0,a(d),f5,11,f5,31,[0,a(br),[0,a(i),[0,a(e),0]]]],bhY=[0,a(d),f5,11,f5,31,[0,a(br),[0,a(i),[0,a(e),0]]]],bhU=[0,a(P),xt,14,xt,29,[0,a("Article 45"),[0,a("Chapitre VIII : Prime de d\xc3\xa9m\xc3\xa9nagement"),[0,a(L),0]]]],bhR=a(w),bhN=a(w),bhL=a($),bhM=a(o),bhO=a(qp),bhP=a($),bhQ=a(o),bhT=a(o),bhS=a("2.4"),bhG=[0,a(E),2058,6,2068,77,[0,a(qC),[0,a(lY),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bhH=[0,a(d),er,11,er,41,[0,a(br),[0,a(i),[0,a(e),0]]]],bhF=[0,a(d),er,11,er,41,[0,a(br),[0,a(i),[0,a(e),0]]]],bhz=[0,a(d),iF,14,iF,43,[0,a(br),[0,a(i),[0,a(e),0]]]],bhv=[0,a(d),iI,14,iI,39,[0,a(br),[0,a(i),[0,a(e),0]]]],bhr=[0,a(d),fN,14,fN,36,[0,a(br),[0,a(i),[0,a(e),0]]]],bhl=[0,a(d),fP,14,fP,65,[0,a(br),[0,a(i),[0,a(e),0]]]],bhf=a(w),bhd=a($),bhe=a(o),bhg=[0,a(E),2049,5,2054,77,[0,a(qC),[0,a(lY),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bhh=[0,a(d),fU,11,fU,32,[0,a(br),[0,a(i),[0,a(e),0]]]],bhc=[0,a(d),fU,11,fU,32,[0,a(br),[0,a(i),[0,a(e),0]]]],bg_=[0,a(E),AV,14,AV,47,[0,a(qC),[0,a(lY),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bg$=[0,a(d),nD,11,nD,44,[0,a(br),[0,a(i),[0,a(e),0]]]],bg9=[0,a(d),nD,11,nD,44,[0,a(br),[0,a(i),[0,a(e),0]]]],bha=[0,a(dh),[0,a("d\xc3\xa9lai_apr\xc3\xa8s_emm\xc3\xa9nagement_l823_8_2"),0]],bhi=[0,a(d),fU,11,fU,32,[0,a(br),[0,a(i),[0,a(e),0]]]],bhb=[0,a(d),fU,11,fU,32,[0,a(br),[0,a(i),[0,a(e),0]]]],bhj=[0,a(dh),[0,a("condition_rang_enfant"),0]],bhm=[0,a(d),fP,14,fP,65,[0,a(br),[0,a(i),[0,a(e),0]]]],bhn=[0,a(dh),[0,a(C2),0]],bhk=[0,a(d),fP,14,fP,65,[0,a(br),[0,a(i),[0,a(e),0]]]],bho=[0,a(dh),[0,a(mE),[0,a(f4),0]]],bhp=[0,a(dh),[0,a(mE),[0,a(f4),0]]],bhs=[0,a(d),fN,14,fN,36,[0,a(br),[0,a(i),[0,a(e),0]]]],bht=[0,a(dh),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.m\xc3\xa9nage"),0]],bhq=[0,a(d),fN,14,fN,36,[0,a(br),[0,a(i),[0,a(e),0]]]],bhw=[0,a(d),iI,14,iI,39,[0,a(br),[0,a(i),[0,a(e),0]]]],bhx=[0,a(dh),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.demandeur"),0]],bhu=[0,a(d),iI,14,iI,39,[0,a(br),[0,a(i),[0,a(e),0]]]],bhA=[0,a(d),iF,14,iF,43,[0,a(br),[0,a(i),[0,a(e),0]]]],bhB=[0,a(dh),[0,a("\xc3\xa9ligibilit\xc3\xa9_apl.date_courante"),0]],bhy=[0,a(d),iF,14,iF,43,[0,a(br),[0,a(i),[0,a(e),0]]]],bhC=[0,a(dh),[0,a(Au),[0,a(aS),0]]],bhD=[0,a(dh),[0,a(Au),[0,a(aS),0]]],bhI=[0,a(d),er,11,er,41,[0,a(br),[0,a(i),[0,a(e),0]]]],bhE=[0,a(d),er,11,er,41,[0,a(br),[0,a(i),[0,a(e),0]]]],bhJ=[0,a(dh),[0,a("condition_p\xc3\xa9riode_d\xc3\xa9m\xc3\xa9nagement"),0]],bhV=[0,a(d),mw,11,mw,26,[0,a(br),[0,a(i),[0,a(e),0]]]],bhK=[0,a(d),mw,11,mw,26,[0,a(br),[0,a(i),[0,a(e),0]]]],bhW=[0,a(dh),[0,a("plafond_d823_22"),0]],bh1=[0,a(d),f5,11,f5,31,[0,a(br),[0,a(i),[0,a(e),0]]]],bhX=[0,a(d),f5,11,f5,31,[0,a(br),[0,a(i),[0,a(e),0]]]],bh2=[0,a(dh),[0,a(Az),0]],bh5=[0,a(d),ji,10,ji,36,[0,a(br),[0,a(i),[0,a(e),0]]]],bh3=[0,a(d),ji,10,ji,36,[0,a(br),[0,a(i),[0,a(e),0]]]],bh6=[0,a(dh),[0,a("montant_prime_d\xc3\xa9m\xc3\xa9nagement"),0]],bg5=[0,a(E),y0,14,y0,33,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bg1=[0,a(E),qJ,14,qJ,36,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bg2=[0,a(d),lX,10,lX,32,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bg0=[0,a(d),lX,10,lX,32,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgX=[0,a(E),Bw,14,Bw,36,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bgV=a(o),bgW=a(o),bgU=[0,a(E),1444,16,1447,39,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bgQ=[0,a(P),78,14,78,44,[0,a(cG),[0,a(bT),[0,a(L),0]]]],bgK=[0,0],bgL=[1,0],bgM=[1,0],bgN=[1,0],bgO=[0,0],bgP=[1,0],bgG=[0,a(E),vO,14,vO,31,[0,a(rC),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],bgD=a(c2),bgE=a(Bk),bgF=a(qP),bgz=[0,a(E),v5,14,v5,34,[0,a(d6),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bgA=[0,a(d),kh,11,kh,31,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgy=[0,a(d),kh,11,kh,31,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgB=[0,a(cR),[0,a(xa),0]],bgH=[0,a(d),mO,10,mO,22,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgC=[0,a(d),mO,10,mO,22,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgI=[0,a(cR),[0,a(wK),0]],bgR=[0,a(d),n5,11,n5,41,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgJ=[0,a(d),n5,11,n5,41,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgS=[0,a(cR),[0,a(yz),0]],bgY=[0,a(d),mN,11,mN,33,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgT=[0,a(d),mN,11,mN,33,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bgZ=[0,a(cR),[0,a(Ek),0]],bg3=[0,a(cR),[0,a(bC),0]],bg6=[0,a(d),mI,10,mI,29,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bg4=[0,a(d),mI,10,mI,29,[0,a(bL),[0,a(t),[0,a(i),[0,a(e),0]]]]],bg7=[0,a(cR),[0,a(eX),0]],bgv=[0,a(E),yK,14,yK,36,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bgq=[0,a(W),[0,a(bG),[0,a(ak),0]]],bgr=[0,a(W),[0,a(bG),0]],bgs=[0,a(W),[0,a(bG),[0,a(al),0]]],bgt=[0,a(W),[0,a(bG),0]],bgu=a(o),bgw=[0,a(d),lW,10,lW,25,[0,a(D),[0,a(z),[0,a(e),0]]]],bgp=[0,a(d),lW,10,lW,25,[0,a(D),[0,a(z),[0,a(e),0]]]],bgm=[0,a(E),Bg,14,Bg,36,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bgb=[0,a(W),[0,a(ek),[0,a(ak),0]]],bgc=[0,a(W),[0,a(ek),0]],bgd=[0,a(W),[0,a(ek),[0,a(al),0]]],bge=[0,a(W),[0,a(ek),0]],bgf=[0,a(bj),[0,a(bN),[0,a(ak),0]]],bgg=[0,a(bj),[0,a(bN),0]],bgh=[0,a(bj),[0,a(bN),[0,a(al),0]]],bgi=[0,a(bj),[0,a(bN),0]],bgj=a(kN),bgk=a(o),bgl=a(o),bgn=[0,a(d),mq,10,mq,40,[0,a(D),[0,a(z),[0,a(e),0]]]],bga=[0,a(d),mq,10,mq,40,[0,a(D),[0,a(z),[0,a(e),0]]]],bf9=[0,a(E),va,14,va,36,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bf0=[0,a(W),[0,a(bF),[0,a(ak),0]]],bf1=[0,a(W),[0,a(bF),0]],bf2=[0,a(W),[0,a(bF),[0,a(al),0]]],bf3=[0,a(W),[0,a(bF),0]],bf4=[0,a(W),[0,a(eI),[0,a(ak),0]]],bf5=[0,a(W),[0,a(eI),0]],bf6=[0,a(W),[0,a(eI),[0,a(al),0]]],bf7=[0,a(W),[0,a(eI),0]],bf8=a(o),bf_=[0,a(d),oh,10,oh,32,[0,a(D),[0,a(z),[0,a(e),0]]]],bfZ=[0,a(d),oh,10,oh,32,[0,a(D),[0,a(z),[0,a(e),0]]]],bfW=[0,a(E),B4,14,B4,33,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfS=[0,a(E),zX,14,zX,47,[0,a(oC),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfN=[0,a(W),[0,a(dc),[0,a(ak),0]]],bfO=[0,a(W),[0,a(dc),0]],bfP=[0,a(W),[0,a(dc),[0,a(al),0]]],bfQ=[0,a(W),[0,a(dc),0]],bfR=a(o),bfT=[0,a(d),nr,11,nr,44,[0,a(D),[0,a(z),[0,a(e),0]]]],bfM=[0,a(d),nr,11,nr,44,[0,a(D),[0,a(z),[0,a(e),0]]]],bfJ=[0,a(E),Fb,14,Fb,41,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfF=[0,a(E),vm,14,vm,33,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfB=[0,a(E),wI,14,wI,33,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfw=[0,a(E),4660,7,4663,45,[0,a(oC),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfx=[0,a(d),gP,11,gP,47,[0,a(D),[0,a(z),[0,a(e),0]]]],bfv=[0,a(E),uJ,14,uJ,50,[0,a(oC),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfp=[0,a(E),nj,14,nj,62,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfq=[0,a(E),nj,14,nj,62,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfr=[0,a(W),[0,a("calcul_apl_logement_foyer.n_nombre_parts_d832_25"),0]],bfm=[0,a(E),nz,14,nz,61,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfn=[0,a(E),nz,14,nz,61,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bfo=[0,a(W),[0,a(Dp),0]],bfj=[0,a(d),hE,14,hE,49,[0,a(D),[0,a(z),[0,a(e),0]]]],bfi=a(o),bfe=[0,a(d),hR,14,hR,53,[0,a(D),[0,a(z),[0,a(e),0]]]],bfa=[0,a(d),iT,14,iT,44,[0,a(D),[0,a(z),[0,a(e),0]]]],be8=[0,a(d),ic,14,ic,70,[0,a(D),[0,a(z),[0,a(e),0]]]],be4=[0,a(d),f0,14,f0,65,[0,a(D),[0,a(z),[0,a(e),0]]]],be0=[0,a(d),jk,14,jk,67,[0,a(D),[0,a(z),[0,a(e),0]]]],beW=[0,a(d),iu,14,iu,61,[0,a(D),[0,a(z),[0,a(e),0]]]],beS=[0,a(d),jr,14,jr,59,[0,a(D),[0,a(z),[0,a(e),0]]]],beR=[3,0],beL=[0,a(E),i7,14,i7,70,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beH=[0,a(E),hw,14,hw,69,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beD=[0,a(E),iV,14,iV,75,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bey=[0,a(E),vZ,5,vZ,44,[0,a(A4),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beq=[0,a(W),[0,a(dA),[0,a(ak),0]]],ber=[0,a(W),[0,a(dA),0]],bes=[0,a(W),[0,a(dA),[0,a(al),0]]],bet=[0,a(W),[0,a(dA),0]],beu=[0,a(W),[0,a(dA),[0,a(ak),0]]],bev=[0,a(W),[0,a(dA),0]],bew=[0,a(W),[0,a(dA),[0,a(al),0]]],bex=[0,a(W),[0,a(dA),0]],bez=[0,a(d),hX,11,hX,36,[0,a(D),[0,a(z),[0,a(e),0]]]],bep=[0,a(E),u_,14,u_,39,[0,a(A4),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bel=[0,a(W),[0,a(dA),[0,a(ak),0]]],bem=[0,a(W),[0,a(dA),0]],ben=[0,a(W),[0,a(dA),[0,a(al),0]]],beo=[0,a(W),[0,a(dA),0]],beg=[0,a(E),De,5,De,28,[0,a(m2),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beh=[0,a(d),iM,10,iM,15,[0,a(D),[0,a(z),[0,a(e),0]]]],bef=[0,a(E),EF,14,EF,41,[0,a(m2),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bec=a(c2),bed=a(qP),bee=a("4999"),bd7=[0,a(aM),fW,24,fW,56,[0,a(oe),[0,a(bx),[0,a(aN),0]]]],bdY=a(dd),bdZ=[0,a(W),[0,a(b8),[0,a(ak),0]]],bd0=[0,a(W),[0,a(b8),0]],bd1=[0,a(W),[0,a(b8),[0,a(al),0]]],bd2=[0,a(W),[0,a(b8),0]],bd3=[0,a(W),[0,a(b8),[0,a(ak),0]]],bd4=[0,a(W),[0,a(b8),0]],bd5=[0,a(W),[0,a(b8),[0,a(al),0]]],bd6=[0,a(W),[0,a(b8),0]],bd8=[0,a(d),eS,10,eS,26,[0,a(D),[0,a(z),[0,a(e),0]]]],bdX=[0,a(P),Dj,24,Dj,56,[0,a(oe),[0,a(bm),[0,a(L),0]]]],bdO=a(dd),bdP=[0,a(W),[0,a(b8),[0,a(ak),0]]],bdQ=[0,a(W),[0,a(b8),0]],bdR=[0,a(W),[0,a(b8),[0,a(al),0]]],bdS=[0,a(W),[0,a(b8),0]],bdT=[0,a(W),[0,a(b8),[0,a(ak),0]]],bdU=[0,a(W),[0,a(b8),0]],bdV=[0,a(W),[0,a(b8),[0,a(al),0]]],bdW=[0,a(W),[0,a(b8),0]],bd9=[0,a(d),eS,10,eS,26,[0,a(D),[0,a(z),[0,a(e),0]]]],bd_=[0,a(d),eS,10,eS,26,[0,a(D),[0,a(z),[0,a(e),0]]]],bdN=[0,a(P),xA,14,xA,46,[0,a(bS),[0,a(bm),[0,a(L),0]]]],bdJ=[0,a(W),[0,a(b8),[0,a(ak),0]]],bdK=[0,a(W),[0,a(b8),0]],bdL=[0,a(W),[0,a(b8),[0,a(al),0]]],bdM=[0,a(W),[0,a(b8),0]],bd$=[0,a(d),eS,10,eS,26,[0,a(D),[0,a(z),[0,a(e),0]]]],bdI=[0,a(d),eS,10,eS,26,[0,a(D),[0,a(z),[0,a(e),0]]]],bdF=[0,a(E),BK,15,BK,37,[0,a(oC),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bdG=[0,a(d),mC,11,mC,33,[0,a(D),[0,a(z),[0,a(e),0]]]],bdE=[0,a(d),mC,11,mC,33,[0,a(D),[0,a(z),[0,a(e),0]]]],bdA=[0,a(E),4685,6,4691,6,[0,a(m2),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bdB=[0,a(d),fR,11,fR,42,[0,a(D),[0,a(z),[0,a(e),0]]]],bdy=[0,a(E),4703,5,4704,59,[0,a(m2),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],bdz=[0,a(d),fR,11,fR,42,[0,a(D),[0,a(z),[0,a(e),0]]]],bdt=[0,a(P),yT,5,yT,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],bcJ=a(o),bcK=a("158700"),bcL=a("191300"),bcM=a(w),bcN=a("205500"),bcO=a(V),bcP=a("211300"),bcQ=a($),bcR=a("217100"),bcS=a(ac),bcT=a("222900"),bcU=a(O),bcV=a(zz),bcW=a(O),bcX=a("19800"),bcY=a(zz),bcZ=a(o),bc0=a("139300"),bc1=a("170600"),bc2=a(w),bc3=a("184700"),bc4=a(V),bc5=a("191200"),bc6=a($),bc7=a(yS),bc8=a(ac),bc9=a("204200"),bc_=a(O),bc$=a(v3),bda=a(O),bdb=a(r8),bdc=a(v3),bdd=a(o),bde=a("130600"),bdf=a("158400"),bdg=a(w),bdh=a("172600"),bdi=a(V),bdj=a(C5),bdk=a($),bdl=a("187000"),bdm=a(ac),bdn=a("194200"),bdo=a(O),bdp=a(rv),bdq=a(O),bdr=a("18200"),bds=a(rv),bdu=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],bcH=[0,a(P),vi,5,vi,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],bbX=a(o),bbY=a("160400"),bbZ=a("193400"),bb0=a(w),bb1=a("207800"),bb2=a(V),bb3=a("213700"),bb4=a($),bb5=a("219600"),bb6=a(ac),bb7=a(x$),bb8=a(O),bb9=a(n0),bb_=a(O),bb$=a("20000"),bca=a(n0),bcb=a(o),bcc=a(CR),bcd=a(C7),bce=a(w),bcf=a("186700"),bcg=a(V),bch=a("193300"),bci=a($),bcj=a(qQ),bck=a(ac),bcl=a("206500"),bcm=a(O),bcn=a(wx),bco=a(O),bcp=a(yW),bcq=a(wx),bcr=a(o),bcs=a(AO),bct=a(qZ),bcu=a(w),bcv=a("174500"),bcw=a(V),bcx=a(xc),bcy=a($),bcz=a("189100"),bcA=a(ac),bcB=a("196400"),bcC=a(O),bcD=a(uV),bcE=a(O),bcF=a("18400"),bcG=a(uV),bcI=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],bbV=[0,a(P),u9,5,u9,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],ba$=a(o),bba=a("163300"),bbb=a("196900"),bbc=a(w),bbd=a("211600"),bbe=a(V),bbf=a(v9),bbg=a($),bbh=a("223600"),bbi=a(ac),bbj=a("229600"),bbk=a(O),bbl=a(AZ),bbm=a(O),bbn=a("20400"),bbo=a(AZ),bbp=a(o),bbq=a("143300"),bbr=a("175600"),bbs=a(w),bbt=a("190100"),bbu=a(V),bbv=a("196600"),bbw=a($),bbx=a("203500"),bby=a(ac),bbz=a("210200"),bbA=a(O),bbB=a(DW),bbC=a(O),bbD=a("19600"),bbE=a(DW),bbF=a(o),bbG=a("134400"),bbH=a(xh),bbI=a(w),bbJ=a("177700"),bbK=a(V),bbL=a("185100"),bbM=a($),bbN=a(v_),bbO=a(ac),bbP=a(qQ),bbQ=a(O),bbR=a(ES),bbS=a(O),bbT=a("18700"),bbU=a(ES),bbW=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],ba9=[0,a(P),wR,5,wR,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],ban=a(o),bao=a("167200"),bap=a("201600"),baq=a(w),bar=a("216700"),bas=a(V),bat=a("222800"),bau=a($),bav=a("229000"),baw=a(ac),bax=a("235100"),bay=a(O),baz=a(EM),baA=a(O),baB=a(vk),baC=a(EM),baD=a(o),baE=a("146700"),baF=a(C5),baG=a(w),baH=a("194700"),baI=a(V),baJ=a("201500"),baK=a($),baL=a("208400"),baM=a(ac),baN=a("215200"),baO=a(O),baP=a(n0),baQ=a(O),baR=a(AU),baS=a(n0),baT=a(o),baU=a("137600"),baV=a("166900"),baW=a(w),baX=a("182000"),baY=a(V),baZ=a("189500"),ba0=a($),ba1=a("197100"),ba2=a(ac),ba3=a(Cl),ba4=a(O),ba5=a(AB),ba6=a(O),ba7=a(r8),ba8=a(AB),ba_=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],bal=[0,a(P),BI,5,BI,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a$B=a(o),a$C=a("167400"),a$D=a("201800"),a$E=a(w),a$F=a("216900"),a$G=a(V),a$H=a("223000"),a$I=a($),a$J=a("229200"),a$K=a(ac),a$L=a("235300"),a$M=a(O),a$N=a(zV),a$O=a(O),a$P=a(vk),a$Q=a(zV),a$R=a(o),a$S=a("146800"),a$T=a("180000"),a$U=a(w),a$V=a("194900"),a$W=a(V),a$X=a(Ei),a$Y=a($),a$Z=a(rv),a$0=a(ac),a$1=a("215400"),a$2=a(O),a$3=a(BM),a$4=a(O),a$5=a(AU),a$6=a(BM),a$7=a(o),a$8=a("137700"),a$9=a("167100"),a$_=a(w),a$$=a("182200"),baa=a(V),bab=a("189700"),bac=a($),bad=a("197300"),bae=a(ac),baf=a("204900"),bag=a(O),bah=a(C1),bai=a(O),baj=a(r8),bak=a(C1),bam=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a$z=[0,a(P),zG,5,zG,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a_P=a(o),a_Q=a("169100"),a_R=a("203800"),a_S=a(w),a_T=a("219100"),a_U=a(V),a_V=a("225200"),a_W=a($),a_X=a("231500"),a_Y=a(ac),a_Z=a("237700"),a_0=a(O),a_1=a(l8),a_2=a(O),a_3=a("21100"),a_4=a(l8),a_5=a(o),a_6=a("148300"),a_7=a(xc),a_8=a(w),a_9=a("196800"),a__=a(V),a_$=a("203700"),a$a=a($),a$b=a("210700"),a$c=a(ac),a$d=a(v9),a$e=a(O),a$f=a(wB),a$g=a(O),a$h=a("20300"),a$i=a(wB),a$j=a(o),a$k=a("139100"),a$l=a("168800"),a$m=a(w),a$n=a(rw),a$o=a(V),a$p=a("191600"),a$q=a($),a$r=a("199300"),a$s=a(ac),a$t=a("206900"),a$u=a(O),a$v=a(Al),a$w=a(O),a$x=a(yW),a$y=a(Al),a$A=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a_N=[0,a(P),Ep,5,Ep,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a93=a(o),a94=a("171100"),a95=a("206200"),a96=a(w),a97=a("221700"),a98=a(V),a99=a("227900"),a9_=a($),a9$=a("234300"),a_a=a(ac),a_b=a("240600"),a_c=a(O),a_d=a(zp),a_e=a(O),a_f=a("21400"),a_g=a(zp),a_h=a(o),a_i=a("150100"),a_j=a(rw),a_k=a(w),a_l=a("199200"),a_m=a(V),a_n=a("206100"),a_o=a($),a_p=a("213200"),a_q=a(ac),a_r=a("220200"),a_s=a(O),a_t=a(yB),a_u=a(O),a_v=a("20500"),a_w=a(yB),a_x=a(o),a_y=a(CR),a_z=a("170800"),a_A=a(w),a_B=a("186200"),a_C=a(V),a_D=a("193900"),a_E=a($),a_F=a(Ei),a_G=a(ac),a_H=a("209400"),a_I=a(O),a_J=a(Ak),a_K=a(O),a_L=a("19500"),a_M=a(Ak),a_O=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a91=[0,a(P),Bi,5,Bi,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a9f=a(o),a9g=a("26084"),a9h=a("31435"),a9i=a(w),a9j=a("33798"),a9k=a(V),a9l=a("34743"),a9m=a($),a9n=a("35719"),a9o=a(ac),a9p=a("36679"),a9q=a(O),a9r=a(yG),a9s=a(O),a9t=a("3262"),a9u=a(yG),a9v=a(o),a9w=a("22883"),a9x=a("28051"),a9y=a(w),a9z=a("30368"),a9A=a(V),a9B=a("31420"),a9C=a($),a9D=a("32502"),a9E=a(ac),a9F=a("33569"),a9G=a(O),a9H=a(Ex),a9I=a(O),a9J=a("3125"),a9K=a(Ex),a9L=a(o),a9M=a("21465"),a9N=a("26038"),a9O=a(w),a9P=a("28386"),a9Q=a(V),a9R=a("29560"),a9S=a($),a9T=a("30749"),a9U=a(ac),a9V=a("31923"),a9W=a(O),a9X=a(DZ),a9Y=a(O),a9Z=a("2973"),a90=a(DZ),a92=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a9d=[0,a(P),Eb,5,Eb,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a8t=a(o),a8u=a("26397"),a8v=a("31812"),a8w=a(w),a8x=a("34204"),a8y=a(V),a8z=a("35160"),a8A=a($),a8B=a("36148"),a8C=a(ac),a8D=a("37119"),a8E=a(O),a8F=a(y4),a8G=a(O),a8H=a("3301"),a8I=a(y4),a8J=a(o),a8K=a("23158"),a8L=a("28388"),a8M=a(w),a8N=a("30732"),a8O=a(V),a8P=a(mH),a8Q=a($),a8R=a("32892"),a8S=a(ac),a8T=a("33972"),a8U=a(O),a8V=a(DI),a8W=a(O),a8X=a("3163"),a8Y=a(DI),a8Z=a(o),a80=a("21723"),a81=a("26350"),a82=a(w),a83=a("28727"),a84=a(V),a85=a("29915"),a86=a($),a87=a("31118"),a88=a(ac),a89=a("32306"),a8_=a(O),a8$=a(wW),a9a=a(O),a9b=a("3009"),a9c=a(wW),a9e=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a8r=[0,a(P),D8,5,D8,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a7H=a(o),a7I=a(Fe),a7J=a("32194"),a7K=a(w),a7L=a("34614"),a7M=a(V),a7N=a("35582"),a7O=a($),a7P=a("36582"),a7Q=a(ac),a7R=a("37564"),a7S=a(O),a7T=a(wl),a7U=a(O),a7V=a("3341"),a7W=a(wl),a7X=a(o),a7Y=a("23436"),a7Z=a("28729"),a70=a(w),a71=a("31101"),a72=a(V),a73=a("32179"),a74=a($),a75=a("33287"),a76=a(ac),a77=a("34380"),a78=a(O),a79=a(Aj),a7_=a(O),a7$=a("3201"),a8a=a(Aj),a8b=a(o),a8c=a("21984"),a8d=a("26666"),a8e=a(w),a8f=a("29072"),a8g=a(V),a8h=a("30274"),a8i=a($),a8j=a("31491"),a8k=a(ac),a8l=a("32694"),a8m=a(O),a8n=a(A2),a8o=a(O),a8p=a("3045"),a8q=a(A2),a8s=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a7F=[0,a(P),ys,5,ys,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a6V=a(o),a6W=a("27195"),a6X=a("32773"),a6Y=a(w),a6Z=a("35237"),a60=a(V),a61=a("36222"),a62=a($),a63=a("37240"),a64=a(ac),a65=a("38240"),a66=a(O),a67=a(AY),a68=a(O),a69=a("3401"),a6_=a(AY),a6$=a(o),a7a=a("23858"),a7b=a("29246"),a7c=a(w),a7d=a("31661"),a7e=a(V),a7f=a("32758"),a7g=a($),a7h=a("33886"),a7i=a(ac),a7j=a("34999"),a7k=a(O),a7l=a(y7),a7m=a(O),a7n=a("3259"),a7o=a(y7),a7p=a(o),a7q=a("22380"),a7r=a("27146"),a7s=a(w),a7t=a("29595"),a7u=a(V),a7v=a("30819"),a7w=a($),a7x=a("32058"),a7y=a(ac),a7z=a("33282"),a7A=a(O),a7B=a(z_),a7C=a(O),a7D=a("3100"),a7E=a(z_),a7G=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a6T=[0,a(P),zf,5,zf,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a59=a(o),a5_=a("27956"),a5$=a("33691"),a6a=a(w),a6b=a("36224"),a6c=a(V),a6d=a("37236"),a6e=a($),a6f=a("38283"),a6g=a(ac),a6h=a("39311"),a6i=a(O),a6j=a(yc),a6k=a(O),a6l=a("3496"),a6m=a(yc),a6n=a(o),a6o=a("24526"),a6p=a("30065"),a6q=a(w),a6r=a("32548"),a6s=a(V),a6t=a("33675"),a6u=a($),a6v=a(EG),a6w=a(ac),a6x=a("35979"),a6y=a(O),a6z=a(Ag),a6A=a(O),a6B=a("3350"),a6C=a(Ag),a6D=a(o),a6E=a("23007"),a6F=a("27906"),a6G=a(w),a6H=a("30424"),a6I=a(V),a6J=a("31682"),a6K=a($),a6L=a(yj),a6M=a(ac),a6N=a("34214"),a6O=a(O),a6P=a(DD),a6Q=a(O),a6R=a("3187"),a6S=a(DD),a6U=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a57=[0,a(P),wg,5,wg,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a5l=a(o),a5m=a("28728"),a5n=a("34621"),a5o=a(w),a5p=a("37224"),a5q=a(V),a5r=a("38264"),a5s=a($),a5t=a(xO),a5u=a(ac),a5v=a("40396"),a5w=a(O),a5x=a(xn),a5y=a(O),a5z=a("3592"),a5A=a(xn),a5B=a(o),a5C=a("25203"),a5D=a("30895"),a5E=a(w),a5F=a("33446"),a5G=a(V),a5H=a("34604"),a5I=a($),a5J=a("35796"),a5K=a(ac),a5L=a("36972"),a5M=a(O),a5N=a(Er),a5O=a(O),a5P=a("3442"),a5Q=a(Er),a5R=a(o),a5S=a("23642"),a5T=a("28676"),a5U=a(w),a5V=a(w2),a5W=a(V),a5X=a("32556"),a5Y=a($),a5Z=a("33866"),a50=a(ac),a51=a("35158"),a52=a(O),a53=a(vV),a54=a(O),a55=a("3275"),a56=a(vV),a58=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a5j=[0,a(P),xx,5,xx,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a4z=a(o),a4A=a("29575"),a4B=a("35642"),a4C=a(w),a4D=a("38322"),a4E=a(V),a4F=a("39393"),a4G=a($),a4H=a("40501"),a4I=a(ac),a4J=a("41588"),a4K=a(O),a4L=a(CG),a4M=a(O),a4N=a("3698"),a4O=a(CG),a4P=a(o),a4Q=a("25946"),a4R=a("31806"),a4S=a(w),a4T=a("34433"),a4U=a(V),a4V=a("35625"),a4W=a($),a4X=a("36852"),a4Y=a(ac),a4Z=a("38063"),a40=a(O),a41=a(z5),a42=a(O),a43=a("3544"),a44=a(z5),a45=a(o),a46=a("24339"),a47=a("29522"),a48=a(w),a49=a("32186"),a4_=a(V),a4$=a("33516"),a5a=a($),a5b=a(EG),a5c=a(ac),a5d=a("36195"),a5e=a(O),a5f=a(Dw),a5g=a(O),a5h=a("3372"),a5i=a(Dw),a5k=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a4x=[0,a(P),EO,5,EO,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a3N=a(o),a3O=a("29670"),a3P=a("35757"),a3Q=a(w),a3R=a("38445"),a3S=a(V),a3T=a("39519"),a3U=a($),a3V=a("40601"),a3W=a(ac),a3X=a("41721"),a3Y=a(O),a3Z=a(CM),a30=a(O),a31=a("3710"),a32=a(CM),a33=a(o),a34=a("26029"),a35=a("31908"),a36=a(w),a37=a("34643"),a38=a(V),a39=a("35739"),a3_=a($),a3$=a("36970"),a4a=a(ac),a4b=a("38185"),a4c=a(O),a4d=a(AC),a4e=a(O),a4f=a("3555"),a4g=a(AC),a4h=a(o),a4i=a("24417"),a4j=a("29616"),a4k=a(w),a4l=a("32289"),a4m=a(V),a4n=a(y8),a4o=a($),a4p=a("34977"),a4q=a(ac),a4r=a("36311"),a4s=a(O),a4t=a(zN),a4u=a(O),a4v=a("3383"),a4w=a(zN),a4y=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a3L=[0,a(P),x6,5,x6,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a21=a(o),a22=a("29996"),a23=a("36149"),a24=a(w),a25=a("38868"),a26=a(V),a27=a("39954"),a28=a($),a29=a("41078"),a2_=a(ac),a2$=a("42180"),a3a=a(O),a3b=a(AR),a3c=a(O),a3d=a("3751"),a3e=a(AR),a3f=a(o),a3g=a("26315"),a3h=a("32259"),a3i=a(w),a3j=a("34923"),a3k=a(V),a3l=a("36132"),a3m=a($),a3n=a("37373"),a3o=a(ac),a3p=a("38605"),a3q=a(O),a3r=a(CU),a3s=a(O),a3t=a("3594"),a3u=a(CU),a3v=a(o),a3w=a("24686"),a3x=a("29942"),a3y=a(w),a3z=a("32644"),a3A=a(V),a3B=a("33993"),a3C=a($),a3D=a("35362"),a3E=a(ac),a3F=a("36710"),a3G=a(O),a3H=a(z3),a3I=a(O),a3J=a("3420"),a3K=a(z3),a3M=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a2Z=[0,a(P),yH,5,yH,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a2d=a(o),a2e=a("30296"),a2f=a("36510"),a2g=a(w),a2h=a("39257"),a2i=a(V),a2j=a("40354"),a2k=a($),a2l=a("41489"),a2m=a(ac),a2n=a("42602"),a2o=a(O),a2p=a(vA),a2q=a(O),a2r=a("3789"),a2s=a(vA),a2t=a(o),a2u=a("26578"),a2v=a("32582"),a2w=a(w),a2x=a("35272"),a2y=a(V),a2z=a("36493"),a2A=a($),a2B=a("37751"),a2C=a(ac),a2D=a("38991"),a2E=a(O),a2F=a(xd),a2G=a(O),a2H=a("3630"),a2I=a(xd),a2J=a(o),a2K=a("24933"),a2L=a("30241"),a2M=a(w),a2N=a("32970"),a2O=a(V),a2P=a("34333"),a2Q=a($),a2R=a("35716"),a2S=a(ac),a2T=a("37077"),a2U=a(O),a2V=a(uO),a2W=a(O),a2X=a("3454"),a2Y=a(uO),a20=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a2b=[0,a(P),Eh,5,Eh,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a1r=a(o),a1s=a("30947"),a1t=a("37295"),a1u=a(w),a1v=a("40101"),a1w=a(V),a1x=a("41222"),a1y=a($),a1z=a("42381"),a1A=a(ac),a1B=a("43518"),a1C=a(O),a1D=a(B9),a1E=a(O),a1F=a("3870"),a1G=a(B9),a1H=a(o),a1I=a("27149"),a1J=a("33283"),a1K=a(w),a1L=a("36030"),a1M=a(V),a1N=a("37278"),a1O=a($),a1P=a("38563"),a1Q=a(ac),a1R=a("39829"),a1S=a(O),a1T=a("42649"),a1U=a(O),a1V=a("3708"),a1W=a("42659"),a1X=a(o),a1Y=a("25469"),a1Z=a("30891"),a10=a(w),a11=a("33679"),a12=a(V),a13=a("35071"),a14=a($),a15=a("36484"),a16=a(ac),a17=a("37874"),a18=a(O),a19=a(Cc),a1_=a(O),a1$=a("3528"),a2a=a(Cc),a2c=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a1p=[0,a(P),yf,5,yf,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],a0F=a(o),a0G=a("31123"),a0H=a("37508"),a0I=a(w),a0J=a("40330"),a0K=a(V),a0L=a("41457"),a0M=a($),a0N=a("42623"),a0O=a(ac),a0P=a("43766"),a0Q=a(O),a0R=a(uQ),a0S=a(O),a0T=a("3892"),a0U=a(uQ),a0V=a(o),a0W=a("27304"),a0X=a("33473"),a0Y=a(w),a0Z=a("36235"),a00=a(V),a01=a("37490"),a02=a($),a03=a("38783"),a04=a(ac),a05=a("40056"),a06=a(O),a07=a(By),a08=a(O),a09=a("3729"),a0_=a(By),a0$=a(o),a1a=a("25614"),a1b=a("31067"),a1c=a(w),a1d=a("33871"),a1e=a(V),a1f=a("35271"),a1g=a($),a1h=a("36692"),a1i=a(ac),a1j=a("38090"),a1k=a(O),a1l=a(yV),a1m=a(O),a1n=a("3548"),a1o=a(yV),a1q=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],a0D=[0,a(P),xK,5,xK,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],aZT=a(o),aZU=a("31148"),aZV=a("37538"),aZW=a(w),aZX=a("40362"),aZY=a(V),aZZ=a("41490"),aZ0=a($),aZ1=a("42657"),aZ2=a(ac),aZ3=a("43801"),aZ4=a(O),aZ5=a(wY),aZ6=a(O),aZ7=a("3895"),aZ8=a(wY),aZ9=a(o),aZ_=a("27326"),aZ$=a(EZ),a0a=a(w),a0b=a("36264"),a0c=a(V),a0d=a("37520"),a0e=a($),a0f=a("38814"),a0g=a(ac),a0h=a("40088"),a0i=a(O),a0j=a(ER),a0k=a(O),a0l=a("3732"),a0m=a(ER),a0n=a(o),a0o=a("25634"),a0p=a("31092"),a0q=a(w),a0r=a("33898"),a0s=a(V),a0t=a("35299"),a0u=a($),a0v=a("36721"),a0w=a(ac),a0x=a("38120"),a0y=a(O),a0z=a(zK),a0A=a(O),a0B=a("3551"),a0C=a(zK),a0E=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],aZR=[0,a(P),Ap,5,Ap,64,[0,a(bS),[0,a(bm),[0,a(L),0]]]],aY7=a(o),aY8=a("31382"),aY9=a("37820"),aY_=a(w),aY$=a("40665"),aZa=a(V),aZb=a("41801"),aZc=a($),aZd=a("42977"),aZe=a(ac),aZf=a("44130"),aZg=a(O),aZh=a(zD),aZi=a(O),aZj=a("3924"),aZk=a(zD),aZl=a(o),aZm=a("27531"),aZn=a("33751"),aZo=a(w),aZp=a("36536"),aZq=a(V),aZr=a("37801"),aZs=a($),aZt=a("39105"),aZu=a(ac),aZv=a("40389"),aZw=a(O),aZx=a(we),aZy=a(O),aZz=a("3760"),aZA=a(we),aZB=a(o),aZC=a("25826"),aZD=a("31325"),aZE=a(w),aZF=a("34152"),aZG=a(V),aZH=a("35564"),aZI=a($),aZJ=a("36996"),aZK=a(ac),aZL=a("38406"),aZM=a(O),aZN=a(y$),aZO=a(O),aZP=a("3578"),aZQ=a(y$),aZS=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],aY5=[0,a(P),A8,5,A8,33,[0,a(bS),[0,a(bm),[0,a(L),0]]]],aYj=a(o),aYk=a("31476"),aYl=a("37933"),aYm=a(w),aYn=a("40787"),aYo=a(V),aYp=a("41927"),aYq=a($),aYr=a("43106"),aYs=a(ac),aYt=a("44262"),aYu=a(O),aYv=a(v0),aYw=a(O),aYx=a("3936"),aYy=a(v0),aYz=a(o),aYA=a("27614"),aYB=a("33853"),aYC=a(w),aYD=a("36646"),aYE=a(V),aYF=a("37915"),aYG=a($),aYH=a("39222"),aYI=a(ac),aYJ=a("40510"),aYK=a(O),aYL=a(D9),aYM=a(O),aYN=a("3771"),aYO=a(D9),aYP=a(o),aYQ=a("25904"),aYR=a("31419"),aYS=a(w),aYT=a("34255"),aYU=a(V),aYV=a("35670"),aYW=a($),aYX=a("37107"),aYY=a(ac),aYZ=a("38521"),aY0=a(O),aY1=a(E1),aY2=a(O),aY3=a("3588"),aY4=a(E1),aY6=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],bdv=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],aYi=[0,a(d),aP,10,aP,14,[0,a(D),[0,a(z),[0,a(e),0]]]],aYf=[0,a(E),Ff,14,Ff,36,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aYd=a(o),aYe=a(o),aYg=[0,a(d),nU,10,nU,32,[0,a(D),[0,a(z),[0,a(e),0]]]],aYc=[0,a(d),nU,10,nU,32,[0,a(D),[0,a(z),[0,a(e),0]]]],aX9=[0,a(aM),yM,5,yM,16,[0,a(oe),[0,a(bx),[0,a(aN),0]]]],aX6=a(gG),aX7=a(qq),aX8=a(fd),aX_=[0,a(d),c4,11,c4,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aX5=[0,a(aM),dS,43,dS,70,[0,a(u$),[0,a(bx),[0,a(aN),0]]]],aX1=a(o),aX2=a(fd),aX3=a(gG),aX4=a(fd),aX$=[0,a(d),c4,11,c4,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXY=[0,a(P),x1,5,x1,16,[0,a(oe),[0,a(bm),[0,a(L),0]]]],aXV=a(gu),aXW=a(qO),aXX=a(fl),aXZ=[0,a(d),c4,11,c4,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXU=[0,a(P),xi,31,xi,58,[0,a(u$),[0,a(bm),[0,a(L),0]]]],aXQ=a(o),aXR=a(fl),aXS=a(gu),aXT=a(fl),aX0=[0,a(d),c4,11,c4,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXP=[0,a(d),c4,47,c4,53,[0,a(D),[0,a(z),[0,a(e),0]]]],aXJ=[0,a(d),iL,14,iL,50,[0,a(D),[0,a(z),[0,a(e),0]]]],aXD=[0,a(E),ii,14,ii,64,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aXz=[0,a(E),hH,14,hH,59,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aXv=[0,a(P),CB,14,CB,33,[0,a(Ca),[0,a(bm),[0,a(L),0]]]],aXu=a(z6),aXq=[0,a(P),v7,14,v7,33,[0,a(BP),[0,a(bm),[0,a(L),0]]]],aXp=a(r5),aXl=[0,a(P),Dn,14,Dn,41,[0,a(Ca),[0,a(bm),[0,a(L),0]]]],aXk=a("390000"),aXg=[0,a(P),zn,14,zn,41,[0,a(BP),[0,a(bm),[0,a(L),0]]]],aXf=a(qz),aXb=[0,a(P),Ai,14,Ai,41,[0,a("Article 36"),[0,a(bm),[0,a(L),0]]]],aXa=a(h$),aW8=[0,a(fA),c1,14,c1,36,[0,a(Ci),[0,a(yF),0]]],aW6=a(vd),aW7=a(em),aW2=[0,a(P),yu,14,yu,40,[0,a("Article 35"),[0,a(bm),[0,a(L),0]]]],aW1=a(kc),aW3=[0,a(d),n$,11,n$,37,[0,a(D),[0,a(z),[0,a(e),0]]]],aW0=[0,a(d),n$,11,n$,37,[0,a(D),[0,a(z),[0,a(e),0]]]],aW4=[0,a(W),[0,a("montant_forfaitaire_d842_6"),0]],aW9=[0,a(d),nY,11,nY,33,[0,a(D),[0,a(z),[0,a(e),0]]]],aW5=[0,a(d),nY,11,nY,33,[0,a(D),[0,a(z),[0,a(e),0]]]],aW_=[0,a(W),[0,a(ED),0]],aXc=[0,a(d),oV,11,oV,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aW$=[0,a(d),oV,11,oV,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXd=[0,a(W),[0,a("montant_minimal_aide_d842_6"),0]],aXh=[0,a(d),lH,11,lH,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXe=[0,a(d),lH,11,lH,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXi=[0,a(W),[0,a("montant_forfaitaire_d842_11"),0]],aXm=[0,a(d),mF,11,mF,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXj=[0,a(d),mF,11,mF,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXn=[0,a(W),[0,a("montant_forfaitaire_d842_12"),0]],aXr=[0,a(d),oI,11,oI,30,[0,a(D),[0,a(z),[0,a(e),0]]]],aXo=[0,a(d),oI,11,oI,30,[0,a(D),[0,a(z),[0,a(e),0]]]],aXs=[0,a(W),[0,a("coefficient_d842_11"),0]],aXw=[0,a(d),l2,11,l2,30,[0,a(D),[0,a(z),[0,a(e),0]]]],aXt=[0,a(d),l2,11,l2,30,[0,a(D),[0,a(z),[0,a(e),0]]]],aXx=[0,a(W),[0,a("coefficient_d842_12"),0]],aXA=[0,a(E),hH,14,hH,59,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aXB=[0,a(W),[0,a(m6),0]],aXy=[0,a(E),hH,14,hH,59,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aXE=[0,a(E),ii,14,ii,64,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aXF=[0,a(W),[0,a(nP),0]],aXC=[0,a(E),ii,14,ii,64,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aXG=[0,a(W),[0,a(f6),[0,a(kj),0]]],aXH=[0,a(W),[0,a(f6),[0,a(kj),0]]],aXK=[0,a(d),iL,14,iL,50,[0,a(D),[0,a(z),[0,a(e),0]]]],aXL=[0,a(W),[0,a(kr),0]],aXI=[0,a(d),iL,14,iL,50,[0,a(D),[0,a(z),[0,a(e),0]]]],aXM=[0,a(W),[0,a(eH),[0,a(bj),0]]],aXN=[0,a(W),[0,a(eH),[0,a(bj),0]]],aYa=[0,a(d),c4,11,c4,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aXO=[0,a(d),c4,11,c4,38,[0,a(D),[0,a(z),[0,a(e),0]]]],aYb=[0,a(W),[0,a(u1),0]],aYh=[0,a(W),[0,a(bF),0]],bdw=[0,a(W),[0,a(b8),0]],bdC=[0,a(d),fR,11,fR,42,[0,a(D),[0,a(z),[0,a(e),0]]]],bdx=[0,a(d),fR,11,fR,42,[0,a(D),[0,a(z),[0,a(e),0]]]],bdD=[0,a(W),[0,a("seuil_minimal_ressources_m\xc3\xa9nage"),0]],bdH=[0,a(W),[0,a(dc),0]],bea=[0,a(W),[0,a(dA),0]],bei=[0,a(d),iM,10,iM,15,[0,a(D),[0,a(z),[0,a(e),0]]]],beb=[0,a(d),iM,10,iM,15,[0,a(D),[0,a(z),[0,a(e),0]]]],bej=[0,a(W),[0,a(Cb),0]],beA=[0,a(d),hX,11,hX,36,[0,a(D),[0,a(z),[0,a(e),0]]]],bek=[0,a(d),hX,11,hX,36,[0,a(D),[0,a(z),[0,a(e),0]]]],beB=[0,a(W),[0,a("plafond_mensualit\xc3\xa9_d842_6"),0]],beE=[0,a(E),iV,14,iV,75,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beF=[0,a(W),[0,a(mx),0]],beC=[0,a(E),iV,14,iV,75,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beI=[0,a(E),hw,14,hw,69,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beJ=[0,a(W),[0,a(oc),0]],beG=[0,a(E),hw,14,hw,69,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beM=[0,a(E),i7,14,i7,70,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beN=[0,a(W),[0,a(mn),0]],beK=[0,a(E),i7,14,i7,70,[0,a(bz),[0,a(ai),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],beO=[0,a(W),[0,a(fF),[0,a(dG),0]]],beP=[0,a(W),[0,a(fF),[0,a(dG),0]]],beT=[0,a(d),jr,14,jr,59,[0,a(D),[0,a(z),[0,a(e),0]]]],beU=[0,a(W),[0,a(xk),0]],beQ=[0,a(d),jr,14,jr,59,[0,a(D),[0,a(z),[0,a(e),0]]]],beX=[0,a(d),iu,14,iu,61,[0,a(D),[0,a(z),[0,a(e),0]]]],beY=[0,a(W),[0,a(y1),0]],beV=[0,a(d),iu,14,iu,61,[0,a(D),[0,a(z),[0,a(e),0]]]],be1=[0,a(d),jk,14,jk,67,[0,a(D),[0,a(z),[0,a(e),0]]]],be2=[0,a(W),[0,a(vh),0]],beZ=[0,a(d),jk,14,jk,67,[0,a(D),[0,a(z),[0,a(e),0]]]],be5=[0,a(d),f0,14,f0,65,[0,a(D),[0,a(z),[0,a(e),0]]]],be6=[0,a(W),[0,a(Ey),0]],be3=[0,a(d),f0,14,f0,65,[0,a(D),[0,a(z),[0,a(e),0]]]],be9=[0,a(d),ic,14,ic,70,[0,a(D),[0,a(z),[0,a(e),0]]]],be_=[0,a(W),[0,a(BG),0]],be7=[0,a(d),ic,14,ic,70,[0,a(D),[0,a(z),[0,a(e),0]]]],bfb=[0,a(d),iT,14,iT,44,[0,a(D),[0,a(z),[0,a(e),0]]]],bfc=[0,a(W),[0,a(BV),0]],be$=[0,a(d),iT,14,iT,44,[0,a(D),[0,a(z),[0,a(e),0]]]],bff=[0,a(d),hR,14,hR,53,[0,a(D),[0,a(z),[0,a(e),0]]]],bfg=[0,a(W),[0,a(Ed),0]],bfd=[0,a(d),hR,14,hR,53,[0,a(D),[0,a(z),[0,a(e),0]]]],bfk=[0,a(d),hE,14,hE,49,[0,a(D),[0,a(z),[0,a(e),0]]]],bfl=[0,a(W),[0,a(vL),0]],bfh=[0,a(d),hE,14,hE,49,[0,a(D),[0,a(z),[0,a(e),0]]]],bfs=[0,a(W),[0,a(ny),[0,a(aB),0]]],bft=[0,a(W),[0,a(ny),[0,a(aB),0]]],bfy=[0,a(d),gP,11,gP,47,[0,a(D),[0,a(z),[0,a(e),0]]]],bfu=[0,a(d),gP,11,gP,47,[0,a(D),[0,a(z),[0,a(e),0]]]],bfz=[0,a(W),[0,a("seuil_minimal_d\xc3\xa9pense_nette_minimale"),0]],bfC=[0,a(d),n7,11,n7,30,[0,a(D),[0,a(z),[0,a(e),0]]]],bfA=[0,a(d),n7,11,n7,30,[0,a(D),[0,a(z),[0,a(e),0]]]],bfD=[0,a(W),[0,a(EC),0]],bfG=[0,a(d),gD,11,gD,30,[0,a(D),[0,a(z),[0,a(e),0]]]],bfE=[0,a(d),gD,11,gD,30,[0,a(D),[0,a(z),[0,a(e),0]]]],bfH=[0,a(W),[0,a(ym),0]],bfK=[0,a(d),kE,11,kE,38,[0,a(D),[0,a(z),[0,a(e),0]]]],bfI=[0,a(d),kE,11,kE,38,[0,a(D),[0,a(z),[0,a(e),0]]]],bfL=[0,a(W),[0,a(x7),0]],bfU=[0,a(W),[0,a(eI),0]],bfX=[0,a(d),mS,10,mS,29,[0,a(D),[0,a(z),[0,a(e),0]]]],bfV=[0,a(d),mS,10,mS,29,[0,a(D),[0,a(z),[0,a(e),0]]]],bfY=[0,a(W),[0,a(eX),0]],bf$=[0,a(W),[0,a(ek),0]],bgo=[0,a(W),[0,a(bG),0]],bgx=[0,a(W),[0,a(fi),0]],aWX=[0,a(E),E3,14,E3,36,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aWS=[0,a(as),[0,a(bG),[0,a(ak),0]]],aWT=[0,a(as),[0,a(bG),0]],aWU=[0,a(as),[0,a(bG),[0,a(al),0]]],aWV=[0,a(as),[0,a(bG),0]],aWW=a(o),aWY=[0,a(d),mW,10,mW,25,[0,a(N),[0,a(z),[0,a(e),0]]]],aWR=[0,a(d),mW,10,mW,25,[0,a(N),[0,a(z),[0,a(e),0]]]],aWO=[0,a(E),zs,14,zs,36,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aWD=[0,a(as),[0,a(kw),[0,a(ak),0]]],aWE=[0,a(as),[0,a(kw),0]],aWF=[0,a(as),[0,a(kw),[0,a(al),0]]],aWG=[0,a(as),[0,a(kw),0]],aWH=[0,a(bj),[0,a(bN),[0,a(ak),0]]],aWI=[0,a(bj),[0,a(bN),0]],aWJ=[0,a(bj),[0,a(bN),[0,a(al),0]]],aWK=[0,a(bj),[0,a(bN),0]],aWL=a(kN),aWM=a(o),aWN=a(o),aWP=[0,a(d),lJ,10,lJ,40,[0,a(N),[0,a(z),[0,a(e),0]]]],aWC=[0,a(d),lJ,10,lJ,40,[0,a(N),[0,a(z),[0,a(e),0]]]],aWz=[0,a(E),zB,14,zB,36,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aWv=[0,a(as),[0,a(ek),[0,a(ak),0]]],aWw=[0,a(as),[0,a(ek),0]],aWx=[0,a(as),[0,a(ek),[0,a(al),0]]],aWy=[0,a(as),[0,a(ek),0]],aWA=[0,a(d),nI,10,nI,19,[0,a(N),[0,a(z),[0,a(e),0]]]],aWu=[0,a(d),nI,10,nI,19,[0,a(N),[0,a(z),[0,a(e),0]]]],aWr=[0,a(E),AE,14,AE,36,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aWh=[0,a(as),[0,a(bF),[0,a(ak),0]]],aWi=[0,a(as),[0,a(bF),0]],aWj=[0,a(as),[0,a(bF),[0,a(al),0]]],aWk=[0,a(as),[0,a(bF),0]],aWl=[0,a(as),[0,a(eI),[0,a(ak),0]]],aWm=[0,a(as),[0,a(eI),0]],aWn=[0,a(as),[0,a(eI),[0,a(al),0]]],aWo=[0,a(as),[0,a(eI),0]],aWp=a(o),aWq=a(o),aWs=[0,a(d),lU,10,lU,32,[0,a(N),[0,a(z),[0,a(e),0]]]],aWg=[0,a(d),lU,10,lU,32,[0,a(N),[0,a(z),[0,a(e),0]]]],aWd=[0,a(E),Bl,14,Bl,33,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aV$=[0,a(E),BQ,14,BQ,47,[0,a(B5),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aV2=[0,a(as),[0,a(dc),[0,a(ak),0]]],aV3=[0,a(as),[0,a(dc),0]],aV4=[0,a(as),[0,a(dc),[0,a(al),0]]],aV5=[0,a(as),[0,a(dc),0]],aV6=[0,a(as),[0,a(dc),[0,a(ak),0]]],aV7=[0,a(as),[0,a(dc),0]],aV8=[0,a(as),[0,a(dc),[0,a(al),0]]],aV9=[0,a(as),[0,a(dc),0]],aV_=a(o),aWa=[0,a(d),nO,11,nO,44,[0,a(N),[0,a(z),[0,a(e),0]]]],aV1=[0,a(d),nO,11,nO,44,[0,a(N),[0,a(z),[0,a(e),0]]]],aVY=[0,a(E),yQ,14,yQ,27,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVU=[0,a(E),vK,14,vK,36,[0,a(B5),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVV=[0,a(d),j0,11,j0,33,[0,a(N),[0,a(z),[0,a(e),0]]]],aVT=[0,a(d),j0,11,j0,33,[0,a(N),[0,a(z),[0,a(e),0]]]],aVQ=[0,a(E),wq,14,wq,41,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVK=[0,a(E),hs,14,hs,70,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVG=[0,a(E),hb,14,hb,69,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVC=[0,a(E),hp,14,hp,75,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVy=[0,a(E),DK,14,DK,36,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVw=a(o),aVx=a(o),aVz=[0,a(d),kB,10,kB,32,[0,a(N),[0,a(z),[0,a(e),0]]]],aVv=[0,a(d),kB,10,kB,32,[0,a(N),[0,a(z),[0,a(e),0]]]],aVr=[0,a(P),yy,6,yy,79,[0,a(fC),[0,a(fT),[0,a(L),0]]]],aVp=a("8708"),aVq=a("13559"),aVs=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aVn=[0,a(P),4369,6,4370,38,[0,a(fC),[0,a(fT),[0,a(L),0]]]],aVl=a("21362"),aVm=a("33196"),aVo=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aVi=[0,a(P),4387,6,4388,24,[0,a(fC),[0,a(fT),[0,a(L),0]]]],aVg=a(zH),aVh=a(zY),aVj=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aVf=[0,a(P),4351,6,4352,46,[0,a(fC),[0,a(fT),[0,a(L),0]]]],aVd=a(zH),aVe=a(zY),aVk=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aVb=[0,a(aM),D4,6,D4,79,[0,a(fC),[0,a(bx),[0,a(aN),0]]]],aU$=a("8414"),aVa=a("13100"),aVc=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aU9=[0,a(aM),gK,6,b9,38,[0,a(fC),[0,a(bx),[0,a(aN),0]]]],aU7=a("20640"),aU8=a("32073"),aU_=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aU4=[0,a(aM),712,6,kn,24,[0,a(fC),[0,a(bx),[0,a(aN),0]]]],aU2=a(Dc),aU3=a(zh),aU5=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aU1=[0,a(aM),674,6,675,46,[0,a(fC),[0,a(bx),[0,a(aN),0]]]],aUZ=a(Dc),aU0=a(zh),aU6=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aUU=[0,a(P),DP,14,DP,41,[0,a(Bj),[0,a(fT),[0,a(L),0]]]],aUQ=a(o),aUR=a(fl),aUS=a(gu),aUT=a(fl),aUV=[0,a(d),fz,10,fz,37,[0,a(N),[0,a(z),[0,a(e),0]]]],aUO=[0,a(aM),w_,14,w_,41,[0,a(Bj),[0,a(bx),[0,a(aN),0]]]],aUK=a(o),aUL=a(fd),aUM=a(gG),aUN=a(fd),aUP=[0,a(d),fz,10,fz,37,[0,a(N),[0,a(z),[0,a(e),0]]]],aUE=[0,a(E),om,14,om,61,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aUF=[0,a(E),om,14,om,61,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aUG=[0,a(as),[0,a(Dp),0]],aUB=[0,a(d),h2,14,h2,49,[0,a(N),[0,a(z),[0,a(e),0]]]],aUx=[0,a(d),gJ,14,gJ,53,[0,a(N),[0,a(z),[0,a(e),0]]]],aUt=[0,a(d),is,14,is,44,[0,a(N),[0,a(z),[0,a(e),0]]]],aUp=[0,a(d),iv,14,iv,70,[0,a(N),[0,a(z),[0,a(e),0]]]],aUl=[0,a(d),gz,14,gz,65,[0,a(N),[0,a(z),[0,a(e),0]]]],aUh=[0,a(d),hg,14,hg,67,[0,a(N),[0,a(z),[0,a(e),0]]]],aUd=[0,a(d),iD,14,iD,61,[0,a(N),[0,a(z),[0,a(e),0]]]],aT$=[0,a(d),iH,14,iH,59,[0,a(N),[0,a(z),[0,a(e),0]]]],aT5=[0,a(d),iP,14,iP,50,[0,a(N),[0,a(z),[0,a(e),0]]]],aTZ=[0,a(E),jg,14,jg,64,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTV=[0,a(E),hL,14,hL,59,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTR=[0,a(E),ht,14,ht,55,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTN=[0,a(P),uR,14,uR,51,[0,a("Article 44"),[0,a(fT),[0,a(L),0]]]],aTM=a(qz),aTI=[0,a(P),zZ,14,zZ,41,[0,a("Article 41"),[0,a(fT),[0,a(L),0]]]],aTH=a(kc),aTD=[0,a(P),xz,14,xz,42,[0,a("Article 42"),[0,a(fT),[0,a(L),0]]]],aTC=a(h$),aTE=[0,a(d),iY,11,iY,39,[0,a(N),[0,a(z),[0,a(e),0]]]],aTB=[0,a(d),iY,11,iY,39,[0,a(N),[0,a(z),[0,a(e),0]]]],aTF=[0,a(as),[0,a("montant_minimal_aide_d842_15"),0]],aTJ=[0,a(d),lO,11,lO,38,[0,a(N),[0,a(z),[0,a(e),0]]]],aTG=[0,a(d),lO,11,lO,38,[0,a(N),[0,a(z),[0,a(e),0]]]],aTK=[0,a(as),[0,a("montant_forfaitaire_d842_15"),0]],aTO=[0,a(d),nc,11,nc,48,[0,a(N),[0,a(z),[0,a(e),0]]]],aTL=[0,a(d),nc,11,nc,48,[0,a(N),[0,a(z),[0,a(e),0]]]],aTP=[0,a(as),[0,a("montant_minimal_d\xc3\xa9pense_nette_d842_17"),0]],aTS=[0,a(E),ht,14,ht,55,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTT=[0,a(as),[0,a(AW),0]],aTQ=[0,a(E),ht,14,ht,55,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTW=[0,a(E),hL,14,hL,59,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTX=[0,a(as),[0,a(m6),0]],aTU=[0,a(E),hL,14,hL,59,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aT0=[0,a(E),jg,14,jg,64,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aT1=[0,a(as),[0,a(nP),0]],aTY=[0,a(E),jg,14,jg,64,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aT2=[0,a(as),[0,a(f6),[0,a(kq),0]]],aT3=[0,a(as),[0,a(f6),[0,a(kq),0]]],aT6=[0,a(d),iP,14,iP,50,[0,a(N),[0,a(z),[0,a(e),0]]]],aT7=[0,a(as),[0,a(kr),0]],aT4=[0,a(d),iP,14,iP,50,[0,a(N),[0,a(z),[0,a(e),0]]]],aT8=[0,a(as),[0,a(eH),[0,a(bj),0]]],aT9=[0,a(as),[0,a(eH),[0,a(bj),0]]],aUa=[0,a(d),iH,14,iH,59,[0,a(N),[0,a(z),[0,a(e),0]]]],aUb=[0,a(as),[0,a(xk),0]],aT_=[0,a(d),iH,14,iH,59,[0,a(N),[0,a(z),[0,a(e),0]]]],aUe=[0,a(d),iD,14,iD,61,[0,a(N),[0,a(z),[0,a(e),0]]]],aUf=[0,a(as),[0,a(y1),0]],aUc=[0,a(d),iD,14,iD,61,[0,a(N),[0,a(z),[0,a(e),0]]]],aUi=[0,a(d),hg,14,hg,67,[0,a(N),[0,a(z),[0,a(e),0]]]],aUj=[0,a(as),[0,a(vh),0]],aUg=[0,a(d),hg,14,hg,67,[0,a(N),[0,a(z),[0,a(e),0]]]],aUm=[0,a(d),gz,14,gz,65,[0,a(N),[0,a(z),[0,a(e),0]]]],aUn=[0,a(as),[0,a(Ey),0]],aUk=[0,a(d),gz,14,gz,65,[0,a(N),[0,a(z),[0,a(e),0]]]],aUq=[0,a(d),iv,14,iv,70,[0,a(N),[0,a(z),[0,a(e),0]]]],aUr=[0,a(as),[0,a(BG),0]],aUo=[0,a(d),iv,14,iv,70,[0,a(N),[0,a(z),[0,a(e),0]]]],aUu=[0,a(d),is,14,is,44,[0,a(N),[0,a(z),[0,a(e),0]]]],aUv=[0,a(as),[0,a(BV),0]],aUs=[0,a(d),is,14,is,44,[0,a(N),[0,a(z),[0,a(e),0]]]],aUy=[0,a(d),gJ,14,gJ,53,[0,a(N),[0,a(z),[0,a(e),0]]]],aUz=[0,a(as),[0,a(Ed),0]],aUw=[0,a(d),gJ,14,gJ,53,[0,a(N),[0,a(z),[0,a(e),0]]]],aUC=[0,a(d),h2,14,h2,49,[0,a(N),[0,a(z),[0,a(e),0]]]],aUD=[0,a(as),[0,a(vL),0]],aUA=[0,a(d),h2,14,h2,49,[0,a(N),[0,a(z),[0,a(e),0]]]],aUH=[0,a(as),[0,a(ny),[0,a(aB),0]]],aUI=[0,a(as),[0,a(ny),[0,a(aB),0]]],aUW=[0,a(d),fz,10,fz,37,[0,a(N),[0,a(z),[0,a(e),0]]]],aUJ=[0,a(d),fz,10,fz,37,[0,a(N),[0,a(z),[0,a(e),0]]]],aUX=[0,a(as),[0,a(u1),0]],aVt=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aUY=[0,a(d),ce,10,ce,27,[0,a(N),[0,a(z),[0,a(e),0]]]],aVu=[0,a(as),[0,a("\xc3\xa9quivalence_loyer"),0]],aVA=[0,a(as),[0,a(bF),0]],aVD=[0,a(E),hp,14,hp,75,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVE=[0,a(as),[0,a(mx),0]],aVB=[0,a(E),hp,14,hp,75,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVH=[0,a(E),hb,14,hb,69,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVI=[0,a(as),[0,a(oc),0]],aVF=[0,a(E),hb,14,hb,69,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVL=[0,a(E),hs,14,hs,70,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVM=[0,a(as),[0,a(mn),0]],aVJ=[0,a(E),hs,14,hs,70,[0,a(bu),[0,a(aj),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aVN=[0,a(as),[0,a(fF),[0,a(dG),0]]],aVO=[0,a(as),[0,a(fF),[0,a(dG),0]]],aVR=[0,a(d),mU,10,mU,37,[0,a(N),[0,a(z),[0,a(e),0]]]],aVP=[0,a(d),mU,10,mU,37,[0,a(N),[0,a(z),[0,a(e),0]]]],aVS=[0,a(as),[0,a(x7),0]],aVW=[0,a(as),[0,a(dc),0]],aVZ=[0,a(d),ng,10,ng,23,[0,a(N),[0,a(z),[0,a(e),0]]]],aVX=[0,a(d),ng,10,ng,23,[0,a(N),[0,a(z),[0,a(e),0]]]],aV0=[0,a(as),[0,a("loyer_minimal"),0]],aWb=[0,a(as),[0,a(eI),0]],aWe=[0,a(d),nt,10,nt,29,[0,a(N),[0,a(z),[0,a(e),0]]]],aWc=[0,a(d),nt,10,nt,29,[0,a(N),[0,a(z),[0,a(e),0]]]],aWf=[0,a(as),[0,a(eX),0]],aWt=[0,a(as),[0,a(ek),0]],aWB=[0,a(as),[0,a(kw),0]],aWQ=[0,a(as),[0,a(bG),0]],aWZ=[0,a(as),[0,a(fi),0]],aTx=[0,a(E),zA,24,zA,43,[0,a(Et),[0,a(sc),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTw=a(o),aTy=[0,a(d),h7,10,h7,29,[0,a(K),[0,a(z),[0,a(e),0]]]],aTv=[0,a(d),q2,14,q2,33,[0,a(K),[0,a(z),[0,a(e),0]]]],aTq=[0,a(E),xm,24,xm,46,[0,a(Et),[0,a(sc),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aTr=[0,a(d),i1,10,i1,32,[0,a(K),[0,a(z),[0,a(e),0]]]],aTp=[0,a(d),AI,14,AI,36,[0,a(K),[0,a(z),[0,a(e),0]]]],aTl=[0,a(aO),[0,a(fi),[0,a(ak),0]]],aTm=[0,a(aO),[0,a(fi),0]],aTn=[0,a(aO),[0,a(fi),[0,a(al),0]]],aTo=[0,a(aO),[0,a(fi),0]],aTs=[0,a(d),i1,10,i1,32,[0,a(K),[0,a(z),[0,a(e),0]]]],aTk=[0,a(d),i1,10,i1,32,[0,a(K),[0,a(z),[0,a(e),0]]]],aTf=[0,a(d),gt,14,gt,55,[0,a(K),[0,a(z),[0,a(e),0]]]],aTb=[0,a(d),eT,14,eT,59,[0,a(K),[0,a(z),[0,a(e),0]]]],aS9=[0,a(d),gB,14,gB,43,[0,a(K),[0,a(z),[0,a(e),0]]]],aS5=[0,a(d),hC,14,hC,42,[0,a(K),[0,a(z),[0,a(e),0]]]],aS1=[0,a(d),rF,5,q9,63,[0,a(K),[0,a(z),[0,a(e),0]]]],aSX=[0,a(d),hJ,14,hJ,53,[0,a(K),[0,a(z),[0,a(e),0]]]],aST=[0,a(d),jn,14,jn,37,[0,a(K),[0,a(z),[0,a(e),0]]]],aSP=[0,a(d),gL,14,gL,63,[0,a(K),[0,a(z),[0,a(e),0]]]],aSL=[0,a(d),hz,14,hz,58,[0,a(K),[0,a(z),[0,a(e),0]]]],aSH=[0,a(d),ie,14,ie,46,[0,a(K),[0,a(z),[0,a(e),0]]]],aSD=[0,a(d),iZ,14,iZ,78,[0,a(K),[0,a(z),[0,a(e),0]]]],aSz=[0,a(d),hF,14,hF,60,[0,a(K),[0,a(z),[0,a(e),0]]]],aSv=[0,a(d),ja,14,ja,48,[0,a(K),[0,a(z),[0,a(e),0]]]],aSw=[0,a(d),ja,14,ja,48,[0,a(K),[0,a(z),[0,a(e),0]]]],aSx=[0,a(cD),[0,a("calcul_apl_locatif.loyer_principal_base"),0]],aSu=[0,a(d),ja,14,ja,48,[0,a(K),[0,a(z),[0,a(e),0]]]],aSA=[0,a(d),hF,14,hF,60,[0,a(K),[0,a(z),[0,a(e),0]]]],aSB=[0,a(cD),[0,a("calcul_apl_locatif.ressources_m\xc3\xa9nage_arrondies"),0]],aSy=[0,a(d),hF,14,hF,60,[0,a(K),[0,a(z),[0,a(e),0]]]],aSE=[0,a(d),iZ,14,iZ,78,[0,a(K),[0,a(z),[0,a(e),0]]]],aSF=[0,a(cD),[0,a("calcul_apl_locatif.b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),0]],aSC=[0,a(d),iZ,14,iZ,78,[0,a(K),[0,a(z),[0,a(e),0]]]],aSI=[0,a(d),ie,14,ie,46,[0,a(K),[0,a(z),[0,a(e),0]]]],aSJ=[0,a(cD),[0,a("calcul_apl_locatif.date_courante"),0]],aSG=[0,a(d),ie,14,ie,46,[0,a(K),[0,a(z),[0,a(e),0]]]],aSM=[0,a(d),hz,14,hz,58,[0,a(K),[0,a(z),[0,a(e),0]]]],aSN=[0,a(cD),[0,a("calcul_apl_locatif.nombre_personnes_\xc3\xa0_charge"),0]],aSK=[0,a(d),hz,14,hz,58,[0,a(K),[0,a(z),[0,a(e),0]]]],aSQ=[0,a(d),gL,14,gL,63,[0,a(K),[0,a(z),[0,a(e),0]]]],aSR=[0,a(cD),[0,a("calcul_apl_locatif.situation_familiale_calcul_apl"),0]],aSO=[0,a(d),gL,14,gL,63,[0,a(K),[0,a(z),[0,a(e),0]]]],aSU=[0,a(d),jn,14,jn,37,[0,a(K),[0,a(z),[0,a(e),0]]]],aSV=[0,a(cD),[0,a("calcul_apl_locatif.zone"),0]],aSS=[0,a(d),jn,14,jn,37,[0,a(K),[0,a(z),[0,a(e),0]]]],aSY=[0,a(d),hJ,14,hJ,53,[0,a(K),[0,a(z),[0,a(e),0]]]],aSZ=[0,a(cD),[0,a("calcul_apl_locatif.logement_est_chambre"),0]],aSW=[0,a(d),hJ,14,hJ,53,[0,a(K),[0,a(z),[0,a(e),0]]]],aS2=[0,a(d),rF,5,q9,63,[0,a(K),[0,a(z),[0,a(e),0]]]],aS3=[0,a(cD),[0,a("calcul_apl_locatif.\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),0]],aS0=[0,a(d),rF,5,q9,63,[0,a(K),[0,a(z),[0,a(e),0]]]],aS6=[0,a(d),hC,14,hC,42,[0,a(K),[0,a(z),[0,a(e),0]]]],aS7=[0,a(cD),[0,a("calcul_apl_locatif.type_aide"),0]],aS4=[0,a(d),hC,14,hC,42,[0,a(K),[0,a(z),[0,a(e),0]]]],aS_=[0,a(d),gB,14,gB,43,[0,a(K),[0,a(z),[0,a(e),0]]]],aS$=[0,a(cD),[0,a("calcul_apl_locatif.colocation"),0]],aS8=[0,a(d),gB,14,gB,43,[0,a(K),[0,a(z),[0,a(e),0]]]],aTc=[0,a(d),eT,14,eT,59,[0,a(K),[0,a(z),[0,a(e),0]]]],aTd=[0,a(cD),[0,a("calcul_apl_locatif.r\xc3\xa9duction_loyer_solidarit\xc3\xa9"),0]],aTa=[0,a(d),eT,14,eT,59,[0,a(K),[0,a(z),[0,a(e),0]]]],aTg=[0,a(d),gt,14,gt,55,[0,a(K),[0,a(z),[0,a(e),0]]]],aTh=[0,a(cD),[0,a("calcul_apl_locatif.logement_meubl\xc3\xa9_d842_2"),0]],aTe=[0,a(d),gt,14,gt,55,[0,a(K),[0,a(z),[0,a(e),0]]]],aTi=[0,a(cD),[0,a(Ea),[0,a(aO),0]]],aTj=[0,a(cD),[0,a(Ea),[0,a(aO),0]]],aTt=[0,a(cD),[0,a(bC),0]],aTz=[0,a(d),h7,10,h7,29,[0,a(K),[0,a(z),[0,a(e),0]]]],aTu=[0,a(d),h7,10,h7,29,[0,a(K),[0,a(z),[0,a(e),0]]]],aTA=[0,a(cD),[0,a(eX),0]],aSo=[0,a(mf),67,5,71,21,[0,a(gv),[0,a(gs),[0,a(d8),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],aSp=[0,a(bD),40,10,40,22,[0,a(bH),0]],aSn=[0,a(mf),56,5,57,50,[0,a(gv),[0,a(gs),[0,a(d8),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],aSq=[0,a(bD),40,10,40,22,[0,a(bH),0]],aSr=[0,a(bD),40,10,40,22,[0,a(bH),0]],aSm=[0,a(bD),40,10,40,22,[0,a(bH),0]],aSs=[0,a(bD),40,10,40,22,[0,a(bH),0]],aSl=[0,a(bD),40,10,40,22,[0,a(bH),0]],aSh=[0,a(mf),77,5,81,24,[0,a(gv),[0,a(gs),[0,a(d8),[0,a(ax),[0,a(_),[0,a(aa),0]]]]]]],aSi=[0,a(bD),41,10,41,29,[0,a(bH),0]],aSg=[0,a(bD),41,10,41,29,[0,a(bH),0]],aSj=[0,a(bD),41,10,41,29,[0,a(bH),0]],aSf=[0,a(bD),41,10,41,29,[0,a(bH),0]],aSb=[0,a(qX),62,18,62,41,[0,a(w6),[0,a(eV),[0,a(gC),[0,a(dR),[0,a(c3),[0,a(aa),0]]]]]]],aR$=a(oG),aSa=a(nN),aSc=[0,a(bD),42,11,42,27,[0,a(bH),0]],aR_=[0,a(qX),31,14,31,30,[0,a(lL),[0,a(nE),[0,a(d8),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],aR8=a(oG),aR9=a(nN),aRX=[5,0],aRY=[4,0],aRZ=[3,0],aR0=[2,0],aR1=[1,0],aR2=[0,0],aR3=[0,a(mf),cW,5,wz,30,[0,a(B3),[0,a(x2),[0,a(j8),[0,a(dR),[0,a(_),[0,a(aa),0]]]]]]],aR4=[0,a(bD),44,10,44,33,[0,a(bH),0]],aRW=[0,a(bD),44,10,44,33,[0,a(bH),0]],aRQ=[0,a(bD),51,14,51,28,[0,a(bH),0]],aRM=[0,a(bD),52,14,52,32,[0,a(bH),0]],aRI=[0,a(qX),21,14,21,26,[0,a(lL),[0,a(nE),[0,a(d8),[0,a(ax),[0,a(c3),[0,a(aa),0]]]]]]],aRJ=[0,a(bD),43,10,43,22,[0,a(bH),0]],aRH=[0,a(bD),43,10,43,22,[0,a(bH),0]],aRK=[0,a(cn),[0,a(yA),0]],aRN=[0,a(bD),52,14,52,32,[0,a(bH),0]],aRO=[0,a(cn),[0,a(Ec),0]],aRL=[0,a(bD),52,14,52,32,[0,a(bH),0]],aRR=[0,a(bD),51,14,51,28,[0,a(bH),0]],aRS=[0,a(cn),[0,a(CP),0]],aRP=[0,a(bD),51,14,51,28,[0,a(bH),0]],aRT=[0,a(cn),[0,a(f7),[0,a(hl),0]]],aRU=[0,a(cn),[0,a(f7),[0,a(hl),0]]],aR5=[0,a(bD),44,10,44,33,[0,a(bH),0]],aRV=[0,a(bD),44,10,44,33,[0,a(bH),0]],aR6=[0,a(cn),[0,a(uT),0]],aSd=[0,a(bD),42,11,42,27,[0,a(bH),0]],aR7=[0,a(bD),42,11,42,27,[0,a(bH),0]],aSe=[0,a(cn),[0,a(zM),0]],aSk=[0,a(cn),[0,a(iN),0]],aSt=[0,a(cn),[0,a(df),0]],aRC=[0,a(E),rN,14,rN,32,[0,a(ms),[0,a(iz),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRA=a(cI),aRB=a(o),aRv=[0,a(E),aP,6,gP,35,[0,a("Article R822-20"),[0,a("Sous-section 3 : Montant forfaitaire de ressources applicable aux \xc3\xa9tudiants"),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRw=[0,a(d),jc,10,jc,37,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRu=[0,a(E),n2,14,n2,41,[0,a(lQ),[0,a(lT),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRq=[0,a(E),E9,14,E9,32,[0,a("Article R822-8"),[0,a(iz),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRp=a(o),aRj=[0,a(E),im,14,im,65,[0,a(ms),[0,a(iz),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRf=[0,a(E),yt,14,yt,33,[0,a("Article R822-10"),[0,a(iz),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aQ8=a(o),aQ9=a(o),aRc=a(V),aRd=a("90100"),aRe=a("135000"),aQ_=a(o),aQ$=a(o),aRa=a(o),aRb=a(o),aQ4=[0,a(E),ir,14,ir,62,[0,a(lQ),[0,a(lT),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aQ3=a(o),aQZ=[0,a(d),fZ,51,fZ,57,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQV=[0,a(P),11,14,11,41,[0,a("Article 3"),[0,a(w8),[0,a(L),0]]]],aQU=a("9500"),aQQ=[0,a(P),21,14,21,41,[0,a("Article 4"),[0,a(w8),[0,a(L),0]]]],aQP=a("258900"),aQL=[0,a(d),D7,46,D7,52,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQM=[0,a(d),i6,10,i6,15,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQK=[0,a(d),i6,10,i6,15,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQN=[0,a(dO),[0,a(Cb),0]],aQR=[0,a(d),hf,11,hf,38,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQO=[0,a(d),hf,11,hf,38,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQS=[0,a(dO),[0,a("montant_forfaitaire_r_822_8"),0]],aQW=[0,a(d),mh,11,mh,38,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQT=[0,a(d),mh,11,mh,38,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQX=[0,a(dO),[0,a("montant_forfaitaire_r_822_7"),0]],aQ0=[0,a(d),fZ,11,fZ,42,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQY=[0,a(d),fZ,11,fZ,42,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQ1=[0,a(dO),[0,a("ressources_forfaitaires_r822_20"),0]],aQ5=[0,a(d),lS,11,lS,59,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQ2=[0,a(d),lS,11,lS,59,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQ6=[0,a(dO),[0,a("ressources_personnes_vivant_habituellement_foyer"),0]],aRg=[0,a(d),nH,11,nH,30,[0,a(ca),[0,a(i),[0,a(e),0]]]],aQ7=[0,a(d),nH,11,nH,30,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRh=[0,a(dO),[0,a("abattement_r_822_10"),0]],aRk=[0,a(E),im,14,im,65,[0,a(ms),[0,a(iz),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRl=[0,a(dO),[0,a(C2),0]],aRi=[0,a(E),im,14,im,65,[0,a(ms),[0,a(iz),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRm=[0,a(dO),[0,a(mE),[0,a(f4),0]]],aRn=[0,a(dO),[0,a(mE),[0,a(f4),0]]],aRr=[0,a(d),np,11,np,29,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRo=[0,a(d),np,11,np,29,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRs=[0,a(dO),[0,a("abattement_r_822_8"),0]],aRx=[0,a(d),jc,10,jc,37,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRt=[0,a(d),jc,10,jc,37,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRy=[0,a(dO),[0,a("ressources_prises_en_compte"),0]],aRD=[0,a(d),mi,11,mi,29,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRz=[0,a(d),mi,11,mi,29,[0,a(ca),[0,a(i),[0,a(e),0]]]],aRE=[0,a(dO),[0,a("abattement_r_822_7"),0]],aRF=[0,a(E),mm,13,Cy,74,[0,a(lQ),[0,a(lT),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aRG=[0,a(E),mm,13,Cy,74,[0,a(lQ),[0,a(lT),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aQA=[0,a(d),qx,14,qx,56,[0,a(X),[0,a(i),[0,a(e),0]]]],aQw=[0,a(d),Bh,14,Bh,63,[0,a(X),[0,a(i),[0,a(e),0]]]],aQu=a(b1),aQv=a(b1),aQq=[0,a(E),hj,14,hj,49,[0,a(kd),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aQm=[0,a(aS),[0,a(kD),[0,a(ak),0]]],aQn=[0,a(aS),[0,a(kD),0]],aQo=[0,a(aS),[0,a(kD),[0,a(al),0]]],aQp=[0,a(aS),[0,a(kD),0]],aQg=a(Cx),aQf=[0,a(E),1202,4,1208,49,[0,a(kd),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aQh=[0,a(d),dk,11,dk,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aQa=[0,a(aS),[0,a(fg),[0,a(ak),0]]],aQb=[0,a(aS),[0,a(fg),0]],aQc=[0,a(aS),[0,a(fg),[0,a(al),0]]],aQd=[0,a(aS),[0,a(fg),0]],aQe=[0,a(E),E8,5,E8,44,[0,a(kd),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aQi=[0,a(d),dk,11,dk,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aP_=[0,a(E),1138,5,gr,44,[0,a(kd),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aP$=[0,a(d),dk,11,dk,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aP9=[0,a(d),dk,11,dk,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aQj=[0,a(d),dk,11,dk,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aP8=[0,a(d),dk,11,dk,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aP3=a(Cx),aP4=[0,0],aP2=[0,a(E),1162,5,1178,10,[0,a(kd),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aP5=[0,a(d),fm,10,fm,28,[0,a(X),[0,a(i),[0,a(e),0]]]],aP1=[0,a(d),fm,10,fm,28,[0,a(X),[0,a(i),[0,a(e),0]]]],aP6=[0,a(d),fm,10,fm,28,[0,a(X),[0,a(i),[0,a(e),0]]]],aP0=[0,a(d),fm,10,fm,28,[0,a(X),[0,a(i),[0,a(e),0]]]],aPW=[0,a(d),zS,5,uG,25,[0,a(X),[0,a(i),[0,a(e),0]]]],aPX=[0,a(d),fB,10,fB,21,[0,a(X),[0,a(i),[0,a(e),0]]]],aPV=[0,a(d),fB,10,fB,21,[0,a(X),[0,a(i),[0,a(e),0]]]],aPR=[0,a(c6),Fd,14,Fd,31,[0,a("Article L351-8"),[0,a("Section 5 : Taux et montant de la pension"),[0,a("Chapitre 1er : Ouverture du droit, liquidation et calcul des pensions de retraite"),[0,a("Titre V : Assurance vieillesse - Assurance veuvage"),[0,a("Livre III : Dispositions relatives aux assurances sociales et \xc3\xa0 diverses cat\xc3\xa9gories de personnes rattach\xc3\xa9es au r\xc3\xa9gime g\xc3\xa9n\xc3\xa9rale"),[0,a(_),[0,a(aa),0]]]]]]]],aPL=[0,a(aD),72,5,73,52,[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]],aPM=[0,a(d),c1,11,c1,31,[0,a(X),[0,a(i),[0,a(e),0]]]],aPK=[0,a(aD),65,5,68,52,[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]],aPN=[0,a(d),c1,11,c1,31,[0,a(X),[0,a(i),[0,a(e),0]]]],aPJ=[0,a(d),c1,11,c1,31,[0,a(X),[0,a(i),[0,a(e),0]]]],aPC=[0,a(aD),mR,18,mR,75,[0,a(mp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aPB=a(o),aPD=[0,a(d),d_,11,d_,36,[0,a(X),[0,a(i),[0,a(e),0]]]],aPy=[5,0],aPz=[4,0],aPA=[0,a(aD),qw,18,rf,45,[0,a(mp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aPx=a(o),aPE=[0,a(d),d_,11,d_,36,[0,a(X),[0,a(i),[0,a(e),0]]]],aPw=[0,a(E),nL,5,nL,59,[0,a(D1),[0,a(Dq),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aPF=[0,a(d),d_,11,d_,36,[0,a(X),[0,a(i),[0,a(e),0]]]],aPv=[0,a(aD),hi,33,hi,58,[0,a(mp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aPu=a(o),aPq=[0,a(c6),cp,14,cp,32,[0,a(kf),[0,a(j1),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(i4),[0,a(_),[0,a(aa),0]]]]]]]]]],aPl=[0,a(aD),EV,18,EV,44,[0,a("Article L822-10"),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aPm=[0,a(d),fn,11,fn,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aPk=[0,a(d),fn,11,fn,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aPd=a(b1),aPc=a(b1),aPb=[0,a(aD),171,5,rq,66,[0,a(gp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aPe=[0,a(d),dT,11,dT,45,[0,a(X),[0,a(i),[0,a(e),0]]]],aPa=[0,a(aD),156,5,158,30,[0,a(gp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aPf=[0,a(d),dT,11,dT,45,[0,a(X),[0,a(i),[0,a(e),0]]]],aO$=[0,a(aD),cp,5,wz,33,[0,a(E6),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aPg=[0,a(d),dT,11,dT,45,[0,a(X),[0,a(i),[0,a(e),0]]]],aO_=[0,a(d),dT,11,dT,45,[0,a(X),[0,a(i),[0,a(e),0]]]],aO4=[0,a(aD),203,5,208,39,[0,a(CY),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aO5=[0,a(d),d2,11,d2,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aO3=[0,a(aD),197,5,198,34,[0,a(CY),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aO6=[0,a(d),d2,11,d2,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aO2=[0,a(d),d2,11,d2,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aOX=[0,a(c6),329,5,zS,35,[0,a(rH),[0,a(rp),[0,a(rO),[0,a(qB),[0,a(rc),[0,a(a8),[0,a(aa),0]]]]]]]],aOW=a("999840"),aOY=[0,a(d),de,11,de,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aOU=[0,a(c6),qx,5,335,35,[0,a(rH),[0,a(rp),[0,a(rO),[0,a(qB),[0,a(rc),[0,a(a8),[0,a(aa),0]]]]]]]],aOT=a("1041840"),aOV=[0,a(d),de,11,de,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aOR=[0,a(c6),339,5,340,35,[0,a(rH),[0,a(rp),[0,a(rO),[0,a(qB),[0,a(rc),[0,a(a8),[0,a(aa),0]]]]]]]],aOQ=a("1083840"),aOS=[0,a(d),de,11,de,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aOO=[0,a(fA),60,5,61,34,[0,a('Circulaire de la CNAV 2022-3 du 11/01/2022 "Revalorisation \xc3\xa0 compter du 1er janvier 2022"'),[0,a(DB),0]]],aON=a("1100144"),aOP=[0,a(d),de,11,de,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aOL=[0,a(fA),93,5,94,34,[0,a('Circulaire de la CNAV 2021-1 du 11/01/2021 "Revalorisation \xc3\xa0 compter du 1er janvier 2021"'),[0,a(DB),0]]],aOK=a("1088175"),aOM=[0,a(d),de,11,de,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aOF=[0,a(aD),dw,5,h_,67,[0,a(E6),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aOG=[0,a(d),eE,11,eE,32,[0,a(X),[0,a(i),[0,a(e),0]]]],aOE=[0,a(d),eE,11,eE,32,[0,a(X),[0,a(i),[0,a(e),0]]]],aOA=[0,a(aD),l4,14,l4,40,[0,a(mp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aOu=[0,a(c6),es,14,es,61,[0,a(kf),[0,a(j1),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(i4),[0,a(_),[0,a(aa),0]]]]]]]]]],aOo=[0,a(aD),46,5,46,41,[0,a("Article L821-2"),[0,a(zv),[0,a(D6),[0,a(xP),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]]]],aOp=[0,a(d),dL,12,dL,51,[0,a(X),[0,a(i),[0,a(e),0]]]],aOn=[0,a(d),dL,12,dL,51,[0,a(X),[0,a(i),[0,a(e),0]]]],aOq=[0,a(d),dL,12,dL,51,[0,a(X),[0,a(i),[0,a(e),0]]]],aN3=a(w),aOd=a(V),aOe=a(V),aOf=a(V),aOg=a(w),aOh=a(V),aN4=a(qs),aN5=a(qs),aN_=a(lP),aN$=a(lP),aOa=a(lP),aOb=a(qs),aOc=a(lP),aN6=a("8"),aN7=a(B2),aN8=a(B2),aN9=[0,a(E),1035,5,gH,65,[0,a("Article R822-25"),[0,a("Section 3 : Conditions relatives au logement"),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aOi=[0,a(d),ea,12,ea,38,[0,a(X),[0,a(i),[0,a(e),0]]]],aN2=[0,a(d),ea,12,ea,38,[0,a(X),[0,a(i),[0,a(e),0]]]],aOj=[0,a(d),ea,12,ea,38,[0,a(X),[0,a(i),[0,a(e),0]]]],aNX=[0,a(aD),D_,18,D_,67,[0,a("Article L822-8"),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aNY=[0,a(d),fE,11,fE,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aNW=[0,a(d),fE,11,fE,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aNR=[0,a(aD),Bu,18,Bu,61,[0,a("Article L822-9"),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aNS=[0,a(d),eA,11,eA,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aNQ=[0,a(d),eA,11,eA,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aNM=[0,a(aD),eW,14,eW,43,[0,a(gp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aNI=[0,a(E),iY,14,iY,37,[0,a(D1),[0,a(Dq),[0,a(dx),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aNH=a("3000000"),aND=[0,a(E),a9,14,a9,41,[0,a(EE),[0,a(AS),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aNC=a(CW),aNy=[0,a(E),bc,14,bc,42,[0,a(EE),[0,a(AS),[0,a(bb),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aNx=a(CW),aNt=[0,a(d),hV,11,hV,48,[0,a(X),[0,a(i),[0,a(e),0]]]],aNp=[0,a(d),hD,11,hD,25,[0,a(X),[0,a(i),[0,a(e),0]]]],aNq=[0,a(d),hD,11,hD,25,[0,a(X),[0,a(i),[0,a(e),0]]]],aNo=[0,a(d),hD,11,hD,25,[0,a(X),[0,a(i),[0,a(e),0]]]],aNr=[0,a(aS),[0,a("condition_pr\xc3\xaat"),0]],aNu=[0,a(d),hV,11,hV,48,[0,a(X),[0,a(i),[0,a(e),0]]]],aNs=[0,a(d),hV,11,hV,48,[0,a(X),[0,a(i),[0,a(e),0]]]],aNv=[0,a(aS),[0,a("condition_peuplement_logement_l822_10"),0]],aNz=[0,a(d),ok,11,ok,39,[0,a(X),[0,a(i),[0,a(e),0]]]],aNw=[0,a(d),ok,11,ok,39,[0,a(X),[0,a(i),[0,a(e),0]]]],aNA=[0,a(aS),[0,a("seuil_l822_3_parts_propri\xc3\xa9t\xc3\xa9"),0]],aNE=[0,a(d),nv,11,nv,38,[0,a(X),[0,a(i),[0,a(e),0]]]],aNB=[0,a(d),nv,11,nv,38,[0,a(X),[0,a(i),[0,a(e),0]]]],aNF=[0,a(aS),[0,a("seuil_l822_3_parts_usufruit"),0]],aNJ=[0,a(d),jm,11,jm,34,[0,a(X),[0,a(i),[0,a(e),0]]]],aNG=[0,a(d),jm,11,jm,34,[0,a(X),[0,a(i),[0,a(e),0]]]],aNK=[0,a(aS),[0,a("seuil_l822_5_patrimoine"),0]],aNN=[0,a(d),lR,11,lR,40,[0,a(X),[0,a(i),[0,a(e),0]]]],aNL=[0,a(d),lR,11,lR,40,[0,a(X),[0,a(i),[0,a(e),0]]]],aNO=[0,a(aS),[0,a("usufruit_ou_propri\xc3\xa9t\xc3\xa9_famille"),0]],aNT=[0,a(d),eA,11,eA,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aNP=[0,a(d),eA,11,eA,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aNU=[0,a(aS),[0,a("condition_non_ouverture_l822_9_decence_logement"),0]],aNZ=[0,a(d),fE,11,fE,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aNV=[0,a(d),fE,11,fE,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aN0=[0,a(aS),[0,a("condition_non_ouverture_l822_8"),0]],aOk=[0,a(d),ea,12,ea,38,[0,a(X),[0,a(i),[0,a(e),0]]]],aN1=[0,a(d),ea,12,ea,38,[0,a(X),[0,a(i),[0,a(e),0]]]],aOl=[0,a(aS),[0,a("condition_logement_surface"),0]],aOr=[0,a(d),dL,12,dL,51,[0,a(X),[0,a(i),[0,a(e),0]]]],aOm=[0,a(d),dL,12,dL,51,[0,a(X),[0,a(i),[0,a(e),0]]]],aOs=[0,a(aS),[0,a("condition_logement_r\xc3\xa9sidence_principale"),0]],aOv=[0,a(c6),es,14,es,61,[0,a(kf),[0,a(j1),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(i4),[0,a(_),[0,a(aa),0]]]]]]]]]],aOw=[0,a(aS),[0,a("ouverture_droits_retraite.date_naissance_assur\xc3\xa9"),0]],aOt=[0,a(c6),es,14,es,61,[0,a(kf),[0,a(j1),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(i4),[0,a(_),[0,a(aa),0]]]]]]]]]],aOx=[0,a(aS),[0,a(BY),[0,a(ry),0]]],aOy=[0,a(aS),[0,a(BY),[0,a(ry),0]]],aOB=[0,a(d),l5,11,l5,37,[0,a(X),[0,a(i),[0,a(e),0]]]],aOz=[0,a(d),l5,11,l5,37,[0,a(X),[0,a(i),[0,a(e),0]]]],aOC=[0,a(aS),[0,a("patrimoine_total_demandeur"),0]],aOH=[0,a(d),eE,11,eE,32,[0,a(X),[0,a(i),[0,a(e),0]]]],aOD=[0,a(d),eE,11,eE,32,[0,a(X),[0,a(i),[0,a(e),0]]]],aOI=[0,a(aS),[0,a("condition_nationalit\xc3\xa9"),0]],aOZ=[0,a(d),de,11,de,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aOJ=[0,a(d),de,11,de,41,[0,a(X),[0,a(i),[0,a(e),0]]]],aO0=[0,a(aS),[0,a("plafond_individuel_l815_9_s\xc3\xa9cu"),0]],aO7=[0,a(d),d2,11,d2,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aO1=[0,a(d),d2,11,d2,44,[0,a(X),[0,a(i),[0,a(e),0]]]],aO8=[0,a(aS),[0,a("condition_logement_location_tiers"),0]],aPh=[0,a(d),dT,11,dT,45,[0,a(X),[0,a(i),[0,a(e),0]]]],aO9=[0,a(d),dT,11,dT,45,[0,a(X),[0,a(i),[0,a(e),0]]]],aPi=[0,a(aS),[0,a("condition_logement_mode_occupation"),0]],aPn=[0,a(d),fn,11,fn,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aPj=[0,a(d),fn,11,fn,58,[0,a(X),[0,a(i),[0,a(e),0]]]],aPo=[0,a(aS),[0,a("condition_ouverture_l822_10_peuplement_logement"),0]],aPr=[0,a(d),l$,11,l$,29,[0,a(X),[0,a(i),[0,a(e),0]]]],aPp=[0,a(d),l$,11,l$,29,[0,a(X),[0,a(i),[0,a(e),0]]]],aPs=[0,a(aS),[0,a("\xc3\xa2ge_l161_17_2_s\xc3\xa9cu"),0]],aPG=[0,a(d),d_,11,d_,36,[0,a(X),[0,a(i),[0,a(e),0]]]],aPt=[0,a(d),d_,11,d_,36,[0,a(X),[0,a(i),[0,a(e),0]]]],aPH=[0,a(aS),[0,a("patrimoine_pris_en_compte"),0]],aPO=[0,a(d),c1,11,c1,31,[0,a(X),[0,a(i),[0,a(e),0]]]],aPI=[0,a(d),c1,11,c1,31,[0,a(X),[0,a(i),[0,a(e),0]]]],aPP=[0,a(aS),[0,a(Az),0]],aPS=[0,a(d),h6,11,h6,28,[0,a(X),[0,a(i),[0,a(e),0]]]],aPQ=[0,a(d),h6,11,h6,28,[0,a(X),[0,a(i),[0,a(e),0]]]],aPT=[0,a(aS),[0,a("\xc3\xa2ge_l351_8_1_s\xc3\xa9cu"),0]],aPY=[0,a(d),fB,10,fB,21,[0,a(X),[0,a(i),[0,a(e),0]]]],aPU=[0,a(d),fB,10,fB,21,[0,a(X),[0,a(i),[0,a(e),0]]]],aPZ=[0,a(aS),[0,a(nX),0]],aP7=[0,a(aS),[0,a(fg),0]],aQk=[0,a(aS),[0,a(kD),0]],aQr=[0,a(d),kM,11,kM,46,[0,a(X),[0,a(i),[0,a(e),0]]]],aQl=[0,a(d),kM,11,kM,46,[0,a(X),[0,a(i),[0,a(e),0]]]],aQs=[0,a(aS),[0,a("personnes_\xc3\xa0_charge_prises_en_compte"),0]],aQx=[0,a(d),oq,10,oq,59,[0,a(X),[0,a(i),[0,a(e),0]]]],aQt=[0,a(d),oq,10,oq,59,[0,a(X),[0,a(i),[0,a(e),0]]]],aQy=[0,a(aS),[0,a(ku),0]],aQB=[0,a(d),nR,10,nR,52,[0,a(X),[0,a(i),[0,a(e),0]]]],aQz=[0,a(d),nR,10,nR,52,[0,a(X),[0,a(i),[0,a(e),0]]]],aQC=[0,a(aS),[0,a(rT),0]],aQE=a(qp),aQD=[0,a(aD),md,13,md,48,[0,a(gp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aQI=[0,a(aD),md,13,md,48,[0,a(gp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aQG=a(qp),aQF=[0,a(aD),jq,13,jq,49,[0,a(gp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aQH=[0,a(aD),jq,13,jq,49,[0,a(gp),[0,a(bb),[0,a(ad),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aNl=[0,a(E),Cv,14,Cv,36,[0,a(iG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aNg=[0,a(ao),[0,a(bG),[0,a(ak),0]]],aNh=[0,a(ao),[0,a(bG),0]],aNi=[0,a(ao),[0,a(bG),[0,a(al),0]]],aNj=[0,a(ao),[0,a(bG),0]],aNk=a(o),aNm=[0,a(d),hn,10,hn,25,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aNf=[0,a(d),hn,10,hn,25,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aNc=[0,a(E),CF,14,CF,33,[0,a(iG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aNa=a(o),aNb=a(o),aM8=[0,a(E),zb,14,zb,36,[0,a(iG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aMX=[0,a(ao),[0,a(eM),[0,a(ak),0]]],aMY=[0,a(ao),[0,a(eM),0]],aMZ=[0,a(ao),[0,a(eM),[0,a(al),0]]],aM0=[0,a(ao),[0,a(eM),0]],aM1=[0,a(bj),[0,a(bN),[0,a(ak),0]]],aM2=[0,a(bj),[0,a(bN),0]],aM3=[0,a(bj),[0,a(bN),[0,a(al),0]]],aM4=[0,a(bj),[0,a(bN),0]],aM5=a(kN),aM6=a(o),aM7=a(o),aM9=[0,a(d),mL,10,mL,40,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMW=[0,a(d),mL,10,mL,40,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMT=[0,a(E),EP,14,EP,49,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aMR=a(ha),aMS=a(ha),aMN=[0,a(E),Di,14,Di,33,[0,a(iG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aMJ=[0,a(E),Ds,14,Ds,36,[0,a(iG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aMz=[0,a(ao),[0,a(bF),[0,a(ak),0]]],aMA=[0,a(ao),[0,a(bF),0]],aMB=[0,a(ao),[0,a(bF),[0,a(al),0]]],aMC=[0,a(ao),[0,a(bF),0]],aMD=[0,a(ao),[0,a(kF),[0,a(ak),0]]],aME=[0,a(ao),[0,a(kF),0]],aMF=[0,a(ao),[0,a(kF),[0,a(al),0]]],aMG=[0,a(ao),[0,a(kF),0]],aMH=a(o),aMI=a(o),aMK=[0,a(d),nQ,10,nQ,20,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMy=[0,a(d),nQ,10,nQ,20,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMv=[0,a(E),AM,14,AM,49,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aMs=a(c2),aMt=a(c2),aMu=a(lN),aMn=[0,a(E),3415,5,3427,77,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aMl=a(cI),aMm=a(b1),aMo=[0,a(d),fS,10,fS,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMj=[0,a(E),BJ,5,BJ,75,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aMk=[0,a(d),fS,10,fS,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMc=[0,a(aM),uP,14,uP,42,[0,a(i2),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],aMb=a(dd),aMd=[0,a(d),ez,10,ez,25,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMa=[0,a(aM),yX,14,yX,42,[0,a(i2),[0,a(bx),[0,a(aN),0]]]],aL$=a(dd),aMe=[0,a(d),ez,10,ez,25,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aL_=[0,a(P),zU,14,zU,42,[0,a(i2),[0,a(aF),[0,a(L),0]]]],aL9=a(dd),aMf=[0,a(d),ez,10,ez,25,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aL5=[0,a(E),Da,14,Da,55,[0,a(rA),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aL0=[0,a(ao),[0,a(kp),[0,a(ak),0]]],aL1=[0,a(ao),[0,a(kp),0]],aL2=[0,a(ao),[0,a(kp),[0,a(al),0]]],aL3=[0,a(ao),[0,a(kp),0]],aL4=a(o),aL6=[0,a(d),mQ,11,mQ,52,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLZ=[0,a(d),mQ,11,mQ,52,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLW=[0,a(E),Cq,14,Cq,49,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLV=a(ha),aLP=[0,a(E),hA,14,hA,70,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLL=[0,a(E),hU,14,hU,69,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLH=[0,a(E),i$,14,i$,75,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLC=[0,a(E),ze,5,ze,44,[0,a(AG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLu=[0,a(ao),[0,a(dv),[0,a(ak),0]]],aLv=[0,a(ao),[0,a(dv),0]],aLw=[0,a(ao),[0,a(dv),[0,a(al),0]]],aLx=[0,a(ao),[0,a(dv),0]],aLy=[0,a(ao),[0,a(dv),[0,a(ak),0]]],aLz=[0,a(ao),[0,a(dv),0]],aLA=[0,a(ao),[0,a(dv),[0,a(al),0]]],aLB=[0,a(ao),[0,a(dv),0]],aLD=[0,a(d),hN,10,hN,14,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLt=[0,a(E),DT,14,DT,42,[0,a(AG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLp=[0,a(ao),[0,a(dv),[0,a(ak),0]]],aLq=[0,a(ao),[0,a(dv),0]],aLr=[0,a(ao),[0,a(dv),[0,a(al),0]]],aLs=[0,a(ao),[0,a(dv),0]],aLk=[0,a(E),DO,5,DO,41,[0,a(rA),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLl=[0,a(d),i9,11,i9,41,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLj=[0,a(E),w1,14,w1,44,[0,a(rA),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLm=[0,a(d),i9,11,i9,41,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLi=[0,a(d),i9,11,i9,41,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLf=[0,a(E),DM,14,DM,36,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLa=[0,a(P),616,5,gN,33,[0,a(oQ),[0,a(aF),[0,a(L),0]]]],aKU=a(o),aKV=a(wE),aKW=a(vn),aKX=a(w),aKY=a(E$),aKZ=a(yi),aK0=a(o),aK1=a(z7),aK2=a(Dy),aK3=a(w),aK4=a(vG),aK5=a(zF),aK6=a(o),aK7=a(yL),aK8=a(DR),aK9=a(w),aK_=a("35600"),aK$=a(l8),aLb=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aKS=[0,a(P),705,5,707,33,[0,a(oQ),[0,a(aF),[0,a(L),0]]]],aKA=a(o),aKB=a(rw),aKC=a("220000"),aKD=a(w),aKE=a("38000"),aKF=a("260000"),aKG=a(o),aKH=a("164200"),aKI=a(yS),aKJ=a(w),aKK=a(EZ),aKL=a("231200"),aKM=a(o),aKN=a("153200"),aKO=a("183700"),aKP=a(w),aKQ=a(og),aKR=a("214200"),aKT=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aKy=[0,a(P),748,5,750,33,[0,a(oQ),[0,a(aF),[0,a(L),0]]]],aKg=a(o),aKh=a("148100"),aKi=a("178700"),aKj=a(w),aKk=a("30600"),aKl=a("209300"),aKm=a(o),aKn=a(AO),aKo=a("158900"),aKp=a(w),aKq=a("26900"),aKr=a(xR),aKs=a(o),aKt=a("123300"),aKu=a("147900"),aKv=a(w),aKw=a("24600"),aKx=a(C7),aKz=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aKe=[0,a(P),799,5,gL,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aJY=a(o),aJZ=a(wE),aJ0=a(vn),aJ1=a(w),aJ2=a(E$),aJ3=a(yi),aJ4=a(o),aJ5=a(z7),aJ6=a(Dy),aJ7=a(w),aJ8=a(vG),aJ9=a(zF),aJ_=a(o),aJ$=a(yL),aKa=a(DR),aKb=a(w),aKc=a("34600"),aKd=a(l8),aKf=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aJV=[0,a(P),ro,5,c4,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aJD=a(o),aJE=a(xX),aJF=a(rz),aJG=a(w),aJH=a(Fc),aJI=a(BB),aJJ=a(o),aJK=a(DH),aJL=a(qZ),aJM=a(w),aJN=a(og),aJO=a(zR),aJP=a(o),aJQ=a(CZ),aJR=a(Eq),aJS=a(w),aJT=a(CE),aJU=a(xw),aJW=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aJC=[0,a(P),660,5,663,33,[0,a(oQ),[0,a(aF),[0,a(L),0]]]],aJk=a(o),aJl=a(xX),aJm=a(rz),aJn=a(w),aJo=a(Fc),aJp=a(BB),aJq=a(o),aJr=a(DH),aJs=a(qZ),aJt=a(w),aJu=a(og),aJv=a(zR),aJw=a(o),aJx=a(CZ),aJy=a(Eq),aJz=a(w),aJA=a(CE),aJB=a(xw),aJX=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aJi=[0,a(P),890,5,896,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aJc=a(o),aJd=a("86900"),aJe=a("97100"),aJf=a(w),aJg=a("10200"),aJh=a("107300"),aJj=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aJa=[0,a(P),922,5,j0,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aIU=a(o),aIV=a("198100"),aIW=a("239000"),aIX=a(w),aIY=a("40900"),aIZ=a("279900"),aI0=a(o),aI1=a("176800"),aI2=a("212800"),aI3=a(w),aI4=a("36000"),aI5=a("248800"),aI6=a(o),aI7=a("165000"),aI8=a("197900"),aI9=a(w),aI_=a("32900"),aI$=a("230800"),aJb=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aIS=[0,a(P),gJ,5,969,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aIA=a(o),aIB=a("159500"),aIC=a(v_),aID=a(w),aIE=a("33000"),aIF=a(x$),aIG=a(o),aIH=a("142200"),aII=a("171200"),aIJ=a(w),aIK=a("29000"),aIL=a("200200"),aIM=a(o),aIN=a("132800"),aIO=a("159300"),aIP=a(w),aIQ=a("26500"),aIR=a(xR),aIT=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aIy=[0,a(P),1011,5,kv,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aIg=a(o),aIh=a("200100"),aIi=a("141400"),aIj=a(w),aIk=a("41300"),aIl=a("182700"),aIm=a(o),aIn=a("178600"),aIo=a("215000"),aIp=a(w),aIq=a("36400"),aIr=a("251400"),aIs=a(o),aIt=a("166700"),aIu=a(qQ),aIv=a(w),aIw=a("33200"),aIx=a("233100"),aIz=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aIe=[0,a(P),jX,5,1058,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aHY=a(o),aHZ=a("161100"),aH0=a("194400"),aH1=a(w),aH2=a("33300"),aH3=a("227700"),aH4=a(o),aH5=a("143600"),aH6=a("172900"),aH7=a(w),aH8=a("29300"),aH9=a("202200"),aH_=a(o),aH$=a("134100"),aIa=a("160900"),aIb=a(w),aIc=a("26800"),aId=a("187700"),aIf=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aHW=[0,a(P),1102,5,1105,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aHE=a(o),aHF=a(rz),aHG=a("244300"),aHH=a(w),aHI=a("41800"),aHJ=a("286100"),aHK=a(o),aHL=a("180700"),aHM=a("217500"),aHN=a(w),aHO=a("36800"),aHP=a("254300"),aHQ=a(o),aHR=a("168700"),aHS=a("202300"),aHT=a(w),aHU=a("33600"),aHV=a("235900"),aHX=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aHC=[0,a(P),1145,5,qK,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aHk=a(o),aHl=a("30871"),aHm=a("37243"),aHn=a(w),aHo=a("6372"),aHp=a("43615"),aHq=a(o),aHr=a("27548"),aHs=a("33148"),aHt=a(w),aHu=a("5610"),aHv=a("38768"),aHw=a(o),aHx=a("25718"),aHy=a("30840"),aHz=a(w),aHA=a("5122"),aHB=a("35962"),aHD=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aHi=[0,a(P),1191,5,1194,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aG2=a(o),aG3=a(xh),aG4=a("196700"),aG5=a(w),aG6=a("33700"),aG7=a("230400"),aG8=a(o),aG9=a("145300"),aG_=a("175000"),aG$=a(w),aHa=a("29700"),aHb=a(Cl),aHc=a(o),aHd=a("135700"),aHe=a("162800"),aHf=a(w),aHg=a("27100"),aHh=a("189900"),aHj=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aG0=[0,a(P),1234,5,1237,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aGI=a(o),aGJ=a("24849"),aGK=a("29987"),aGL=a(w),aGM=a("5138"),aGN=a("35125"),aGO=a(o),aGP=a("22151"),aGQ=a("26679"),aGR=a(w),aGS=a("4528"),aGT=a("31207"),aGU=a(o),aGV=a("20687"),aGW=a("24818"),aGX=a(w),aGY=a("4131"),aGZ=a("28949"),aG1=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aGG=[0,a(P),1279,5,1282,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aGo=a(o),aGp=a("31241"),aGq=a("37689"),aGr=a(w),aGs=a("6448"),aGt=a("44137"),aGu=a(o),aGv=a("27879"),aGw=a("33556"),aGx=a(w),aGy=a("5677"),aGz=a("39233"),aGA=a(o),aGB=a("26027"),aGC=a("31210"),aGD=a(w),aGE=a("5183"),aGF=a("36393"),aGH=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aGm=[0,a(P),1323,5,1326,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aF6=a(o),aF7=a("25147"),aF8=a("30347"),aF9=a(w),aF_=a("5200"),aF$=a("35547"),aGa=a(o),aGb=a("22417"),aGc=a("26999"),aGd=a(w),aGe=a("4582"),aGf=a("31581"),aGg=a(o),aGh=a("20935"),aGi=a(BC),aGj=a(w),aGk=a("4181"),aGl=a("29297"),aGn=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aF4=[0,a(P),1368,5,1371,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aFM=a(o),aFN=a("31616"),aFO=a("38141"),aFP=a(w),aFQ=a("6525"),aFR=a("44666"),aFS=a(o),aFT=a("28214"),aFU=a("33959"),aFV=a(w),aFW=a("5745"),aFX=a("39704"),aFY=a(o),aFZ=a("26339"),aF0=a("31584"),aF1=a(w),aF2=a("5245"),aF3=a("36829"),aF5=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aFK=[0,a(P),1412,5,qJ,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aFs=a(o),aFt=a("25449"),aFu=a("30711"),aFv=a(w),aFw=a("5262"),aFx=a("35973"),aFy=a(o),aFz=a("22686"),aFA=a("27323"),aFB=a(w),aFC=a("4637"),aFD=a("31960"),aFE=a(o),aFF=a("21186"),aFG=a("25417"),aFH=a(w),aFI=a("4231"),aFJ=a("29648"),aFL=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aFq=[0,a(P),1457,5,1460,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aE_=a(o),aE$=a("32185"),aFa=a("38827"),aFb=a(w),aFc=a("6642"),aFd=a("45469"),aFe=a(o),aFf=a("28722"),aFg=a(xF),aFh=a(w),aFi=a("5848"),aFj=a("40418"),aFk=a(o),aFl=a("26813"),aFm=a("32152"),aFn=a(w),aFo=a("5339"),aFp=a("37491"),aFr=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aE8=[0,a(P),1501,5,1504,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aEQ=a(o),aER=a("25907"),aES=a(w2),aET=a(w),aEU=a("5357"),aEV=a("36621"),aEW=a(o),aEX=a("23094"),aEY=a("27814"),aEZ=a(w),aE0=a("4720"),aE1=a("32534"),aE2=a(o),aE3=a("21567"),aE4=a("25874"),aE5=a(w),aE6=a("4307"),aE7=a("30181"),aE9=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aEO=[0,a(P),1546,5,1549,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aEw=a(o),aEx=a("33086"),aEy=a("39914"),aEz=a(w),aEA=a("6828"),aEB=a("46742"),aEC=a(o),aED=a("29526"),aEE=a("35538"),aEF=a(w),aEG=a("6012"),aEH=a("41550"),aEI=a(o),aEJ=a("27564"),aEK=a("33052"),aEL=a(w),aEM=a("5488"),aEN=a("38541"),aEP=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aEu=[0,a(P),1590,5,1593,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aEc=a(o),aEd=a("26632"),aEe=a("32139"),aEf=a(w),aEg=a("5507"),aEh=a("37646"),aEi=a(o),aEj=a("23741"),aEk=a("28593"),aEl=a(w),aEm=a("4852"),aEn=a("33445"),aEo=a(o),aEp=a("22171"),aEq=a("36598"),aEr=a(w),aEs=a("4428"),aEt=a("31026"),aEv=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aEa=[0,a(P),1635,5,1638,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aDU=a(o),aDV=a("33999"),aDW=a("41016"),aDX=a(w),aDY=a("7016"),aDZ=a("48032"),aD0=a(o),aD1=a("30341"),aD2=a("36519"),aD3=a(w),aD4=a("6178"),aD5=a("42697"),aD6=a(o),aD7=a("28325"),aD8=a("33964"),aD9=a(w),aD_=a("5639"),aD$=a("39605"),aEb=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aDS=[0,a(P),1679,5,1682,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aDA=a(o),aDB=a("27367"),aDC=a("33026"),aDD=a(w),aDE=a("5659"),aDF=a("38685"),aDG=a(o),aDH=a("24396"),aDI=a("29382"),aDJ=a(w),aDK=a(Bq),aDL=a("34368"),aDM=a(o),aDN=a("22783"),aDO=a("27332"),aDP=a(w),aDQ=a("4550"),aDR=a("31882"),aDT=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aDy=[0,a(P),1724,5,1727,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aDg=a(o),aDh=a("35002"),aDi=a("42226"),aDj=a(w),aDk=a("7223"),aDl=a("49449"),aDm=a(o),aDn=a("31236"),aDo=a("37596"),aDp=a(w),aDq=a("6360"),aDr=a("43957"),aDs=a(o),aDt=a("29161"),aDu=a("34966"),aDv=a(w),aDw=a("5805"),aDx=a("40773"),aDz=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aDe=[0,a(P),1768,5,1771,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aCY=a(o),aCZ=a("28174"),aC0=a("34000"),aC1=a(w),aC2=a("5826"),aC3=a("39826"),aC4=a(o),aC5=a(BC),aC6=a("30249"),aC7=a(w),aC8=a("5133"),aC9=a("35382"),aC_=a(o),aC$=a("23455"),aDa=a("28138"),aDb=a(w),aDc=a("4684"),aDd=a("32823"),aDf=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aCW=[0,a(P),1813,5,1816,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aCE=a(o),aCF=a("35114"),aCG=a("42361"),aCH=a(w),aCI=a("7246"),aCJ=a("49607"),aCK=a(o),aCL=a("31336"),aCM=a("37716"),aCN=a(w),aCO=a("6380"),aCP=a("44098"),aCQ=a(o),aCR=a("29254"),aCS=a("35078"),aCT=a(w),aCU=a("5824"),aCV=a("40903"),aCX=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aCC=[0,a(P),1857,5,1860,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aCk=a(o),aCl=a("28264"),aCm=a("34109"),aCn=a(w),aCo=a("5845"),aCp=a("39953"),aCq=a(o),aCr=a("25196"),aCs=a("30346"),aCt=a(w),aCu=a("5149"),aCv=a("35495"),aCw=a(o),aCx=a("23530"),aCy=a("28228"),aCz=a(w),aCA=a("4699"),aCB=a("32928"),aCD=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aCi=[0,a(P),1902,5,1905,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aB2=a(o),aB3=a("35500"),aB4=a("42827"),aB5=a(w),aB6=a("7326"),aB7=a("50153"),aB8=a(o),aB9=a("31681"),aB_=a("38131"),aB$=a(w),aCa=a("6450"),aCb=a("44583"),aCc=a(o),aCd=a("29576"),aCe=a("35464"),aCf=a(w),aCg=a("5888"),aCh=a("41353"),aCj=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aB0=[0,a(P),1946,5,1949,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aBI=a(o),aBJ=a("28575"),aBK=a("34484"),aBL=a(w),aBM=a("5909"),aBN=a("40392"),aBO=a(o),aBP=a("25473"),aBQ=a("30680"),aBR=a(w),aBS=a("5206"),aBT=a("35885"),aBU=a(o),aBV=a("23789"),aBW=a("28539"),aBX=a(w),aBY=a("4751"),aBZ=a("33290"),aB1=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aBG=[0,a(P),1991,5,cT,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aBo=a(o),aBp=a("35855"),aBq=a("43255"),aBr=a(w),aBs=a("7399"),aBt=a("50655"),aBu=a(o),aBv=a("31998"),aBw=a("38512"),aBx=a(w),aBy=a("6515"),aBz=a("45029"),aBA=a(o),aBB=a("29872"),aBC=a("35819"),aBD=a(w),aBE=a("5947"),aBF=a("41767"),aBH=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aBm=[0,a(P),2036,5,2039,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aA6=a(o),aA7=a("28861"),aA8=a(DJ),aA9=a(w),aA_=a("5968"),aA$=a("40796"),aBa=a(o),aBb=a("25728"),aBc=a("30987"),aBd=a(w),aBe=a("5258"),aBf=a("36244"),aBg=a(o),aBh=a("24027"),aBi=a("28824"),aBj=a(w),aBk=a("4799"),aBl=a(y8),aBn=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aA4=[0,a(P),2081,5,2084,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aAM=a(o),aAN=a("36626"),aAO=a("44185"),aAP=a(w),aAQ=a("7558"),aAR=a("51744"),aAS=a(o),aAT=a("32686"),aAU=a(xO),aAV=a(w),aAW=a("6655"),aAX=a("45997"),aAY=a(o),aAZ=a("30514"),aA0=a("36589"),aA1=a(w),aA2=a("6075"),aA3=a("42665"),aA5=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aAK=[0,a(P),2125,5,2128,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],aAs=a(o),aAt=a("29482"),aAu=a("35578"),aAv=a(w),aAw=a("6096"),aAx=a("41673"),aAy=a(o),aAz=a("26281"),aAA=a("31653"),aAB=a(w),aAC=a("5371"),aAD=a("37023"),aAE=a(o),aAF=a("24544"),aAG=a("29444"),aAH=a(w),aAI=a("4902"),aAJ=a("34346"),aAL=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aAq=[0,a(P),2170,5,2173,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],az_=a(o),az$=a("36835"),aAa=a("44437"),aAb=a(w),aAc=a("7601"),aAd=a("52039"),aAe=a(o),aAf=a("32872"),aAg=a("39564"),aAh=a(w),aAi=a("6693"),aAj=a("46259"),aAk=a(o),aAl=a("30688"),aAm=a("36798"),aAn=a(w),aAo=a("6110"),aAp=a("42908"),aAr=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],az8=[0,a(P),2214,5,2217,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],azQ=a(o),azR=a("29650"),azS=a("35781"),azT=a(w),azU=a("6131"),azV=a("41911"),azW=a(o),azX=a("26431"),azY=a("31833"),azZ=a(w),az0=a("5402"),az1=a("37234"),az2=a(o),az3=a("24684"),az4=a("29612"),az5=a(w),az6=a("4930"),az7=a("34542"),az9=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],azO=[0,a(P),2259,5,2262,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],azw=a(o),azx=a("36864"),azy=a("44473"),azz=a(w),azA=a("7607"),azB=a("52081"),azC=a(o),azD=a("32898"),azE=a("39596"),azF=a(w),azG=a("6698"),azH=a("46296"),azI=a(o),azJ=a("30713"),azK=a("36827"),azL=a(w),azM=a("6115"),azN=a("42942"),azP=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],azu=[0,a(P),2303,5,2306,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],azc=a(o),azd=a("29674"),aze=a("35810"),azf=a(w),azg=a("6136"),azh=a("41945"),azi=a(o),azj=a("26452"),azk=a("31858"),azl=a(w),azm=a("5406"),azn=a("37264"),azo=a(o),azp=a("24704"),azq=a("29636"),azr=a(w),azs=a("4934"),azt=a(xF),azv=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aza=[0,a(P),2348,5,2351,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],ayU=a(o),ayV=a("37140"),ayW=a("44807"),ayX=a(w),ayY=a("7664"),ayZ=a("52472"),ay0=a(o),ay1=a("33145"),ay2=a("39893"),ay3=a(w),ay4=a("6748"),ay5=a("46643"),ay6=a(o),ay7=a("30943"),ay8=a("37103"),ay9=a(w),ay_=a("6161"),ay$=a("43264"),azb=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],ayS=[0,a(P),2392,5,2395,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],ayA=a(o),ayB=a("29897"),ayC=a("36079"),ayD=a(w),ayE=a("6182"),ayF=a("42260"),ayG=a(o),ayH=a("26650"),ayI=a("32097"),ayJ=a(w),ayK=a("5447"),ayL=a("37543"),ayM=a(o),ayN=a("24889"),ayO=a("29858"),ayP=a(w),ayQ=a("4971"),ayR=a(DJ),ayT=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],ayy=[0,a(P),2437,5,2439,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],ayg=a(o),ayh=a("37252"),ayi=a("44941"),ayj=a(w),ayk=a("7687"),ayl=a("52629"),aym=a(o),ayn=a("33244"),ayo=a("40013"),ayp=a(w),ayq=a("6768"),ayr=a("46783"),ays=a(o),ayt=a("31036"),ayu=a("37215"),ayv=a(w),ayw=a("6179"),ayx=a("43394"),ayz=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aye=[0,a(P),2480,5,2482,36,[0,a(a7),[0,a(aF),[0,a(L),0]]]],axY=a(o),axZ=a("29986"),ax0=a("36187"),ax1=a(w),ax2=a("6201"),ax3=a("42386"),ax4=a(o),ax5=a("26730"),ax6=a("32193"),ax7=a(w),ax8=a("5463"),ax9=a("37656"),ax_=a(o),ax$=a("24964"),aya=a("29948"),ayb=a(w),ayc=a(Bq),ayd=a("34934"),ayf=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLc=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axX=[0,a(d),Z,11,Z,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axT=[0,a(E),wp,5,wp,28,[0,a(CN),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],axU=[0,a(d),gK,11,gK,41,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axS=[0,a(E),u0,14,u0,44,[0,a(CN),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],axO=[0,a(E),wM,14,wM,36,[0,a(iG),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],axM=a(o),axN=a(o),axP=[0,a(d),kn,10,kn,32,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axL=[0,a(d),kn,10,kn,32,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axG=[0,a(P),wf,7,wf,18,[0,a(i2),[0,a(aF),[0,a(L),0]]]],axD=a(gu),axE=a(qO),axF=a(fl),axH=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axB=[0,a(aM),ji,7,ji,18,[0,a(i2),[0,a(bx),[0,a(aN),0]]]],axy=a(gG),axz=a(qq),axA=a(fd),axC=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axw=[0,a(aM),vN,7,vN,18,[0,a(i2),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],axt=a(ox),axu=a(Bc),axv=a(mA),axx=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axI=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axq=[0,a(P),zk,29,zk,64,[0,a(ni),[0,a(aF),[0,a(L),0]]]],axo=a(gu),axp=a(fl),axr=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axm=[0,a(aM),rE,29,rE,64,[0,a(ni),[0,a(bx),[0,a(aN),0]]]],axk=a(gG),axl=a(fd),axn=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axi=[0,a(aM),w0,29,w0,64,[0,a(ni),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],axg=a(ox),axh=a(mA),axj=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axs=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axa=[0,a(d),iO,14,iO,50,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aw8=[0,a(P),v6,14,v6,50,[0,a("Article 25"),[0,a(aF),[0,a(L),0]]]],aw3=a(v$),aw4=a(r5),aw5=a("0.0172"),aw6=a(v$),aw7=a(r5),awX=[0,a(E),jj,14,jj,64,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],awT=[0,a(E),jd,14,jd,59,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],awP=[0,a(fA),eA,14,eA,36,[0,a(Ci),[0,a(yF),0]]],awN=a(vd),awO=a(em),awJ=[0,a(P),zP,14,zP,47,[0,a(r7),[0,a(aF),[0,a(L),0]]]],awI=a("0.416"),awE=[0,a(P),BS,14,BS,47,[0,a(r7),[0,a(aF),[0,a(L),0]]]],awD=a(uX),awz=[0,a(P),yb,14,yb,47,[0,a(r7),[0,a(aF),[0,a(L),0]]]],awy=a("560085"),awu=[0,a(P),A6,14,A6,48,[0,a("Article 26"),[0,a(aF),[0,a(L),0]]]],awt=a(z6),awp=[0,a(P),xH,15,xH,49,[0,a("Article 22"),[0,a(aF),[0,a(L),0]]]],awo=a("2211133"),awk=[0,a(P),xf,14,xf,42,[0,a("Article 21"),[0,a(aF),[0,a(L),0]]]],awj=a(h$),awf=[0,a(P),u6,14,u6,41,[0,a("Article 20"),[0,a(aF),[0,a(L),0]]]],awe=a(kc),awg=[0,a(d),oz,11,oz,38,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awd=[0,a(d),oz,11,oz,38,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awh=[0,a(ao),[0,a("montant_forfaitaire_d832_10"),0]],awl=[0,a(d),ow,11,ow,39,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awi=[0,a(d),ow,11,ow,39,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awm=[0,a(ao),[0,a("montant_minimal_aide_d832_10"),0]],awq=[0,a(d),od,11,od,45,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awn=[0,a(d),od,11,od,45,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awr=[0,a(ao),[0,a("coefficient_multiplicateur_d832_11"),0]],awv=[0,a(d),oH,11,oH,45,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aws=[0,a(d),oH,11,oH,45,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aww=[0,a(ao),[0,a("coefficient_multiplicateur_d832_18"),0]],awA=[0,a(d),mc,11,mc,44,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awx=[0,a(d),mc,11,mc,44,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awB=[0,a(ao),[0,a("montant_limite_tranches_d832_15_1"),0]],awF=[0,a(d),kJ,11,kJ,44,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awC=[0,a(d),kJ,11,kJ,44,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awG=[0,a(ao),[0,a("taux_tranche_inf\xc3\xa9rieure_d832_15_1"),0]],awK=[0,a(d),m5,11,m5,44,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awH=[0,a(d),m5,11,m5,44,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awL=[0,a(ao),[0,a("taux_tranche_sup\xc3\xa9rieure_d832_15_1"),0]],awQ=[0,a(d),mK,11,mK,33,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awM=[0,a(d),mK,11,mK,33,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],awR=[0,a(ao),[0,a(ED),0]],awU=[0,a(E),jd,14,jd,59,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],awV=[0,a(ao),[0,a(m6),0]],awS=[0,a(E),jd,14,jd,59,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],awY=[0,a(E),jj,14,jj,64,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],awZ=[0,a(ao),[0,a(nP),0]],awW=[0,a(E),jj,14,jj,64,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aw0=[0,a(ao),[0,a(f6),[0,a(kj),0]]],aw1=[0,a(ao),[0,a(f6),[0,a(kj),0]]],aw9=[0,a(d),nS,11,nS,47,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aw2=[0,a(d),nS,11,nS,47,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aw_=[0,a(ao),[0,a("coefficient_multiplicateur_d832_17_3"),0]],axb=[0,a(d),iO,14,iO,50,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axc=[0,a(ao),[0,a(kr),0]],aw$=[0,a(d),iO,14,iO,50,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axd=[0,a(ao),[0,a(eH),[0,a(bj),0]]],axe=[0,a(ao),[0,a(eH),[0,a(bj),0]]],axJ=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axf=[0,a(d),b9,11,b9,46,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axK=[0,a(ao),[0,a("montant_forfaitaire_charges_d832_10"),0]],axQ=[0,a(ao),[0,a(bF),0]],axV=[0,a(d),gK,11,gK,41,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axR=[0,a(d),gK,11,gK,41,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],axW=[0,a(ao),[0,a("ressources_m\xc3\xa9nage_avec_d832_18"),0]],aLd=[0,a(ao),[0,a(dv),0]],aLg=[0,a(d),nd,11,nd,33,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLe=[0,a(d),nd,11,nd,33,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLh=[0,a(ao),[0,a(vx),0]],aLn=[0,a(ao),[0,a(kp),0]],aLE=[0,a(d),hN,10,hN,14,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLo=[0,a(d),hN,10,hN,14,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLF=[0,a(ao),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_base"),0]],aLI=[0,a(E),i$,14,i$,75,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLJ=[0,a(ao),[0,a(mx),0]],aLG=[0,a(E),i$,14,i$,75,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLM=[0,a(E),hU,14,hU,69,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLN=[0,a(ao),[0,a(oc),0]],aLK=[0,a(E),hU,14,hU,69,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLQ=[0,a(E),hA,14,hA,70,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLR=[0,a(ao),[0,a(mn),0]],aLO=[0,a(E),hA,14,hA,70,[0,a(d3),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aLS=[0,a(ao),[0,a(fF),[0,a(dG),0]]],aLT=[0,a(ao),[0,a(fF),[0,a(dG),0]]],aLX=[0,a(d),ki,10,ki,17,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLU=[0,a(d),ki,10,ki,17,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aLY=[0,a(ao),[0,a("coefficient_prise_en_charge_d832_10_formule"),0]],aL7=[0,a(ao),[0,a(kF),0]],aMg=[0,a(d),ez,10,ez,25,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aL8=[0,a(d),ez,10,ez,25,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMh=[0,a(ao),[0,a("plafond_mensualit\xc3\xa9_d832_10_3_copropri\xc3\xa9taires"),0]],aMp=[0,a(d),fS,10,fS,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMi=[0,a(d),fS,10,fS,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMq=[0,a(ao),[0,a(ym),0]],aMw=[0,a(d),l7,10,l7,17,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMr=[0,a(d),l7,10,l7,17,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMx=[0,a(ao),[0,a("coefficient_prise_en_charge_d832_10_arrondi"),0]],aML=[0,a(ao),[0,a(eM),0]],aMO=[0,a(d),oM,10,oM,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMM=[0,a(d),oM,10,oM,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMP=[0,a(ao),[0,a(EC),0]],aMU=[0,a(d),op,10,op,15,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMQ=[0,a(d),op,10,op,15,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aMV=[0,a(ao),[0,a("coefficient_prise_en_charge_d832_10_seuil"),0]],aM_=[0,a(ao),[0,a(bG),0]],aNd=[0,a(d),nC,10,nC,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aM$=[0,a(d),nC,10,nC,29,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],aNe=[0,a(ao),[0,a(eX),0]],aNn=[0,a(ao),[0,a(fi),0]],awa=[0,a(E),Fa,14,Fa,36,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],av7=[0,a(aB),[0,a(bG),[0,a(ak),0]]],av8=[0,a(aB),[0,a(bG),0]],av9=[0,a(aB),[0,a(bG),[0,a(al),0]]],av_=[0,a(aB),[0,a(bG),0]],av$=a(o),awb=[0,a(d),mP,10,mP,25,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],av6=[0,a(d),mP,10,mP,25,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],av3=[0,a(E),Dl,14,Dl,33,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],av1=a(o),av2=a(o),avX=[0,a(E),xM,14,xM,36,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],avM=[0,a(aB),[0,a(eM),[0,a(ak),0]]],avN=[0,a(aB),[0,a(eM),0]],avO=[0,a(aB),[0,a(eM),[0,a(al),0]]],avP=[0,a(aB),[0,a(eM),0]],avQ=[0,a(bj),[0,a(bN),[0,a(ak),0]]],avR=[0,a(bj),[0,a(bN),0]],avS=[0,a(bj),[0,a(bN),[0,a(al),0]]],avT=[0,a(bj),[0,a(bN),0]],avU=a(kN),avV=a(o),avW=a(o),avY=[0,a(d),nq,10,nq,40,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avL=[0,a(d),nq,10,nq,40,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avH=[0,a(E),xo,5,xo,26,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],avF=a(os),avG=a(os),avI=[0,a(d),jf,10,jf,15,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avE=[0,a(E),yZ,14,yZ,49,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],avC=a(ha),avD=a(ha),avy=[0,a(E),AH,14,AH,36,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],avo=[0,a(aB),[0,a(bF),[0,a(ak),0]]],avp=[0,a(aB),[0,a(bF),0]],avq=[0,a(aB),[0,a(bF),[0,a(al),0]]],avr=[0,a(aB),[0,a(bF),0]],avs=[0,a(aB),[0,a(ko),[0,a(ak),0]]],avt=[0,a(aB),[0,a(ko),0]],avu=[0,a(aB),[0,a(ko),[0,a(al),0]]],avv=[0,a(aB),[0,a(ko),0]],avw=a(o),avx=a(o),avz=[0,a(d),l1,10,l1,20,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avn=[0,a(d),l1,10,l1,20,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avj=[0,a(E),DY,5,DY,26,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],avg=a(c2),avh=a(c2),avi=a(lN),avk=[0,a(d),hB,10,hB,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avf=[0,a(E),Ae,14,Ae,49,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],avc=a(c2),avd=a(c2),ave=a(lN),au_=[0,a(E),zg,14,zg,40,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],au6=[0,a(E),x4,14,x4,55,[0,a(yg),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],au1=[0,a(aB),[0,a(ks),[0,a(ak),0]]],au2=[0,a(aB),[0,a(ks),0]],au3=[0,a(aB),[0,a(ks),[0,a(al),0]]],au4=[0,a(aB),[0,a(ks),0]],au5=a(o),au7=[0,a(d),oD,11,oD,52,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],au0=[0,a(d),oD,11,oD,52,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auW=[0,a(E),z$,5,z$,26,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auV=a(os),auX=[0,a(d),h4,10,h4,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auU=[0,a(E),yJ,14,yJ,49,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auR=a(o),auS=a(o),auT=a(ha),auL=[0,a(E),iw,14,iw,70,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auH=[0,a(E),i_,14,i_,69,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auD=[0,a(E),i3,14,i3,75,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auz=[0,a(E),ye,14,ye,44,[0,a(yg),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auA=[0,a(d),nx,11,nx,41,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auy=[0,a(d),nx,11,nx,41,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auu=[0,a(E),Ah,14,Ah,36,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auv=[0,a(d),gN,19,gN,41,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auq=[0,a(E),z0,14,z0,40,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aum=[0,a(P),Ef,14,Ef,48,[0,a(vD),[0,a(fe),[0,a(L),0]]]],auk=a("2142091"),aul=a("1339340"),aug=[0,a(P),x5,14,x5,41,[0,a("Article 32"),[0,a(fe),[0,a(L),0]]]],aue=a(qz),auf=a("2668"),at_=[0,a(E),h5,14,h5,64,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],at6=[0,a(E),je,14,je,59,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],at2=[0,a(E),hO,14,hO,55,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],atY=[0,a(E),z9,14,z9,36,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],atW=a(o),atX=a(o),atZ=[0,a(d),lG,10,lG,32,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],atV=[0,a(d),lG,10,lG,32,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],atR=[0,a(P),y_,14,y_,48,[0,a(se),[0,a(fe),[0,a(L),0]]]],ath=a(o),ati=a("46192"),atj=a("54152"),atk=a(w),atl=a("57741"),atm=a(V),atn=a("61794"),ato=a($),atp=a("65862"),atq=a(ac),atr=a("7368"),ats=a("71039"),att=a(o),atu=a("42242"),atv=a("49299"),atw=a(w),atx=a("52565"),aty=a(V),atz=a("56268"),atA=a($),atB=a("59957"),atC=a(ac),atD=a("6659"),atE=a("63887"),atF=a(o),atG=a("40096"),atH=a("46634"),atI=a(w),atJ=a("49475"),atK=a(V),atL=a("52740"),atM=a($),atN=a("56004"),atO=a(ac),atP=a("6180"),atQ=a("59675"),atS=[0,a(d),eJ,10,eJ,44,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],atf=[0,a(aM),hf,14,hf,48,[0,a(se),[0,a(bx),[0,a(aN),0]]]],asH=a(o),asI=a("44630"),asJ=a("52321"),asK=a(w),asL=a("55788"),asM=a(V),asN=a("59704"),asO=a($),asP=a("63635"),asQ=a(ac),asR=a("7119"),asS=a("68637"),asT=a(o),asU=a("40814"),asV=a("47632"),asW=a(w),asX=a("50787"),asY=a(V),asZ=a("54365"),as0=a($),as1=a("57929"),as2=a(ac),as3=a("6434"),as4=a("61727"),as5=a(o),as6=a("38740"),as7=a("45057"),as8=a(w),as9=a("47802"),as_=a(V),as$=a("50957"),ata=a($),atb=a("54110"),atc=a(ac),atd=a("5971"),ate=a("57657"),atg=[0,a(d),eJ,10,eJ,44,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],asF=[0,a(aM),u5,14,u5,48,[0,a(se),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],ar7=a(o),ar8=a("44443"),ar9=a("52101"),ar_=a(w),ar$=a("55555"),asa=a(V),asb=a("59454"),asc=a($),asd=a("63369"),ase=a(ac),asf=a("7089"),asg=a("68350"),ash=a(o),asi=a("40643"),asj=a("47433"),ask=a(w),asl=a("50575"),asm=a(V),asn=a("54138"),aso=a($),asp=a("57687"),asq=a(ac),asr=a("6407"),ass=a("61469"),ast=a(o),asu=a("38578"),asv=a("44869"),asw=a(w),asx=a("47602"),asy=a(V),asz=a("50744"),asA=a($),asB=a("53884"),asC=a(ac),asD=a("5946"),asE=a("57416"),asG=[0,a(d),eJ,10,eJ,44,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ar1=[0,a(d),h1,14,h1,50,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arW=[0,a(E),Cw,14,Cw,35,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],arX=[0,a(d),h9,12,h9,33,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arS=[0,a(P),yh,14,yh,42,[0,a("Article 29"),[0,a(fe),[0,a(L),0]]]],arR=a(h$),arN=[0,a(P),uB,14,uB,41,[0,a("Article 28"),[0,a(fe),[0,a(L),0]]]],arM=a(kc),arI=[0,a(P),Cf,14,Cf,35,[0,a(vD),[0,a(fe),[0,a(L),0]]]],arH=a("121726"),arJ=[0,a(d),of,10,of,31,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arG=[0,a(d),of,10,of,31,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arK=[0,a(aB),[0,a("coefficient_r_d832_25"),0]],arO=[0,a(d),l0,11,l0,38,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arL=[0,a(d),l0,11,l0,38,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arP=[0,a(aB),[0,a("montant_forfaitaire_d832_24"),0]],arT=[0,a(d),mj,11,mj,39,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arQ=[0,a(d),mj,11,mj,39,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arU=[0,a(aB),[0,a("montant_minimal_aide_d823_24"),0]],arY=[0,a(d),h9,12,h9,33,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arV=[0,a(d),h9,12,h9,33,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],arZ=[0,a(aB),[0,a("condition_2_du_832_25"),0]],ar2=[0,a(d),h1,14,h1,50,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ar3=[0,a(aB),[0,a(kr),0]],ar0=[0,a(d),h1,14,h1,50,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ar4=[0,a(aB),[0,a(eH),[0,a(bj),0]]],ar5=[0,a(aB),[0,a(eH),[0,a(bj),0]]],atT=[0,a(d),eJ,10,eJ,44,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ar6=[0,a(d),eJ,10,eJ,44,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],atU=[0,a(aB),[0,a("plafond_\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],at0=[0,a(aB),[0,a(bF),0]],at3=[0,a(E),hO,14,hO,55,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],at4=[0,a(aB),[0,a(AW),0]],at1=[0,a(E),hO,14,hO,55,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],at7=[0,a(E),je,14,je,59,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],at8=[0,a(aB),[0,a(m6),0]],at5=[0,a(E),je,14,je,59,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],at$=[0,a(E),h5,14,h5,64,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aua=[0,a(aB),[0,a(nP),0]],at9=[0,a(E),h5,14,h5,64,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aub=[0,a(aB),[0,a(f6),[0,a(kq),0]]],auc=[0,a(aB),[0,a(f6),[0,a(kq),0]]],auh=[0,a(d),nl,11,nl,38,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aud=[0,a(d),nl,11,nl,38,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aui=[0,a(aB),[0,a("montant_forfaitaire_d832_27"),0]],aun=[0,a(d),me,10,me,44,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auj=[0,a(d),me,10,me,44,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auo=[0,a(aB),[0,a("coefficient_multiplicateur_d832_25"),0]],aur=[0,a(d),j9,10,j9,36,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aup=[0,a(d),j9,10,j9,36,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aus=[0,a(aB),[0,a("\xc3\xa9quivalence_loyer_\xc3\xa9ligible"),0]],auw=[0,a(d),gN,19,gN,41,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aut=[0,a(d),gN,19,gN,41,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aux=[0,a(aB),[0,a(C6),0]],auB=[0,a(aB),[0,a(ks),0]],auE=[0,a(E),i3,14,i3,75,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auF=[0,a(aB),[0,a(mx),0]],auC=[0,a(E),i3,14,i3,75,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auI=[0,a(E),i_,14,i_,69,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auJ=[0,a(aB),[0,a(oc),0]],auG=[0,a(E),i_,14,i_,69,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auM=[0,a(E),iw,14,iw,70,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auN=[0,a(aB),[0,a(mn),0]],auK=[0,a(E),iw,14,iw,70,[0,a(cS),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],auO=[0,a(aB),[0,a(fF),[0,a(dG),0]]],auP=[0,a(aB),[0,a(fF),[0,a(dG),0]]],auY=[0,a(d),h4,10,h4,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auQ=[0,a(d),h4,10,h4,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],auZ=[0,a(aB),[0,a("coefficient_prise_en_charge_d832_25_formule"),0]],au8=[0,a(aB),[0,a(ko),0]],au$=[0,a(d),n3,10,n3,36,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],au9=[0,a(d),n3,10,n3,36,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ava=[0,a(aB),[0,a("\xc3\xa9quivalence_loyer_minimale"),0]],avl=[0,a(d),hB,10,hB,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avb=[0,a(d),hB,10,hB,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avm=[0,a(aB),[0,a("coefficient_prise_en_charge_d832_25_arrondi"),0]],avA=[0,a(aB),[0,a(eM),0]],avJ=[0,a(d),jf,10,jf,15,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avB=[0,a(d),jf,10,jf,15,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],avK=[0,a(aB),[0,a("coefficient_prise_en_charge_d832_25_seuil"),0]],avZ=[0,a(aB),[0,a(bG),0]],av4=[0,a(d),j6,10,j6,29,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],av0=[0,a(d),j6,10,j6,29,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],av5=[0,a(aB),[0,a(eX),0]],awc=[0,a(aB),[0,a(fi),0]],arw=[0,a(E),x3,14,x3,33,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aru=a(o),arv=a(o),arq=[0,a(E),xB,14,xB,39,[0,a(rC),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aro=a(o),arp=a(o),ark=[0,a(E),uZ,14,uZ,36,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],arf=[0,a(aO),[0,a(ka),[0,a(ak),0]]],arg=[0,a(aO),[0,a(ka),0]],arh=[0,a(aO),[0,a(ka),[0,a(al),0]]],ari=[0,a(aO),[0,a(ka),0]],arj=a(o),arl=[0,a(d),mz,10,mz,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],are=[0,a(d),mz,10,mz,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],arb=[0,a(E),Dr,14,Dr,42,[0,a(rC),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aq9=[0,a(aD),Bx,14,Bx,36,[0,a(qH),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aq3=[0,a(aO),[0,a(bG),[0,a(ak),0]]],aq4=[0,a(aO),[0,a(bG),0]],aq5=[0,a(aO),[0,a(bG),[0,a(al),0]]],aq6=[0,a(aO),[0,a(bG),0]],aq7=a(o),aq8=a(o),aq_=[0,a(d),nZ,10,nZ,36,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aq2=[0,a(d),nZ,10,nZ,36,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqW=[0,a(aM),EY,14,EY,33,[0,a(cF),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],aqU=a(hy),aqV=a(hy),aqX=[0,a(d),eD,10,eD,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqT=[0,a(aM),rb,14,rb,33,[0,a(cF),[0,a(bx),[0,a(aN),0]]]],aqR=a(hy),aqS=a(hy),aqY=[0,a(d),eD,10,eD,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqQ=[0,a(P),fV,14,fV,33,[0,a(cF),[0,a(bT),[0,a(L),0]]]],aqO=a(hy),aqP=a(hy),aqZ=[0,a(d),eD,10,eD,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqK=[0,a(E),u3,14,u3,36,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aqz=[0,a(aO),[0,a(bF),[0,a(ak),0]]],aqA=[0,a(aO),[0,a(bF),0]],aqB=[0,a(aO),[0,a(bF),[0,a(al),0]]],aqC=[0,a(aO),[0,a(bF),0]],aqD=[0,a(bj),[0,a(bN),[0,a(ak),0]]],aqE=[0,a(bj),[0,a(bN),0]],aqF=[0,a(bj),[0,a(bN),[0,a(al),0]]],aqG=[0,a(bj),[0,a(bN),0]],aqH=a(kN),aqI=a(o),aqJ=a(o),aqL=[0,a(d),oT,10,oT,40,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqy=[0,a(d),oT,10,oT,40,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqs=[0,a(aM),zW,14,zW,33,[0,a(cF),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],aqg=a(hd),aqh=a(b1),aqi=a(dd),aqj=a(hd),aqk=a(fb),aql=a(fb),aqm=a(dd),aqn=a(dd),aqo=a(rX),aqp=a(qA),aqq=a(fb),aqr=a(b1),aqt=[0,a(d),eF,10,eF,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqf=[0,a(aM),v4,14,v4,33,[0,a(cF),[0,a(bx),[0,a(aN),0]]]],ap5=a(hd),ap6=a(b1),ap7=a(dd),ap8=a(hd),ap9=a(fb),ap_=a(fb),ap$=a(dd),aqa=a(dd),aqb=a(rX),aqc=a(qA),aqd=a(fb),aqe=a(b1),aqu=[0,a(d),eF,10,eF,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ap4=[0,a(P),wi,14,wi,33,[0,a(cF),[0,a(bT),[0,a(L),0]]]],apS=a(hd),apT=a(b1),apU=a(dd),apV=a(hd),apW=a(fb),apX=a(fb),apY=a(dd),apZ=a(dd),ap0=a(rX),ap1=a(qA),ap2=a(fb),ap3=a(b1),aqv=[0,a(d),eF,10,eF,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apO=[0,a(E),xW,14,xW,36,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],apI=[0,a(aO),[0,a(kk),[0,a(ak),0]]],apJ=[0,a(aO),[0,a(kk),0]],apK=[0,a(aO),[0,a(kk),[0,a(al),0]]],apL=[0,a(aO),[0,a(kk),0]],apM=a(o),apN=a(o),apP=[0,a(d),mo,10,mo,32,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apH=[0,a(d),mo,10,mo,32,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apB=[0,a(aM),hW,14,hW,28,[0,a(cF),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],apz=a(c2),apA=a(c2),apC=[0,a(d),eC,11,eC,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apy=[0,a(aM),fc,14,fc,28,[0,a(cF),[0,a(bx),[0,a(aN),0]]]],apw=a(c2),apx=a(c2),apD=[0,a(d),eC,11,eC,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apv=[0,a(P),m4,14,m4,28,[0,a(cF),[0,a(bT),[0,a(L),0]]]],apt=a(c2),apu=a(c2),apE=[0,a(d),eC,11,eC,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apo=[0,a(P),c1,14,c1,36,[0,a(r$),[0,a(bT),[0,a(L),0]]]],apk=a(EW),apl=a(iy),apm=a(iy),apn=a(EW),app=[0,a(d),d5,10,d5,32,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],api=[0,a(aM),rP,14,rP,36,[0,a(r$),[0,a(bx),[0,a(aN),0]]]],ape=a(Cg),apf=a(iy),apg=a(iy),aph=a(Cg),apj=[0,a(d),d5,10,d5,32,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apc=[0,a(aM),f0,14,f0,36,[0,a(r$),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],ao_=a(DA),ao$=a(iy),apa=a(iy),apb=a(DA),apd=[0,a(d),d5,10,d5,32,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ao5=[0,a(E),ws,5,ws,50,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],ao6=[0,a(d),ik,10,ik,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ao4=[0,a(E),xr,14,xr,36,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],ao3=a(o),ao7=[0,a(d),ik,10,ik,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ao2=[0,a(d),ik,10,ik,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoZ=[0,a(E),zC,14,zC,28,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aoV=[0,a(P),q7,14,q7,42,[0,a(Br),[0,a(bT),[0,a(L),0]]]],aoS=a("3.4"),aoT=a(ib),aoU=a(ib),aoO=[0,a(P),q$,14,q$,41,[0,a(Br),[0,a(bT),[0,a(L),0]]]],aoL=a("4."),aoM=a(yx),aoN=a(yx),aoH=[0,a(E),xl,14,xl,29,[0,a("Article D842-2"),[0,a(sc),[0,a(ag),[0,a(af),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],aoF=a(oi),aoG=a(kz),aoz=[0,a(P),hK,29,hK,64,[0,a(dI),[0,a(bT),[0,a(L),0]]]],aow=a(gu),aox=a(qO),aoy=a(fl),aoA=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aou=[0,a(aM),vw,29,vw,64,[0,a(dI),[0,a(bx),[0,a(aN),0]]]],aor=a(gG),aos=a(qq),aot=a(fd),aov=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aop=[0,a(aM),xe,29,xe,64,[0,a(dI),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],aom=a(ox),aon=a(Bc),aoo=a(mA),aoq=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoB=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoj=[0,a(P),zm,29,zm,64,[0,a(r2),[0,a(bT),[0,a(L),0]]]],aoh=a(gu),aoi=a(fl),aok=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aof=[0,a(aM),m3,29,m3,64,[0,a(r2),[0,a(bx),[0,a(aN),0]]]],aod=a(gG),aoe=a(fd),aog=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aob=[0,a(aM),EA,29,EA,64,[0,a(r2),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],an$=a(ox),aoa=a(mA),aoc=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aol=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],an4=a(o),an5=[0,a(P),527,5,528,34,[0,a(dI),[0,a(bT),[0,a(L),0]]]],an1=a(AF),an2=a(vu),an3=a(CI),an6=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],anY=a(o),anZ=[0,a(P),536,5,537,34,[0,a(dI),[0,a(bT),[0,a(L),0]]]],anV=a("27905"),anW=a("24683"),anX=a("22911"),an0=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],anS=a(w),anT=[0,a(P),vg,5,vg,35,[0,a(dI),[0,a(bT),[0,a(L),0]]]],anJ=a(w),anK=a("4576"),anL=a("31539"),anM=a(w),anN=a("4043"),anO=a("27774"),anP=a(w),anQ=a("3682"),anR=a("25689"),anU=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],anG=a(o),anH=[0,a(aM),353,5,354,34,[0,a(dI),[0,a(bx),[0,a(aN),0]]]],anD=a(CS),anE=a(xI),anF=a(wk),anI=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],anA=a(o),anB=[0,a(aM),Bm,5,cl,34,[0,a(dI),[0,a(bx),[0,a(aN),0]]]],anx=a("26962"),any=a("23848"),anz=a("22136"),anC=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],anu=a(w),anv=[0,a(aM),hh,5,hh,35,[0,a(dI),[0,a(bx),[0,a(aN),0]]]],anl=a(w),anm=a("4421"),ann=a("30473"),ano=a(w),anp=a("3906"),anq=a("26835"),anr=a(w),ans=a("3557"),ant=a("24821"),anw=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ani=a(o),anj=[0,a(aM),rV,5,gI,34,[0,a(dI),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],anf=a(B6),ang=a(vF),anh=a(Cp),ank=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],anc=a(o),and=[0,a(aM),gx,5,1082,34,[0,a(dI),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],am$=a("26849"),ana=a("23748"),anb=a("22044"),ane=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],am8=a(w),am9=[0,a(aM),f2,5,f2,35,[0,a(dI),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],amZ=a(w),am0=a("4403"),am1=a("30345"),am2=a(w),am3=a("3890"),am4=a("26723"),am5=a(w),am6=a("3542"),am7=a("24717"),am_=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],an7=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amV=[0,a(P),iE,5,iE,61,[0,a(it),[0,a(bT),[0,a(L),0]]]],amS=a(AF),amT=a(vu),amU=a(CI),amW=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amQ=[0,a(aM),cW,5,cW,61,[0,a(it),[0,a(bx),[0,a(aN),0]]]],amN=a(CS),amO=a(xI),amP=a(wk),amR=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amL=[0,a(aM),gD,5,gD,61,[0,a(it),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],amI=a(B6),amJ=a(vF),amK=a(Cp),amM=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amX=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amF=[0,a(P),ma,14,ma,37,[0,a(it),[0,a(bT),[0,a(L),0]]]],amC=a("27765"),amD=a("24198"),amE=a("22680"),amG=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amA=[0,a(aM),kt,14,kt,37,[0,a(it),[0,a(bx),[0,a(aN),0]]]],amx=a("26826"),amy=a("23380"),amz=a("21913"),amB=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amv=[0,a(aM),ro,14,ro,37,[0,a(it),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],ams=a(Fe),amt=a("23282"),amu=a("21821"),amw=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amH=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amY=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amo=a(o),amp=[0,a(P),dJ,5,bc,34,[0,a(cG),[0,a(bT),[0,a(L),0]]]],aml=a("30850"),amm=a("26887"),amn=a("25200"),amq=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ami=a(o),amj=[0,a(P),yU,5,115,34,[0,a(cG),[0,a(bT),[0,a(L),0]]]],amf=a("37207"),amg=a("32910"),amh=a("30548"),amk=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amc=a(w),amd=[0,a(P),n2,5,n2,35,[0,a(cG),[0,a(bT),[0,a(L),0]]]],al5=a(w),al6=a("6101"),al7=a("42052"),al8=a(w),al9=a("5390"),al_=a("37032"),al$=a(w),ama=a("4909"),amb=a("34252"),ame=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],al2=a(o),al3=[0,a(aM),34,5,35,34,[0,a(cG),[0,a(bx),[0,a(aN),0]]]],alZ=a("29807"),al0=a(r4),al1=a("24348"),al4=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],alW=a(o),alX=[0,a(aM),44,5,45,34,[0,a(cG),[0,a(bx),[0,a(aN),0]]]],alT=a("35949"),alU=a(mH),alV=a("29515"),alY=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],alQ=a(w),alR=[0,a(aM),54,5,54,35,[0,a(cG),[0,a(bx),[0,a(aN),0]]]],alH=a(w),alI=a("5895"),alJ=a("40630"),alK=a(w),alL=a(rB),alM=a(r1),alN=a(w),alO=a("4743"),alP=a("33094"),alS=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],alE=a(o),alF=[0,a(aM),759,5,760,34,[0,a(cG),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],alB=a("29682"),alC=a("25859"),alD=a("24246"),alG=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aly=a(o),alz=[0,a(aM),769,5,770,34,[0,a(cG),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],alv=a("35799"),alw=a(AA),alx=a("29392"),alA=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],als=a(w),alt=[0,a(aM),BR,5,BR,35,[0,a(cG),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],alj=a(w),alk=a("5870"),all=a("40460"),alm=a(w),aln=a(vX),alo=a(Ab),alp=a(w),alq=a("4723"),alr=a(yj),alu=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],amr=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],alf=[0,a(P),mR,14,mR,42,[0,a("Article 12"),[0,a(bT),[0,a(L),0]]]],alc=a(o),ald=a(h$),ale=a(h$),ak8=[0,a(aM),rg,14,rg,29,[0,a(cF),[0,a(bx),[0,a(aN),0]]]],ak2=a(o),ak3=a(r4),ak4=a(mH),ak5=a(w),ak6=a(rB),ak7=a(r1),ak9=[0,a(d),eo,11,eo,26,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ak1=[0,a(P),hk,14,hk,29,[0,a(cF),[0,a(bT),[0,a(L),0]]]],akV=a(o),akW=a(r4),akX=a(mH),akY=a(w),akZ=a(rB),ak0=a(r1),ak_=[0,a(d),eo,11,eo,26,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],akT=[0,a(aM),oS,14,oS,29,[0,a(cF),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],akN=a(o),akO=a("25869"),akP=a(AA),akQ=a(w),akR=a(vX),akS=a(Ab),akU=[0,a(d),eo,11,eo,26,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],akI=[0,a(P),fN,14,fN,44,[0,a(qM),[0,a(bT),[0,a(L),0]]]],akq=a(o),akr=a("487000"),aks=a("697700"),akt=a(w),aku=a(A_),akv=a(V),akw=a("850900"),akx=a($),aky=a("883400"),akz=a(ac),akA=a("916300"),akB=a(O),akC=a("948800"),akD=a(dP),akE=a(CA),akF=a(dP),akG=a("32300"),akH=a(CA),akJ=[0,a(d),ew,11,ew,41,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ako=[0,a(aM),xZ,14,xZ,44,[0,a(qM),[0,a("Articles valables du 1er janvier 2022 au 1er juillet 2022"),[0,a(aN),0]]]],aj8=a(o),aj9=a("468300"),aj_=a("670900"),aj$=a(w),aka=a("800200"),akb=a(V),akc=a("819200"),akd=a($),ake=a("849500"),akf=a(ac),akg=a("881100"),akh=a(O),aki=a("912400"),akj=a(dP),akk=a(Ar),akl=a(dP),akm=a("31100"),akn=a(Ar),akp=[0,a(d),ew,11,ew,41,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aj6=[0,a(aM),xV,14,xV,44,[0,a(qM),[0,a(L),[0,a("Articles valables du 1er janvier 2020 au 1er janvier 2022"),[0,a(aN),0]]]]],ajO=a(o),ajP=a("458800"),ajQ=a("657200"),ajR=a(w),ajS=a("783900"),ajT=a(V),ajU=a("801500"),ajV=a($),ajW=a(A_),ajX=a(ac),ajY=a("863100"),ajZ=a(O),aj0=a("893800"),aj1=a(dP),aj2=a(u8),aj3=a(dP),aj4=a(og),aj5=a(u8),aj7=[0,a(d),ew,11,ew,41,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ajH=[0,a(aM),nL,14,nL,40,[0,a(cF),[0,a(L),[0,a(ch),[0,a(aN),0]]]]],ajp=a(o),ajq=a(rn),ajr=a(rh),ajs=a(w),ajt=a(qu),aju=a(V),ajv=a(q1),ajw=a($),ajx=a(rU),ajy=a(ac),ajz=a(qr),ajA=a(O),ajB=a(q8),ajC=a(dP),ajD=a(hI),ajE=a(dP),ajF=a(ra),ajG=a(hI),ajI=[0,a(d),dS,10,dS,36,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ajo=[0,a(aM),nm,14,nm,40,[0,a(cF),[0,a(bx),[0,a(aN),0]]]],ai8=a(o),ai9=a(rn),ai_=a(rh),ai$=a(w),aja=a(qu),ajb=a(V),ajc=a(q1),ajd=a($),aje=a(rU),ajf=a(ac),ajg=a(qr),ajh=a(O),aji=a(q8),ajj=a(dP),ajk=a(hI),ajl=a(dP),ajm=a(ra),ajn=a(hI),ajJ=[0,a(d),dS,10,dS,36,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ai7=[0,a(P),zL,14,zL,40,[0,a(cF),[0,a(bT),[0,a(L),0]]]],aiP=a(o),aiQ=a(rn),aiR=a(rh),aiS=a(w),aiT=a(qu),aiU=a(V),aiV=a(q1),aiW=a($),aiX=a(rU),aiY=a(ac),aiZ=a(qr),ai0=a(O),ai1=a(q8),ai2=a(dP),ai3=a(hI),ai4=a(dP),ai5=a(ra),ai6=a(hI),ajK=[0,a(d),dS,10,dS,36,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiJ=[0,a(d),fW,14,fW,50,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiF=[0,a(P),Bp,14,Bp,41,[0,a("Article 11"),[0,a(bT),[0,a(L),0]]]],aiE=a(kc),aiA=[0,a(E),w9,14,w9,29,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aiz=a(wV),aiB=[0,a(d),oA,11,oA,26,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiy=[0,a(d),oA,11,oA,26,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiC=[0,a(aO),[0,a("fraction_l832_3"),0]],aiG=[0,a(d),m9,11,m9,38,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiD=[0,a(d),m9,11,m9,38,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiH=[0,a(aO),[0,a("montant_forfaitaire_d823_16"),0]],aiK=[0,a(d),fW,14,fW,50,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiL=[0,a(aO),[0,a(kr),0]],aiI=[0,a(d),fW,14,fW,50,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiM=[0,a(aO),[0,a(eH),[0,a(bj),0]]],aiN=[0,a(aO),[0,a(eH),[0,a(bj),0]]],ajL=[0,a(d),dS,10,dS,36,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aiO=[0,a(d),dS,10,dS,36,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ajM=[0,a(aO),[0,a("taux_composition_familiale"),0]],akK=[0,a(d),ew,11,ew,41,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ajN=[0,a(d),ew,11,ew,41,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],akL=[0,a(aO),[0,a("abattement_forfaitaire_d823_17"),0]],ak$=[0,a(d),eo,11,eo,26,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],akM=[0,a(d),eo,11,eo,26,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ala=[0,a(aO),[0,a("loyer_r\xc3\xa9f\xc3\xa9rence"),0]],alg=[0,a(d),l_,11,l_,39,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],alb=[0,a(d),l_,11,l_,39,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],alh=[0,a(aO),[0,a("montant_minimal_aide_d823_16"),0]],an8=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ali=[0,a(d),aw,10,aw,33,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],an9=[0,a(aO),[0,a("plafond_loyer_d823_16_2"),0]],aoC=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],an_=[0,a(d),ci,10,ci,45,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoD=[0,a(aO),[0,a("montant_forfaitaire_charges_d823_16"),0]],aoI=[0,a(d),nF,10,nF,31,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoE=[0,a(d),nF,10,nF,31,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoJ=[0,a(aO),[0,a("loyer_principal_avec_r\xc3\xa9duction_meubl\xc3\xa9"),0]],aoP=[0,a(d),mV,11,mV,38,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoK=[0,a(d),mV,11,mV,38,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoQ=[0,a(aO),[0,a("plafond_suppression_d823_16"),0]],aoW=[0,a(d),oL,11,oL,39,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoR=[0,a(d),oL,11,oL,39,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoX=[0,a(aO),[0,a("plafond_d\xc3\xa9gressivit\xc3\xa9_d823_16"),0]],ao0=[0,a(d),m8,11,m8,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aoY=[0,a(d),m8,11,m8,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ao1=[0,a(aO),[0,a("loyer_\xc3\xa9ligible"),0]],ao8=[0,a(aO),[0,a(kk),0]],apq=[0,a(d),d5,10,d5,32,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ao9=[0,a(d),d5,10,d5,32,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apr=[0,a(aO),[0,a("participation_minimale"),0]],apF=[0,a(d),eC,11,eC,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aps=[0,a(d),eC,11,eC,25,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apG=[0,a(aO),[0,a("rapport_loyers"),0]],apQ=[0,a(aO),[0,a(bF),0]],aqw=[0,a(d),eF,10,eF,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],apR=[0,a(d),eF,10,eF,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqx=[0,a(aO),[0,a("taux_loyer_\xc3\xa9ligible_formule"),0]],aqM=[0,a(aO),[0,a(bG),0]],aq0=[0,a(d),eD,10,eD,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aqN=[0,a(d),eD,10,eD,17,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],aq1=[0,a(aO),[0,a("taux_loyer_\xc3\xa9ligible_arrondi"),0]],aq$=[0,a(aO),[0,a(ka),0]],arc=[0,a(d),or,11,or,39,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ara=[0,a(d),or,11,or,39,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ard=[0,a(aO),[0,a("taux_prise_compte_ressources"),0]],arm=[0,a(aO),[0,a(fi),0]],arr=[0,a(d),nJ,10,nJ,35,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],arn=[0,a(d),nJ,10,nJ,35,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ars=[0,a(aO),[0,a("participation_personnelle"),0]],arx=[0,a(d),hK,10,hK,29,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],art=[0,a(d),hK,10,hK,29,[0,a(K),[0,a(t),[0,a(i),[0,a(e),0]]]]],ary=[0,a(aO),[0,a(eX),0]],arA=a(ib),arz=[0,a(E),oo,13,oo,76,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],arF=[0,a(E),oo,13,oo,76,[0,a(et),[0,a(dz),[0,a(bv),[0,a(bg),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],arC=a(wV),arD=a(os),arB=[0,a(aD),eT,13,eT,63,[0,a(qH),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],arE=[0,a(aD),eT,13,eT,63,[0,a(qH),[0,a(bi),[0,a(ab),[0,a(x),[0,a(_),[0,a(v),0]]]]]]],aim=[7,0],ain=[5,0],aio=[4,0],aip=[3,0],aiq=[2,0],air=[1,0],ais=[0,0],ait=[6,0],aiu=[0,a(b5),29,5,38,6,[0,a(cB),[0,a(lK),[0,a(aW),0]]]],ail=a(wh),aiv=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],aii=[8,0],aij=[0,a(b5),47,5,49,6,[0,a(cB),[0,a(lK),[0,a(aW),0]]]],aih=a(w$),aik=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ah9=[7,0],ah_=[5,0],ah$=[4,0],aia=[3,0],aib=[2,0],aic=[1,0],aid=[0,0],aie=[6,0],aif=[0,a(b5),68,5,77,6,[0,a(cB),[0,a(nB),[0,a(aW),0]]]],ah8=a(Ad),aig=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ah5=[8,0],ah6=[0,a(b5),86,5,88,6,[0,a(cB),[0,a(nB),[0,a(aW),0]]]],ah4=a(uK),ah7=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ahU=[7,0],ahV=[5,0],ahW=[4,0],ahX=[3,0],ahY=[2,0],ahZ=[1,0],ah0=[0,0],ah1=[6,0],ah2=[0,a(b5),dw,5,bk,6,[0,a(cB),[0,a(lM),[0,a(aW),0]]]],ahT=a(AP),ah3=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ahQ=[8,0],ahR=[0,a(b5),cp,5,cA,6,[0,a(cB),[0,a(lM),[0,a(aW),0]]]],ahP=a(DF),ahS=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ahF=[7,0],ahG=[5,0],ahH=[4,0],ahI=[3,0],ahJ=[2,0],ahK=[1,0],ahL=[0,0],ahM=[6,0],ahN=[0,a(b5),eW,5,fH,6,[0,a(cB),[0,a(m_),[0,a(aW),0]]]],ahE=a(A1),ahO=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ahB=[8,0],ahC=[0,a(b5),qI,5,nG,6,[0,a(cB),[0,a(m_),[0,a(aW),0]]]],ahA=a(wu),ahD=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ahq=[7,0],ahr=[5,0],ahs=[4,0],aht=[3,0],ahu=[2,0],ahv=[1,0],ahw=[0,0],ahx=[6,0],ahy=[0,a(b5),m1,5,iE,6,[0,a(m$),[0,a(my),[0,a(aW),0]]]],ahp=a(za),ahz=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ahm=[8,0],ahn=[0,a(b5),wy,5,x8,6,[0,a(m$),[0,a(my),[0,a(aW),0]]]],ahl=a(DE),aho=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],aiw=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],ahk=[0,a(b5),11,10,11,22,[0,a(C),[0,a(aW),0]]],aix=[0,a(hl),[0,a(zw),0]],ahg=[0,a(eK),28,5,29,34,[0,a(BH),[0,a(cd),0]]],ahf=a(xb),ahh=[0,a(eK),6,10,6,17,[0,a(cd),0]],ahd=[0,a(eK),48,5,49,34,[0,a(z8),[0,a(cd),0]]],ahc=a(wS),ahe=[0,a(eK),6,10,6,17,[0,a(cd),0]],aha=[0,a(eK),64,5,65,34,[0,a(Bt),[0,a(cd),0]]],ag$=a(Bf),ahb=[0,a(eK),6,10,6,17,[0,a(cd),0]],ag9=[0,a(eK),82,5,83,34,[0,a(wo),[0,a(cd),0]]],ag8=a(A$),ag_=[0,a(eK),6,10,6,17,[0,a(cd),0]],ahi=[0,a(eK),6,10,6,17,[0,a(cd),0]],ag7=[0,a(eK),6,10,6,17,[0,a(cd),0]],ahj=[0,a(f4),[0,a(bN),0]],ag2=[0,a(E),v1,14,v1,28,[0,a(kG),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],ag1=a(o),ag3=[0,a(d),f1,10,f1,24,[0,a(cg),[0,a(z),[0,a(e),0]]]],ag0=[0,a(E),DG,14,DG,28,[0,a(kA),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agZ=a(o),ag4=[0,a(d),f1,10,f1,24,[0,a(cg),[0,a(z),[0,a(e),0]]]],agU=[0,a(E),Ck,20,Ck,55,[0,a(kA),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agR=a(o),agS=a(o),agT=a(kz),agV=[0,a(d),dH,11,dH,43,[0,a(cg),[0,a(z),[0,a(e),0]]]],agP=[0,a(E),yp,20,yp,51,[0,a(kA),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agM=a(o),agN=a(o),agO=a(kz),agQ=[0,a(d),dH,11,dH,43,[0,a(cg),[0,a(z),[0,a(e),0]]]],agK=[0,a(E),Db,7,Db,42,[0,a(kG),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agG=a(BU),agH=a(em),agI=a(kz),agJ=a(o),agL=[0,a(d),dH,11,dH,43,[0,a(cg),[0,a(z),[0,a(e),0]]]],agE=[0,a(E),Ay,7,Ay,51,[0,a(kG),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agA=a(BU),agB=a(em),agC=a(kz),agD=a(o),agF=[0,a(d),dH,11,dH,43,[0,a(cg),[0,a(z),[0,a(e),0]]]],agv=[0,a(E),Bb,14,Bb,36,[0,a(kA),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agw=[0,a(d),fG,11,fG,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agt=[0,a(E),vS,14,vS,36,[0,a(kG),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],ags=a(cI),agu=[0,a(d),fG,11,fG,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agm=[0,a(E),A3,14,A3,36,[0,a(kG),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agn=[0,a(d),fI,11,fI,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agl=[0,a(E),CO,14,CO,36,[0,a(kA),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],ago=[0,a(d),fI,11,fI,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agh=[0,a(E),Aw,14,Aw,36,[0,a("Article R824-3"),[0,a(d7),[0,a(d$),[0,a(ad),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],agc=[0,0],agd=[1,0],age=[1,0],agf=[0,0],agg=[0,0],agi=[0,a(d),kv,11,kv,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agb=[0,a(d),kv,11,kv,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agj=[0,a(ky),[0,a("mode_occupation_impay\xc3\xa9"),0]],agp=[0,a(d),fI,11,fI,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agk=[0,a(d),fI,11,fI,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agq=[0,a(ky),[0,a("d\xc3\xa9pense_logement_brute"),0]],agx=[0,a(d),fG,11,fG,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agr=[0,a(d),fG,11,fG,33,[0,a(cg),[0,a(z),[0,a(e),0]]]],agy=[0,a(ky),[0,a("d\xc3\xa9pense_logement_nette"),0]],agW=[0,a(d),dH,11,dH,43,[0,a(cg),[0,a(z),[0,a(e),0]]]],agz=[0,a(d),dH,11,dH,43,[0,a(cg),[0,a(z),[0,a(e),0]]]],agX=[0,a(ky),[0,a("seuil_impay\xc3\xa9_d\xc3\xa9pense_de_logement"),0]],ag5=[0,a(d),f1,10,f1,24,[0,a(cg),[0,a(z),[0,a(e),0]]]],agY=[0,a(d),f1,10,f1,24,[0,a(cg),[0,a(z),[0,a(e),0]]]],ag6=[0,a(ky),[0,a("montant_impay\xc3\xa9"),0]],af8=[0,a(c6),kt,5,kt,43,[0,a(kf),[0,a(j1),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(i4),[0,a(_),[0,a(aa),0]]]]]]]]]],af9=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],af6=[0,a(c6),ex,5,ex,42,[0,a(kx),[0,a(km),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(j2),[0,a(a8),[0,a(aa),0]]]]]]]]]],af7=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],af4=[0,a(c6),266,5,qw,43,[0,a(kx),[0,a(km),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(j2),[0,a(a8),[0,a(aa),0]]]]]]]]]],af5=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],af1=a("1952"),af2=[0,a(c6),wP,5,wP,48,[0,a(kx),[0,a(km),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(j2),[0,a(a8),[0,a(aa),0]]]]]]]]]],af3=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],afY=a("1953"),afZ=[0,a(c6),m7,5,m7,48,[0,a(kx),[0,a(km),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(j2),[0,a(a8),[0,a(aa),0]]]]]]]]]],af0=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],afV=a("1954"),afW=[0,a(c6),dL,5,dL,48,[0,a(kx),[0,a(km),[0,a(eu),[0,a(eR),[0,a(eU),[0,a(en),[0,a(j2),[0,a(a8),[0,a(aa),0]]]]]]]]]],afX=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],af_=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],afU=[0,a(d),cP,10,cP,29,[0,a(fD),[0,a(z),[0,a(e),0]]]],af$=[0,a(ry),[0,a("\xc3\xa2ge_ouverture_droit"),0]],afR=[0,a(E),C3,14,C3,36,[0,a(d1),[0,a(ai),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]],afD=a(o),afE=a(Dh),afF=a(vM),afG=a(w),afH=a(ib),afI=a(V),afJ=a(oi),afK=a($),afL=a(qt),afM=a(ac),afN=a(hQ),afO=a(ac),afP=a(j7),afQ=a(hQ),afS=[0,a(d),nT,10,nT,32,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],afC=[0,a(d),nT,10,nT,32,[0,a(D),[0,a(t),[0,a(i),[0,a(e),0]]]]],afT=[0,a(kj),[0,a(vx),0]],afy=[0,a(E),DS,5,DS,26,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],afk=a(o),afl=a("1.2"),afm=a("1.5"),afn=a(w),afo=a(ib),afp=a(V),afq=a(oi),afr=a($),afs=a(qt),aft=a(ac),afu=a(hQ),afv=a(ac),afw=a(j7),afx=a(hQ),afz=[0,a(d),hr,10,hr,32,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],afj=[0,a(E),zi,14,zi,36,[0,a(co),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],ae7=a(o),ae8=a(Dh),ae9=a(vM),ae_=a(w),ae$=a(ib),afa=a(V),afb=a(oi),afc=a($),afd=a(qt),afe=a(ac),aff=a(hQ),afg=a(ac),afh=a(j7),afi=a(hQ),afA=[0,a(d),hr,10,hr,32,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ae6=[0,a(d),hr,10,hr,32,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],afB=[0,a(kq),[0,a(C6),0]],ae2=[0,a(E),Dd,5,Dd,26,[0,a(rk),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],ae1=a(b1),aeZ=a(cI),ae0=a(b1),ae3=[0,a(d),iC,10,iC,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aeY=[0,a(E),BX,14,BX,21,[0,a(rk),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aeX=a(b1),aeV=a(cI),aeW=a(b1),aeR=[0,a(E),El,14,El,50,[0,a(rk),[0,a(a5),[0,a(aj),[0,a(ah),[0,a(ab),[0,a(x),[0,a(F),[0,a(v),0]]]]]]]]],aeQ=[1,0],aeL=[0,a(P),Dz,5,Dz,26,[0,a(sf),[0,a(fe),[0,a(L),0]]]],aew=a("0.328"),aex=a(xq),aey=[1,0],aez=a(vB),aeA=a(C0),aeB=a(xq),aeC=a(uX),aeD=a(yw),aeE=a(C0),aeF=a("0.024"),aeG=a(vU),aeH=a(yw),aeI=a(b1),aeJ=a(o),aeK=a(vU),aeM=[0,a(d),gA,11,gA,35,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aev=[0,a(P),wb,14,wb,38,[0,a(sf),[0,a(fe),[0,a(L),0]]]],aed=a("0.48"),aee=a(wT),aef=[1,0],aeg=a(sb),aeh=a(yC),aei=a(wT),aej=a("0.264"),aek=a(xS),ael=a(yC),aem=a("0.216"),aen=a(Do),aeo=a(xS),aep=a("0.104"),aeq=a(xQ),aer=a(Do),aes=a(BO),aet=a(o),aeu=a(xQ),ad$=[0,a(P),vW,14,vW,41,[0,a(sf),[0,a(fe),[0,a(L),0]]]],ad9=a("7632"),ad_=a("4557"),aea=[0,a(d),lV,11,lV,38,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ad8=[0,a(d),lV,11,lV,38,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aeb=[0,a(dG),[0,a("montant_forfaitaire_d832_26"),0]],aeN=[0,a(d),gA,11,gA,35,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aec=[0,a(d),gA,11,gA,35,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aeO=[0,a(dG),[0,a("tranches_revenus_d832_26"),0]],aeS=[0,a(d),no,11,no,47,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aeP=[0,a(d),no,11,no,47,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aeT=[0,a(dG),[0,a("tranches_revenus_d832_26_multipli\xc3\xa9es"),0]],ae4=[0,a(d),iC,10,iC,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],aeU=[0,a(d),iC,10,iC,17,[0,a(N),[0,a(t),[0,a(i),[0,a(e),0]]]]],ae5=[0,a(dG),[0,a(bN),0]],ad4=[0,a(fA),es,5,es,35,[0,a(cF),[0,a(rd),[0,a(sd),0]]]],ad5=[0,a(d),nV,10,nV,17,[0,a(fJ),[0,a(i),[0,a(e),0]]]],ad3=[0,a(d),nV,10,nV,17,[0,a(fJ),[0,a(i),[0,a(e),0]]]],ad0=[0,a(fA),m3,39,m3,69,[0,a(ni),[0,a(rd),[0,a(sd),0]]]],adZ=a(lN),adU=[0,a(c6),37,9,37,20,[0,a("Article L136-1-3"),[0,a("Section 1 : De la contribution sociale sur les revenus d'activit\xc3\xa9 et sur les revenus de remplacement"),[0,a("Chapitre 6 : Contribution sociale g\xc3\xa9n\xc3\xa9ralis\xc3\xa9e"),[0,a(i4),[0,a(_),[0,a(aa),0]]]]]]],adV=[0,a(d),fY,11,fY,22,[0,a(fJ),[0,a(i),[0,a(e),0]]]],adT=[0,a(d),fY,11,fY,22,[0,a(fJ),[0,a(i),[0,a(e),0]]]],adW=[0,a(d),fY,11,fY,22,[0,a(fJ),[0,a(i),[0,a(e),0]]]],adS=[0,a(d),fY,11,fY,22,[0,a(fJ),[0,a(i),[0,a(e),0]]]],adX=[0,a(bj),[0,a("exon\xc3\xa9r\xc3\xa9_csg"),0]],ad1=[0,a(d),mY,11,mY,20,[0,a(fJ),[0,a(i),[0,a(e),0]]]],adY=[0,a(d),mY,11,mY,20,[0,a(fJ),[0,a(i),[0,a(e),0]]]],ad2=[0,a(bj),[0,a("taux_crds"),0]],ad6=[0,a(bj),[0,a(bN),0]],ad7=[0,a(fA),cA,13,cA,24,[0,a(cF),[0,a(rd),[0,a(sd),0]]]],adK=a("enfant_\xc3\xa0_na\xc3\xaetre_apr\xc3\xa8s_quatri\xc3\xa8me_mois_grossesse"),adL=a("condition_rattach\xc3\xa9_foyer_fiscal_parent_ifi"),adM=a("situation_familiale"),adN=a("nombre_autres_occupants_logement"),adO=a("personnes_\xc3\xa0_charge"),adP=a("logement"),adQ=a("prestations_re\xc3\xa7ues"),adR=[0,a("M\xc3\xa9nage"),0],adA=a("zone"),adB=a("surface_m_carr\xc3\xa9s"),adC=a("logement_decent_l89_462"),adD=a("usufruit"),adE=a("lou\xc3\xa9_ou_sous_lou\xc3\xa9_\xc3\xa0_des_tiers"),adF=a("propri\xc3\xa9taire"),adG=a("mode_occupation"),adH=a("est_ehpad_ou_maison_autonomie_l313_12_asf"),adI=a("r\xc3\xa9sidence_principale"),adJ=[0,a("Logement"),0],adu=a(yE),adw=a("R\xc3\xa9sidentLogementFoyer"),adx=a("AccessionPropri\xc3\xa9t\xc3\xa9LocalUsageExclusifHabitation"),ady=a(Cu),adz=a(xj),adv=[0,a("ModeOccupation"),0],adq=a(E0),ads=a("AccessionPropri\xc3\xa9t\xc3\xa9"),adt=a(xp),adr=[0,a("Cat\xc3\xa9gorieCalculAPL"),0],adh=a("changement_logement_d842_4"),adi=a("logement_meubl\xc3\xa9_d842_2"),adj=a("\xc3\xa2g\xc3\xa9es_ou_handicap_adultes_h\xc3\xa9berg\xc3\xa9es_on\xc3\xa9reux_particuliers"),adk=a("colocation"),adl=a("logement_est_chambre"),adm=a("b\xc3\xa9n\xc3\xa9ficiaire_aide_adulte_ou_enfant_handicap\xc3\xa9s"),adn=a("loyer_principal"),ado=a("bailleur"),adp=[0,a(E0),0],adc=a("personne_h\xc3\xa9berg\xc3\xa9e_centre_soin_l_L162_22_3_s\xc3\xa9curit\xc3\xa9_sociale"),add=a("patrimoine"),ade=a("nationalit\xc3\xa9"),adf=a(AN),adg=[0,a(qn),0],ac$=a(C8),adb=a(B8),ada=[0,a("Personne\xc3\x80Charge"),0],acZ=a("pr\xc3\xaat"),ac0=a("anciennet\xc3\xa9_logement"),ac1=a("situation_r822_11_13_17"),ac2=a("copropri\xc3\xa9t\xc3\xa9"),ac3=a("local_habit\xc3\xa9_premi\xc3\xa8re_fois_b\xc3\xa9n\xc3\xa9ficiaire"),ac4=a("type_travaux_logement_r842_5"),ac5=a("type_travaux_logement_d832_15"),ac6=a("date_entr\xc3\xa9e_logement"),ac7=a("charges_mensuelles_pr\xc3\xaat"),ac8=a("mensualit\xc3\xa9_principale"),ac9=a("logement_situ\xc3\xa9_commune_d\xc3\xa9s\xc3\xa9quilibre_l831_2"),ac_=[0,a("Propri\xc3\xa9taire"),0],acW=a(Af),acY=a(y2),acX=[0,a("ChangementLogementD842_4"),0],acT=a("Fran\xc3\xa7aise"),acV=a("\xc3\x89trang\xc3\xa8re"),acU=[0,a("Nationalit\xc3\xa9"),0],acQ=a(kH),acS=a(oU),acR=[0,a("Lou\xc3\xa9OuSousLou\xc3\xa9\xc3\x80DesTiers"),0],acM=a(B$),acO=a("BailleurPriv\xc3\xa9AvecConventionnementSocial"),acP=a("BailleurPriv\xc3\xa9"),acN=[0,a("TypeBailleur"),0],acE=a("situation_garde_altern\xc3\xa9e"),acF=a(rs),acG=a(qT),acH=a(qS),acI=a(qN),acJ=a(qy),acK=a(rl),acL=[0,a(C8),0],acw=a(qy),acx=a(qN),acy=a(D2),acz=a(qS),acA=a(qT),acB=a(rs),acC=a(rl),acD=[0,a("EnfantPrestationsFamiliales"),0],aco=a("cat\xc3\xa9gorie_\xc3\xa9quivalence_loyer_d842_16"),acp=a("redevance"),acq=a("construit_application_loi_1957_12_III"),acr=a("date_conventionnement"),acs=a(Ej),act=a("remplit_conditions_r832_21"),acu=a("type"),acv=[0,a(xp),0],acg=a("titulaire_allocation_personne_\xc3\xa2g\xc3\xa9e"),ach=a("b\xc3\xa9n\xc3\xa9ficiaire_l161_19_l351_8_l643_3_s\xc3\xa9cu"),aci=a("incapacit\xc3\xa9_80_pourcent_ou_restriction_emploi"),acj=a("parent\xc3\xa9"),ack=a("ascendant_descendant_collat\xc3\xa9ral_deuxi\xc3\xa8me_troisi\xc3\xa8me_degr\xc3\xa9"),acl=a("ressources"),acm=a(AN),acn=[0,a(B8),0],acc=a(uH),acd=a(uW),ace=a(DL),acf=[0,a("TrancheRevenuD\xc3\xa9cimal"),0],ab9=a(uH),ab_=a(uW),ab$=a(DL),aca=[0,a("TrancheRevenu"),0],ab5=a(z2),ab7=a(Cj),ab6=[0,a("NeufOuAncien"),0],ab1=a("titulaire_pr\xc3\xaat"),ab2=a("date_signature"),ab3=a("type_pr\xc3\xaat"),ab4=[0,a("Pr\xc3\xaat"),0],abY=a("ancienne_allocation_logement"),abZ=a("ancien_loyer_principal"),ab0=[0,a("InfosChangementLogementD842_4"),0],abV=a(bC),abW=a(eX),abX=[0,a("Traitement_formule_aide_finale"),0],abT=a("satisfait_conditions_l512_2_code_s\xc3\xa9curit\xc3\xa9_sociale"),abU=[0,a("Conditions\xc3\x89trangers"),0],abQ=a("ne_produisant_pas_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),abR=a("produisant_revenu_p\xc3\xa9riode_r822_3_3_r822_4"),abS=[0,a("Patrimoine"),0],abN=a("conforme_article_l442_1"),abO=a("date_naissance_personne_sous_location"),abP=[0,a("PersonneSousLocation"),0],abL=a("conventionn\xc3\xa9_livre_III_titre_II_chap_I_sec_3"),abM=[0,a("ConventionANHA"),0],abI=a("r\xc3\xa9duction_loyer_solidarit\xc3\xa9_per\xc3\xa7ue"),abJ=a(Ej),abK=[0,a("ConventionBailleurSocial"),0],abz=a(oa),abB=a(R),abC=a(qL),abD=a(nK),abE=a(CX),abF=a(iR),abG=a(A9),abH=a(yo),abA=[0,a(ET),0],abu=a(kl),abw=a(j$),abx=a(Bz),abv=[0,a(B_),0],abo=a(As),abq=a(C_),abr=a(jZ),abs=a(Es),abt=a(ya),abp=[0,a("PriseEnChargeEnfant"),0],abe=a(mk),abg=a(ol),abh=a(lZ),abi=a(CC),abj=a(yk),abk=a(oW),abl=a(Ce),abm=a(nb),abn=a(oy),abf=[0,a(Ba),0],abb=a(DX),abd=a(zQ),abc=[0,a("SituationFamilialeCalculAPL"),0],aa8=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUS"),aa_=a("\xc3\x89tudiantLog\xc3\xa9EnChambreCROUSR\xc3\xa9habilit\xc3\xa9e"),aa$=a("Personnes\xc3\x82g\xc3\xa9esSelon3DeD842_16"),aba=a(DV),aa9=[0,a("Cat\xc3\xa9gorie\xc3\x89quivalenceLoyerAllocationLogementFoyer"),0],aa3=a("LogementPersonnes\xc3\x82g\xc3\xa9esOuHandicap\xc3\xa9es"),aa5=a("R\xc3\xa9sidenceSociale"),aa6=a("FoyerJeunesTrvailleursOuMigrantsConventionn\xc3\xa9L353_2Avant1995"),aa7=a(ig),aa4=[0,a("TypeLogementFoyer"),0],aaW=a("C\xc3\xa9libataire"),aaY=a("Mari\xc3\xa9s"),aaZ=a("Pacs\xc3\xa9s"),aa0=a(yl),aa1=a("C\xc3\xa9libataireS\xc3\xa9par\xc3\xa9DeFait"),aa2=a("ConcubinageDontS\xc3\xa9par\xc3\xa9DeFait"),aaX=[0,a("SituationFamiliale"),0],aaS=a("AidePersonnalis\xc3\xa9eLogement"),aaU=a(oK),aaV=a(na),aaT=[0,a("TypeAidesPersonnelleLogement"),0],aaO=a("Pas\xc3\x89ligible"),aaQ=a(oK),aaR=a(na),aaP=[0,a("Type\xc3\x89ligibilit\xc3\xa9AllocationLogement"),0],aaL=a("Impay\xc3\xa9Loyer"),aaN=a("Impay\xc3\xa9Pr\xc3\xaat"),aaM=[0,a("ModeOccupationImpay\xc3\xa9"),0],aaG=a("TotalAnnuel\xc3\x89ch\xc3\xa9ances"),aaI=a("Mensualit\xc3\xa9"),aaJ=a(Ew),aaH=[0,a("D\xc3\xa9penseLogement"),0],aaC=a(yD),aaE=a(vz),aaF=a(yd),aaD=[0,a("ZoneDHabitation"),0],aay=a(AD),aaA=a(Av),aaB=a("Collat\xc3\xa9ralDeuxi\xc3\xa8meTroisi\xc3\xa8meDegr\xc3\xa9"),aaz=[0,a("Parent\xc3\xa9"),0],aav=a("PasDeGardeAltern\xc3\xa9e"),aax=a("GardeAltern\xc3\xa9eCoefficientPriseEnCharge"),aaw=[0,a("SituationGardeAltern\xc3\xa9e"),0],aas=a("DemandeurOuConjointOuParentOuViaPartsSoci\xc3\xa9t\xc3\xa9s"),aau=a(ig),aat=[0,a("ParentOuAutre"),0],aal=a(R),aan=a(qL),aao=a(B7),aap=a(iR),aaq=a("AllocationSoutienEnfantHandicap\xc3\xa9"),aar=a("AllocationAdulteHandicap\xc3\xa9"),aam=[0,a("PrestationRe\xc3\xa7ue"),0],aah=a(Dt),aaj=a(vs),aai=[0,a("LimiteTrancheD\xc3\xa9cimal"),0],aae=a(Dt),aag=a(vs),aaf=[0,a("LimiteTranche"),0],aab=a(oU),aad=a(kH),aac=[0,a("Am\xc3\xa9lior\xc3\xa9ParOccupant"),0],$8=a("ObjectifD\xc3\xa9cenceLogement"),$_=a("Pr\xc3\xa9vuDansListeR321_15"),$$=a(BE),aaa=a(oj),$9=[0,a("TypeTravauxLogementR842_5"),0],$4=a(wJ),$6=a("TravauxSurLogementD\xc3\xa9j\xc3\xa0AcquisD832_15_2"),$7=a(oj),$5=[0,a("TypeTravauxLogementD832_15"),0],$1=a(qn),$3=a(w5),$2=[0,a("TitulairePr\xc3\xaat"),0],$V=a(AT),$X=a(w3),$Y=a(zy),$Z=a(zI),$0=a(ig),$W=[0,a("TypePr\xc3\xaat"),0],bsR=a(Y),bsr=a("The function 'n_nombre_parts_d832_25_in' translation isn't yet supported..."),bss=a("The function 'condition_2_du_832_25_in' translation isn't yet supported..."),bsp=a("The function 'condition_logement_surface_in' translation isn't yet supported..."),bsq=a("The function 'condition_logement_residence_principale_in' translation isn't yet supported..."),bsj=a("AccessionProprieteLocalUsageExclusifHabitation"),bsk=a(yE),bsl=a(xj),bsm=a("ResidentLogementFoyer"),bsn=a(Cu),bso=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'ModeOccupation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ModeOccupation.t'")],bsg=a("AutrePersonneACharge"),bsh=a("EnfantACharge"),bsi=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'PersonneACharge.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PersonneACharge.t'")],bsc=a(Af),bsd=a(y2),bsf=[1,0],bse=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'ChangementLogementD8424.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ChangementLogementD8424.t'")],br_=a("Etrangere"),br$=a("Francaise"),bsb=[0,0],bsa=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'Nationalite.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Nationalite.t'")],br6=a(kH),br7=a(oU),br9=[0,0],br8=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'LoueOuSousLoueADesTiers.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'LoueOuSousLoueADesTiers.t'")],br1=a("BailleurPrive"),br2=a("BailleurPriveAvecConventionnementSocial"),br3=a(B$),br5=[2,0],br4=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'TypeBailleur.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeBailleur.t'")],brX=a("MoinsDeTroisEnfants"),brY=a("PlusDeTroisEnfants"),br0=[0,0],brZ=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateNaissanceTroisiemeOuDernierPlusEnfant.t'")],brT=a(Cj),brU=a(z2),brW=[0,0],brV=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'NeufOuAncien.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'NeufOuAncien.t'")],brC=a(vo),brD=a(xC),brE=a(nK),brF=a(DC),brG=a(iR),brH=a(R),brI=a(qm),brJ=a(oa),brL=[0,0],brM=[2,0],brN=[1,0],brO=[5,0],brP=[6,0],brQ=[3,0],brR=[7,0],brS=[4,0],brK=[0,[11,a(bf),[2,0,[11,a(C$),0]]],a(EU)],brv=a(rR),brw=a(kl),brx=a(j$),brz=[1,0],brA=[0,0],brB=[2,0],bry=[0,[11,a(bf),[2,0,[11,a(xu),0]]],a(vY)],brk=a(jZ),brl=a(q0),brm=a(qG),brn=a(ri),bro=a(qD),brq=[4,0],brr=[3,0],brs=[0,0],brt=[1,0],bru=[2,0],brp=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'PriseEnChargeEnfant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PriseEnChargeEnfant.t'")],bq3=a(mk),bq4=a(ol),bq5=a(vT),bq6=a(lZ),bq7=a(oy),bq8=a(Em),bq9=a(wL),bq_=a(oW),bq$=a(nb),brb=[7,0],brc=[5,0],brd=[4,0],bre=[6,0],brf=[8,0],brg=[2,0],brh=[3,0],bri=[1,0],brj=[0,0],bra=[0,[11,a(bf),[2,0,[11,a(A5),0]]],a(wj)],bqY=a(zQ),bqZ=a(DX),bq1=[0,0],bq2=[1,0],bq0=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'SituationFamilialeCalculAPL.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamilialeCalculAPL.t'")],bqP=a(DV),bqQ=a("EtudiantLogeEnChambreCROUS"),bqR=a("EtudiantLogeEnChambreCROUSRehabilitee"),bqS=a("PersonnesAgeesSelon3DeD842_16"),bqU=[2,0],bqV=[1,0],bqW=[0,0],bqX=[3,0],bqT=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'CategorieEquivalenceLoyerAllocationLogementFoyer.t'")],bqG=a(ig),bqH=a("FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995"),bqI=a("LogementPersonnesAgeesOuHandicapees"),bqJ=a("ResidenceSociale"),bqL=[1,0],bqM=[0,0],bqN=[2,0],bqO=[3,0],bqK=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'TypeLogementFoyer.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeLogementFoyer.t'")],bqu=a("Celibataire"),bqv=a("CelibataireSepareDeFait"),bqw=a("ConcubinageDontSepareDeFait"),bqx=a(yl),bqy=a("Maries"),bqz=a("Pacses"),bqB=[2,0],bqC=[3,0],bqD=[5,0],bqE=[4,0],bqF=[0,0],bqA=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'SituationFamiliale.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationFamiliale.t'")],bqn=a("AidePersonnaliseeLogement"),bqo=a(oK),bqp=a(na),bqr=[2,0],bqs=[1,0],bqt=[0,0],bqq=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'TypeAidesPersonnelleLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeAidesPersonnelleLogement.t'")],bqj=a(Ew),bqk=a("Mensualite"),bql=a("TotalAnnuelEcheances"),bqm=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'DepenseLogement.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DepenseLogement.t'")],bqc=a("Bailleur"),bqd=a("Beneficiaire"),bqe=a("EtablissementHabilite"),bqg=[2,0],bqh=[1,0],bqi=[0,0],bqf=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'VersementA.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'VersementA.t'")],bp_=a(kH),bp$=a("OuiAvecLoyerOuCharges"),bqb=[1,0],bqa=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PaiementLogementDistinctProfessionnel.t'")],bp3=a(yD),bp4=a(vz),bp5=a(yd),bp7=[2,0],bp8=[1,0],bp9=[0,0],bp6=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'ZoneDHabitation.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ZoneDHabitation.t'")],bpX=a("ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse"),bpY=a("AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse"),bpZ=a("DateDeNaissance"),bp1=[1,0],bp2=[2,0],bp0=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'DateDeNaissanceOuMoisDeGrossesse.t'")],bpQ=a(AD),bpR=a("CollateralDeuxiemeTroisiemeDegre"),bpS=a(Av),bpU=[1,0],bpV=[2,0],bpW=[0,0],bpT=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'Parente.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'Parente.t'")],bpM=a("GardeAlterneeCoefficientPriseEnCharge"),bpN=a("PasDeGardeAlternee"),bpP=[0,0],bpO=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'SituationGardeAlternee.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'SituationGardeAlternee.t'")],bpI=a(ig),bpJ=a("DemandeurOuConjointOuParentOuViaPartsSocietes"),bpL=[1,0],bpK=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'ParentOuAutre.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'ParentOuAutre.t'")],bpv=a("AllocationAdulteHandicape"),bpw=a(B7),bpx=a("AllocationSoutienEnfantHandicape"),bpy=a(iR),bpz=a(R),bpA=a(qm),bpC=[1,0],bpD=[0,0],bpE=[3,0],bpF=[4,0],bpG=[2,0],bpH=[5,0],bpB=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'PrestationRecue.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'PrestationRecue.t'")],bpq=a(kH),bpr=a(oU),bpt=[0,0],bpu=[1,0],bps=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'AmelioreParOccupant.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'AmelioreParOccupant.t'")],bph=a(BE),bpi=a("ObjectifDecenceLogement"),bpj=a(oj),bpk=a("PrevuDansListeR321_15"),bpm=[1,0],bpn=[3,0],bpo=[0,0],bpp=[2,0],bpl=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementR8425.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementR8425.t'")],bpa=a(oj),bpb=a(wJ),bpc=a("TravauxSurLogementDejaAcquisD832_15_2"),bpe=[1,0],bpf=[0,0],bpg=[2,0],bpd=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'TypeTravauxLogementD83215.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypeTravauxLogementD83215.t'")],bo7=a(qn),bo8=a(w5),bo_=[1,0],bo$=[0,0],bo9=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'TitulairePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TitulairePret.t'")],boW=a(ig),boX=a(AT),boY=a(zy),boZ=a(w3),bo0=a(zI),bo2=[3,0],bo3=[1,0],bo4=[2,0],bo5=[0,0],bo6=[4,0],bo1=[0,[11,a(bf),[2,0,[11,a("' kind for the enumeration 'TypePret.t'"),0]]],a("Unexpected '%s' kind for the enumeration 'TypePret.t'")],boU=[0,a(Eu),a(y3),a(DU),a(An),a(wQ),a(oP),a(f7),a(Am),a(yv),a(vc),a(CL),a(xY),a(Ax),a(x_),a(Eg),a(Cm),a(AX),a(yY),a(E4),a(Be),a(u2),a(wA),a(Ao),a(uM)],boV=[0,a(f7),a(An),a(Cm),a(AX),a(yY),a(wQ),a(u2),a(DU),a(vc),a(Am),a(E4),a(Ax),a(CL),a(x_),a(Ao),a(y3),a(xY),a(Be),a(uM),a(wA),a(yv),a(Eu),a(Eg),a(oP)],bte=a("AidesLogementLib"),btg=a(Y);function +bJ(a){if(typeof a==="number")return 0;else switch(a[0]){case -0:return[0,bH(a[1])];case -1:return[1,bH(a[1])];case -2:return[2,bH(a[1])];case -3:return[3,bH(a[1])];case -4:return[4,bH(a[1])];case -5:return[5,bH(a[1])];case -6:return[6,bH(a[1])];case -7:return[7,bH(a[1])];case +0:return[0,bJ(a[1])];case +1:return[1,bJ(a[1])];case +2:return[2,bJ(a[1])];case +3:return[3,bJ(a[1])];case +4:return[4,bJ(a[1])];case +5:return[5,bJ(a[1])];case +6:return[6,bJ(a[1])];case +7:return[7,bJ(a[1])];case 8:var -c=a[1];return[8,c,bH(a[2])];case +c=a[1];return[8,c,bJ(a[2])];case 9:var -b=a[1];return[9,b,b,bH(a[3])];case -10:return[10,bH(a[1])];case -11:return[11,bH(a[1])];case -12:return[12,bH(a[1])];case -13:return[13,bH(a[1])];default:return[14,bH(a[1])]}}function -cK(a,b){if(typeof +b=a[1];return[9,b,b,bJ(a[3])];case +10:return[10,bJ(a[1])];case +11:return[11,bJ(a[1])];case +12:return[12,bJ(a[1])];case +13:return[13,bJ(a[1])];default:return[14,bJ(a[1])]}}function +cM(a,b){if(typeof a==="number")return b;else switch(a[0]){case -0:return[0,cK(a[1],b)];case -1:return[1,cK(a[1],b)];case -2:return[2,cK(a[1],b)];case -3:return[3,cK(a[1],b)];case -4:return[4,cK(a[1],b)];case -5:return[5,cK(a[1],b)];case -6:return[6,cK(a[1],b)];case -7:return[7,cK(a[1],b)];case +0:return[0,cM(a[1],b)];case +1:return[1,cM(a[1],b)];case +2:return[2,cM(a[1],b)];case +3:return[3,cM(a[1],b)];case +4:return[4,cM(a[1],b)];case +5:return[5,cM(a[1],b)];case +6:return[6,cM(a[1],b)];case +7:return[7,cM(a[1],b)];case 8:var -c=a[1];return[8,c,cK(a[2],b)];case +c=a[1];return[8,c,cM(a[2],b)];case 9:var -d=a[2],e=a[1];return[9,e,d,cK(a[3],b)];case -10:return[10,cK(a[1],b)];case -11:return[11,cK(a[1],b)];case -12:return[12,cK(a[1],b)];case -13:return[13,cK(a[1],b)];default:return[14,cK(a[1],b)]}}function -bz(a,b){if(typeof +d=a[2],e=a[1];return[9,e,d,cM(a[3],b)];case +10:return[10,cM(a[1],b)];case +11:return[11,cM(a[1],b)];case +12:return[12,cM(a[1],b)];case +13:return[13,cM(a[1],b)];default:return[14,cM(a[1],b)]}}function +bB(a,b){if(typeof a==="number")return b;else switch(a[0]){case -0:return[0,bz(a[1],b)];case -1:return[1,bz(a[1],b)];case +0:return[0,bB(a[1],b)];case +1:return[1,bB(a[1],b)];case 2:var -c=a[1];return[2,c,bz(a[2],b)];case +c=a[1];return[2,c,bB(a[2],b)];case 3:var -d=a[1];return[3,d,bz(a[2],b)];case +d=a[1];return[3,d,bB(a[2],b)];case 4:var -e=a[3],f=a[2],g=a[1];return[4,g,f,e,bz(a[4],b)];case +e=a[3],f=a[2],g=a[1];return[4,g,f,e,bB(a[4],b)];case 5:var -h=a[3],i=a[2],j=a[1];return[5,j,i,h,bz(a[4],b)];case +h=a[3],i=a[2],j=a[1];return[5,j,i,h,bB(a[4],b)];case 6:var -k=a[3],l=a[2],m=a[1];return[6,m,l,k,bz(a[4],b)];case +k=a[3],l=a[2],m=a[1];return[6,m,l,k,bB(a[4],b)];case 7:var -n=a[3],o=a[2],p=a[1];return[7,p,o,n,bz(a[4],b)];case +n=a[3],o=a[2],p=a[1];return[7,p,o,n,bB(a[4],b)];case 8:var -q=a[3],r=a[2],s=a[1];return[8,s,r,q,bz(a[4],b)];case +q=a[3],r=a[2],s=a[1];return[8,s,r,q,bB(a[4],b)];case 9:var -t=a[1];return[9,t,bz(a[2],b)];case -10:return[10,bz(a[1],b)];case +t=a[1];return[9,t,bB(a[2],b)];case +10:return[10,bB(a[1],b)];case 11:var -u=a[1];return[11,u,bz(a[2],b)];case +u=a[1];return[11,u,bB(a[2],b)];case 12:var -v=a[1];return[12,v,bz(a[2],b)];case +v=a[1];return[12,v,bB(a[2],b)];case 13:var -w=a[2],x=a[1];return[13,x,w,bz(a[3],b)];case +w=a[2],x=a[1];return[13,x,w,bB(a[3],b)];case 14:var -y=a[2],z=a[1];return[14,z,y,bz(a[3],b)];case -15:return[15,bz(a[1],b)];case -16:return[16,bz(a[1],b)];case +y=a[2],z=a[1];return[14,z,y,bB(a[3],b)];case +15:return[15,bB(a[1],b)];case +16:return[16,bB(a[1],b)];case 17:var -A=a[1];return[17,A,bz(a[2],b)];case +A=a[1];return[17,A,bB(a[2],b)];case 18:var -B=a[1];return[18,B,bz(a[2],b)];case -19:return[19,bz(a[1],b)];case +B=a[1];return[18,B,bB(a[2],b)];case +19:return[19,bB(a[1],b)];case 20:var -C=a[2],D=a[1];return[20,D,C,bz(a[3],b)];case +C=a[2],D=a[1];return[20,D,C,bB(a[3],b)];case 21:var -E=a[1];return[21,E,bz(a[2],b)];case -22:return[22,bz(a[1],b)];case +E=a[1];return[21,E,bB(a[2],b)];case +22:return[22,bB(a[1],b)];case 23:var -F=a[1];return[23,F,bz(a[2],b)];default:var -G=a[2],H=a[1];return[24,H,G,bz(a[3],b)]}}function -o$(a,c,b){return a[1]===c?(a[1]=b,1):0}function -aC(a){throw[0,kX,a]}function -bU(a){throw[0,sz,a]}var -sA=[bc,FU,cW(0)];function -sF(b,a){return Fw(b,a)?b:a}function -ga(a){return 0<=a?a:-a|0}var -sG=js(FW),sH=js(FX),FV=rX,FZ=js(FY);function -bM(d,c){var -a=aE(d),e=aE(c),b=bT(a+e|0);ea(d,0,b,0,a);ea(c,0,b,a,e);return cI(b)}function -F0(a){return a?F1:F2}bt0(0);var -F5=FB(1),ed=FB(2);function -F6(b){function +F=a[1];return[23,F,bB(a[2],b)];default:var +G=a[2],H=a[1];return[24,H,G,bB(a[3],b)]}}function +pb(a,c,b){return a[1]===c?(a[1]=b,1):0}function +aE(a){throw[0,kZ,a]}function +bW(a){throw[0,sC,a]}var +sD=[be,FX,cY(0)];function +sI(b,a){return Fz(b,a)?b:a}function +gc(a){return 0<=a?a:-a|0}var +sJ=ju(FZ),sK=ju(F0),FY=r0,F2=ju(F1);function +bP(d,c){var +a=aG(d),e=aG(c),b=bV(a+e|0);ec(d,0,b,0,a);ec(c,0,b,a,e);return cK(b)}function +F3(a){return a?F4:F5}bt4(0);var +F8=FE(1),ef=FE(2);function +F9(b){function a(b){var a=b;for(;;){if(a){var -c=a[2],d=a[1];try{gQ(d)}catch(a){a=o(a);if(a[1]!==sD)throw a;var +c=a[2],d=a[1];try{gS(d)}catch(a){a=p(a);if(a[1]!==sG)throw a;var e=a}var -a=c;continue}return 0}}return a(bt1(0))}function -jx(b,a){return so(b,a,0,aE(a))}function -sI(a){jx(ed,a);FC(ed,10);return gQ(ed)}var -pc=[0,F6];function -F8(c){for(;;){var -a=pc[1],d=[0,1],b=1-o$(pc,a,function(a,b){return function(d){if(o$(a,1,0))q(c,0);return q(b,0)}}(d,a));if(b)continue;return b}}function -pd(a){return q(pc[1],0)}sr(a(uB),pd);var -pe=buc(0),fn=(4*pe|0)-1|0,F_=[bc,F9,cW(0)];function -F$(a){throw F_}function -Ga(a){var -c=a[1];a[1]=F$;try{var -b=q(c,0);bt5(a,b);return b}catch(b){b=o(b);a[1]=function(a){throw b};throw b}}function -pf(b,c,g){var -a=q(c,0);if(a){var -d=a[2],e=a[1],f=function(a){return pf(b,d,a)};return[0,q(b,e),f]}return 0}function -sJ(d,c){var +a=c;continue}return 0}}return a(bt5(0))}function +jz(b,a){return sr(b,a,0,aG(a))}function +sL(a){jz(ef,a);FF(ef,10);return gS(ef)}var +pe=[0,F9];function +F$(c){for(;;){var +a=pe[1],d=[0,1],b=1-pb(pe,a,function(a,b){return function(d){if(pb(a,1,0))r(c,0);return r(b,0)}}(d,a));if(b)continue;return b}}function +pf(a){return r(pe[1],0)}su(a(uE),pf);var +pg=bug(0),fp=(4*pg|0)-1|0,Gb=[be,Ga,cY(0)];function +Gc(a){throw Gb}function +Gd(a){var +c=a[1];a[1]=Gc;try{var +b=r(c,0);bt9(a,b);return b}catch(b){b=p(b);a[1]=function(a){throw b};throw b}}function +ph(b,c,g){var +a=r(c,0);if(a){var +d=a[2],e=a[1],f=function(a){return ph(b,d,a)};return[0,r(b,e),f]}return 0}function +sM(d,c){var b=c;for(;;){var -a=q(b,0);if(a){var -e=a[2];q(d,a[1]);var +a=r(b,0);if(a){var +e=a[2];r(d,a[1]);var b=e;continue}return 0}}function -sK(a){if(0<=a&&!(mK>>0))e=1}else +f=0;if(1>>0))e=1}else if(65<=d)e=1}else{var -f=0;if(32!==d)if(43<=d)switch(d+zY|0){case +f=0;if(32!==d)if(43<=d)switch(d+z1|0){case 5:if(a<(c+2|0)&&1>>0){if(33>>0)p=1}else +n=dY(k,j)+zO|0,p=0;if(59>>0){if(33>>0)p=1}else if(2===n)p=1;if(!p){var j=j+1|0;continue}var -e=fm(k),a=[0,0],t=dl(e)-1|0,y=0;if(!(t<0)){var +e=fo(k),a=[0,0],t=dn(e)-1|0,y=0;if(!(t<0)){var i=y;for(;;){var -f=kN(e,i),g=0;if(32<=f){var +f=kP(e,i),g=0;if(32<=f){var l=f-34|0,q=0;if(58>>0){if(93<=l)q=1}else if(56>>0){g=1;q=1}if(!q){var m=1;g=2}}else @@ -2124,254 +2124,254 @@ m=4;break;case 1:var m=2;break}a[1]=a[1]+m|0;var B=i+1|0;if(t!==i){var -i=B;continue}break}}if(a[1]===dl(e)){var -r=dl(e),s=bT(r);f7(e,0,s,0,r);var +i=B;continue}break}}if(a[1]===dn(e)){var +r=dn(e),s=bV(r);f9(e,0,s,0,r);var v=s}else{var -b=bT(a[1]);a[1]=0;var -u=dl(e)-1|0,z=0;if(!(u<0)){var +b=bV(a[1]);a[1]=0;var +u=dn(e)-1|0,z=0;if(!(u<0)){var h=z;for(;;){var -c=kN(e,h),d=0;if(35<=c)if(92===c)d=2;else -if(cy<=c)d=1;else +c=kP(e,h),d=0;if(35<=c)if(92===c)d=2;else +if(cA<=c)d=1;else d=3;else if(32<=c)if(34<=c)d=2;else d=3;else if(14<=c)d=1;else switch(c){case -8:bS(b,a[1],92);a[1]++;bS(b,a[1],98);break;case -9:bS(b,a[1],92);a[1]++;bS(b,a[1],bi);break;case -10:bS(b,a[1],92);a[1]++;bS(b,a[1],h8);break;case -13:bS(b,a[1],92);a[1]++;bS(b,a[1],yQ);break;default:d=1}switch(d){case -1:bS(b,a[1],92);a[1]++;bS(b,a[1],48+(c/c3|0)|0);a[1]++;bS(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;bS(b,a[1],48+(c%10|0)|0);break;case -2:bS(b,a[1],92);a[1]++;bS(b,a[1],c);break;case -3:bS(b,a[1],c);break}a[1]++;var +8:bU(b,a[1],92);a[1]++;bU(b,a[1],98);break;case +9:bU(b,a[1],92);a[1]++;bU(b,a[1],bk);break;case +10:bU(b,a[1],92);a[1]++;bU(b,a[1],h_);break;case +13:bU(b,a[1],92);a[1]++;bU(b,a[1],yU);break;default:d=1}switch(d){case +1:bU(b,a[1],92);a[1]++;bU(b,a[1],48+(c/c5|0)|0);a[1]++;bU(b,a[1],48+((c/10|0)%10|0)|0);a[1]++;bU(b,a[1],48+(c%10|0)|0);break;case +2:bU(b,a[1],92);a[1]++;bU(b,a[1],c);break;case +3:bU(b,a[1],c);break}a[1]++;var A=h+1|0;if(u!==h){var h=A;continue}break}}var v=b}var -o=cI(v)}var -w=aE(o),x=gb(w+2|0,34);ea(o,0,x,1,w);return cI(x)}}function -sU(d,f){var -g=ga(f),e=If[1];switch(d[2]){case +o=cK(v)}var +w=aG(o),x=gd(w+2|0,34);ec(o,0,x,1,w);return cK(x)}}function +sX(d,f){var +g=gc(f),e=Ii[1];switch(d[2]){case 0:var -b=BW;break;case +b=BZ;break;case 1:var -b=hv;break;case +b=hx;break;case 2:var b=69;break;case 3:var -b=cH;break;case +b=cJ;break;case 4:var b=71;break;case 5:var b=e;break;case 6:var -b=dH;break;case +b=dJ;break;case 7:var b=72;break;default:var b=70}var -c=sQ(16);gX(c,37);switch(d[1]){case +c=sT(16);gZ(c,37);switch(d[1]){case 0:break;case -1:gX(c,43);break;default:gX(c,32)}if(8<=d[2])gX(c,35);gX(c,46);ct(c,a(W+g));gX(c,b);return sS(c)}function -k4(m,a){if(13<=m){var -g=[0,0],h=aE(a)-1|0,n=0;if(!(h<0)){var -c=n;for(;;){if(!(9>>0))g[1]++;var +1:gZ(c,43);break;default:gZ(c,32)}if(8<=d[2])gZ(c,35);gZ(c,46);cv(c,a(Y+g));gZ(c,b);return sV(c)}function +k6(m,a){if(13<=m){var +g=[0,0],h=aG(a)-1|0,n=0;if(!(h<0)){var +c=n;for(;;){if(!(9>>0))g[1]++;var q=c+1|0;if(h!==c){var c=q;continue}break}}var -i=g[1],j=bT(aE(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){dS(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=aE(a)-1|0,o=0;if(!(l<0)){var +i=g[1],j=bV(aG(a)+((i-1|0)/3|0)|0),k=[0,0],d=function(a){dV(j,k[1],a);k[1]++;return 0},e=[0,((i-1|0)%3|0)+1|0],l=aG(a)-1|0,o=0;if(!(l<0)){var b=o;for(;;){var -f=dV(a,b);if(9>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var +f=dY(a,b);if(9>>0)d(f);else{if(0===e[1]){d(95);e[1]=3}e[1]+=-1;d(f)}var p=b+1|0;if(l!==b){var -b=p;continue}break}}return cI(j)}return a}function -Ig(b,c){switch(b){case -1:var -a=Hs;break;case -2:var -a=Ht;break;case -4:var -a=Hv;break;case -5:var -a=Hw;break;case -6:var -a=Hx;break;case -7:var -a=Hy;break;case -8:var -a=Hz;break;case -9:var -a=HA;break;case -10:var -a=HB;break;case -11:var -a=HC;break;case -0:case -13:var -a=Hr;break;case -3:case -14:var -a=Hu;break;default:var -a=HD}return k4(b,oY(a,c))}function -Ih(b,c){switch(b){case -1:var -a=HS;break;case -2:var -a=HT;break;case -4:var -a=HV;break;case -5:var -a=HW;break;case -6:var -a=HX;break;case -7:var -a=HY;break;case -8:var -a=HZ;break;case -9:var -a=H0;break;case -10:var -a=H1;break;case -11:var -a=H2;break;case -0:case -13:var -a=HR;break;case -3:case -14:var -a=HU;break;default:var -a=H3}return k4(b,oY(a,c))}function -Ii(b,c){switch(b){case -1:var -a=H5;break;case -2:var -a=H6;break;case -4:var -a=H8;break;case -5:var -a=H9;break;case -6:var -a=H_;break;case -7:var -a=H$;break;case -8:var -a=Ia;break;case -9:var -a=Ib;break;case -10:var -a=Ic;break;case -11:var -a=Id;break;case -0:case -13:var -a=H4;break;case -3:case -14:var -a=H7;break;default:var -a=Ie}return k4(b,oY(a,c))}function +b=p;continue}break}}return cK(j)}return a}function Ij(b,c){switch(b){case 1:var -a=HF;break;case +a=Hv;break;case 2:var -a=HG;break;case +a=Hw;break;case 4:var -a=HI;break;case +a=Hy;break;case 5:var -a=HJ;break;case +a=Hz;break;case 6:var -a=HK;break;case +a=HA;break;case 7:var -a=HL;break;case +a=HB;break;case 8:var -a=HM;break;case +a=HC;break;case 9:var -a=HN;break;case +a=HD;break;case 10:var -a=HO;break;case +a=HE;break;case 11:var -a=HP;break;case +a=HF;break;case 0:case 13:var -a=HE;break;case +a=Hu;break;case 3:case 14:var -a=HH;break;default:var -a=HQ}return k4(b,btL(a,c))}function -e2(c,i,b){function +a=Hx;break;default:var +a=HG}return k6(b,o0(a,c))}function +Ik(b,c){switch(b){case +1:var +a=HV;break;case +2:var +a=HW;break;case +4:var +a=HY;break;case +5:var +a=HZ;break;case +6:var +a=H0;break;case +7:var +a=H1;break;case +8:var +a=H2;break;case +9:var +a=H3;break;case +10:var +a=H4;break;case +11:var +a=H5;break;case +0:case +13:var +a=HU;break;case +3:case +14:var +a=HX;break;default:var +a=H6}return k6(b,o0(a,c))}function +Il(b,c){switch(b){case +1:var +a=H8;break;case +2:var +a=H9;break;case +4:var +a=H$;break;case +5:var +a=Ia;break;case +6:var +a=Ib;break;case +7:var +a=Ic;break;case +8:var +a=Id;break;case +9:var +a=Ie;break;case +10:var +a=If;break;case +11:var +a=Ig;break;case +0:case +13:var +a=H7;break;case +3:case +14:var +a=H_;break;default:var +a=Ih}return k6(b,o0(a,c))}function +Im(b,c){switch(b){case +1:var +a=HI;break;case +2:var +a=HJ;break;case +4:var +a=HL;break;case +5:var +a=HM;break;case +6:var +a=HN;break;case +7:var +a=HO;break;case +8:var +a=HP;break;case +9:var +a=HQ;break;case +10:var +a=HR;break;case +11:var +a=HS;break;case +0:case +13:var +a=HH;break;case +3:case +14:var +a=HK;break;default:var +a=HT}return k6(b,btP(a,c))}function +e4(c,i,b){function j(d){switch(c[1]){case 0:var a=45;break;case 1:var a=43;break;default:var -a=32}return btI(b,i,a)}function +a=32}return btM(b,i,a)}function q(c){var -a=oV(b);return 3===a?b<0.?Il:Im:4<=a?In:c}switch(c[2]){case +a=oX(b);return 3===a?b<0.?Io:Ip:4<=a?Iq:c}switch(c[2]){case 5:var -e=sg(sU(c,i),b),d=0,u=aE(e);for(;;){if(d===u)var +e=sj(sX(c,i),b),d=0,u=aG(e);for(;;){if(d===u)var p=0;else{var -k=bu(e,d)-46|0,l=0;if(23>>0){if(55===k)l=1}else +k=bw(e,d)-46|0,l=0;if(23>>0){if(55===k)l=1}else if(21>>0)l=1;if(!l){var d=d+1|0;continue}var p=1}var -v=p?e:bM(e,Ik);return q(v)}case +v=p?e:bP(e,In);return q(v)}case 6:return j(0);case 7:var -h=fm(j(0)),f=dl(h);if(0===f)var +h=fo(j(0)),f=dn(h);if(0===f)var o=h;else{var -m=bT(f),n=f-1|0,r=0;if(!(n<0)){var +m=bV(f),n=f-1|0,r=0;if(!(n<0)){var a=r;for(;;){var -g=kN(h,a),s=25>>0?g:g+zL|0;bS(m,a,s);var +g=kP(h,a),s=25>>0?g:g+zO|0;bU(m,a,s);var t=a+1|0;if(n!==a){var a=t;continue}break}}var -o=m}return cI(o);case -8:return q(j(0));default:return sg(sU(c,i),b)}}function -jT(d,x,w,v){var +o=m}return cK(o);case +8:return q(j(0));default:return sj(sX(c,i),b)}}function +jV(d,x,w,v){var b=x,a=w,c=v;for(;;)if(typeof -c==="number")return q(b,a);else +c==="number")return r(b,a);else switch(c[0]){case 0:var -y=c[1];return function(c){return a8(b,[5,a,c],y)};case +y=c[1];return function(c){return a_(b,[5,a,c],y)};case 1:var z=c[1];return function(c){var e=0;if(40<=c)if(92===c)var -d=Gc;else -if(cy<=c)e=1;else +d=Gf;else +if(cA<=c)e=1;else e=2;else if(32<=c)if(39<=c)var -d=Gd;else +d=Gg;else e=2;else if(14<=c)e=1;else switch(c){case 8:var -d=Ge;break;case +d=Gh;break;case 9:var -d=Gf;break;case +d=Gi;break;case 10:var -d=Gg;break;case +d=Gj;break;case 13:var -d=Gh;break;default:e=1}switch(e){case +d=Gk;break;default:e=1}switch(e){case 1:var -f=bT(4);bS(f,0,92);bS(f,1,48+(c/c3|0)|0);bS(f,2,48+((c/10|0)%10|0)|0);bS(f,3,48+(c%10|0)|0);var -d=cI(f);break;case +f=bV(4);bU(f,0,92);bU(f,1,48+(c/c5|0)|0);bU(f,2,48+((c/10|0)%10|0)|0);bU(f,3,48+(c%10|0)|0);var +d=cK(f);break;case 2:var -g=bT(1);bS(g,0,c);var -d=cI(g);break}var -h=aE(d),i=gb(h+2|0,39);ea(d,0,i,1,h);return a8(b,[4,a,cI(i)],z)};case +g=bV(1);bU(g,0,c);var +d=cK(g);break}var +h=aG(d),i=gd(h+2|0,39);ec(d,0,i,1,h);return a_(b,[4,a,cK(i)],z)};case 2:var -A=c[2],B=c[1];return pp(b,a,A,B,function(a){return a});case -3:return pp(b,a,c[2],c[1],Hq);case -4:return k5(b,a,c[4],c[2],c[3],Ig,c[1]);case -5:return k5(b,a,c[4],c[2],c[3],Ih,c[1]);case -6:return k5(b,a,c[4],c[2],c[3],Ii,c[1]);case -7:return k5(b,a,c[4],c[2],c[3],Ij,c[1]);case +A=c[2],B=c[1];return pr(b,a,A,B,function(a){return a});case +3:return pr(b,a,c[2],c[1],Ht);case +4:return k7(b,a,c[4],c[2],c[3],Ij,c[1]);case +5:return k7(b,a,c[4],c[2],c[3],Ik,c[1]);case +6:return k7(b,a,c[4],c[2],c[3],Il,c[1]);case +7:return k7(b,a,c[4],c[2],c[3],Im,c[1]);case 8:var g=c[4],h=c[3],i=c[2],f=c[1];if(typeof i==="number"){if(typeof -h==="number")return h?function(d,c){return a8(b,[4,a,e2(f,d,c)],g)}:function(c){return a8(b,[4,a,e2(f,pn(f),c)],g)};var -S=h[1];return function(c){return a8(b,[4,a,e2(f,S,c)],g)}}else{if(0===i[0]){var +h==="number")return h?function(d,c){return a_(b,[4,a,e4(f,d,c)],g)}:function(c){return a_(b,[4,a,e4(f,pp(f),c)],g)};var +S=h[1];return function(c){return a_(b,[4,a,e4(f,S,c)],g)}}else{if(0===i[0]){var l=i[2],m=i[1];if(typeof -h==="number")return h?function(d,c){return a8(b,[4,a,c7(m,l,e2(f,d,c))],g)}:function(c){return a8(b,[4,a,c7(m,l,e2(f,pn(f),c))],g)};var -T=h[1];return function(c){return a8(b,[4,a,c7(m,l,e2(f,T,c))],g)}}var +h==="number")return h?function(d,c){return a_(b,[4,a,c9(m,l,e4(f,d,c))],g)}:function(c){return a_(b,[4,a,c9(m,l,e4(f,pp(f),c))],g)};var +T=h[1];return function(c){return a_(b,[4,a,c9(m,l,e4(f,T,c))],g)}}var n=i[1];if(typeof -h==="number")return h?function(e,d,c){return a8(b,[4,a,c7(n,e,e2(f,d,c))],g)}:function(d,c){return a8(b,[4,a,c7(n,d,e2(f,pn(f),c))],g)};var -U=h[1];return function(d,c){return a8(b,[4,a,c7(n,d,e2(f,U,c))],g)}}case -9:return pp(b,a,c[2],c[1],F0);case +h==="number")return h?function(e,d,c){return a_(b,[4,a,c9(n,e,e4(f,d,c))],g)}:function(d,c){return a_(b,[4,a,c9(n,d,e4(f,pp(f),c))],g)};var +U=h[1];return function(d,c){return a_(b,[4,a,c9(n,d,e4(f,U,c))],g)}}case +9:return pr(b,a,c[2],c[1],F3);case 10:var a=[7,a],c=c[1];continue;case 11:var @@ -2379,445 +2379,445 @@ a=[2,a,c[1]],c=c[2];continue;case 12:var a=[3,a,c[1]],c=c[2];continue;case 13:var -C=c[3],D=c[2],o=sQ(16);po(o,D);var -u=sS(o);return function(c){return a8(b,[4,a,u],C)};case +C=c[3],D=c[2],o=sT(16);pq(o,D);var +u=sV(o);return function(c){return a_(b,[4,a,u],C)};case 14:var E=c[3],F=c[2];return function(d){var -e=d[1],c=br(e,bH(b4(F)));if(typeof -c[2]==="number")return a8(b,a,bz(c[1],E));throw ch};case +e=d[1],c=bt(e,bJ(b6(F)));if(typeof +c[2]==="number")return a_(b,a,bB(c[1],E));throw cj};case 15:var -G=c[1];return function(d,c){return a8(b,[6,a,function(a){return al(d,a,c)}],G)};case +G=c[1];return function(d,c){return a_(b,[6,a,function(a){return an(d,a,c)}],G)};case 16:var -H=c[1];return function(c){return a8(b,[6,a,c],H)};case +H=c[1];return function(c){return a_(b,[6,a,c],H)};case 17:var a=[0,a,c[1]],c=c[2];continue;case 18:var k=c[1];if(0===k[0]){var -I=c[2],J=k[1][1],K=0,b=function(b,c,d){return function(a){return a8(c,[1,b,[0,a]],d)}}(a,b,I),a=K,c=J;continue}var -L=c[2],M=k[1][1],N=0,b=function(b,c,d){return function(a){return a8(c,[1,b,[1,a]],d)}}(a,b,L),a=N,c=M;continue;case -19:throw[0,bn,Ip];case +I=c[2],J=k[1][1],K=0,b=function(b,c,d){return function(a){return a_(c,[1,b,[0,a]],d)}}(a,b,I),a=K,c=J;continue}var +L=c[2],M=k[1][1],N=0,b=function(b,c,d){return function(a){return a_(c,[1,b,[1,a]],d)}}(a,b,L),a=N,c=M;continue;case +19:throw[0,bp,Is];case 20:var -O=c[3],P=[8,a,Iq];return function(a){return a8(b,P,O)};case +O=c[3],P=[8,a,It];return function(a){return a_(b,P,O)};case 21:var -Q=c[2];return function(c){return a8(b,[4,a,oY(Ir,c)],Q)};case +Q=c[2];return function(c){return a_(b,[4,a,o0(Iu,c)],Q)};case 22:var -R=c[1];return function(c){return a8(b,[5,a,c],R)};case +R=c[1];return function(c){return a_(b,[5,a,c],R)};case 23:var e=c[2],j=c[1];if(typeof j==="number")switch(j){case -0:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -1:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -2:throw[0,bn,Is];default:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e])}else +0:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +1:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +2:throw[0,bp,Iv];default:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e])}else switch(j[0]){case -0:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -1:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -2:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -3:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -4:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -5:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -6:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -7:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case -8:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);case +0:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +1:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +2:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +3:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +4:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +5:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +6:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +7:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case +8:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);case 9:var -t=j[2];return d<50?qi(d+1|0,b,a,t,e):cr(qi,[0,b,a,t,e]);case -10:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e]);default:return d<50?bo(d+1|0,b,a,e):cr(bo,[0,b,a,e])}default:var -p=c[3],r=c[1],s=q(c[2],0);return d<50?qh(d+1|0,b,a,p,r,s):cr(qh,[0,b,a,p,r,s])}}function -qi(e,d,c,a,b){if(typeof -a==="number")return e<50?bo(e+1|0,d,c,b):cr(bo,[0,d,c,b]);else +t=j[2];return d<50?qk(d+1|0,b,a,t,e):ct(qk,[0,b,a,t,e]);case +10:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e]);default:return d<50?bq(d+1|0,b,a,e):ct(bq,[0,b,a,e])}default:var +p=c[3],q=c[1],s=r(c[2],0);return d<50?qj(d+1|0,b,a,p,q,s):ct(qj,[0,b,a,p,q,s])}}function +qk(e,d,c,a,b){if(typeof +a==="number")return e<50?bq(e+1|0,d,c,b):ct(bq,[0,d,c,b]);else switch(a[0]){case 0:var -f=a[1];return function(a){return dm(d,c,f,b)};case +f=a[1];return function(a){return dp(d,c,f,b)};case 1:var -g=a[1];return function(a){return dm(d,c,g,b)};case +g=a[1];return function(a){return dp(d,c,g,b)};case 2:var -h=a[1];return function(a){return dm(d,c,h,b)};case +h=a[1];return function(a){return dp(d,c,h,b)};case 3:var -i=a[1];return function(a){return dm(d,c,i,b)};case +i=a[1];return function(a){return dp(d,c,i,b)};case 4:var -j=a[1];return function(a){return dm(d,c,j,b)};case +j=a[1];return function(a){return dp(d,c,j,b)};case 5:var -k=a[1];return function(a){return dm(d,c,k,b)};case +k=a[1];return function(a){return dp(d,c,k,b)};case 6:var -l=a[1];return function(a){return dm(d,c,l,b)};case +l=a[1];return function(a){return dp(d,c,l,b)};case 7:var -m=a[1];return function(a){return dm(d,c,m,b)};case +m=a[1];return function(a){return dp(d,c,m,b)};case 8:var -n=a[2];return function(a){return dm(d,c,n,b)};case +n=a[2];return function(a){return dp(d,c,n,b)};case 9:var -o=a[3],p=a[2],q=ca(b4(a[1]),p);return function(a){return dm(d,c,cK(q,o),b)};case +o=a[3],p=a[2],q=cc(b6(a[1]),p);return function(a){return dp(d,c,cM(q,o),b)};case 10:var -r=a[1];return function(e,a){return dm(d,c,r,b)};case +r=a[1];return function(e,a){return dp(d,c,r,b)};case 11:var -s=a[1];return function(a){return dm(d,c,s,b)};case +s=a[1];return function(a){return dp(d,c,s,b)};case 12:var -t=a[1];return function(a){return dm(d,c,t,b)};case -13:throw[0,bn,It];default:throw[0,bn,Iu]}}function -bo(d,b,e,a){var -c=[8,e,Iv];return d<50?jT(d+1|0,b,c,a):cr(jT,[0,b,c,a])}function -qh(g,b,e,a,d,c){if(d){var -h=d[1];return function(d){return Io(b,e,a,h,q(c,d))}}var -f=[4,e,c];return g<50?jT(g+1|0,b,f,a):cr(jT,[0,b,f,a])}function -a8(a,b,c){return st(jT(0,a,b,c))}function -dm(a,b,c,d){return st(qi(0,a,b,c,d))}function -Io(a,b,c,d,e){return st(qh(0,a,b,c,d,e))}function -pp(e,d,c,a,b){if(typeof -a==="number")return function(a){return a8(e,[4,d,q(b,a)],c)};else{if(0===a[0]){var -f=a[2],g=a[1];return function(a){return a8(e,[4,d,c7(g,f,q(b,a))],c)}}var -h=a[1];return function(f,a){return a8(e,[4,d,c7(h,f,q(b,a))],c)}}}function -k5(f,e,d,g,c,b,a){if(typeof +t=a[1];return function(a){return dp(d,c,t,b)};case +13:throw[0,bp,Iw];default:throw[0,bp,Ix]}}function +bq(d,b,e,a){var +c=[8,e,Iy];return d<50?jV(d+1|0,b,c,a):ct(jV,[0,b,c,a])}function +qj(g,b,e,a,d,c){if(d){var +h=d[1];return function(d){return Ir(b,e,a,h,r(c,d))}}var +f=[4,e,c];return g<50?jV(g+1|0,b,f,a):ct(jV,[0,b,f,a])}function +a_(a,b,c){return sw(jV(0,a,b,c))}function +dp(a,b,c,d){return sw(qk(0,a,b,c,d))}function +Ir(a,b,c,d,e){return sw(qj(0,a,b,c,d,e))}function +pr(e,d,c,a,b){if(typeof +a==="number")return function(a){return a_(e,[4,d,r(b,a)],c)};else{if(0===a[0]){var +f=a[2],g=a[1];return function(a){return a_(e,[4,d,c9(g,f,r(b,a))],c)}}var +h=a[1];return function(f,a){return a_(e,[4,d,c9(h,f,r(b,a))],c)}}}function +k7(f,e,d,g,c,b,a){if(typeof g==="number"){if(typeof -c==="number")return c?function(g,c){return a8(f,[4,e,gY(g,al(b,a,c))],d)}:function(c){return a8(f,[4,e,al(b,a,c)],d)};var -k=c[1];return function(c){return a8(f,[4,e,gY(k,al(b,a,c))],d)}}else{if(0===g[0]){var +c==="number")return c?function(g,c){return a_(f,[4,e,g0(g,an(b,a,c))],d)}:function(c){return a_(f,[4,e,an(b,a,c)],d)};var +k=c[1];return function(c){return a_(f,[4,e,g0(k,an(b,a,c))],d)}}else{if(0===g[0]){var h=g[2],i=g[1];if(typeof -c==="number")return c?function(g,c){return a8(f,[4,e,c7(i,h,gY(g,al(b,a,c)))],d)}:function(c){return a8(f,[4,e,c7(i,h,al(b,a,c))],d)};var -l=c[1];return function(c){return a8(f,[4,e,c7(i,h,gY(l,al(b,a,c)))],d)}}var +c==="number")return c?function(g,c){return a_(f,[4,e,c9(i,h,g0(g,an(b,a,c)))],d)}:function(c){return a_(f,[4,e,c9(i,h,an(b,a,c))],d)};var +l=c[1];return function(c){return a_(f,[4,e,c9(i,h,g0(l,an(b,a,c)))],d)}}var j=g[1];if(typeof -c==="number")return c?function(h,g,c){return a8(f,[4,e,c7(j,h,gY(g,al(b,a,c)))],d)}:function(g,c){return a8(f,[4,e,c7(j,g,al(b,a,c))],d)};var -m=c[1];return function(g,c){return a8(f,[4,e,c7(j,g,gY(m,al(b,a,c)))],d)}}}function -e3(b,e){var +c==="number")return c?function(h,g,c){return a_(f,[4,e,c9(j,h,g0(g,an(b,a,c)))],d)}:function(g,c){return a_(f,[4,e,c9(j,g,an(b,a,c))],d)};var +m=c[1];return function(g,c){return a_(f,[4,e,c9(j,g,g0(m,an(b,a,c)))],d)}}}function +e5(b,e){var a=e;for(;;)if(typeof a==="number")return 0;else switch(a[0]){case 0:var -f=a[1],g=sT(a[2]);e3(b,f);return jx(b,g);case +f=a[1],g=sW(a[2]);e5(b,f);return jz(b,g);case 1:var c=a[2],d=a[1];if(0===c[0]){var -h=c[1];e3(b,d);jx(b,Iw);var +h=c[1];e5(b,d);jz(b,Iz);var a=h;continue}var -i=c[1];e3(b,d);jx(b,Ix);var +i=c[1];e5(b,d);jz(b,IA);var a=i;continue;case 6:var -l=a[2];e3(b,a[1]);return q(l,b);case -7:e3(b,a[1]);return gQ(b);case +l=a[2];e5(b,a[1]);return r(l,b);case +7:e5(b,a[1]);return gS(b);case 8:var -m=a[2];e3(b,a[1]);return bU(m);case +m=a[2];e5(b,a[1]);return bW(m);case 2:case 4:var -j=a[2];e3(b,a[1]);return jx(b,j);default:var -k=a[2];e3(b,a[1]);return FC(b,k)}}function -e4(b,f){var +j=a[2];e5(b,a[1]);return jz(b,j);default:var +k=a[2];e5(b,a[1]);return FF(b,k)}}function +e6(b,f){var a=f;for(;;)if(typeof a==="number")return 0;else switch(a[0]){case 0:var -g=a[1],h=sT(a[2]);e4(b,g);return jE(b,h);case +g=a[1],h=sW(a[2]);e6(b,g);return jG(b,h);case 1:var d=a[2],e=a[1];if(0===d[0]){var -i=d[1];e4(b,e);jE(b,Iy);var +i=d[1];e6(b,e);jG(b,IB);var a=i;continue}var -j=d[1];e4(b,e);jE(b,Iz);var +j=d[1];e6(b,e);jG(b,IC);var a=j;continue;case 6:var -m=a[2];e4(b,a[1]);return jE(b,q(m,0));case +m=a[2];e6(b,a[1]);return jG(b,r(m,0));case 7:var a=a[1];continue;case 8:var -n=a[2];e4(b,a[1]);return bU(n);case +n=a[2];e6(b,a[1]);return bW(n);case 2:case 4:var -k=a[2];e4(b,a[1]);return jE(b,k);default:var -l=a[2];e4(b,a[1]);var -c=b[2];if(b[3]<=c)pm(b,1);bS(b[1],c,l);b[2]=c+1|0;return 0}}function -IA(a){if(o7(a,IB))return IC;var -d=aE(a);function +k=a[2];e6(b,a[1]);return jG(b,k);default:var +l=a[2];e6(b,a[1]);var +c=b[2];if(b[3]<=c)po(b,1);bU(b[1],c,l);b[2]=c+1|0;return 0}}function +ID(a){if(o9(a,IE))return IF;var +d=aG(a);function f(d){var -c=ID[1],b=k1(ev);return q(a8(function(a){e4(b,a);return aC(k2(b))},0,c),a)}function +c=IG[1],b=k3(ex);return r(a_(function(a){e6(b,a);return aE(k4(b))},0,c),a)}function g(e){var b=e;for(;;){if(b===d)return b;var -c=bu(a,b);if(9!==c&&32!==c)return b;var +c=bw(a,b);if(9!==c&&32!==c)return b;var b=b+1|0;continue}}function m(e,c){var -b=c;for(;;){if(b===d)return b;if(25>>0)return b;var +b=c;for(;;){if(b===d)return b;if(25>>0)return b;var b=b+1|0;continue}}function n(g,f){var b=f;for(;;){if(b===d)return b;var -c=bu(a,b),e=0;if(48<=c){if(!(58<=c))e=1}else +c=bw(a,b),e=0;if(48<=c){if(!(58<=c))e=1}else if(45===c)e=1;if(e){var b=b+1|0;continue}return b}}var -e=g(0),j=m(e,e),b=gU(a,e,j-e|0),c=g(j),h=n(c,c);if(c===h)var +e=g(0),j=m(e,e),b=gW(a,e,j-e|0),c=g(j),h=n(c,c);if(c===h)var i=0;else try{var -p=o2(gU(a,c,h-c|0)),i=p}catch(a){a=o(a);if(a[1]!==kX)throw a;var +o=o4(gW(a,c,h-c|0)),i=o}catch(a){a=p(a);if(a[1]!==kZ)throw a;var i=f(0)}if(g(h)!==d)f(0);var -l=0;if(L(b,IE)&&L(b,IF))var -k=L(b,IG)?L(b,IH)?L(b,II)?L(b,IJ)?f(0):1:2:3:0;else +l=0;if(M(b,IH)&&M(b,II))var +k=M(b,IJ)?M(b,IK)?M(b,IL)?M(b,IM)?f(0):1:2:3:0;else l=1;if(l)var k=4;return[0,i,k]}function -sV(d,c){var -a=c[1],b=0;return a8(function(a){e3(d,a);return 0},b,a)}function -jG(a){return sV(ed,a)}function -aF(b){var -a=b[1];return a8(function(b){var -a=k1(64);e4(a,b);return k2(a)},0,a)}var -pq=[0,0];function -ps(h,g){var +sY(d,c){var +a=c[1],b=0;return a_(function(a){e5(d,a);return 0},b,a)}function +jI(a){return sY(ef,a)}function +aH(b){var +a=b[1];return a_(function(b){var +a=k3(64);e6(a,b);return k4(a)},0,a)}var +ps=[0,0];function +pu(h,g){var a=h[1+g];if(1-(typeof -a==="number"?1:0)){if(kU(a)===j3)return q(aF(IK),a);if(kU(a)===q4){var -c=sg(F4,a),b=0,f=aE(c);for(;;){if(f<=b)return bM(c,F3);var -d=bu(c,b),e=0;if(48<=d){if(!(58<=d))e=1}else +a==="number"?1:0)){if(kW(a)===j5)return r(aH(IN),a);if(kW(a)===q7){var +c=sj(F7,a),b=0,f=aG(c);for(;;){if(f<=b)return bP(c,F6);var +d=bw(c,b),e=0;if(48<=d){if(!(58<=d))e=1}else if(45===d)e=1;if(e){var -b=b+1|0;continue}return c}}return IL}return q(aF(IM),a)}function -sW(b,a){if(b.length-1<=a)return IN;var -c=sW(b,a+1|0),d=ps(b,a);return al(aF(IO),d,c)}function -pt(a){function +b=b+1|0;continue}return c}}return IO}return r(aH(IP),a)}function +sZ(b,a){if(b.length-1<=a)return IQ;var +c=sZ(b,a+1|0),d=pu(b,a);return an(aH(IR),d,c)}function +pv(a){function n(e){var b=e;for(;;){if(b){var f=b[2],g=b[1];try{var -d=0,c=q(g,a);d=1}catch(a){}if(d&&c)return[0,c[1]];var +d=0,c=r(g,a);d=1}catch(a){}if(d&&c)return[0,c[1]];var b=f;continue}return 0}}var -g=n(pq[1]);if(g)return g[1];if(a===pa)return IT;if(a===sC)return IU;if(a[1]===sB){var -c=a[2],h=c[3],o=c[2],p=c[1];return qj(aF(pr),p,o,h,h+5|0,IV)}if(a[1]===bn){var -d=a[2],i=d[3],r=d[2],s=d[1];return qj(aF(pr),s,r,i,i+6|0,IW)}if(a[1]===sE){var -e=a[2],j=e[3],t=e[2],u=e[1];return qj(aF(pr),u,t,j,j+6|0,IX)}if(0===kU(a)){var +g=n(ps[1]);if(g)return g[1];if(a===pc)return IW;if(a===sF)return IX;if(a[1]===sE){var +c=a[2],h=c[3],o=c[2],p=c[1];return ql(aH(pt),p,o,h,h+5|0,IY)}if(a[1]===bp){var +d=a[2],i=d[3],q=d[2],s=d[1];return ql(aH(pt),s,q,i,i+6|0,IZ)}if(a[1]===sH){var +e=a[2],j=e[3],t=e[2],u=e[1];return ql(aH(pt),u,t,j,j+6|0,I0)}if(0===kW(a)){var f=a.length-1,v=a[1][1];if(2>>0)var -k=sW(a,2),l=ps(a,1),b=al(aF(IP),l,k);else +k=sZ(a,2),l=pu(a,1),b=an(aH(IS),l,k);else switch(f){case 0:var -b=IQ;break;case +b=IT;break;case 1:var -b=IR;break;default:var -m=ps(a,1),b=q(aF(IS),m)}return bM(v,b)}return a[1]}function -pu(t,s){var -d=btw(s),f=d.length-1-1|0,o=0;if(!(f<0)){var +b=IU;break;default:var +m=pu(a,1),b=r(aH(IV),m)}return bP(v,b)}return a[1]}function +pw(t,s){var +d=btA(s),f=d.length-1-1|0,o=0;if(!(f<0)){var b=o;for(;;){var -a=a0(d,b)[1+b],e=function(a){return function(b){return b?0===a?IY:IZ:0===a?I0:I1}}(b);if(0===a[0])var -g=a[5],h=a[4],i=a[3],j=a[6]?I2:I4,k=a[2],l=a[7],m=e(a[1]),c=[0,btl(aF(I3),m,l,k,j,i,h,g)];else +a=a2(d,b)[1+b],e=function(a){return function(b){return b?0===a?I1:I2:0===a?I3:I4}}(b);if(0===a[0])var +g=a[5],h=a[4],i=a[3],j=a[6]?I5:I7,k=a[2],l=a[7],m=e(a[1]),c=[0,btp(aH(I6),m,l,k,j,i,h,g)];else if(a[1])var c=0;else var -n=e(0),c=[0,q(aF(I5),n)];if(c){var -p=c[1];q(sV(t,I6),p)}var -r=b+1|0;if(f!==b){var -b=r;continue}break}}return 0}function -sX(c){for(;;){var -a=pq[1],b=1-o$(pq,a,[0,c,a]);if(b)continue;return b}}var -I8=I7.slice();function -I9(d,c){var -e=pt(d);q(jG(I_),e);pu(ed,c);var -a=btZ(0);if(a<0){var -b=ga(a);sI(a0(I8,b)[1+b])}return gQ(ed)}var -I$=[0];sr(a(Dh),function(d,h){try{try{var -b=h?I$:Fu(0);try{pd(0)}catch(a){}try{var -a=I9(d,b),c=a}catch(a){a=o(a);var -f=pt(d);q(jG(Jb),f);pu(ed,b);var -g=pt(a);q(jG(Jc),g);pu(ed,Fu(0));var -c=gQ(ed)}var -e=c}catch(a){a=o(a);if(a!==pa)throw a;var -e=sI(Ja)}return e}catch(a){return 0}});function -k6(a){var +n=e(0),c=[0,r(aH(I8),n)];if(c){var +p=c[1];r(sY(t,I9),p)}var +q=b+1|0;if(f!==b){var +b=q;continue}break}}return 0}function +s0(c){for(;;){var +a=ps[1],b=1-pb(ps,a,[0,c,a]);if(b)continue;return b}}var +I$=I_.slice();function +Ja(d,c){var +e=pv(d);r(jI(Jb),e);pw(ef,c);var +a=bt3(0);if(a<0){var +b=gc(a);sL(a2(I$,b)[1+b])}return gS(ef)}var +Jc=[0];su(a(Dk),function(d,h){try{try{var +b=h?Jc:Fx(0);try{pf(0)}catch(a){}try{var +a=Ja(d,b),c=a}catch(a){a=p(a);var +f=pv(d);r(jI(Je),f);pw(ef,b);var +g=pv(a);r(jI(Jf),g);pw(ef,Fx(0));var +c=gS(ef)}var +e=c}catch(a){a=p(a);if(a!==pc)throw a;var +e=sL(Jd)}return e}catch(a){return 0}});function +k8(a){var b=a.length-1<4?1:0,c=b||(a[4]<0?1:0);return c}function -e5(a){a[4]=-a[4]|0;return 0}try{var -bti=FJ(bth),sZ=bti}catch(a){a=o(a);if(a!==cA)throw a;try{var -btg=FJ(btf),sY=btg}catch(a){a=o(a);if(a!==cA)throw a;var -sY=Je}var -sZ=sY}pi(sZ,82);var -k7=[l2,function(w){var -m=bud(0),c=[0,eY(55,0),0],i=0===m.length-1?[0,0]:m,j=i.length-1,b=0;for(;;){a0(c[1],b)[1+b]=b;var +e7(a){a[4]=-a[4]|0;return 0}try{var +btm=FM(btl),s2=btm}catch(a){a=p(a);if(a!==cC)throw a;try{var +btk=FM(btj),s1=btk}catch(a){a=p(a);if(a!==cC)throw a;var +s1=Jh}var +s2=s1}pk(s2,82);var +k9=[l4,function(w){var +m=buh(0),c=[0,e0(55,0),0],i=0===m.length-1?[0,0]:m,j=i.length-1,b=0;for(;;){a2(c[1],b)[1+b]=b;var v=b+1|0;if(54!==b){var b=v;continue}var -g=[0,Jd],k=54+pg(55,j)|0,r=0;if(!(k<0)){var +g=[0,Jg],k=54+pi(55,j)|0,r=0;if(!(k<0)){var d=r;for(;;){var -e=d%55|0,l=bt3(d,j),s=a0(i,l)[1+l],h=bM(g[1],a(W+s));g[1]=btY(h,0,aE(h));var -f=g[1],n=bu(f,3)<<24,o=bu(f,2)<<16,p=bu(f,1)<<8,q=((bu(f,0)+p|0)+o|0)+n|0,t=(a0(c[1],e)[1+e]^q)&rV;a0(c[1],e)[1+e]=t;var +e=d%55|0,l=bt7(d,j),s=a2(i,l)[1+l],h=bP(g[1],a(Y+s));g[1]=bt2(h,0,aG(h));var +f=g[1],n=bw(f,3)<<24,o=bw(f,2)<<16,p=bw(f,1)<<8,q=((bw(f,0)+p|0)+o|0)+n|0,t=(a2(c[1],e)[1+e]^q)&rY;a2(c[1],e)[1+e]=t;var u=d+1|0;if(k!==d){var d=u;continue}break}}c[2]=0;return c}}];function -s0(a){var +s3(a){var c=0>>25|0)&31)|0)&rV,g=a[2];a0(a[1],g)[1+g]=f;var +h=kW(k9),a=hi===h?k9[1]:l4===h?Gd(k9):k9;a[2]=(a[2]+1|0)%55|0;var +c=a[2],d=a2(a[1],c)[1+c],e=(a[2]+24|0)%55|0,f=(a2(a[1],e)[1+e]+(d^(d>>>25|0)&31)|0)&rY,g=a[2];a2(a[1],g)[1+g]=f;var i=f}else var -i=0;return[0,0,eY(b,0),i,b]}}return[0,g,s0,Jf,Jh,c,h,i,j,k,d,l,Jj,Jl,Jm,Ji,Jn,pv,Jo,Jp,m,e,function(b){var +i=0;return[0,0,e0(b,0),i,b]}}return[0,g,s3,Ji,Jk,c,h,i,j,k,d,l,Jm,Jo,Jp,Jl,Jq,px,Jr,Js,m,e,function(b){var a=g(16);e(a,b);return a}]}var -pw=[bc,Jt,cW(0)];function -Js(a){return btC(10,c3,0,a)}var -k8=0,s3=-1;function -jH(a,b){a[13]=a[13]+b[3]|0;return sP(b,a[28])}var -s4=1000000010;function -px(b,a){return cx(b[17],a,0,aE(a))}function -k9(a){return q(a[19],0)}function -s5(a,c,b){a[9]=a[9]-c|0;px(a,b);a[11]=0;return 0}function -k_(c,a){var -b=L(a,Ju);return b?s5(c,aE(a),a):b}function -gd(a,b,e){var -f=b[3],g=b[2];k_(a,b[1]);k9(a);a[11]=1;var -c=(a[6]-e|0)+g|0,d=a[8],h=d<=c?d:c;a[10]=h;a[9]=a[6]-a[10]|0;q(a[21],a[10]);return k_(a,f)}function -s6(b,a){return gd(b,Jv,a)}function -gZ(a,b){var -c=b[2],d=b[3];k_(a,b[1]);a[9]=a[9]-c|0;q(a[20],c);return k_(a,d)}function -Jw(a,i,b){if(typeof +py=[be,Jw,cY(0)];function +Jv(a){return btG(10,c5,0,a)}var +k_=0,s6=-1;function +jJ(a,b){a[13]=a[13]+b[3]|0;return sS(b,a[28])}var +s7=1000000010;function +pz(b,a){return cz(b[17],a,0,aG(a))}function +k$(a){return r(a[19],0)}function +s8(a,c,b){a[9]=a[9]-c|0;pz(a,b);a[11]=0;return 0}function +la(c,a){var +b=M(a,Jx);return b?s8(c,aG(a),a):b}function +gf(a,b,e){var +f=b[3],g=b[2];la(a,b[1]);k$(a);a[11]=1;var +c=(a[6]-e|0)+g|0,d=a[8],h=d<=c?d:c;a[10]=h;a[9]=a[6]-a[10]|0;r(a[21],a[10]);return la(a,f)}function +s9(b,a){return gf(b,Jy,a)}function +g1(a,b){var +c=b[2],d=b[3];la(a,b[1]);a[9]=a[9]-c|0;r(a[20],c);return la(a,d)}function +Jz(a,i,b){if(typeof b==="number")switch(b){case 0:var -s=gW(a[3]);if(s){var +s=gY(a[3]);if(s){var t=s[1][1],u=function(b,a){if(a){var -c=a[1],d=a[2];return Fz(b,c)?[0,b,a]:[0,c,u(b,d)]}return[0,b,0]};t[1]=u(a[6]-a[9]|0,t[1]);return 0}return 0;case -1:gV(a[2]);return 0;case -2:gV(a[3]);return 0;case +c=a[1],d=a[2];return FC(b,c)?[0,b,a]:[0,c,u(b,d)]}return[0,b,0]};t[1]=u(a[6]-a[9]|0,t[1]);return 0}return 0;case +1:gX(a[2]);return 0;case +2:gX(a[3]);return 0;case 3:var -v=gW(a[2]);return v?s6(a,v[1][2]):k9(a);case +v=gY(a[2]);return v?s9(a,v[1][2]):k$(a);case 4:var w=a[10]!==(a[6]-a[9]|0)?1:0;if(w){var e=a[28],g=e[2];if(g){var m=g[1];if(g[2]){var J=g[2];e[1]=e[1]-1|0;e[2]=J;var -h=[0,m]}else{pl(e);var +h=[0,m]}else{pn(e);var h=[0,m]}}else var h=0;if(h){var -r=h[1],L=r[1];a[12]=a[12]-r[3]|0;a[9]=a[9]+L|0;return 0}return 0}return w;default:var -x=gV(a[5]);return x?px(a,q(a[25],x[1])):0}else +q=h[1],L=q[1];a[12]=a[12]-q[3]|0;a[9]=a[9]+L|0;return 0}return 0}return w;default:var +x=gX(a[5]);return x?pz(a,r(a[25],x[1])):0}else switch(b[0]){case -0:return s5(a,i,b[1]);case +0:return s8(a,i,b[1]);case 1:var -c=b[2],f=b[1],y=c[1],M=c[2],z=gW(a[2]);if(z){var +c=b[2],f=b[1],y=c[1],M=c[2],z=gY(a[2]);if(z){var A=z[1],d=A[2];switch(A[1]){case -0:return gZ(a,f);case -1:return gd(a,c,d);case -2:return gd(a,c,d);case -3:return a[9]<(i+aE(y)|0)?gd(a,c,d):gZ(a,f);case -4:return a[11]?gZ(a,f):a[9]<(i+aE(y)|0)?gd(a,c,d):((a[6]-d|0)+M|0)>>0))s6(a,p)}else -k9(a)}var -S=a[9]-R|0,T=1===H?1:a[9]>>0))s9(a,p)}else +k$(a)}var +S=a[9]-R|0,T=1===H?1:a[9]>>0)throw pH;switch(a){case +d=0===(a%4|0)?1:0,c=d?0!==(a%c5|0)?1:0:d;return c}function +ll(c,b){var +a=c-1|0;if(11>>0)throw pJ;switch(a){case 1:return b?29:28;case 3:case 5:case 8:case 10:return 30;default:return 31}}function -pJ(a){try{var +pL(a){try{var b=1<=a[3]?1:0;if(b)var -d=li(a[1]),e=lj(a[2],d),c=a[3]<=e?1:0;else +d=lk(a[1]),e=ll(a[2],d),c=a[3]<=e?1:0;else var -c=b;return c}catch(a){a=o(a);if(a===pH)return 0;throw a}}function -tq(d,c,b){var -a=[0,d,c,b];if(pJ(a))return a;throw pH}function -lk(f,e,d){var +c=b;return c}catch(a){a=p(a);if(a===pJ)return 0;throw a}}function +tt(d,c,b){var +a=[0,d,c,b];if(pL(a))return a;throw pJ}function +lm(f,e,d){var b=f,a=d;for(;;){var c=e+a|0;if(1<=c&&!(12>a===b?c:FS(b,a)}return FS(b,a)}function -ts(a){return typeof -a==="number"?a:buD(a)}var -e6=0,lo=1,Kb=-1;function -tt(a){return gT(0,a,0,aE(a))}function -Kc(b,a){return gT(b,a,0,aE(a))}function -pK(a){if(typeof +c=b<>a===b?c:FV(b,a)}return FV(b,a)}function +tv(a){return typeof +a==="number"?a:buH(a)}var +e8=0,lq=1,Ke=-1;function +tw(a){return gV(0,a,0,aG(a))}function +Kf(b,a){return gV(b,a,0,aG(a))}function +pM(a){if(typeof a==="number")return a;var -e=sw(a);if(63>g;f=1}if(!f)var -c=buB(a,b);var -i=buo(a,fq(c,b)),d=o_(c),h=i?d:btS(d,Kd);return o4(o1(h),b)}return o1(o_(a))}function -g1(a,b){if(a!==0&&b!==1){var -c=bur(a,b);if(c===1)return[0,a,b];var -d=tr(b,c);return[0,tr(a,c),d]}return[0,a,lo]}function -tu(b,a){var -c=c5(a);if(0===c)return[0,c5(b),e6];if(0>>0))switch(b){case +c=buF(a,b);var +i=bus(a,fs(c,b)),d=pa(c),h=i?d:btW(d,Kg);return o6(o3(h),b)}return o3(pa(a))}function +g3(a,b){if(a!==0&&b!==1){var +c=buv(a,b);if(c===1)return[0,a,b];var +d=tu(b,c);return[0,tu(a,c),d]}return[0,a,lq]}function +tx(b,a){var +c=c7(a);if(0===c)return[0,c7(b),e8];if(0>>0))switch(b){case 0:return 2;case 1:break;default:return 1}return 3}return a[1]===0?0:4}function -pL(d,c){var -e=gf(d),b=gf(c),a=0;switch(e){case +pN(d,c){var +e=gh(d),b=gh(c),a=0;switch(e){case 1:var j=b-1|0;if(!(2>>0))switch(j){case 0:a=2;break;case @@ -3196,31 +3196,31 @@ g=0;if(!(4<=e))switch(e){case 0:break;case 2:g=1;break;default:g=2}var h=0;switch(g){case -0:if(2!==b){if(f(d[2],c[2]))return ec(d[1],c[1]);var -l=cL(c[1],d[2]);return ec(cL(d[1],c[2]),l)}h=1;break;case +0:if(2!==b){if(f(d[2],c[2]))return ee(d[1],c[1]);var +l=cN(c[1],d[2]);return ee(cN(d[1],c[2]),l)}h=1;break;case 1:break;default:h=1}if(h)return 1}return-1}function -tx(a){var -b=a[2];return[0,ge(a[1]),b]}function -ty(c,a,b){if(a[2]===b[2]){var -d=a[2];return g1(al(c,a[1],b[1]),d)}var -e=cL(a[2],b[2]),f=cL(b[1],a[2]);return g1(al(c,cL(a[1],b[2]),f),e)}function -jL(b,a){if(b[2]!==0&&a[2]!==0){var -c=cL(b[2],a[2]);return g1(cL(b[1],a[1]),c)}return[0,f$(c5(b[1]),c5(a[1])),e6]}function -pM(b,a){if(0<=c5(a[1]))return jL(b,[0,a[2],a[1]]);var -c=ge(a[1]);return jL(b,[0,ge(a[2]),c])}function -pN(a){switch(a){case +tA(a){var +b=a[2];return[0,gg(a[1]),b]}function +tB(c,a,b){if(a[2]===b[2]){var +d=a[2];return g3(an(c,a[1],b[1]),d)}var +e=cN(a[2],b[2]),f=cN(b[1],a[2]);return g3(an(c,cN(a[1],b[2]),f),e)}function +jN(b,a){if(b[2]!==0&&a[2]!==0){var +c=cN(b[2],a[2]);return g3(cN(b[1],a[1]),c)}return[0,gb(c7(b[1]),c7(a[1])),e8]}function +pO(b,a){if(0<=c7(a[1]))return jN(b,[0,a[2],a[1]]);var +c=gg(a[1]);return jN(b,[0,gg(a[2]),c])}function +pP(a){switch(a){case 0:return 2;case 1:return 8;case 2:return 10;default:return 16}}function -pO(e,d,c,b){var -a=d;for(;;){if(c<=a)return 0;if(q(b,bu(e,a)))return[0,a];var +pQ(e,d,c,b){var +a=d;for(;;){if(c<=a)return 0;if(r(b,bw(e,a)))return[0,a];var a=a+1|0;continue}}var -pP=[0,-1];function -Kg(a){if(L(a,Kh)){if(L(a,Ki)){if(!L(a,Kj))return lq;if(L(a,Kk)){if(L(a,Kl))try{var -k=Gr(a,47),X=gT(0,a,k+1|0,(aE(a)-k|0)-1|0),Y=tu(gT(0,a,0,k),X);return Y}catch(k){k=o(k);if(k===cA){var -i=aE(a),x=0;if(i<1)var +pR=[0,-1];function +Kj(a){if(M(a,Kk)){if(M(a,Kl)){if(!M(a,Km))return ls;if(M(a,Kn)){if(M(a,Ko))try{var +k=Gu(a,47),X=gV(0,a,k+1|0,(aG(a)-k|0)-1|0),Y=tx(gV(0,a,0,k),X);return Y}catch(k){k=p(k);if(k===cC){var +i=aG(a),x=0;if(i<1)var s=[0,0,x];else{var -N=bu(a,0)+zY|0,Q=0;if(!(2>>0)){var +N=bw(a,0)+z1|0,Q=0;if(!(2>>0)){var R=0;switch(N){case 0:var P=[0,0,1];break;case @@ -3231,10 +3231,10 @@ O=[0,0,x];var s=O}var c=s[2];if(i<(c+2|0))var t=[0,2,c];else{var -W=bu(a,c),g=bu(a,c+1|0),r=0;if(48===W){var +W=bw(a,c),g=bw(a,c+1|0),r=0;if(48===W){var h=0;if(89<=g){if(98===g)h=2;else -if(kJ===g)h=1;else -if(dq!==g){r=1;h=3}}else +if(kL===g)h=1;else +if(ds!==g){r=1;h=3}}else if(66===g)h=2;else if(79===g)h=1;else if(!(88<=g)){r=1;h=3}switch(h){case @@ -3247,226 +3247,226 @@ q=[0,0,c+2|0]}}else r=1;if(r)var q=[0,2,c];var t=q}var -d=t[2],b=t[1],S=2===b?function(a){if(69!==a&&hv!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&kI!==a)return 0;return 1}:function(a){return 0},y=pO(a,d,i,S);if(y)var -z=y[1],A=z+1|0,e=z,B=ts(gT(10,a,A,i-A|0));else +d=t[2],b=t[1],S=2===b?function(a){if(69!==a&&hx!==a)return 0;return 1}:3<=b?function(a){if(80!==a&&kK!==a)return 0;return 1}:function(a){return 0},y=pQ(a,d,i,S);if(y)var +z=y[1],A=z+1|0,e=z,B=tv(gV(10,a,A,i-A|0));else var e=i,B=0;if(2<=b){var -C=pO(a,d,e,function(a){return 46===a?1:0});if(C){var +C=pQ(a,d,e,function(a){return 46===a?1:0});if(C){var u=C[1];if(2===b)var -D=1;else{if(!(3<=b))throw[0,bn,Kn];var +D=1;else{if(!(3<=b))throw[0,bp,Kq];var D=4}var F=u+1|0,G=e-1|0,E=0;if(G>>4|0));dS(h,g+5|0,tB(e&15));c[1]=a+1|0;break}}var +1:lt(b,d,c[1],a-c[1]|0);var +g=tC(b,6),h=b[1];dZ(KA,0,h,g,4);dV(h,g+4|0,tE(e>>>4|0));dV(h,g+5|0,tE(e&15));c[1]=a+1|0;break}}var l=a+1|0;if(i!==a){var -a=l;continue}break}}Ky(d,c,b);return bI(b,34)},tC=function(a,b){return dX(a,KH)},tD=function(b,a){var -c=a?KI:KJ;return dX(b,c)},KK=sF(10,11),pT=function(c,b,a){if(0===a)return b;var -d=pT(c,b,a/10|0);dS(c,d,sK(ga(a%10|0)+48|0));return d+1|0},tE=function(a,b){pR(a,KK);if(0>>1|0;Ko[1]++;continue}}(globalThis)); +c=lh(0,a);c[1+b]=d;return c};lg(a);qi[1]=m}return r(qi[1],[0,g,d,e,f])},bth=function(a){return bh(function(a){return tW(function(b){return uy(a).aideFinale})})},bti=function(a){return bh(function(a){return tW(function(b){return t5(a).iMontantVerse})})};Mg(function(c,b,a,d){return{"eventsManager":c,"computeAllocationsFamiliales":aq(b),"computeAidesAuLogement":aq(a)}}(Mt,bti,bth,btf));pf(0);return}pR[1]=pR[1]>>>1|0;Kr[1]++;continue}}(globalThis)); diff --git a/french_law/ocaml/law_source/aides_logement.ml b/french_law/ocaml/law_source/aides_logement.ml index 1210650d..0df6cbd3 100644 --- a/french_law/ocaml/law_source/aides_logement.ml +++ b/french_law/ocaml/law_source/aides_logement.ml @@ -2122,7 +2122,7 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai law_headings=["Article 19"; "Chapitre II : Des contributions pour le remboursement de la dette sociale."; "Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]} - (date_courante_ >=@ (date_of_numbers (2020) (1) (1))))) + (o_gte_dat_dat date_courante_ (date_of_numbers (2020) (1) (1))))) (fun (_: unit) -> decimal_of_string "0.005")) with EmptyError -> (raise (NoValueProvided @@ -2150,8 +2150,9 @@ let contributions_sociales_aides_personnelle_logement (contributions_sociales_ai law_headings=["Article 14"; "Chapitre II : Des contributions pour le remboursement de la dette sociale."; "Ordonnance n° 96-50 du 24 janvier 1996 relative au remboursement de la dette sociale"]} - (date_courante_ >=@ (date_of_numbers (2018) (9) (1))))) - (fun (_: unit) -> param_ *$ taux_crds_)) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2018) (9) (1))))) + (fun (_: unit) -> o_mult_mon_rat param_ taux_crds_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -2336,19 +2337,20 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - Array.map + o_map (fun (tranche_: TrancheRevenu.t) -> {TrancheRevenuDecimal.haut = (match (tranche_.TrancheRevenu.haut) with | LimiteTranche.Revenu tranche_haut_ -> (LimiteTrancheDecimal.Revenu - ((decimal_of_money tranche_haut_) *& + (o_mult_rat_rat (o_moneyToRat tranche_haut_) n_nombre_parts_d832_25_)) | LimiteTranche.Infini _ -> (LimiteTrancheDecimal.Infini ())); TrancheRevenuDecimal.bas = - ((decimal_of_money (tranche_.TrancheRevenu.bas)) *& + (o_mult_rat_rat + (o_moneyToRat (tranche_.TrancheRevenu.bas)) n_nombre_parts_d832_25_); TrancheRevenuDecimal.taux = (tranche_.TrancheRevenu.taux)}) tranches_revenus_d832_26_)) @@ -2394,42 +2396,49 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal condition_2_du_832_25_)) (fun (_: unit) -> (let ressources_menage_arrondies_ : decimal = - (decimal_of_money ressources_menage_arrondies_) + (o_moneyToRat ressources_menage_arrondies_) in - (money_of_decimal - (((Array.fold_left - (fun (acc_: decimal) - (tranche_: TrancheRevenuDecimal.t) -> - acc_ +& - ( if - (ressources_menage_arrondies_ <=& - (tranche_.TrancheRevenuDecimal.bas)) - then (decimal_of_string "0.") else - (match - (tranche_.TrancheRevenuDecimal.haut) - with - | LimiteTrancheDecimal.Revenu tranche_haut_ -> - ( if - (ressources_menage_arrondies_ >=& - tranche_haut_) then - ((tranche_haut_ -& - (tranche_.TrancheRevenuDecimal.bas)) - *& - (tranche_.TrancheRevenuDecimal.taux)) - else - ((ressources_menage_arrondies_ -& - (tranche_.TrancheRevenuDecimal.bas)) - *& - (tranche_.TrancheRevenuDecimal.taux))) - | LimiteTrancheDecimal.Infini _ -> - ((ressources_menage_arrondies_ -& - (tranche_.TrancheRevenuDecimal.bas)) - *& - (tranche_.TrancheRevenuDecimal.taux))))) - (decimal_of_string "0.") - tranches_revenus_d832_26_multipliees_) +& - (decimal_of_money montant_forfaitaire_d832_26_)) - /& (decimal_of_string "12."))))))|]) + (o_ratToMoney + (o_div_rat_rat + (o_add_rat_rat + (o_fold + (fun (acc_: decimal) + (tranche_: TrancheRevenuDecimal.t) -> + o_add_rat_rat acc_ + ( if + (o_lte_rat_rat + ressources_menage_arrondies_ + (tranche_.TrancheRevenuDecimal.bas)) + then (decimal_of_string "0.") else + (match + (tranche_.TrancheRevenuDecimal.haut) + with + | LimiteTrancheDecimal.Revenu tranche_haut_ -> + ( if + (o_gte_rat_rat + ressources_menage_arrondies_ + tranche_haut_) then + (o_mult_rat_rat + (o_sub_rat_rat + tranche_haut_ + (tranche_.TrancheRevenuDecimal.bas)) + (tranche_.TrancheRevenuDecimal.taux)) + else + (o_mult_rat_rat + (o_sub_rat_rat + ressources_menage_arrondies_ + (tranche_.TrancheRevenuDecimal.bas)) + (tranche_.TrancheRevenuDecimal.taux))) + | LimiteTrancheDecimal.Infini _ -> + (o_mult_rat_rat + (o_sub_rat_rat + ressources_menage_arrondies_ + (tranche_.TrancheRevenuDecimal.bas)) + (tranche_.TrancheRevenuDecimal.taux))))) + (decimal_of_string "0.") + tranches_revenus_d832_26_multipliees_) + (o_moneyToRat montant_forfaitaire_d832_26_)) + (decimal_of_string "12."))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4040; start_column=14; end_line=4040; end_column=21; @@ -2444,40 +2453,47 @@ let calcul_equivalence_loyer_minimale (calcul_equivalence_loyer_minimale_in: Cal true)) (fun (_: unit) -> (let ressources_menage_arrondies_ : decimal = - (decimal_of_money ressources_menage_arrondies_) + (o_moneyToRat ressources_menage_arrondies_) in - (money_of_decimal - (((Array.fold_left - (fun (acc_: decimal) - (tranche_: TrancheRevenuDecimal.t) -> - acc_ +& - ( if - (ressources_menage_arrondies_ <=& - (tranche_.TrancheRevenuDecimal.bas)) then - (decimal_of_string "0.") else - (match (tranche_.TrancheRevenuDecimal.haut) - with - | LimiteTrancheDecimal.Revenu tranche_haut_ -> - ( if - (ressources_menage_arrondies_ >=& - tranche_haut_) then - ((tranche_haut_ -& - (tranche_.TrancheRevenuDecimal.bas)) - *& - (tranche_.TrancheRevenuDecimal.taux)) - else - ((ressources_menage_arrondies_ -& - (tranche_.TrancheRevenuDecimal.bas)) - *& - (tranche_.TrancheRevenuDecimal.taux))) - | LimiteTrancheDecimal.Infini _ -> - ((ressources_menage_arrondies_ -& - (tranche_.TrancheRevenuDecimal.bas)) *& - (tranche_.TrancheRevenuDecimal.taux))))) - (decimal_of_string "0.") - tranches_revenus_d832_26_multipliees_) +& - ((decimal_of_money montant_forfaitaire_d832_26_) *& - n_nombre_parts_d832_25_)) /& (decimal_of_string "12.")))))) + (o_ratToMoney + (o_div_rat_rat + (o_add_rat_rat + (o_fold + (fun (acc_: decimal) + (tranche_: TrancheRevenuDecimal.t) -> + o_add_rat_rat acc_ + ( if + (o_lte_rat_rat ressources_menage_arrondies_ + (tranche_.TrancheRevenuDecimal.bas)) then + (decimal_of_string "0.") else + (match (tranche_.TrancheRevenuDecimal.haut) + with + | LimiteTrancheDecimal.Revenu tranche_haut_ -> + ( if + (o_gte_rat_rat + ressources_menage_arrondies_ + tranche_haut_) then + (o_mult_rat_rat + (o_sub_rat_rat tranche_haut_ + (tranche_.TrancheRevenuDecimal.bas)) + (tranche_.TrancheRevenuDecimal.taux)) + else + (o_mult_rat_rat + (o_sub_rat_rat + ressources_menage_arrondies_ + (tranche_.TrancheRevenuDecimal.bas)) + (tranche_.TrancheRevenuDecimal.taux))) + | LimiteTrancheDecimal.Infini _ -> + (o_mult_rat_rat + (o_sub_rat_rat + ressources_menage_arrondies_ + (tranche_.TrancheRevenuDecimal.bas)) + (tranche_.TrancheRevenuDecimal.taux))))) + (decimal_of_string "0.") + tranches_revenus_d832_26_multipliees_) + (o_mult_rat_rat + (o_moneyToRat montant_forfaitaire_d832_26_) + n_nombre_parts_d832_25_)) (decimal_of_string "12.")))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -2527,8 +2543,8 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal condition_2_du_832_25_)) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -2536,23 +2552,26 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal | SituationFamilialeCalculAPL.Couple _ -> (decimal_of_string "1.5")) else ( if - (nombre_personnes_a_charge_ = (integer_of_string + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (decimal_of_string "2.5") else ( if - (nombre_personnes_a_charge_ = (integer_of_string - "2")) then (decimal_of_string "3.") else + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (decimal_of_string "3.") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (decimal_of_string "3.7") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (decimal_of_string "4.3") else - ((decimal_of_string "4.3") +& - ((decimal_of_string "0.5") *& - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_rat_rat (decimal_of_string "4.3") + (o_mult_rat_rat + (decimal_of_string "0.5") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4")))))))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; @@ -2567,27 +2586,29 @@ let calcul_nombre_part_logement_foyer (calcul_nombre_part_logement_foyer_in: Cal "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - if (nombre_personnes_a_charge_ = (integer_of_string "0")) then + if (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) + then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (decimal_of_string "1.4") | SituationFamilialeCalculAPL.Couple _ -> (decimal_of_string "1.8")) else - ( if (nombre_personnes_a_charge_ = (integer_of_string "1")) + ( if (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (decimal_of_string "2.5") else - ( if (nombre_personnes_a_charge_ = (integer_of_string "2")) + ( if + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (decimal_of_string "3.") else ( if - (nombre_personnes_a_charge_ = (integer_of_string "3")) - then (decimal_of_string "3.7") else + (o_eq nombre_personnes_a_charge_ (integer_of_string + "3")) then (decimal_of_string "3.7") else ( if - (nombre_personnes_a_charge_ = (integer_of_string + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (decimal_of_string "4.3") else - ((decimal_of_string "4.3") +& - ((decimal_of_string "0.5") *& - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_rat_rat (decimal_of_string "4.3") + (o_mult_rat_rat (decimal_of_string "0.5") + (o_intToRat + (o_sub_int_int nombre_personnes_a_charge_ (integer_of_string "4"))))))))))) with EmptyError -> (raise (NoValueProvided @@ -2626,27 +2647,29 @@ let calcul_nombre_parts_accession_propriete (calcul_nombre_parts_accession_propr "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - if (nombre_personnes_a_charge_ = (integer_of_string "0")) then + if (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) + then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (decimal_of_string "1.4") | SituationFamilialeCalculAPL.Couple _ -> (decimal_of_string "1.8")) else - ( if (nombre_personnes_a_charge_ = (integer_of_string "1")) + ( if (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (decimal_of_string "2.5") else - ( if (nombre_personnes_a_charge_ = (integer_of_string "2")) + ( if + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (decimal_of_string "3.") else ( if - (nombre_personnes_a_charge_ = (integer_of_string "3")) - then (decimal_of_string "3.7") else + (o_eq nombre_personnes_a_charge_ (integer_of_string + "3")) then (decimal_of_string "3.7") else ( if - (nombre_personnes_a_charge_ = (integer_of_string + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (decimal_of_string "4.3") else - ((decimal_of_string "4.3") +& - ((decimal_of_string "0.5") *& - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_rat_rat (decimal_of_string "4.3") + (o_mult_rat_rat (decimal_of_string "0.5") + (o_intToRat + (o_sub_int_int nombre_personnes_a_charge_ (integer_of_string "4"))))))))))) with EmptyError -> (raise (NoValueProvided @@ -2691,7 +2714,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Titre III: Titre III : Dispositions communes relatives au financement"; "Partie législative"; "Code de la sécurité sociale"]} - (date_naissance_assure_ >=@ + (o_gte_dat_dat date_naissance_assure_ (date_of_numbers (1955) (1) (1))))) (fun (_: unit) -> duration_of_numbers (62) (0) (0))); (fun (_: unit) -> @@ -2715,7 +2738,7 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (date_naissance_assure_ <@ + (o_lt_dat_dat date_naissance_assure_ (date_of_numbers (1951) (7) (1))))) (fun (_: unit) -> duration_of_numbers (60) (0) (0))); (fun (_: unit) -> @@ -2739,12 +2762,13 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((date_naissance_assure_ >=@ - (date_of_numbers (1951) (7) (1))) && - (date_naissance_assure_ <=@ + (o_and + (o_gte_dat_dat date_naissance_assure_ + (date_of_numbers (1951) (7) (1))) + (o_lte_dat_dat date_naissance_assure_ (date_of_numbers (1951) (12) (31)))))) (fun (_: unit) -> - (duration_of_numbers (60) (0) (0)) +^ + o_add_dur_dur (duration_of_numbers (60) (0) (0)) (duration_of_numbers (0) (4) (0)))); (fun (_: unit) -> handle_default @@ -2767,10 +2791,10 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((year_of_date date_naissance_assure_) = + (o_eq (o_getYear date_naissance_assure_) (integer_of_string "1952")))) (fun (_: unit) -> - (duration_of_numbers (60) (0) (0)) +^ + o_add_dur_dur (duration_of_numbers (60) (0) (0)) (duration_of_numbers (0) (9) (0)))); (fun (_: unit) -> handle_default @@ -2793,10 +2817,10 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((year_of_date date_naissance_assure_) = + (o_eq (o_getYear date_naissance_assure_) (integer_of_string "1953")))) (fun (_: unit) -> - (duration_of_numbers (61) (0) (0)) +^ + o_add_dur_dur (duration_of_numbers (61) (0) (0)) (duration_of_numbers (0) (2) (0)))); (fun (_: unit) -> handle_default @@ -2819,10 +2843,10 @@ let ouverture_droits_retraite (ouverture_droits_retraite_in: OuvertureDroitsRetr "Livre I : Généralités - Dispositions communes à tout ou partie des régimes de base"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((year_of_date date_naissance_assure_) = + (o_eq (o_getYear date_naissance_assure_) (integer_of_string "1954")))) (fun (_: unit) -> - (duration_of_numbers (61) (0) (0)) +^ + o_add_dur_dur (duration_of_numbers (61) (0) (0)) (duration_of_numbers (0) (7) (0))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -2991,7 +3015,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn (DepenseLogement.Mensualite mensualite_) | DepenseLogement.Loyer montant_loyer_ -> (DepenseLogement.Loyer - (montant_loyer_ -$ montant_apl_)))); + (o_sub_mon_mon montant_loyer_ montant_apl_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -3020,11 +3044,12 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn with | DepenseLogement.TotalAnnuelEcheances total_echeances_ -> (DepenseLogement.TotalAnnuelEcheances - (total_echeances_ -$ - (montant_apl_ *$ (decimal_of_string "12.")))) + (o_sub_mon_mon total_echeances_ + (o_mult_mon_rat montant_apl_ + (decimal_of_string "12.")))) | DepenseLogement.Mensualite mensualite_ -> (DepenseLogement.Mensualite - (mensualite_ -$ montant_apl_)) + (o_sub_mon_mon mensualite_ montant_apl_)) | DepenseLogement.Loyer loyer_ -> (DepenseLogement.Loyer loyer_)))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) @@ -3064,10 +3089,11 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((match mode_occupation_impaye_ - with - | ModeOccupationImpaye.ImpayeLoyer _ -> true - | ModeOccupationImpaye.ImpayePret _ -> false) && + (o_and + (match mode_occupation_impaye_ + with + | ModeOccupationImpaye.ImpayeLoyer _ -> true + | ModeOccupationImpaye.ImpayePret _ -> false) (match aide_versee_ with | VersementA.Bailleur _ -> false @@ -3081,7 +3107,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | DepenseLogement.Mensualite _ -> (money_of_cents_string "0") | DepenseLogement.Loyer loyer_brut_ -> - ((loyer_brut_ +$ montant_charges_) *$ + (o_mult_mon_rat + (o_add_mon_mon loyer_brut_ montant_charges_) (decimal_of_string "2.")))); (fun (_: unit) -> handle_default @@ -3102,10 +3129,11 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((match mode_occupation_impaye_ - with - | ModeOccupationImpaye.ImpayeLoyer _ -> true - | ModeOccupationImpaye.ImpayePret _ -> false) && + (o_and + (match mode_occupation_impaye_ + with + | ModeOccupationImpaye.ImpayeLoyer _ -> true + | ModeOccupationImpaye.ImpayePret _ -> false) (match aide_versee_ with | VersementA.Bailleur _ -> true @@ -3119,7 +3147,8 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | DepenseLogement.Mensualite _ -> (money_of_cents_string "0") | DepenseLogement.Loyer loyer_net_ -> - ((loyer_net_ +$ montant_charges_) *$ + (o_mult_mon_rat + (o_add_mon_mon loyer_net_ montant_charges_) (decimal_of_string "2.")))); (fun (_: unit) -> handle_default @@ -3140,10 +3169,11 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((match mode_occupation_impaye_ - with - | ModeOccupationImpaye.ImpayeLoyer _ -> false - | ModeOccupationImpaye.ImpayePret _ -> true) && + (o_and + (match mode_occupation_impaye_ + with + | ModeOccupationImpaye.ImpayeLoyer _ -> false + | ModeOccupationImpaye.ImpayePret _ -> true) (match aide_versee_ with | VersementA.Bailleur _ -> false @@ -3153,11 +3183,12 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn match depense_logement_brute_ with | DepenseLogement.TotalAnnuelEcheances echeance_pret_brute_ -> - (echeance_pret_brute_ *$ - ((decimal_of_string "1.") /& + (o_mult_mon_rat echeance_pret_brute_ + (o_div_rat_rat (decimal_of_string "1.") (decimal_of_string "6."))) | DepenseLogement.Mensualite mensualite_brute_ -> - (mensualite_brute_ *$ (decimal_of_string "2.")) + (o_mult_mon_rat mensualite_brute_ + (decimal_of_string "2.")) | DepenseLogement.Loyer _ -> (money_of_cents_string "0"))); (fun (_: unit) -> handle_default @@ -3178,10 +3209,11 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((match mode_occupation_impaye_ - with - | ModeOccupationImpaye.ImpayeLoyer _ -> false - | ModeOccupationImpaye.ImpayePret _ -> true) && + (o_and + (match mode_occupation_impaye_ + with + | ModeOccupationImpaye.ImpayeLoyer _ -> false + | ModeOccupationImpaye.ImpayePret _ -> true) (match aide_versee_ with | VersementA.Bailleur _ -> false @@ -3191,11 +3223,12 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn match depense_logement_nette_ with | DepenseLogement.TotalAnnuelEcheances echeance_pret_nette_ -> - (echeance_pret_nette_ *$ - ((decimal_of_string "1.") /& + (o_mult_mon_rat echeance_pret_nette_ + (o_div_rat_rat (decimal_of_string "1.") (decimal_of_string "6."))) | DepenseLogement.Mensualite mensualite_nette_ -> - (mensualite_nette_ *$ (decimal_of_string "2.")) + (o_mult_mon_rat mensualite_nette_ + (decimal_of_string "2.")) | DepenseLogement.Loyer _ -> (money_of_cents_string "0")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -3248,7 +3281,7 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | ModeOccupationImpaye.ImpayePret _ -> true))) (fun (_: unit) -> if - (montant_dette_ >=$ + (o_gte_mon_mon montant_dette_ seuil_impaye_depense_de_logement_) then montant_dette_ else (money_of_cents_string "0")))|]) (fun (_: unit) -> (log_decision_taken @@ -3268,8 +3301,9 @@ let impaye_depense_logement (impaye_depense_logement_in: ImpayeDepenseLogementIn | ModeOccupationImpaye.ImpayePret _ -> false))) (fun (_: unit) -> if - (montant_dette_ >=$ seuil_impaye_depense_de_logement_) - then montant_dette_ else (money_of_cents_string "0")))|]) + (o_gte_mon_mon montant_dette_ + seuil_impaye_depense_de_logement_) then + montant_dette_ else (money_of_cents_string "0")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided @@ -3301,8 +3335,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=29; end_column=34; law_headings=["Instruction ministérielle N°DSS/SD2B/2019/65 du 25 mars 2019 relative à la revalorisation au 1er avril 2019 des prestations familiales servies en métropole"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2019) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2020) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2020) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "41316")); (fun (_: unit) -> handle_default @@ -3316,8 +3353,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=49; end_column=34; law_headings=["Instruction interministérielle no DSS/SD2B/2020/33 du 18 février 2020 relative à la revalorisation au 1er avril 2020 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2020) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2021) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "41440")); (fun (_: unit) -> handle_default @@ -3331,8 +3371,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=65; end_column=34; law_headings=["Instruction interministérielle n°DSS/2B/2021/65 du 19 mars 2021 relative à la revalorisation au 1er avril 2021 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2021) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2022) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "41481")); (fun (_: unit) -> handle_default @@ -3346,8 +3389,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=83; end_column=34; law_headings=["Instruction interministérielle n°DSS/2B/2022/82 du 28 mars 2022 relative à la revalorisation au 1er avril 2022 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2022) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2023) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "42228"))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -3383,23 +3429,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2019) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2019) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1003")); @@ -3418,10 +3473,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2019) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2019) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "757")); (fun (_: unit) -> handle_default @@ -3438,23 +3496,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2020) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2020) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2020) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1015")); @@ -3473,10 +3540,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2020) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2020) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2020) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "766")); (fun (_: unit) -> handle_default @@ -3493,23 +3563,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2021) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2021) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1025")); @@ -3528,10 +3607,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2021) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2021) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "774")); (fun (_: unit) -> handle_default @@ -3548,23 +3630,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && - ((date_courante_ <=@ (date_of_numbers (2022) (4) (30))) - && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (4) (30))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1057")); @@ -3583,9 +3674,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && - ((date_courante_ <=@ (date_of_numbers (2022) (4) (30))) - && (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (4) (30))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "798")); (fun (_: unit) -> handle_default @@ -3602,23 +3697,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 2"; "Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (5) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2022) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (5) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1085")); @@ -3637,10 +3741,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 2"; "Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (5) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2022) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (5) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "819"))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -3804,13 +3911,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2021) (10) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -3819,45 +3927,48 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme | SituationFamilialeCalculAPL.Couple _ -> (decimal_of_string "0.0315")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (decimal_of_string "0.027") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (decimal_of_string "0.0238") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "3")) then (decimal_of_string "0.0201") else ( if - (nombre_personnes_a_charge_ - = (integer_of_string - "4")) then + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then (decimal_of_string "0.0185") else ( if - (nombre_personnes_a_charge_ - = (integer_of_string + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) then (decimal_of_string "0.0179") else ( if - (nombre_personnes_a_charge_ - = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "6")) then (decimal_of_string "0.0173") else - ((decimal_of_string "0.0173") - -& - ((decimal_of_string "0.0006") - *& - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_sub_rat_rat + (decimal_of_string "0.0173") + (o_mult_rat_rat + (decimal_of_string "0.0006") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "6")))))))))))))|]) (fun (_: unit) -> (log_decision_taken @@ -3867,13 +3978,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -3882,39 +3994,40 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme | SituationFamilialeCalculAPL.Couple _ -> (decimal_of_string "0.0315")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (decimal_of_string "0.027") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (decimal_of_string "0.0238") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (decimal_of_string "0.0201") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (decimal_of_string "0.0185") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "5")) then (decimal_of_string "0.0179") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "6")) then (decimal_of_string "0.0173") else - ((decimal_of_string "0.0173") - -& - ((decimal_of_string "0.0006") - *& - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_sub_rat_rat + (decimal_of_string "0.0173") + (o_mult_rat_rat + (decimal_of_string "0.0006") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "6")))))))))))))|]) (fun (_: unit) -> (log_decision_taken @@ -3924,11 +4037,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -3936,33 +4050,36 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme | SituationFamilialeCalculAPL.Couple _ -> (decimal_of_string "0.0315")) else ( if - (nombre_personnes_a_charge_ = (integer_of_string + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (decimal_of_string "0.027") else ( if - (nombre_personnes_a_charge_ = (integer_of_string - "2")) then (decimal_of_string "0.0238") else + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (decimal_of_string "0.0238") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (decimal_of_string "0.0201") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (decimal_of_string "0.0185") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "5")) then (decimal_of_string "0.0179") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "6")) then (decimal_of_string "0.0173") else - ((decimal_of_string "0.0173") -& - ((decimal_of_string "0.0006") *& - (decimal_of_integer - (nombre_personnes_a_charge_ - -! (integer_of_string - "6")))))))))))))|]) + (o_sub_rat_rat + (decimal_of_string "0.0173") + (o_mult_rat_rat + (decimal_of_string "0.0006") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))))))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided @@ -3999,11 +4116,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 15"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -4011,35 +4129,36 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "697700")) else ( if - (nombre_personnes_a_charge_ = (integer_of_string + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "832200") else ( if - (nombre_personnes_a_charge_ = (integer_of_string - "2")) then (money_of_cents_string "850900") - else + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "850900") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "883400") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "916300") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "948800") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "6")) then (money_of_cents_string "981600") else - ((money_of_cents_string "981600") +$ - ((money_of_cents_string "32300") - *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! (integer_of_string - "6"))))))))))))); + (o_add_mon_mon (money_of_cents_string + "981600") + (o_mult_mon_rat + (money_of_cents_string "32300") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "6"))))))))))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -4056,12 +4175,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 15"; "Articles valables du 1er janvier 2022 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -4069,35 +4191,36 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "670900")) else ( if - (nombre_personnes_a_charge_ = (integer_of_string + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "800200") else ( if - (nombre_personnes_a_charge_ = (integer_of_string - "2")) then (money_of_cents_string "819200") - else + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "819200") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "849500") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "881100") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "912400") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "6")) then (money_of_cents_string "943900") else - ((money_of_cents_string "943900") +$ - ((money_of_cents_string "31100") - *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! (integer_of_string - "6"))))))))))))); + (o_add_mon_mon (money_of_cents_string + "943900") + (o_mult_mon_rat + (money_of_cents_string "31100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "6"))))))))))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -4115,12 +4238,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er janvier 2020 au 1er janvier 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ (date_of_numbers (2022) (1) (1))) && - (date_courante_ >=@ (date_of_numbers (2020) (1) (1)))))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -4128,35 +4254,36 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "657200")) else ( if - (nombre_personnes_a_charge_ = (integer_of_string + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "783900") else ( if - (nombre_personnes_a_charge_ = (integer_of_string - "2")) then (money_of_cents_string "801500") - else + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "801500") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "832200") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "863100") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "893800") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "6")) then (money_of_cents_string "924600") else - ((money_of_cents_string "924600") +$ - ((money_of_cents_string "30500") - *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! (integer_of_string - "6")))))))))))))|]) + (o_add_mon_mon (money_of_cents_string + "924600") + (o_mult_mon_rat + (money_of_cents_string "30500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "6")))))))))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided @@ -4203,13 +4330,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -4217,10 +4345,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (money_of_cents_string "25978") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31797")) else - ((money_of_cents_string "35780") +$ - ((money_of_cents_string "5208") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "35780") + (o_mult_mon_rat (money_of_cents_string + "5208") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; @@ -4229,21 +4359,22 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "25978") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31797")) else - ((money_of_cents_string "35780") +$ - ((money_of_cents_string "5208") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "35780") + (o_mult_mon_rat (money_of_cents_string "5208") + (o_intToRat + (o_sub_int_int nombre_personnes_a_charge_ (integer_of_string "1"))))))); (fun (_: unit) -> handle_default @@ -4262,23 +4393,25 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ (date_of_numbers (2020) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2021) (10) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> (money_of_cents_string "25869") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31664")) else - ((money_of_cents_string "35630") +$ - ((money_of_cents_string "5186") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "35630") + (o_mult_mon_rat (money_of_cents_string "5186") + (o_intToRat + (o_sub_int_int nombre_personnes_a_charge_ (integer_of_string "1")))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -4361,16 +4494,19 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && - colocation_) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -4398,16 +4534,19 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && - colocation_) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -4435,31 +4574,42 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && - colocation_) && - (nombre_personnes_a_charge_ >=! + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_) + (o_gte_int_int nombre_personnes_a_charge_ (integer_of_string "1"))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> - ((money_of_cents_string "31539") +$ - ((money_of_cents_string "4576") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "31539") + (o_mult_mon_rat (money_of_cents_string + "4576") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone2 _ -> - ((money_of_cents_string "27774") +$ - ((money_of_cents_string "4043") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "27774") + (o_mult_mon_rat (money_of_cents_string + "4043") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone3 _ -> - ((money_of_cents_string "25689") +$ - ((money_of_cents_string "3682") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "25689") + (o_mult_mon_rat (money_of_cents_string + "3682") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))))); (fun (_: unit) -> handle_default @@ -4478,18 +4628,22 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ <@ - (date_of_numbers (2022) (7) (1))) && - colocation_)) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -4517,18 +4671,22 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ <@ - (date_of_numbers (2022) (7) (1))) && - colocation_)) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -4556,33 +4714,45 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ <@ - (date_of_numbers (2022) (7) (1))) && - colocation_)) && - (nombre_personnes_a_charge_ >=! + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + colocation_)) + (o_gte_int_int nombre_personnes_a_charge_ (integer_of_string "1"))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> - ((money_of_cents_string "30473") +$ - ((money_of_cents_string "4421") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "30473") + (o_mult_mon_rat (money_of_cents_string + "4421") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone2 _ -> - ((money_of_cents_string "26835") +$ - ((money_of_cents_string "3906") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "26835") + (o_mult_mon_rat (money_of_cents_string + "3906") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone3 _ -> - ((money_of_cents_string "24821") +$ - ((money_of_cents_string "3557") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "24821") + (o_mult_mon_rat (money_of_cents_string + "3557") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))))); (fun (_: unit) -> handle_default @@ -4602,18 +4772,22 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && - colocation_)) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> - false) && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -4642,18 +4816,22 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && - colocation_)) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> - true) && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + colocation_)) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -4682,33 +4860,45 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && - colocation_)) && - (nombre_personnes_a_charge_ >=! + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + colocation_)) + (o_gte_int_int nombre_personnes_a_charge_ (integer_of_string "1"))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> - ((money_of_cents_string "30345") +$ - ((money_of_cents_string "4403") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "30345") + (o_mult_mon_rat (money_of_cents_string + "4403") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone2 _ -> - ((money_of_cents_string "26723") +$ - ((money_of_cents_string "3890") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "26723") + (o_mult_mon_rat (money_of_cents_string + "3890") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone3 _ -> - ((money_of_cents_string "24717") +$ - ((money_of_cents_string "3542") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "24717") + (o_mult_mon_rat (money_of_cents_string + "3542") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)); (fun (_: unit) -> @@ -4746,9 +4936,11 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 8"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && - logement_est_chambre_) && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + logement_est_chambre_) agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) (fun (_: unit) -> match zone_ @@ -4776,12 +4968,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 8"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) - && - ((date_courante_ <@ - (date_of_numbers (2022) (7) (1))) - && logement_est_chambre_)) && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + logement_est_chambre_)) agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) (fun (_: unit) -> match zone_ @@ -4810,12 +5004,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) - && - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) - && logement_est_chambre_)) && + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + logement_est_chambre_)) agees_ou_handicap_adultes_hebergees_onereux_particuliers_))) (fun (_: unit) -> match zone_ @@ -4855,8 +5051,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 8"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) logement_est_chambre_))) (fun (_: unit) -> match zone_ @@ -4884,10 +5081,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 8"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ <@ - (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) logement_est_chambre_)))) (fun (_: unit) -> match zone_ @@ -4916,10 +5115,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) logement_est_chambre_)))) (fun (_: unit) -> match zone_ @@ -4958,15 +5159,17 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 7"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> false) - && - (nombre_personnes_a_charge_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -4994,15 +5197,17 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 7"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> true) - && - (nombre_personnes_a_charge_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -5030,30 +5235,37 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 7"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && - (nombre_personnes_a_charge_ >=! + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) + (o_gte_int_int nombre_personnes_a_charge_ (integer_of_string "1"))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> - ((money_of_cents_string "42052") +$ - ((money_of_cents_string "6101") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "42052") + (o_mult_mon_rat (money_of_cents_string + "6101") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone2 _ -> - ((money_of_cents_string "37032") +$ - ((money_of_cents_string "5390") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "37032") + (o_mult_mon_rat (money_of_cents_string + "5390") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone3 _ -> - ((money_of_cents_string "34252") +$ - ((money_of_cents_string "4909") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "34252") + (o_mult_mon_rat (money_of_cents_string + "4909") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))))); (fun (_: unit) -> handle_default @@ -5072,17 +5284,20 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 7"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ - (date_of_numbers (2022) (7) (1)))) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> false) - && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -5110,17 +5325,20 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 7"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ - (date_of_numbers (2022) (7) (1)))) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> true) - && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -5148,32 +5366,40 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 7"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ - (date_of_numbers (2022) (7) (1)))) && - (nombre_personnes_a_charge_ >=! + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) + (o_gte_int_int nombre_personnes_a_charge_ (integer_of_string "1"))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> - ((money_of_cents_string "40630") +$ - ((money_of_cents_string "5895") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "40630") + (o_mult_mon_rat (money_of_cents_string + "5895") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone2 _ -> - ((money_of_cents_string "35780") +$ - ((money_of_cents_string "5208") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "35780") + (o_mult_mon_rat (money_of_cents_string + "5208") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone3 _ -> - ((money_of_cents_string "33094") +$ - ((money_of_cents_string "4743") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "33094") + (o_mult_mon_rat (money_of_cents_string + "4743") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))))); (fun (_: unit) -> handle_default @@ -5193,17 +5419,20 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ - (date_of_numbers (2020) (10) (1)))) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - true - | SituationFamilialeCalculAPL.Couple _ -> false) - && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + true + | SituationFamilialeCalculAPL.Couple _ -> + false) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -5232,17 +5461,20 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ - (date_of_numbers (2020) (10) (1)))) && - ((match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - false - | SituationFamilialeCalculAPL.Couple _ -> true) - && - (nombre_personnes_a_charge_ = + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_and + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + false + | SituationFamilialeCalculAPL.Couple _ -> + true) + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")))))) (fun (_: unit) -> match zone_ @@ -5271,32 +5503,40 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ - (date_of_numbers (2020) (10) (1)))) && - (nombre_personnes_a_charge_ >=! + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) + (o_gte_int_int nombre_personnes_a_charge_ (integer_of_string "1"))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> - ((money_of_cents_string "40460") +$ - ((money_of_cents_string "5870") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "40460") + (o_mult_mon_rat (money_of_cents_string + "5870") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone2 _ -> - ((money_of_cents_string "35630") +$ - ((money_of_cents_string "5186") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "35630") + (o_mult_mon_rat (money_of_cents_string + "5186") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))) | ZoneDHabitation.Zone3 _ -> - ((money_of_cents_string "32956") +$ - ((money_of_cents_string "4723") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string "32956") + (o_mult_mon_rat (money_of_cents_string + "4723") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with @@ -5344,19 +5584,20 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) colocation_))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2805") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5612")) +$ - ((money_of_cents_string "1272") *$ - (decimal_of_integer - nombre_personnes_a_charge_)))); + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2805") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5612")) + (o_mult_mon_rat (money_of_cents_string "1272") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5374,21 +5615,23 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 16"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ <@ - (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) colocation_)))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2710") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5422")) +$ - ((money_of_cents_string "1229") *$ - (decimal_of_integer - nombre_personnes_a_charge_)))); + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2710") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5422")) + (o_mult_mon_rat (money_of_cents_string "1229") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5407,21 +5650,23 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) colocation_)))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2699") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5399")) +$ - ((money_of_cents_string "1224") *$ - (decimal_of_integer - nombre_personnes_a_charge_))))|]) + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2699") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5399")) + (o_mult_mon_rat (money_of_cents_string "1224") + (o_intToRat nombre_personnes_a_charge_))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> true) (fun (_: unit) -> @@ -5449,11 +5694,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 9"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> - (money_of_cents_string "5612") +$ - ((money_of_cents_string "1272") *$ - (decimal_of_integer nombre_personnes_a_charge_)))); + o_add_mon_mon (money_of_cents_string "5612") + (o_mult_mon_rat (money_of_cents_string "1272") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5471,14 +5717,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 9"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> - (money_of_cents_string "5422") +$ - ((money_of_cents_string "1229") *$ - (decimal_of_integer nombre_personnes_a_charge_)))); + o_add_mon_mon (money_of_cents_string "5422") + (o_mult_mon_rat (money_of_cents_string "1229") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5497,14 +5744,15 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ (date_of_numbers (2020) (10) (1)))))) (fun (_: unit) -> - (money_of_cents_string "5399") +$ - ((money_of_cents_string "1224") *$ - (decimal_of_integer nombre_personnes_a_charge_))))|]) + o_add_mon_mon (money_of_cents_string "5399") + (o_mult_mon_rat (money_of_cents_string "1224") + (o_intToRat nombre_personnes_a_charge_))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided @@ -5538,9 +5786,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true)) (fun (_: unit) -> if logement_meuble_d842_2_ then - (loyer_principal_base_ *$ - ((decimal_of_string "2.") /& (decimal_of_string "3."))) else - loyer_principal_base_)) + (o_mult_mon_rat loyer_principal_base_ + (o_div_rat_rat (decimal_of_string "2.") + (decimal_of_string "3."))) else loyer_principal_base_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5571,11 +5819,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme match zone_ with | ZoneDHabitation.Zone1 _ -> - (plafond_loyer_d823_16_2_ *$ (decimal_of_string "4.")) + (o_mult_mon_rat plafond_loyer_d823_16_2_ + (decimal_of_string "4.")) | ZoneDHabitation.Zone2 _ -> - (plafond_loyer_d823_16_2_ *$ (decimal_of_string "3.1")) + (o_mult_mon_rat plafond_loyer_d823_16_2_ + (decimal_of_string "3.1")) | ZoneDHabitation.Zone3 _ -> - (plafond_loyer_d823_16_2_ *$ (decimal_of_string "3.1")))) + (o_mult_mon_rat plafond_loyer_d823_16_2_ + (decimal_of_string "3.1")))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5606,11 +5857,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme match zone_ with | ZoneDHabitation.Zone1 _ -> - (plafond_loyer_d823_16_2_ *$ (decimal_of_string "3.4")) + (o_mult_mon_rat plafond_loyer_d823_16_2_ + (decimal_of_string "3.4")) | ZoneDHabitation.Zone2 _ -> - (plafond_loyer_d823_16_2_ *$ (decimal_of_string "2.5")) + (o_mult_mon_rat plafond_loyer_d823_16_2_ + (decimal_of_string "2.5")) | ZoneDHabitation.Zone3 _ -> - (plafond_loyer_d823_16_2_ *$ (decimal_of_string "2.5")))) + (o_mult_mon_rat plafond_loyer_d823_16_2_ + (decimal_of_string "2.5")))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -5644,7 +5898,7 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true)) (fun (_: unit) -> if - (loyer_principal_avec_reduction_meuble_ >$ + (o_gt_mon_mon loyer_principal_avec_reduction_meuble_ plafond_loyer_d823_16_2_) then plafond_loyer_d823_16_2_ else loyer_principal_avec_reduction_meuble_)) with @@ -5707,17 +5961,19 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true)) (fun (_: unit) -> if - (loyer_principal_avec_reduction_meuble_ >$ + (o_gt_mon_mon loyer_principal_avec_reduction_meuble_ plafond_suppression_d823_16_) then (money_of_cents_string "0") else ( if - (loyer_principal_avec_reduction_meuble_ >$ + (o_gt_mon_mon loyer_principal_avec_reduction_meuble_ plafond_degressivite_d823_16_) then - (param_ -$ - (param_ *$ - ((loyer_principal_avec_reduction_meuble_ -$ - plafond_degressivite_d823_16_) /$ - (plafond_suppression_d823_16_ -$ + (o_sub_mon_mon param_ + (o_mult_mon_rat param_ + (o_div_mon_mon + (o_sub_mon_mon + loyer_principal_avec_reduction_meuble_ + plafond_degressivite_d823_16_) + (o_sub_mon_mon plafond_suppression_d823_16_ plafond_degressivite_d823_16_)))) else param_))) with @@ -5763,15 +6019,19 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 13"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if - (((loyer_eligible_ +$ - montant_forfaitaire_charges_d823_16_) *$ - (decimal_of_string "0.085")) >=$ + (o_gte_mon_mon + (o_mult_mon_rat + (o_add_mon_mon loyer_eligible_ + montant_forfaitaire_charges_d823_16_) + (decimal_of_string "0.085")) (money_of_cents_string "3663")) then - ((loyer_eligible_ +$ - montant_forfaitaire_charges_d823_16_) *$ + (o_mult_mon_rat + (o_add_mon_mon loyer_eligible_ + montant_forfaitaire_charges_d823_16_) (decimal_of_string "0.085")) else (money_of_cents_string "3663"))); (fun (_: unit) -> @@ -5790,17 +6050,22 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 13"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if - (((loyer_eligible_ +$ - montant_forfaitaire_charges_d823_16_) *$ - (decimal_of_string "0.085")) >=$ + (o_gte_mon_mon + (o_mult_mon_rat + (o_add_mon_mon loyer_eligible_ + montant_forfaitaire_charges_d823_16_) + (decimal_of_string "0.085")) (money_of_cents_string "3539")) then - ((loyer_eligible_ +$ - montant_forfaitaire_charges_d823_16_) *$ + (o_mult_mon_rat + (o_add_mon_mon loyer_eligible_ + montant_forfaitaire_charges_d823_16_) (decimal_of_string "0.085")) else (money_of_cents_string "3539"))); (fun (_: unit) -> @@ -5820,16 +6085,22 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))))) (fun (_: unit) -> if - (((loyer_eligible_ +$ - montant_forfaitaire_charges_d823_16_) *$ - (decimal_of_string "0.085")) >=$ + (o_gte_mon_mon + (o_mult_mon_rat + (o_add_mon_mon loyer_eligible_ + montant_forfaitaire_charges_d823_16_) + (decimal_of_string "0.085")) (money_of_cents_string "3524")) then - ((loyer_eligible_ +$ - montant_forfaitaire_charges_d823_16_) *$ + (o_mult_mon_rat + (o_add_mon_mon loyer_eligible_ + montant_forfaitaire_charges_d823_16_) (decimal_of_string "0.085")) else (money_of_cents_string "3524")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) @@ -5888,14 +6159,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2021) (10) (1)))))) (fun (_: unit) -> - (decimal_round - ((loyer_eligible_ /$ loyer_reference_) - *& (decimal_of_string "100."))) /& + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat + (o_div_mon_mon loyer_eligible_ + loyer_reference_) + (decimal_of_string "100."))) (decimal_of_string "100.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; @@ -5904,14 +6179,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> - (decimal_round - ((loyer_eligible_ /$ loyer_reference_) *& - (decimal_of_string "100."))) /& + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat + (o_div_mon_mon loyer_eligible_ + loyer_reference_) + (decimal_of_string "100."))) (decimal_of_string "100.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; @@ -5920,11 +6199,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> - (decimal_round - ((loyer_eligible_ /$ loyer_reference_) *& - (decimal_of_string "100."))) /& + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat + (o_div_mon_mon loyer_eligible_ loyer_reference_) + (decimal_of_string "100."))) (decimal_of_string "100.")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -5978,10 +6260,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme (embed_money) param_))))))) in ( if - ((aide_finale_ -$ montant_forfaitaire_d823_16_) >=$ + (o_gte_mon_mon + (o_sub_mon_mon aide_finale_ + montant_forfaitaire_d823_16_) (money_of_cents_string "0")) then - (aide_finale_ -$ montant_forfaitaire_d823_16_) else - (money_of_cents_string "0"))))) + (o_sub_mon_mon aide_finale_ montant_forfaitaire_d823_16_) + else (money_of_cents_string "0"))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6045,34 +6329,40 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2021) (10) (1)))))) (fun (_: unit) -> if - (rapport_loyers_ <& + (o_lt_rat_rat rapport_loyers_ (decimal_of_string "0.45")) then (decimal_of_string "0.") else ( if - ((rapport_loyers_ >=& - (decimal_of_string "0.45")) && - (rapport_loyers_ <& + (o_and + (o_gte_rat_rat rapport_loyers_ + (decimal_of_string "0.45")) + (o_lt_rat_rat rapport_loyers_ (decimal_of_string "0.75"))) then - ((decimal_of_string "0.0045") *& - (rapport_loyers_ -& + (o_mult_rat_rat + (decimal_of_string "0.0045") + (o_sub_rat_rat rapport_loyers_ (decimal_of_string "0.0045"))) else ( if - (rapport_loyers_ >=& + (o_gte_rat_rat rapport_loyers_ (decimal_of_string "0.75")) then - (((decimal_of_string "0.0045") *& - (decimal_of_string "0.3")) +& - ((decimal_of_string "0.0068") - *& - (rapport_loyers_ -& + (o_add_rat_rat + (o_mult_rat_rat + (decimal_of_string "0.0045") + (decimal_of_string "0.3")) + (o_mult_rat_rat + (decimal_of_string "0.0068") + (o_sub_rat_rat + rapport_loyers_ (decimal_of_string "0.75")))) else (decimal_of_string "0.")))))|]) (fun (_: unit) -> (log_decision_taken @@ -6082,29 +6372,35 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if - (rapport_loyers_ <& (decimal_of_string "0.45")) - then (decimal_of_string "0.") else + (o_lt_rat_rat rapport_loyers_ + (decimal_of_string "0.45")) then + (decimal_of_string "0.") else ( if - ((rapport_loyers_ >=& - (decimal_of_string "0.45")) && - (rapport_loyers_ <& + (o_and + (o_gte_rat_rat rapport_loyers_ + (decimal_of_string "0.45")) + (o_lt_rat_rat rapport_loyers_ (decimal_of_string "0.75"))) then - ((decimal_of_string "0.0045") *& - (rapport_loyers_ -& + (o_mult_rat_rat (decimal_of_string "0.0045") + (o_sub_rat_rat rapport_loyers_ (decimal_of_string "0.0045"))) else ( if - (rapport_loyers_ >=& + (o_gte_rat_rat rapport_loyers_ (decimal_of_string "0.75")) then - (((decimal_of_string "0.0045") *& - (decimal_of_string "0.3")) +& - ((decimal_of_string "0.0068") *& - (rapport_loyers_ -& + (o_add_rat_rat + (o_mult_rat_rat + (decimal_of_string "0.0045") + (decimal_of_string "0.3")) + (o_mult_rat_rat + (decimal_of_string "0.0068") + (o_sub_rat_rat rapport_loyers_ (decimal_of_string "0.75")))) else (decimal_of_string "0.")))))|]) (fun (_: unit) -> (log_decision_taken @@ -6114,24 +6410,30 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> - if (rapport_loyers_ <& (decimal_of_string "0.45")) then + if + (o_lt_rat_rat rapport_loyers_ + (decimal_of_string "0.45")) then (decimal_of_string "0.") else ( if - ((rapport_loyers_ >=& (decimal_of_string "0.45")) && - (rapport_loyers_ <& (decimal_of_string "0.75"))) - then - ((decimal_of_string "0.0045") *& - (rapport_loyers_ -& (decimal_of_string "0.0045"))) - else + (o_and + (o_gte_rat_rat rapport_loyers_ + (decimal_of_string "0.45")) + (o_lt_rat_rat rapport_loyers_ + (decimal_of_string "0.75"))) then + (o_mult_rat_rat (decimal_of_string "0.0045") + (o_sub_rat_rat rapport_loyers_ + (decimal_of_string "0.0045"))) else ( if - (rapport_loyers_ >=& (decimal_of_string "0.75")) - then - (((decimal_of_string "0.0045") *& - (decimal_of_string "0.3")) +& - ((decimal_of_string "0.0068") *& - (rapport_loyers_ -& + (o_gte_rat_rat rapport_loyers_ + (decimal_of_string "0.75")) then + (o_add_rat_rat + (o_mult_rat_rat (decimal_of_string "0.0045") + (decimal_of_string "0.3")) + (o_mult_rat_rat (decimal_of_string "0.0068") + (o_sub_rat_rat rapport_loyers_ (decimal_of_string "0.75")))) else (decimal_of_string "0.")))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) @@ -6198,15 +6500,16 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "montant"; "input"] (embed_money) aide_finale_))))))) in (let aide_finale_moins_crds_arrondie_ : money = - (money_round - ((aide_finale_ -$ crds_) -$ (money_of_cents_string - "50"))) + (o_roundMoney + (o_sub_mon_mon (o_sub_mon_mon aide_finale_ crds_) + (money_of_cents_string "50"))) in ( if - ((aide_finale_moins_crds_arrondie_ +$ crds_) >=$ + (o_gte_mon_mon + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) (money_of_cents_string "0")) then - (aide_finale_moins_crds_arrondie_ +$ crds_) else - (money_of_cents_string "0"))))))) + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) + else (money_of_cents_string "0"))))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6270,14 +6573,17 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2021) (10) (1)))))) (fun (_: unit) -> - (decimal_round - (taux_loyer_eligible_formule_ *& - (decimal_of_string "100000."))) /& + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat + taux_loyer_eligible_formule_ + (decimal_of_string "100000."))) (decimal_of_string "100000.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; @@ -6286,14 +6592,16 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> - (decimal_round - (taux_loyer_eligible_formule_ *& - (decimal_of_string "100000."))) /& + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat taux_loyer_eligible_formule_ + (decimal_of_string "100000."))) (decimal_of_string "100000.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; @@ -6302,11 +6610,13 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme law_headings=["Article 14"; "Chapitre III : Calcul des aides personnelles au logement en secteur locatif"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> - (decimal_round - (taux_loyer_eligible_formule_ *& - (decimal_of_string "100000."))) /& + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat taux_loyer_eligible_formule_ + (decimal_of_string "100000."))) (decimal_of_string "100000.")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -6358,12 +6668,14 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "input"] (embed_money) param_))))))) in ( if - ((aide_finale_ -$ - (reduction_loyer_solidarite_ *$ fraction_l832_3_)) - >=$ (money_of_cents_string "0")) then - (aide_finale_ -$ - (reduction_loyer_solidarite_ *$ fraction_l832_3_)) - else (money_of_cents_string "0"))))) + (o_gte_mon_mon + (o_sub_mon_mon aide_finale_ + (o_mult_mon_rat reduction_loyer_solidarite_ + fraction_l832_3_)) (money_of_cents_string "0")) + then + (o_sub_mon_mon aide_finale_ + (o_mult_mon_rat reduction_loyer_solidarite_ + fraction_l832_3_)) else (money_of_cents_string "0"))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6404,7 +6716,8 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - taux_composition_familiale_ +& taux_loyer_eligible_arrondi_)) + o_add_rat_rat taux_composition_familiale_ + taux_loyer_eligible_arrondi_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6455,8 +6768,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "traitement_aide_finale_réduction_loyer_solidarité"; "input"] (embed_money) param_))))))) in - ( if (aide_finale_ <$ montant_minimal_aide_d823_16_) then - (money_of_cents_string "0") else aide_finale_)))) + ( if + (o_lt_mon_mon aide_finale_ montant_minimal_aide_d823_16_) + then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6498,17 +6812,18 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true)) (fun (_: unit) -> (let participation_ressources_ : money = - ((ressources_menage_arrondies_ -$ - abattement_forfaitaire_d823_17_) *$ + (o_mult_mon_rat + (o_sub_mon_mon ressources_menage_arrondies_ + abattement_forfaitaire_d823_17_) taux_prise_compte_ressources_) in (let participation_ressources_ : money = ( if - (participation_ressources_ <$ (money_of_cents_string "0")) - then (money_of_cents_string "0") else - participation_ressources_) + (o_lt_mon_mon participation_ressources_ + (money_of_cents_string "0")) then + (money_of_cents_string "0") else participation_ressources_) in - (participation_minimale_ +$ participation_ressources_))))) + (o_add_mon_mon participation_minimale_ participation_ressources_))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -6542,10 +6857,12 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme true)) (fun (_: unit) -> (let aide_finale_ : money = - ((loyer_eligible_ +$ montant_forfaitaire_charges_d823_16_) -$ + (o_sub_mon_mon + (o_add_mon_mon loyer_eligible_ + montant_forfaitaire_charges_d823_16_) participation_personnelle_) in - ( if (aide_finale_ <$ (money_of_cents_string "0")) then + ( if (o_lt_mon_mon aide_finale_ (money_of_cents_string "0")) then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided @@ -6557,8 +6874,9 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Prologue : aides au logement"]})))) in let _: unit = if ( try - (plafond_degressivite_d823_16_ >=$ - (plafond_loyer_d823_16_2_ *$ (decimal_of_string "2.5"))) + (o_gte_mon_mon plafond_degressivite_d823_16_ + (o_mult_mon_rat plafond_loyer_d823_16_2_ + (decimal_of_string "2.5"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; @@ -6586,8 +6904,11 @@ let calcul_aide_personnalisee_logement_locatif (calcul_aide_personnalisee_logeme "Code de la construction et de l'habitation"]}) in let _: unit = if ( try - ((fraction_l832_3_ >=& (decimal_of_string "0.9")) && - (fraction_l832_3_ <=& (decimal_of_string "0.98"))) + (o_and + (o_gte_rat_rat fraction_l832_3_ + (decimal_of_string "0.9")) + (o_lte_rat_rat fraction_l832_3_ + (decimal_of_string "0.98"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; @@ -6753,10 +7074,10 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | TypeLogementFoyer.LogementPersonnesAgeesOuHandicapees _ -> false | TypeLogementFoyer.ResidenceSociale _ -> - (date_conventionnement_ >=@ + (o_gte_dat_dat date_conventionnement_ (date_of_numbers (1994) (12) (31))) | TypeLogementFoyer.FoyerJeunesTrvailleursOuMigrantsConventionneL353_2Avant1995 _ -> - (date_conventionnement_ >=@ + (o_gte_dat_dat date_conventionnement_ (date_of_numbers (1990) (9) (30))) | TypeLogementFoyer.Autre _ -> false))) with @@ -6830,14 +7151,15 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement law_headings=["Article 27"; "Chapitre V : Calcul de l'aide personnalisée au logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -6845,26 +7167,29 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "54152")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "57741") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "61794") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "65862") else - ((money_of_cents_string "71039") +$ - ((money_of_cents_string "7368") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "71039") + (o_mult_mon_rat (money_of_cents_string + "7368") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -6872,26 +7197,29 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "49299")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "52565") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "56268") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "59957") else - ((money_of_cents_string "63887") +$ - ((money_of_cents_string "6659") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "63887") + (o_mult_mon_rat (money_of_cents_string + "6659") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -6899,21 +7227,24 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "46634")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "49475") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "52740") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "56004") else - ((money_of_cents_string "59675") +$ - ((money_of_cents_string "6180") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "59675") + (o_mult_mon_rat (money_of_cents_string + "6180") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))))); (fun (_: unit) -> handle_default @@ -6931,16 +7262,18 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement law_headings=["Article 27"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -6948,26 +7281,29 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "52321")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "55788") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "59704") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "63635") else - ((money_of_cents_string "68637") +$ - ((money_of_cents_string "7119") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "68637") + (o_mult_mon_rat (money_of_cents_string + "7119") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -6975,26 +7311,29 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "47632")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "50787") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "54365") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "57929") else - ((money_of_cents_string "61727") +$ - ((money_of_cents_string "6434") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "61727") + (o_mult_mon_rat (money_of_cents_string + "6434") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -7002,21 +7341,24 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "45057")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "47802") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "50957") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "54110") else - ((money_of_cents_string "57657") +$ - ((money_of_cents_string "5971") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "57657") + (o_mult_mon_rat (money_of_cents_string + "5971") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))))); (fun (_: unit) -> handle_default @@ -7035,15 +7377,18 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ (date_of_numbers (2020) (10) (1)))))) + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -7051,26 +7396,29 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "52101")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "55555") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "59454") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "63369") else - ((money_of_cents_string "68350") +$ - ((money_of_cents_string "7089") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "68350") + (o_mult_mon_rat (money_of_cents_string + "7089") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -7078,26 +7426,29 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "47433")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "50575") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "54138") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "57687") else - ((money_of_cents_string "61469") +$ - ((money_of_cents_string "6407") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "61469") + (o_mult_mon_rat (money_of_cents_string + "6407") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4"))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with | SituationFamilialeCalculAPL.PersonneSeule _ -> @@ -7105,21 +7456,24 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "44869")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "47602") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "50744") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "53884") else - ((money_of_cents_string "57416") +$ - ((money_of_cents_string "5946") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "57416") + (o_mult_mon_rat (money_of_cents_string + "5946") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "4")))))))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -7158,9 +7512,10 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement true)) (fun (_: unit) -> if - ((param_ -$ montant_forfaitaire_d832_24_) >=$ + (o_gte_mon_mon + (o_sub_mon_mon param_ montant_forfaitaire_d832_24_) (money_of_cents_string "0")) then - (param_ -$ montant_forfaitaire_d832_24_) else + (o_sub_mon_mon param_ montant_forfaitaire_d832_24_) else (money_of_cents_string "0"))) with EmptyError -> (raise (NoValueProvided @@ -7393,8 +7748,9 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - if (redevance_ >=$ plafond_equivalence_loyer_eligible_) then - plafond_equivalence_loyer_eligible_ else redevance_)) + if + (o_gte_mon_mon redevance_ plafond_equivalence_loyer_eligible_) + then plafond_equivalence_loyer_eligible_ else redevance_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7473,7 +7829,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Partie réglementaire"; "Code de la construction et de l'habitation"]} true)) - (fun (_: unit) -> equivalence_loyer_eligible_ -$ param_)) + (fun (_: unit) -> + o_sub_mon_mon equivalence_loyer_eligible_ param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7661,9 +8018,9 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Code de la construction et de l'habitation"]} condition_2_du_832_25_)) (fun (_: unit) -> - (decimal_of_string "0.9") -& - (ressources_menage_arrondies_ /$ - (coefficient_multiplicateur_d832_25_ *$ + o_sub_rat_rat (decimal_of_string "0.9") + (o_div_mon_mon ressources_menage_arrondies_ + (o_mult_mon_rat coefficient_multiplicateur_d832_25_ n_nombre_parts_d832_25_))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; @@ -7679,16 +8036,17 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement true)) (fun (_: unit) -> (let denominateur_ : money = - (ressources_menage_arrondies_ -$ - (coefficient_r_d832_25_ *$ n_nombre_parts_d832_25_)) + (o_sub_mon_mon ressources_menage_arrondies_ + (o_mult_mon_rat coefficient_r_d832_25_ + n_nombre_parts_d832_25_)) in (let denominateur_ : money = - ( if (denominateur_ <$ (money_of_cents_string "0")) then - (money_of_cents_string "0") else denominateur_) + ( if (o_lt_mon_mon denominateur_ (money_of_cents_string "0")) + then (money_of_cents_string "0") else denominateur_) in - ((decimal_of_string "0.95") -& - (denominateur_ /$ - (coefficient_multiplicateur_d832_25_ *$ + (o_sub_rat_rat (decimal_of_string "0.95") + (o_div_mon_mon denominateur_ + (o_mult_mon_rat coefficient_multiplicateur_d832_25_ n_nombre_parts_d832_25_))))))) with EmptyError -> (raise (NoValueProvided @@ -7741,10 +8099,11 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement (embed_money) param_))))))) in ( if - (depense_nette_minimale_ <=$ montant_forfaitaire_d832_27_) - then - (montant_forfaitaire_d832_27_ -$ depense_nette_minimale_) - else (money_of_cents_string "0"))))) + (o_lte_mon_mon depense_nette_minimale_ + montant_forfaitaire_d832_27_) then + (o_sub_mon_mon montant_forfaitaire_d832_27_ + depense_nette_minimale_) else + (money_of_cents_string "0"))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7827,10 +8186,13 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Code de la construction et de l'habitation"]} condition_2_du_832_25_)) (fun (_: unit) -> - (decimal_round - ((coefficient_prise_en_charge_d832_25_formule_ -& - (decimal_of_string "0.005")) *& - (decimal_of_string "100."))) /& + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat + (o_sub_rat_rat + coefficient_prise_en_charge_d832_25_formule_ + (decimal_of_string "0.005")) + (decimal_of_string "100."))) (decimal_of_string "100.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; @@ -7845,10 +8207,13 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (decimal_round - ((coefficient_prise_en_charge_d832_25_formule_ -& - (decimal_of_string "0.005")) *& (decimal_of_string "100."))) - /& (decimal_of_string "100."))) + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat + (o_sub_rat_rat + coefficient_prise_en_charge_d832_25_formule_ + (decimal_of_string "0.005")) + (decimal_of_string "100."))) (decimal_of_string "100."))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7900,7 +8265,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "input"] (embed_money) param_))))))) in (let aide_finale_ : money = - (aide_finale_ -$ ((log_end_call + (o_sub_mon_mon aide_finale_ ((log_end_call ["CalculAidePersonnaliséeLogementFoyer"; "abattement_dépense_nette_minimale_d832_27"] ((log_variable_definition @@ -7915,8 +8280,9 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "abattement_dépense_nette_minimale_d832_27"; "input"] (embed_money) aide_finale_)))))))) in - ( if (aide_finale_ >=$ (money_of_cents_string "0")) then - aide_finale_ else (money_of_cents_string "0")))))) + ( if + (o_gte_mon_mon aide_finale_ (money_of_cents_string "0")) + then aide_finale_ else (money_of_cents_string "0")))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -7968,7 +8334,8 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement condition_2_du_832_25_)) (fun (_: unit) -> if - (coefficient_prise_en_charge_d832_25_arrondi_ >=& + (o_gte_rat_rat + coefficient_prise_en_charge_d832_25_arrondi_ (decimal_of_string "0.9")) then (decimal_of_string "0.9") else coefficient_prise_en_charge_d832_25_arrondi_))|]) @@ -7986,7 +8353,7 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement true)) (fun (_: unit) -> if - (coefficient_prise_en_charge_d832_25_arrondi_ >=& + (o_gte_rat_rat coefficient_prise_en_charge_d832_25_arrondi_ (decimal_of_string "0.95")) then (decimal_of_string "0.95") else coefficient_prise_en_charge_d832_25_arrondi_)) with @@ -8052,15 +8419,16 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "montant"; "input"] (embed_money) aide_finale_))))))) in (let aide_finale_moins_crds_arrondie_ : money = - (money_round - ((aide_finale_ -$ crds_) -$ (money_of_cents_string - "50"))) + (o_roundMoney + (o_sub_mon_mon (o_sub_mon_mon aide_finale_ crds_) + (money_of_cents_string "50"))) in ( if - ((aide_finale_moins_crds_arrondie_ +$ crds_) >=$ + (o_gte_mon_mon + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) (money_of_cents_string "0")) then - (aide_finale_moins_crds_arrondie_ +$ crds_) else - (money_of_cents_string "0"))))))) + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) + else (money_of_cents_string "0"))))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8102,10 +8470,12 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement true)) (fun (_: unit) -> (let aide_finale_ : money = - ((equivalence_loyer_eligible_ -$ equivalence_loyer_minimale_) - *$ coefficient_prise_en_charge_d832_25_seuil_) + (o_mult_mon_rat + (o_sub_mon_mon equivalence_loyer_eligible_ + equivalence_loyer_minimale_) + coefficient_prise_en_charge_d832_25_seuil_) in - ( if (aide_finale_ <$ (money_of_cents_string "0")) then + ( if (o_lt_mon_mon aide_finale_ (money_of_cents_string "0")) then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided @@ -8157,8 +8527,9 @@ let calcul_aide_personnalisee_logement_foyer (calcul_aide_personnalisee_logement "traitement_aide_finale_contributions_sociales_arrondi"; "input"] (embed_money) param_))))))) in - ( if (aide_finale_ <$ montant_minimal_aide_d823_24_) then - (money_of_cents_string "0") else aide_finale_)))) + ( if + (o_lt_mon_mon aide_finale_ montant_minimal_aide_d823_24_) + then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8409,7 +8780,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Règlement (CE) n°2866/98 du conseil du 31 décembre 1998 concernant les taux de conversion entre l'euro et les monnaies des États membres adoptant l'euro"]} true)) (fun (_: unit) -> - (decimal_of_string "1.") /& (decimal_of_string "6.55957"))) + o_div_rat_rat (decimal_of_string "1.") + (decimal_of_string "6.55957"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8528,7 +8900,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | NeufOuAncien.Neuf _ -> ( if - (date_signature_pret_ <=@ + (o_lte_dat_dat date_signature_pret_ (date_of_numbers (1998) (10) (1))) then (decimal_of_string "0.0226") else (decimal_of_string "0.0234")) @@ -8538,7 +8910,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | AmelioreParOccupant.Oui _ -> (decimal_of_string "0.0172") | AmelioreParOccupant.Non _ -> ( if - (date_signature_pret_ <=@ + (o_lte_dat_dat date_signature_pret_ (date_of_numbers (1998) (10) (1))) then (decimal_of_string "0.0226") else (decimal_of_string "0.0234"))))) @@ -8625,19 +8997,20 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 24"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) copropriete_))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2805") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5612")) +$ - ((money_of_cents_string "1272") *$ - (decimal_of_integer - nombre_personnes_a_charge_)))); + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2805") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5612")) + (o_mult_mon_rat (money_of_cents_string "1272") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8655,21 +9028,23 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 24"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ - (date_of_numbers (2022) (7) (1)))) && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) copropriete_))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2710") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5422")) +$ - ((money_of_cents_string "1229") *$ - (decimal_of_integer - nombre_personnes_a_charge_)))); + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2710") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5422")) + (o_mult_mon_rat (money_of_cents_string "1229") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8688,21 +9063,23 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - (((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ - (date_of_numbers (2020) (10) (1)))) && + (o_and + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (10) (1)))) copropriete_))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2699") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5399")) +$ - ((money_of_cents_string "1224") *$ - (decimal_of_integer - nombre_personnes_a_charge_))))|]) + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2699") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5399")) + (o_mult_mon_rat (money_of_cents_string "1224") + (o_intToRat nombre_personnes_a_charge_))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> true) (fun (_: unit) -> @@ -8730,11 +9107,12 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 19"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> - (money_of_cents_string "5612") +$ - ((money_of_cents_string "1272") *$ - (decimal_of_integer nombre_personnes_a_charge_)))); + o_add_mon_mon (money_of_cents_string "5612") + (o_mult_mon_rat (money_of_cents_string "1272") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8752,14 +9130,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 19"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> - (money_of_cents_string "5422") +$ - ((money_of_cents_string "1229") *$ - (decimal_of_integer nombre_personnes_a_charge_)))); + o_add_mon_mon (money_of_cents_string "5422") + (o_mult_mon_rat (money_of_cents_string "1229") + (o_intToRat nombre_personnes_a_charge_)))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8778,14 +9157,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ (date_of_numbers (2020) (10) (1)))))) (fun (_: unit) -> - (money_of_cents_string "5399") +$ - ((money_of_cents_string "1224") *$ - (decimal_of_integer nombre_personnes_a_charge_))))|]) + o_add_mon_mon (money_of_cents_string "5399") + (o_mult_mon_rat (money_of_cents_string "1224") + (o_intToRat nombre_personnes_a_charge_))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided @@ -8822,9 +9202,10 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna true)) (fun (_: unit) -> if - ((param_ -$ montant_forfaitaire_d832_10_) >=$ + (o_gte_mon_mon + (o_sub_mon_mon param_ montant_forfaitaire_d832_10_) (money_of_cents_string "0")) then - (param_ -$ montant_forfaitaire_d832_10_) else + (o_sub_mon_mon param_ montant_forfaitaire_d832_10_) else (money_of_cents_string "0"))) with EmptyError -> (raise (NoValueProvided @@ -8888,11 +9269,12 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna true)) (fun (_: unit) -> if - (ressources_menage_arrondies_ <=$ - (mensualite_principale_ *$ + (o_lte_mon_mon ressources_menage_arrondies_ + (o_mult_mon_rat mensualite_principale_ coefficient_multiplicateur_d832_18_)) then - (mensualite_principale_ *$ coefficient_multiplicateur_d832_18_) - else ressources_menage_arrondies_)) + (o_mult_mon_rat mensualite_principale_ + coefficient_multiplicateur_d832_18_) else + ressources_menage_arrondies_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -8931,13 +9313,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1992) (6) (30))) && - ((param_ <@ (date_of_numbers (1994) (11) (27))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1992) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> true @@ -8946,53 +9332,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "208500") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "251500")) else - ((money_of_cents_string "294500") +$ - ((money_of_cents_string "43000") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "186000") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "223900")) else - ((money_of_cents_string "261800") +$ - ((money_of_cents_string "37900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "173600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "208200")) else - ((money_of_cents_string "242800") +$ - ((money_of_cents_string "35600") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "208500") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "251500")) + else + (o_add_mon_mon (money_of_cents_string + "294500") + (o_mult_mon_rat (money_of_cents_string + "43000") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "186000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "223900")) + else + (o_add_mon_mon (money_of_cents_string + "261800") + (o_mult_mon_rat (money_of_cents_string + "37900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "173600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "208200")) + else + (o_add_mon_mon (money_of_cents_string + "242800") + (o_mult_mon_rat (money_of_cents_string + "35600") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9011,11 +9410,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1994) (11) (27))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> true @@ -9024,53 +9426,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "184000") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "220000")) else - ((money_of_cents_string "260000") +$ - ((money_of_cents_string "38000") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "164200") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "197700")) else - ((money_of_cents_string "231200") +$ - ((money_of_cents_string "33500") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "153200") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "183700")) else - ((money_of_cents_string "214200") +$ - ((money_of_cents_string "30500") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "184000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "220000")) + else + (o_add_mon_mon (money_of_cents_string + "260000") + (o_mult_mon_rat (money_of_cents_string + "38000") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "164200") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "197700")) + else + (o_add_mon_mon (money_of_cents_string + "231200") + (o_mult_mon_rat (money_of_cents_string + "33500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "153200") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "183700")) + else + (o_add_mon_mon (money_of_cents_string + "214200") + (o_mult_mon_rat (money_of_cents_string + "30500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9089,11 +9504,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1994) (11) (27))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> true @@ -9102,53 +9520,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "148100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "178700")) else - ((money_of_cents_string "209300") +$ - ((money_of_cents_string "30600") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "132000") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "158900")) else - ((money_of_cents_string "185800") +$ - ((money_of_cents_string "26900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "123300") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "147900")) else - ((money_of_cents_string "172500") +$ - ((money_of_cents_string "24600") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "148100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "178700")) + else + (o_add_mon_mon (money_of_cents_string + "209300") + (o_mult_mon_rat (money_of_cents_string + "30600") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "132000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "158900")) + else + (o_add_mon_mon (money_of_cents_string + "185800") + (o_mult_mon_rat (money_of_cents_string + "26900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "123300") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "147900")) + else + (o_add_mon_mon (money_of_cents_string + "172500") + (o_mult_mon_rat (money_of_cents_string + "24600") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9167,13 +9598,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1992) (6) (30))) && - ((param_ <@ (date_of_numbers (1994) (11) (27))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1992) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9182,53 +9617,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "208500") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "251500")) else - ((money_of_cents_string "294500") +$ - ((money_of_cents_string "43000") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "186000") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "223900")) else - ((money_of_cents_string "261800") +$ - ((money_of_cents_string "37900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "173600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "208200")) else - ((money_of_cents_string "242800") +$ - ((money_of_cents_string "34600") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "208500") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "251500")) + else + (o_add_mon_mon (money_of_cents_string + "294500") + (o_mult_mon_rat (money_of_cents_string + "43000") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "186000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "223900")) + else + (o_add_mon_mon (money_of_cents_string + "261800") + (o_mult_mon_rat (money_of_cents_string + "37900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "173600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "208200")) + else + (o_add_mon_mon (money_of_cents_string + "242800") + (o_mult_mon_rat (money_of_cents_string + "34600") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9256,21 +9704,23 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ - (date_of_numbers (1992) (6) (30))) && - ((param_ <@ - (date_of_numbers (1994) (11) (27))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien ameliore_par_occupant_ -> - (match ameliore_par_occupant_ - with - | AmelioreParOccupant.Oui _ -> - false - | AmelioreParOccupant.Non _ -> - true)) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1992) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien ameliore_par_occupant_ -> + (match ameliore_par_occupant_ + with + | AmelioreParOccupant.Oui _ -> + false + | AmelioreParOccupant.Non _ -> + true)) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9279,68 +9729,81 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match - situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "167800") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "202500")) else + (o_add_mon_mon (money_of_cents_string - "167800") - | SituationFamilialeCalculAPL.Couple _ -> + "237200") + (o_mult_mon_rat + (money_of_cents_string + "34700") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "149600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "180100")) else + (o_add_mon_mon (money_of_cents_string - "202500")) else - ((money_of_cents_string "237200") +$ - ((money_of_cents_string "34700") - *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! (integer_of_string - "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match - situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> + "210600") + (o_mult_mon_rat + (money_of_cents_string + "30500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match + situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string + "139700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string + "167600")) else + (o_add_mon_mon (money_of_cents_string - "149600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string - "180100")) else - ((money_of_cents_string "210600") +$ - ((money_of_cents_string "30500") - *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! (integer_of_string - "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match - situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string - "139700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string - "167600")) else - ((money_of_cents_string "195500") +$ - ((money_of_cents_string "27900") - *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! (integer_of_string - "1"))))))) *$ + "195500") + (o_mult_mon_rat + (money_of_cents_string + "27900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "1"))))))) taux_francs_vers_euros_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; @@ -9349,13 +9812,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 17"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1992) (6) (30))) && - ((param_ <@ (date_of_numbers (1994) (11) (27))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1992) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> true @@ -9364,53 +9831,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "167800") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "202500")) else - ((money_of_cents_string "237200") +$ - ((money_of_cents_string "34700") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "149600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "180100")) else - ((money_of_cents_string "210600") +$ - ((money_of_cents_string "30500") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "139700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "167600")) else - ((money_of_cents_string "195500") +$ - ((money_of_cents_string "27900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "167800") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "202500")) + else + (o_add_mon_mon (money_of_cents_string + "237200") + (o_mult_mon_rat (money_of_cents_string + "34700") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "149600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "180100")) + else + (o_add_mon_mon (money_of_cents_string + "210600") + (o_mult_mon_rat (money_of_cents_string + "30500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "139700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "167600")) + else + (o_add_mon_mon (money_of_cents_string + "195500") + (o_mult_mon_rat (money_of_cents_string + "27900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9429,18 +9909,21 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1992) (6) (30))) && - ((param_ <@ (date_of_numbers (1994) (11) (27))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien ameliore_par_occupant_ -> - (match ameliore_par_occupant_ - with - | AmelioreParOccupant.Oui _ -> true - | AmelioreParOccupant.Non _ -> false)) - && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1992) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien ameliore_par_occupant_ -> + (match ameliore_par_occupant_ + with + | AmelioreParOccupant.Oui _ -> true + | AmelioreParOccupant.Non _ -> false)) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9449,20 +9932,23 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - ( if - (nombre_personnes_a_charge_ = (integer_of_string - "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "86900") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "97100")) else - ((money_of_cents_string "107300") +$ - ((money_of_cents_string "10200") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) *$ + o_mult_mon_rat + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "86900") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "97100")) else + (o_add_mon_mon (money_of_cents_string "107300") + (o_mult_mon_rat (money_of_cents_string + "10200") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9481,12 +9967,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1994) (11) (27))) && - ((param_ <@ (date_of_numbers (2000) (6) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2000) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9495,53 +9986,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "198100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "239000")) else - ((money_of_cents_string "279900") +$ - ((money_of_cents_string "40900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "176800") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "212800")) else - ((money_of_cents_string "248800") +$ - ((money_of_cents_string "36000") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "165000") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "197900")) else - ((money_of_cents_string "230800") +$ - ((money_of_cents_string "32900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "198100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "239000")) + else + (o_add_mon_mon (money_of_cents_string + "279900") + (o_mult_mon_rat (money_of_cents_string + "40900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "176800") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "212800")) + else + (o_add_mon_mon (money_of_cents_string + "248800") + (o_mult_mon_rat (money_of_cents_string + "36000") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "165000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "197900")) + else + (o_add_mon_mon (money_of_cents_string + "230800") + (o_mult_mon_rat (money_of_cents_string + "32900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9560,12 +10064,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (1994) (11) (27))) && - ((param_ <@ (date_of_numbers (2000) (6) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1994) (11) (27))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2000) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9574,53 +10083,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "159500") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "192500")) else - ((money_of_cents_string "225500") +$ - ((money_of_cents_string "33000") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "142200") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "171200")) else - ((money_of_cents_string "200200") +$ - ((money_of_cents_string "29000") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "132800") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "159300")) else - ((money_of_cents_string "185800") +$ - ((money_of_cents_string "26500") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "159500") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "192500")) + else + (o_add_mon_mon (money_of_cents_string + "225500") + (o_mult_mon_rat (money_of_cents_string + "33000") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "142200") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "171200")) + else + (o_add_mon_mon (money_of_cents_string + "200200") + (o_mult_mon_rat (money_of_cents_string + "29000") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "132800") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "159300")) + else + (o_add_mon_mon (money_of_cents_string + "185800") + (o_mult_mon_rat (money_of_cents_string + "26500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9639,13 +10161,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2000) (6) (30))) && - ((param_ <=@ (date_of_numbers (2001) (6) (30))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2000) (6) (30))) + (o_and + (o_lte_dat_dat param_ + (date_of_numbers (2001) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9654,53 +10180,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "200100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "141400")) else - ((money_of_cents_string "182700") +$ - ((money_of_cents_string "41300") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "178600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "215000")) else - ((money_of_cents_string "251400") +$ - ((money_of_cents_string "36400") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "166700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "199900")) else - ((money_of_cents_string "233100") +$ - ((money_of_cents_string "33200") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "200100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "141400")) + else + (o_add_mon_mon (money_of_cents_string + "182700") + (o_mult_mon_rat (money_of_cents_string + "41300") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "178600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "215000")) + else + (o_add_mon_mon (money_of_cents_string + "251400") + (o_mult_mon_rat (money_of_cents_string + "36400") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "166700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "199900")) + else + (o_add_mon_mon (money_of_cents_string + "233100") + (o_mult_mon_rat (money_of_cents_string + "33200") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9719,13 +10258,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2000) (6) (30))) && - ((param_ <=@ (date_of_numbers (2001) (6) (30))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2000) (6) (30))) + (o_and + (o_lte_dat_dat param_ + (date_of_numbers (2001) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9734,53 +10277,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "161100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "194400")) else - ((money_of_cents_string "227700") +$ - ((money_of_cents_string "33300") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "143600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "172900")) else - ((money_of_cents_string "202200") +$ - ((money_of_cents_string "29300") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "134100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "160900")) else - ((money_of_cents_string "187700") +$ - ((money_of_cents_string "26800") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "161100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "194400")) + else + (o_add_mon_mon (money_of_cents_string + "227700") + (o_mult_mon_rat (money_of_cents_string + "33300") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "143600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "172900")) + else + (o_add_mon_mon (money_of_cents_string + "202200") + (o_mult_mon_rat (money_of_cents_string + "29300") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "134100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "160900")) + else + (o_add_mon_mon (money_of_cents_string + "187700") + (o_mult_mon_rat (money_of_cents_string + "26800") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9799,13 +10355,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2001) (7) (1))) && - ((param_ <@ (date_of_numbers (2001) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2001) (7) (1))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2001) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9814,53 +10374,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "202500") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "244300")) else - ((money_of_cents_string "286100") +$ - ((money_of_cents_string "41800") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "180700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "217500")) else - ((money_of_cents_string "254300") +$ - ((money_of_cents_string "36800") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "168700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "202300")) else - ((money_of_cents_string "235900") +$ - ((money_of_cents_string "33600") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "202500") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "244300")) + else + (o_add_mon_mon (money_of_cents_string + "286100") + (o_mult_mon_rat (money_of_cents_string + "41800") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "180700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "217500")) + else + (o_add_mon_mon (money_of_cents_string + "254300") + (o_mult_mon_rat (money_of_cents_string + "36800") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "168700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "202300")) + else + (o_add_mon_mon (money_of_cents_string + "235900") + (o_mult_mon_rat (money_of_cents_string + "33600") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -9879,12 +10452,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2002) (1) (1))) && - ((param_ <@ (date_of_numbers (2002) (6) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2002) (1) (1))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2002) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9897,7 +10475,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -9905,14 +10483,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "30871") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37243")) else - ((money_of_cents_string "43615") +$ - ((money_of_cents_string "6372") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "43615") + (o_mult_mon_rat (money_of_cents_string + "6372") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -9920,14 +10501,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "27548") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33148")) else - ((money_of_cents_string "38768") +$ - ((money_of_cents_string "5610") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "38768") + (o_mult_mon_rat (money_of_cents_string + "5610") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -9935,10 +10519,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25718") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30840")) else - ((money_of_cents_string "35962") +$ - ((money_of_cents_string "5122") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "35962") + (o_mult_mon_rat (money_of_cents_string + "5122") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -9957,13 +10544,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2001) (7) (1))) && - ((param_ <@ (date_of_numbers (2001) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2001) (7) (1))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2001) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -9972,53 +10563,66 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypePret.D331_76_1 _ -> false | TypePret.Autre _ -> false)))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "163000") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "196700")) else - ((money_of_cents_string "230400") +$ - ((money_of_cents_string "33700") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "145300") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "175000")) else - ((money_of_cents_string "204700") +$ - ((money_of_cents_string "29700") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1")))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "135700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "162800")) else - ((money_of_cents_string "189900") +$ - ((money_of_cents_string "27100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! - (integer_of_string "1"))))))) *$ + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "163000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "196700")) + else + (o_add_mon_mon (money_of_cents_string + "230400") + (o_mult_mon_rat (money_of_cents_string + "33700") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "145300") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "175000")) + else + (o_add_mon_mon (money_of_cents_string + "204700") + (o_mult_mon_rat (money_of_cents_string + "29700") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1")))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "135700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "162800")) + else + (o_add_mon_mon (money_of_cents_string + "189900") + (o_mult_mon_rat (money_of_cents_string + "27100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string "1"))))))) taux_francs_vers_euros_)); (fun (_: unit) -> handle_default @@ -10037,12 +10641,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2002) (1) (1))) && - ((param_ <@ (date_of_numbers (2002) (6) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2002) (1) (1))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2002) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10055,7 +10664,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10063,14 +10672,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24849") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29987")) else - ((money_of_cents_string "35125") +$ - ((money_of_cents_string "5138") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "35125") + (o_mult_mon_rat (money_of_cents_string + "5138") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10078,14 +10690,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "22151") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "26679")) else - ((money_of_cents_string "31207") +$ - ((money_of_cents_string "4528") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "31207") + (o_mult_mon_rat (money_of_cents_string + "4528") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10093,10 +10708,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "20687") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "24818")) else - ((money_of_cents_string "28949") +$ - ((money_of_cents_string "4131") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "28949") + (o_mult_mon_rat (money_of_cents_string + "4131") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10115,12 +10733,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2002) (6) (30))) && - ((param_ <@ (date_of_numbers (2003) (6) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2002) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2003) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10133,7 +10756,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10141,14 +10764,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "31241") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37689")) else - ((money_of_cents_string "44137") +$ - ((money_of_cents_string "6448") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "44137") + (o_mult_mon_rat (money_of_cents_string + "6448") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10156,14 +10782,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "27879") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33556")) else - ((money_of_cents_string "39233") +$ - ((money_of_cents_string "5677") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "39233") + (o_mult_mon_rat (money_of_cents_string + "5677") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10171,10 +10800,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26027") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31210")) else - ((money_of_cents_string "36393") +$ - ((money_of_cents_string "5183") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "36393") + (o_mult_mon_rat (money_of_cents_string + "5183") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10193,12 +10825,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2002) (6) (30))) && - ((param_ <@ (date_of_numbers (2003) (6) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2002) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2003) (6) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10211,7 +10848,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10219,14 +10856,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25147") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30347")) else - ((money_of_cents_string "35547") +$ - ((money_of_cents_string "5200") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "35547") + (o_mult_mon_rat (money_of_cents_string + "5200") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10234,14 +10874,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "22417") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "26999")) else - ((money_of_cents_string "31581") +$ - ((money_of_cents_string "4582") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "31581") + (o_mult_mon_rat (money_of_cents_string + "4582") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10249,10 +10892,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "20935") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "25116")) else - ((money_of_cents_string "29297") +$ - ((money_of_cents_string "4181") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "29297") + (o_mult_mon_rat (money_of_cents_string + "4181") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10271,12 +10917,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2003) (6) (30))) && - ((param_ <@ (date_of_numbers (2005) (8) (31))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2003) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2005) (8) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10289,7 +10940,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10297,14 +10948,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "31616") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "38141")) else - ((money_of_cents_string "44666") +$ - ((money_of_cents_string "6525") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "44666") + (o_mult_mon_rat (money_of_cents_string + "6525") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10312,14 +10966,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "28214") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33959")) else - ((money_of_cents_string "39704") +$ - ((money_of_cents_string "5745") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "39704") + (o_mult_mon_rat (money_of_cents_string + "5745") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10327,10 +10984,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26339") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31584")) else - ((money_of_cents_string "36829") +$ - ((money_of_cents_string "5245") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "36829") + (o_mult_mon_rat (money_of_cents_string + "5245") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10349,12 +11009,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2003) (6) (30))) && - ((param_ <@ (date_of_numbers (2005) (8) (31))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2003) (6) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2005) (8) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10367,7 +11032,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10375,14 +11040,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25449") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30711")) else - ((money_of_cents_string "35973") +$ - ((money_of_cents_string "5262") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "35973") + (o_mult_mon_rat (money_of_cents_string + "5262") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10390,14 +11058,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "22686") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "27323")) else - ((money_of_cents_string "31960") +$ - ((money_of_cents_string "4637") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "31960") + (o_mult_mon_rat (money_of_cents_string + "4637") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10405,10 +11076,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "21186") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "25417")) else - ((money_of_cents_string "29648") +$ - ((money_of_cents_string "4231") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "29648") + (o_mult_mon_rat (money_of_cents_string + "4231") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10427,13 +11101,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2005) (8) (31))) && - ((param_ <@ (date_of_numbers (2006) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2005) (8) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2006) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10446,7 +11124,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10454,14 +11132,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "32185") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "38827")) else - ((money_of_cents_string "45469") +$ - ((money_of_cents_string "6642") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "45469") + (o_mult_mon_rat (money_of_cents_string + "6642") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10469,14 +11150,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "28722") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "34570")) else - ((money_of_cents_string "40418") +$ - ((money_of_cents_string "5848") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "40418") + (o_mult_mon_rat (money_of_cents_string + "5848") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10484,10 +11168,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26813") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32152")) else - ((money_of_cents_string "37491") +$ - ((money_of_cents_string "5339") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "37491") + (o_mult_mon_rat (money_of_cents_string + "5339") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10506,13 +11193,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2005) (8) (31))) && - ((param_ <@ (date_of_numbers (2006) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2005) (8) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2006) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10525,7 +11216,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10533,14 +11224,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25907") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31264")) else - ((money_of_cents_string "36621") +$ - ((money_of_cents_string "5357") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "36621") + (o_mult_mon_rat (money_of_cents_string + "5357") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10548,14 +11242,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "23094") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "27814")) else - ((money_of_cents_string "32534") +$ - ((money_of_cents_string "4720") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "32534") + (o_mult_mon_rat (money_of_cents_string + "4720") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10563,10 +11260,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "21567") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "25874")) else - ((money_of_cents_string "30181") +$ - ((money_of_cents_string "4307") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "30181") + (o_mult_mon_rat (money_of_cents_string + "4307") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10585,13 +11285,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2006) (12) (31))) && - ((param_ <@ (date_of_numbers (2007) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2006) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2007) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10604,7 +11308,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10612,14 +11316,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "33086") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "39914")) else - ((money_of_cents_string "46742") +$ - ((money_of_cents_string "6828") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "46742") + (o_mult_mon_rat (money_of_cents_string + "6828") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10627,14 +11334,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29526") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35538")) else - ((money_of_cents_string "41550") +$ - ((money_of_cents_string "6012") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "41550") + (o_mult_mon_rat (money_of_cents_string + "6012") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10642,10 +11352,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "27564") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33052")) else - ((money_of_cents_string "38541") +$ - ((money_of_cents_string "5488") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "38541") + (o_mult_mon_rat (money_of_cents_string + "5488") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10664,13 +11377,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2006) (12) (31))) && - ((param_ <@ (date_of_numbers (2007) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2006) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2007) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10683,7 +11400,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10691,14 +11408,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26632") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32139")) else - ((money_of_cents_string "37646") +$ - ((money_of_cents_string "5507") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "37646") + (o_mult_mon_rat (money_of_cents_string + "5507") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10706,14 +11426,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "23741") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28593")) else - ((money_of_cents_string "33445") +$ - ((money_of_cents_string "4852") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "33445") + (o_mult_mon_rat (money_of_cents_string + "4852") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10721,10 +11444,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "22171") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36598")) else - ((money_of_cents_string "31026") +$ - ((money_of_cents_string "4428") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "31026") + (o_mult_mon_rat (money_of_cents_string + "4428") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10743,13 +11469,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2007) (12) (31))) && - ((param_ <@ (date_of_numbers (2008) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2007) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2008) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10762,7 +11492,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10770,14 +11500,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "33999") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "41016")) else - ((money_of_cents_string "48032") +$ - ((money_of_cents_string "7016") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "48032") + (o_mult_mon_rat (money_of_cents_string + "7016") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10785,14 +11518,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "30341") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36519")) else - ((money_of_cents_string "42697") +$ - ((money_of_cents_string "6178") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "42697") + (o_mult_mon_rat (money_of_cents_string + "6178") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10800,10 +11536,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "28325") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33964")) else - ((money_of_cents_string "39605") +$ - ((money_of_cents_string "5639") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "39605") + (o_mult_mon_rat (money_of_cents_string + "5639") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10822,13 +11561,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2007) (12) (31))) && - ((param_ <@ (date_of_numbers (2008) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2007) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2008) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10841,7 +11584,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10849,14 +11592,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "27367") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33026")) else - ((money_of_cents_string "38685") +$ - ((money_of_cents_string "5659") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "38685") + (o_mult_mon_rat (money_of_cents_string + "5659") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10864,14 +11610,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24396") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29382")) else - ((money_of_cents_string "34368") +$ - ((money_of_cents_string "4986") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "34368") + (o_mult_mon_rat (money_of_cents_string + "4986") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10879,10 +11628,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "22783") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "27332")) else - ((money_of_cents_string "31882") +$ - ((money_of_cents_string "4550") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "31882") + (o_mult_mon_rat (money_of_cents_string + "4550") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10901,13 +11653,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2008) (12) (31))) && - ((param_ <@ (date_of_numbers (2009) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2008) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2009) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10920,7 +11676,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10928,14 +11684,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "35002") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "42226")) else - ((money_of_cents_string "49449") +$ - ((money_of_cents_string "7223") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "49449") + (o_mult_mon_rat (money_of_cents_string + "7223") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10943,14 +11702,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "31236") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37596")) else - ((money_of_cents_string "43957") +$ - ((money_of_cents_string "6360") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "43957") + (o_mult_mon_rat (money_of_cents_string + "6360") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -10958,10 +11720,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29161") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "34966")) else - ((money_of_cents_string "40773") +$ - ((money_of_cents_string "5805") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "40773") + (o_mult_mon_rat (money_of_cents_string + "5805") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -10980,13 +11745,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2008) (12) (31))) && - ((param_ <@ (date_of_numbers (2009) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2008) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2009) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -10999,7 +11768,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11007,14 +11776,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "28174") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "34000")) else - ((money_of_cents_string "39826") +$ - ((money_of_cents_string "5826") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "39826") + (o_mult_mon_rat (money_of_cents_string + "5826") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11022,14 +11794,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25116") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30249")) else - ((money_of_cents_string "35382") +$ - ((money_of_cents_string "5133") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "35382") + (o_mult_mon_rat (money_of_cents_string + "5133") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11037,10 +11812,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "23455") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28138")) else - ((money_of_cents_string "32823") +$ - ((money_of_cents_string "4684") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "32823") + (o_mult_mon_rat (money_of_cents_string + "4684") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11059,13 +11837,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2009) (12) (31))) && - ((param_ <@ (date_of_numbers (2010) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2009) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2010) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11078,7 +11860,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11086,14 +11868,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "35114") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "42361")) else - ((money_of_cents_string "49607") +$ - ((money_of_cents_string "7246") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "49607") + (o_mult_mon_rat (money_of_cents_string + "7246") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11101,14 +11886,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "31336") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37716")) else - ((money_of_cents_string "44098") +$ - ((money_of_cents_string "6380") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "44098") + (o_mult_mon_rat (money_of_cents_string + "6380") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11116,10 +11904,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29254") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35078")) else - ((money_of_cents_string "40903") +$ - ((money_of_cents_string "5824") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "40903") + (o_mult_mon_rat (money_of_cents_string + "5824") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11138,13 +11929,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2009) (12) (31))) && - ((param_ <@ (date_of_numbers (2010) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2009) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2010) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11157,7 +11952,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11165,14 +11960,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "28264") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "34109")) else - ((money_of_cents_string "39953") +$ - ((money_of_cents_string "5845") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "39953") + (o_mult_mon_rat (money_of_cents_string + "5845") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11180,14 +11978,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25196") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30346")) else - ((money_of_cents_string "35495") +$ - ((money_of_cents_string "5149") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "35495") + (o_mult_mon_rat (money_of_cents_string + "5149") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11195,10 +11996,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "23530") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28228")) else - ((money_of_cents_string "32928") +$ - ((money_of_cents_string "4699") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "32928") + (o_mult_mon_rat (money_of_cents_string + "4699") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11217,13 +12021,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2010) (12) (31))) && - ((param_ <@ (date_of_numbers (2011) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2010) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2011) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11236,7 +12044,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11244,14 +12052,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "35500") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "42827")) else - ((money_of_cents_string "50153") +$ - ((money_of_cents_string "7326") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "50153") + (o_mult_mon_rat (money_of_cents_string + "7326") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11259,14 +12070,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "31681") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "38131")) else - ((money_of_cents_string "44583") +$ - ((money_of_cents_string "6450") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "44583") + (o_mult_mon_rat (money_of_cents_string + "6450") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11274,10 +12088,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29576") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35464")) else - ((money_of_cents_string "41353") +$ - ((money_of_cents_string "5888") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "41353") + (o_mult_mon_rat (money_of_cents_string + "5888") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11296,13 +12113,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2010) (12) (31))) && - ((param_ <@ (date_of_numbers (2011) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2010) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2011) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11315,7 +12136,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11323,14 +12144,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "28575") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "34484")) else - ((money_of_cents_string "40392") +$ - ((money_of_cents_string "5909") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "40392") + (o_mult_mon_rat (money_of_cents_string + "5909") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11338,14 +12162,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25473") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30680")) else - ((money_of_cents_string "35885") +$ - ((money_of_cents_string "5206") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "35885") + (o_mult_mon_rat (money_of_cents_string + "5206") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11353,10 +12180,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "23789") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28539")) else - ((money_of_cents_string "33290") +$ - ((money_of_cents_string "4751") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "33290") + (o_mult_mon_rat (money_of_cents_string + "4751") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11375,13 +12205,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2011) (12) (31))) && - ((param_ <@ (date_of_numbers (2012) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2011) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2012) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11394,7 +12228,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11402,14 +12236,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "35855") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "43255")) else - ((money_of_cents_string "50655") +$ - ((money_of_cents_string "7399") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "50655") + (o_mult_mon_rat (money_of_cents_string + "7399") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11417,14 +12254,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "31998") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "38512")) else - ((money_of_cents_string "45029") +$ - ((money_of_cents_string "6515") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "45029") + (o_mult_mon_rat (money_of_cents_string + "6515") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11432,10 +12272,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29872") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35819")) else - ((money_of_cents_string "41767") +$ - ((money_of_cents_string "5947") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "41767") + (o_mult_mon_rat (money_of_cents_string + "5947") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11454,13 +12297,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2011) (12) (31))) && - ((param_ <@ (date_of_numbers (2012) (12) (31))) - && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2011) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2012) (12) (31))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11473,7 +12320,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11481,14 +12328,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "28861") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "34829")) else - ((money_of_cents_string "40796") +$ - ((money_of_cents_string "5968") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "40796") + (o_mult_mon_rat (money_of_cents_string + "5968") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11496,14 +12346,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "25728") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30987")) else - ((money_of_cents_string "36244") +$ - ((money_of_cents_string "5258") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "36244") + (o_mult_mon_rat (money_of_cents_string + "5258") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11511,10 +12364,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24027") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28824")) else - ((money_of_cents_string "33623") +$ - ((money_of_cents_string "4799") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "33623") + (o_mult_mon_rat (money_of_cents_string + "4799") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11533,12 +12389,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2012) (12) (31))) && - ((param_ <@ (date_of_numbers (2014) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2012) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2014) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11551,7 +12412,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11559,14 +12420,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "36626") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "44185")) else - ((money_of_cents_string "51744") +$ - ((money_of_cents_string "7558") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "51744") + (o_mult_mon_rat (money_of_cents_string + "7558") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11574,14 +12438,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "32686") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "39340")) else - ((money_of_cents_string "45997") +$ - ((money_of_cents_string "6655") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "45997") + (o_mult_mon_rat (money_of_cents_string + "6655") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11589,10 +12456,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "30514") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36589")) else - ((money_of_cents_string "42665") +$ - ((money_of_cents_string "6075") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "42665") + (o_mult_mon_rat (money_of_cents_string + "6075") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11611,12 +12481,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2012) (12) (31))) && - ((param_ <@ (date_of_numbers (2014) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2012) (12) (31))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2014) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11629,7 +12504,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11637,14 +12512,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29482") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35578")) else - ((money_of_cents_string "41673") +$ - ((money_of_cents_string "6096") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "41673") + (o_mult_mon_rat (money_of_cents_string + "6096") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11652,14 +12530,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26281") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31653")) else - ((money_of_cents_string "37023") +$ - ((money_of_cents_string "5371") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "37023") + (o_mult_mon_rat (money_of_cents_string + "5371") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11667,10 +12548,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24544") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29444")) else - ((money_of_cents_string "34346") +$ - ((money_of_cents_string "4902") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "34346") + (o_mult_mon_rat (money_of_cents_string + "4902") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11689,12 +12573,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2014) (9) (30))) && - ((param_ <@ (date_of_numbers (2015) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2014) (9) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2015) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11707,7 +12596,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11715,14 +12604,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "36835") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "44437")) else - ((money_of_cents_string "52039") +$ - ((money_of_cents_string "7601") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "52039") + (o_mult_mon_rat (money_of_cents_string + "7601") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11730,14 +12622,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "32872") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "39564")) else - ((money_of_cents_string "46259") +$ - ((money_of_cents_string "6693") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "46259") + (o_mult_mon_rat (money_of_cents_string + "6693") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11745,10 +12640,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "30688") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36798")) else - ((money_of_cents_string "42908") +$ - ((money_of_cents_string "6110") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "42908") + (o_mult_mon_rat (money_of_cents_string + "6110") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11767,12 +12665,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2014) (9) (30))) && - ((param_ <@ (date_of_numbers (2015) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2014) (9) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2015) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11785,7 +12688,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11793,14 +12696,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29650") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35781")) else - ((money_of_cents_string "41911") +$ - ((money_of_cents_string "6131") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "41911") + (o_mult_mon_rat (money_of_cents_string + "6131") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11808,14 +12714,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26431") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31833")) else - ((money_of_cents_string "37234") +$ - ((money_of_cents_string "5402") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "37234") + (o_mult_mon_rat (money_of_cents_string + "5402") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11823,10 +12732,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24684") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29612")) else - ((money_of_cents_string "34542") +$ - ((money_of_cents_string "4930") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "34542") + (o_mult_mon_rat (money_of_cents_string + "4930") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11845,12 +12757,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2015) (9) (30))) && - ((param_ <@ (date_of_numbers (2017) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2015) (9) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2017) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11863,7 +12780,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11871,14 +12788,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "36864") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "44473")) else - ((money_of_cents_string "52081") +$ - ((money_of_cents_string "7607") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "52081") + (o_mult_mon_rat (money_of_cents_string + "7607") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11886,14 +12806,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "32898") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "39596")) else - ((money_of_cents_string "46296") +$ - ((money_of_cents_string "6698") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "46296") + (o_mult_mon_rat (money_of_cents_string + "6698") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11901,10 +12824,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "30713") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36827")) else - ((money_of_cents_string "42942") +$ - ((money_of_cents_string "6115") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "42942") + (o_mult_mon_rat (money_of_cents_string + "6115") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -11923,12 +12849,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2015) (9) (30))) && - ((param_ <@ (date_of_numbers (2017) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2015) (9) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2017) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -11941,7 +12872,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11949,14 +12880,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29674") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35810")) else - ((money_of_cents_string "41945") +$ - ((money_of_cents_string "6136") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "41945") + (o_mult_mon_rat (money_of_cents_string + "6136") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11964,14 +12898,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26452") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31858")) else - ((money_of_cents_string "37264") +$ - ((money_of_cents_string "5406") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "37264") + (o_mult_mon_rat (money_of_cents_string + "5406") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -11979,10 +12916,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24704") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29636")) else - ((money_of_cents_string "34570") +$ - ((money_of_cents_string "4934") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "34570") + (o_mult_mon_rat (money_of_cents_string + "4934") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -12001,12 +12941,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2017) (9) (30))) && - ((param_ <@ (date_of_numbers (2019) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2017) (9) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -12019,7 +12964,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12027,14 +12972,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "37140") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "44807")) else - ((money_of_cents_string "52472") +$ - ((money_of_cents_string "7664") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "52472") + (o_mult_mon_rat (money_of_cents_string + "7664") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12042,14 +12990,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "33145") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "39893")) else - ((money_of_cents_string "46643") +$ - ((money_of_cents_string "6748") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "46643") + (o_mult_mon_rat (money_of_cents_string + "6748") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12057,10 +13008,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "30943") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37103")) else - ((money_of_cents_string "43264") +$ - ((money_of_cents_string "6161") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "43264") + (o_mult_mon_rat (money_of_cents_string + "6161") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -12079,12 +13033,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2017) (9) (30))) && - ((param_ <@ (date_of_numbers (2019) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2017) (9) (30))) + (o_and + (o_lt_dat_dat param_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -12097,7 +13056,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12105,14 +13064,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29897") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36079")) else - ((money_of_cents_string "42260") +$ - ((money_of_cents_string "6182") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "42260") + (o_mult_mon_rat (money_of_cents_string + "6182") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12120,14 +13082,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26650") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32097")) else - ((money_of_cents_string "37543") +$ - ((money_of_cents_string "5447") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "37543") + (o_mult_mon_rat (money_of_cents_string + "5447") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12135,10 +13100,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24889") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29858")) else - ((money_of_cents_string "34829") +$ - ((money_of_cents_string "4971") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "34829") + (o_mult_mon_rat (money_of_cents_string + "4971") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -12157,11 +13125,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2019) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> true - | NeufOuAncien.Ancien _ -> false) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> true + | NeufOuAncien.Ancien _ -> false) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -12174,7 +13145,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12182,14 +13153,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "37252") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "44941")) else - ((money_of_cents_string "52629") +$ - ((money_of_cents_string "7687") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "52629") + (o_mult_mon_rat (money_of_cents_string + "7687") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12197,14 +13171,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "33244") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "40013")) else - ((money_of_cents_string "46783") +$ - ((money_of_cents_string "6768") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "46783") + (o_mult_mon_rat (money_of_cents_string + "6768") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12212,10 +13189,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "31036") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37215")) else - ((money_of_cents_string "43394") +$ - ((money_of_cents_string "6179") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "43394") + (o_mult_mon_rat (money_of_cents_string + "6179") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))))); (fun (_: unit) -> handle_default @@ -12234,11 +13214,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 18"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((param_ >=@ (date_of_numbers (2019) (9) (30))) && - ((match anciennete_logement_ - with - | NeufOuAncien.Neuf _ -> false - | NeufOuAncien.Ancien _ -> true) && + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2019) (9) (30))) + (o_and + (match anciennete_logement_ + with + | NeufOuAncien.Neuf _ -> false + | NeufOuAncien.Ancien _ -> true) (match type_pret_ with | TypePret.D331_32 _ -> false @@ -12251,7 +13234,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12259,14 +13242,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "29986") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36187")) else - ((money_of_cents_string "42386") +$ - ((money_of_cents_string "6201") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "42386") + (o_mult_mon_rat (money_of_cents_string + "6201") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12274,14 +13260,17 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "26730") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32193")) else - ((money_of_cents_string "37656") +$ - ((money_of_cents_string "5463") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "37656") + (o_mult_mon_rat (money_of_cents_string + "5463") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1")))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -12289,10 +13278,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (money_of_cents_string "24964") | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29948")) else - ((money_of_cents_string "34934") +$ - ((money_of_cents_string "4986") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ -! + (o_add_mon_mon (money_of_cents_string + "34934") + (o_mult_mon_rat (money_of_cents_string + "4986") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "1"))))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -12376,11 +13368,12 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - (date_signature_pret_ >=@ + (o_gte_dat_dat date_signature_pret_ (date_of_numbers (1999) (6) (30))))) (fun (_: unit) -> - (mensualite_principale_ +$ - montant_forfaitaire_charges_d832_10_) -$ param_))|]) + o_sub_mon_mon + (o_add_mon_mon mensualite_principale_ + montant_forfaitaire_charges_d832_10_) param_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3531; start_column=14; @@ -12392,7 +13385,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - true)) (fun (_: unit) -> mensualite_principale_ -$ param_)) + true)) + (fun (_: unit) -> o_sub_mon_mon mensualite_principale_ param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -12472,8 +13466,8 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "calcul_plafond_mensualité_d832_10_3"; "input"] (embed_date) date_entree_logement_))))))) in - ( if (plafond_signature_ <$ plafond_entree_) then - plafond_entree_ else plafond_signature_)))))|]) + ( if (o_lt_mon_mon plafond_signature_ plafond_entree_) + then plafond_entree_ else plafond_signature_)))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=3335; start_column=14; end_line=3335; end_column=42; @@ -12657,9 +13651,9 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (decimal_of_string "0.95") -& - (ressources_menage_arrondies_ /$ - (coefficient_multiplicateur_d832_11_ *$ + o_sub_rat_rat (decimal_of_string "0.95") + (o_div_mon_mon ressources_menage_arrondies_ + (o_mult_mon_rat coefficient_multiplicateur_d832_11_ n_nombre_parts_d832_11_)))) with EmptyError -> (raise (NoValueProvided @@ -12711,11 +13705,12 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna (embed_money) param_))))))) in ( if - (depense_nette_minimale_ <=$ - (ressources_menage_avec_d832_18_ *$ + (o_lte_mon_mon depense_nette_minimale_ + (o_mult_mon_rat ressources_menage_avec_d832_18_ coefficient_multiplicateur_d832_17_3_)) then - ((ressources_menage_avec_d832_18_ *$ - coefficient_multiplicateur_d832_17_3_) -$ + (o_sub_mon_mon + (o_mult_mon_rat ressources_menage_avec_d832_18_ + coefficient_multiplicateur_d832_17_3_) depense_nette_minimale_) else (money_of_cents_string "0"))))) with @@ -12781,13 +13776,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"; "Articles valables du 1er octobre 2020 au 1er octobre 2021"; "Archives législatives et réglementaires"]} - ((date_courante_ <@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ >=@ + (o_and + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_gte_dat_dat date_courante_ (date_of_numbers (2020) (10) (1)))))) (fun (_: unit) -> if copropriete_ then - (plafond_mensualite_d832_10_3_base_ *$ + (o_mult_mon_rat + plafond_mensualite_d832_10_3_base_ (decimal_of_string "0.75")) else plafond_mensualite_d832_10_3_base_))|]) (fun (_: unit) -> (log_decision_taken @@ -12797,13 +13794,15 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 24"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if copropriete_ then - (plafond_mensualite_d832_10_3_base_ *$ + (o_mult_mon_rat + plafond_mensualite_d832_10_3_base_ (decimal_of_string "0.75")) else plafond_mensualite_d832_10_3_base_))|]) (fun (_: unit) -> (log_decision_taken @@ -12813,10 +13812,11 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna law_headings=["Article 24"; "Chapitre IV : Calcul de l'aide personnalisée au logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if copropriete_ then - (plafond_mensualite_d832_10_3_base_ *$ + (o_mult_mon_rat plafond_mensualite_d832_10_3_base_ (decimal_of_string "0.75")) else plafond_mensualite_d832_10_3_base_))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) @@ -12859,13 +13859,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((match type_travaux_logement_ - with - | TypeTravauxLogementD83215.TravauxPourAcquisitionD832_15_1 _ -> - true - | TypeTravauxLogementD83215.TravauxSurLogementDejaAcquisD832_15_2 _ -> - false - | TypeTravauxLogementD83215.PasDeTravaux _ -> false) || + (o_or + (match type_travaux_logement_ + with + | TypeTravauxLogementD83215.TravauxPourAcquisitionD832_15_1 _ -> + true + | TypeTravauxLogementD83215.TravauxSurLogementDejaAcquisD832_15_2 _ -> + false + | TypeTravauxLogementD83215.PasDeTravaux _ -> false) (match type_travaux_logement_ with | TypeTravauxLogementD83215.TravauxPourAcquisitionD832_15_1 _ -> @@ -12875,30 +13876,39 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna | TypeTravauxLogementD83215.PasDeTravaux _ -> true)))) (fun (_: unit) -> (let ressources_menage_arrondies_ : decimal = - (decimal_of_money ressources_menage_arrondies_) + (o_moneyToRat ressources_menage_arrondies_) in (let montant_limite_tranches_d832_15_1_ : decimal = - (decimal_of_money montant_limite_tranches_d832_15_1_) + (o_moneyToRat montant_limite_tranches_d832_15_1_) in - (money_of_decimal - ((( if - (ressources_menage_arrondies_ >=& - (montant_limite_tranches_d832_15_1_ *& - n_nombre_parts_d832_11_)) then - ((ressources_menage_arrondies_ -& - (montant_limite_tranches_d832_15_1_ *& - n_nombre_parts_d832_11_)) *& - taux_tranche_superieure_d832_15_1_) else - (decimal_of_string "0.")) +& - ( if - (ressources_menage_arrondies_ <=& - (montant_limite_tranches_d832_15_1_ *& - n_nombre_parts_d832_11_)) then - (ressources_menage_arrondies_ *& - taux_tranche_inferieure_d832_15_1_) else - ((montant_limite_tranches_d832_15_1_ *& - n_nombre_parts_d832_11_) *& - taux_tranche_inferieure_d832_15_1_))) /& + (o_ratToMoney + (o_div_rat_rat + (o_add_rat_rat + ( if + (o_gte_rat_rat ressources_menage_arrondies_ + (o_mult_rat_rat + montant_limite_tranches_d832_15_1_ + n_nombre_parts_d832_11_)) then + (o_mult_rat_rat + (o_sub_rat_rat + ressources_menage_arrondies_ + (o_mult_rat_rat + montant_limite_tranches_d832_15_1_ + n_nombre_parts_d832_11_)) + taux_tranche_superieure_d832_15_1_) else + (decimal_of_string "0.")) + ( if + (o_lte_rat_rat ressources_menage_arrondies_ + (o_mult_rat_rat + montant_limite_tranches_d832_15_1_ + n_nombre_parts_d832_11_)) then + (o_mult_rat_rat ressources_menage_arrondies_ + taux_tranche_inferieure_d832_15_1_) else + (o_mult_rat_rat + (o_mult_rat_rat + montant_limite_tranches_d832_15_1_ + n_nombre_parts_d832_11_) + taux_tranche_inferieure_d832_15_1_))) (decimal_of_string "12."))))))); (fun (_: unit) -> handle_default @@ -12961,10 +13971,13 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (decimal_round - ((coefficient_prise_en_charge_d832_10_formule_ -& - (decimal_of_string "0.005")) *& (decimal_of_string "100."))) - /& (decimal_of_string "100."))) + o_div_rat_rat + (o_roundDecimal + (o_mult_rat_rat + (o_sub_rat_rat + coefficient_prise_en_charge_d832_10_formule_ + (decimal_of_string "0.005")) + (decimal_of_string "100."))) (decimal_of_string "100."))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13015,7 +14028,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "input"] (embed_money) param_))))))) in (let aide_finale_ : money = - (aide_finale_ -$ ((log_end_call + (o_sub_mon_mon aide_finale_ ((log_end_call ["CalculAidePersonnaliséeLogementAccessionPropriété"; "abattement_dépense_nette_minimale_d832_10"] ((log_variable_definition @@ -13030,8 +14043,9 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "abattement_dépense_nette_minimale_d832_10"; "input"] (embed_money) aide_finale_)))))))) in - ( if (aide_finale_ >=$ (money_of_cents_string "0")) then - aide_finale_ else (money_of_cents_string "0")))))) + ( if + (o_gte_mon_mon aide_finale_ (money_of_cents_string "0")) + then aide_finale_ else (money_of_cents_string "0")))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13072,7 +14086,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna true)) (fun (_: unit) -> if - (mensualite_principale_ >$ + (o_gt_mon_mon mensualite_principale_ plafond_mensualite_d832_10_3_coproprietaires_) then plafond_mensualite_d832_10_3_coproprietaires_ else mensualite_principale_)) @@ -13108,7 +14122,7 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna true)) (fun (_: unit) -> if - (coefficient_prise_en_charge_d832_10_arrondi_ >=& + (o_gte_rat_rat coefficient_prise_en_charge_d832_10_arrondi_ (decimal_of_string "0.95")) then (decimal_of_string "0.95") else coefficient_prise_en_charge_d832_10_arrondi_)) with @@ -13173,15 +14187,16 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "montant"; "input"] (embed_money) aide_finale_))))))) in (let aide_finale_moins_crds_arrondie_ : money = - (money_round - ((aide_finale_ -$ crds_) -$ (money_of_cents_string - "50"))) + (o_roundMoney + (o_sub_mon_mon (o_sub_mon_mon aide_finale_ crds_) + (money_of_cents_string "50"))) in ( if - ((aide_finale_moins_crds_arrondie_ +$ crds_) >=$ + (o_gte_mon_mon + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) (money_of_cents_string "0")) then - (aide_finale_moins_crds_arrondie_ +$ crds_) else - (money_of_cents_string "0"))))))) + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) + else (money_of_cents_string "0"))))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13222,12 +14237,14 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna true)) (fun (_: unit) -> (let aide_finale_ : money = - (((mensualite_eligible_ +$ - montant_forfaitaire_charges_d832_10_) -$ - mensualite_minimale_) *$ + (o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon mensualite_eligible_ + montant_forfaitaire_charges_d832_10_) + mensualite_minimale_) coefficient_prise_en_charge_d832_10_seuil_) in - ( if (aide_finale_ <$ (money_of_cents_string "0")) then + ( if (o_lt_mon_mon aide_finale_ (money_of_cents_string "0")) then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided @@ -13278,8 +14295,9 @@ let calcul_aide_personnalisee_logement_accession_propriete (calcul_aide_personna "traitement_aide_finale_contributions_sociales_arrondi"; "input"] (embed_money) param_))))))) in - ( if (aide_finale_ <$ montant_minimal_aide_d832_10_) then - (money_of_cents_string "0") else aide_finale_)))) + ( if + (o_lt_mon_mon aide_finale_ montant_minimal_aide_d832_10_) + then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -13477,11 +14495,12 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (match ((menage_.Menage.logement).Logement.proprietaire) - with - | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> - true - | ParentOuAutre.Autre _ -> false) || + o_or + (match ((menage_.Menage.logement).Logement.proprietaire) + with + | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> + true + | ParentOuAutre.Autre _ -> false) (match ((menage_.Menage.logement).Logement.usufruit) with | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> @@ -13522,7 +14541,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (not + (o_not ((menage_.Menage.logement).Logement.logement_decent_l89_462)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -13623,57 +14642,62 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie réglementaire"; "Code de la construction et de l'habitation"]} (let nombre_personnes_logement_ : integer = - (((match (menage_.Menage.situation_familiale) - with - | SituationFamiliale.Celibataire _ -> - (integer_of_string "1") - | SituationFamiliale.Maries _ -> - (integer_of_string "2") - | SituationFamiliale.Pacses _ -> - (integer_of_string "2") - | SituationFamiliale.Concubins _ -> - (integer_of_string "2") - | SituationFamiliale.CelibataireSepareDeFait _ -> - (integer_of_string "1") - | SituationFamiliale.ConcubinageDontSepareDeFait _ -> - (integer_of_string "2")) +! - (menage_.Menage.nombre_autres_occupants_logement)) - +! - (array_length - (menage_.Menage.personnes_a_charge))) + (o_add_int_int + (o_add_int_int + (match (menage_.Menage.situation_familiale) + with + | SituationFamiliale.Celibataire _ -> + (integer_of_string "1") + | SituationFamiliale.Maries _ -> + (integer_of_string "2") + | SituationFamiliale.Pacses _ -> + (integer_of_string "2") + | SituationFamiliale.Concubins _ -> + (integer_of_string "2") + | SituationFamiliale.CelibataireSepareDeFait _ -> + (integer_of_string "1") + | SituationFamiliale.ConcubinageDontSepareDeFait _ -> + (integer_of_string "2")) + (menage_.Menage.nombre_autres_occupants_logement)) + (o_length (menage_.Menage.personnes_a_charge))) in (let condition_logement_surface_minimale_sans_seuil_m_carres_ : integer = - ((match (menage_.Menage.situation_familiale) - with - | SituationFamiliale.Celibataire _ -> - (integer_of_string "9") - | SituationFamiliale.Maries _ -> - (integer_of_string "16") - | SituationFamiliale.Pacses _ -> - (integer_of_string "16") - | SituationFamiliale.Concubins _ -> - (integer_of_string "16") - | SituationFamiliale.CelibataireSepareDeFait _ -> - (integer_of_string "9") - | SituationFamiliale.ConcubinageDontSepareDeFait _ -> - (integer_of_string "16")) +! - (((menage_.Menage.nombre_autres_occupants_logement) - +! - (array_length - (menage_.Menage.personnes_a_charge))) - *! (integer_of_string "9"))) + (o_add_int_int + (match (menage_.Menage.situation_familiale) + with + | SituationFamiliale.Celibataire _ -> + (integer_of_string "9") + | SituationFamiliale.Maries _ -> + (integer_of_string "16") + | SituationFamiliale.Pacses _ -> + (integer_of_string "16") + | SituationFamiliale.Concubins _ -> + (integer_of_string "16") + | SituationFamiliale.CelibataireSepareDeFait _ -> + (integer_of_string "9") + | SituationFamiliale.ConcubinageDontSepareDeFait _ -> + (integer_of_string "16")) + (o_mult_int_int + (o_add_int_int + (menage_.Menage.nombre_autres_occupants_logement) + (o_length + (menage_.Menage.personnes_a_charge))) + (integer_of_string "9"))) in ( if - ((condition_logement_surface_minimale_sans_seuil_m_carres_ - >=! (integer_of_string "70")) && - (nombre_personnes_logement_ >=! + (o_and + (o_gte_int_int + condition_logement_surface_minimale_sans_seuil_m_carres_ + (integer_of_string "70")) + (o_gte_int_int nombre_personnes_logement_ (integer_of_string "8"))) then - (((menage_.Menage.logement).Logement.surface_m_carres) - >=! (integer_of_string "70")) else - (((menage_.Menage.logement).Logement.surface_m_carres) - >=! + (o_gte_int_int + ((menage_.Menage.logement).Logement.surface_m_carres) + (integer_of_string "70")) else + (o_gte_int_int + ((menage_.Menage.logement).Logement.surface_m_carres) condition_logement_surface_minimale_sans_seuil_m_carres_)))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -13819,8 +14843,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - ((demandeur_.Demandeur.patrimoine).Patrimoine.produisant_revenu_periode_r822_3_3_r822_4) - +$ + o_add_mon_mon + ((demandeur_.Demandeur.patrimoine).Patrimoine.produisant_revenu_periode_r822_3_3_r822_4) ((demandeur_.Demandeur.patrimoine).Patrimoine.ne_produisant_pas_revenu_periode_r822_3_3_r822_4))) with EmptyError -> (raise (NoValueProvided @@ -13906,8 +14930,11 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Allocations aux personnes âgées - Allocation aux adultes handicapés - Aides à l'emploi pour la garde des jeunes enfants - Protection complémentaire en matière de santé"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((date_courante_ >=@ (date_of_numbers (2018) (1) (4))) && - (date_courante_ <@ (date_of_numbers (2019) (1) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2018) (1) (4))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1)))))) (fun (_: unit) -> money_of_cents_string "999840")); (fun (_: unit) -> handle_default @@ -13928,8 +14955,11 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Allocations aux personnes âgées - Allocation aux adultes handicapés - Aides à l'emploi pour la garde des jeunes enfants - Protection complémentaire en matière de santé"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) && - (date_courante_ <@ (date_of_numbers (2020) (1) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1)))))) (fun (_: unit) -> money_of_cents_string "1041840")); (fun (_: unit) -> handle_default @@ -13950,8 +14980,11 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Allocations aux personnes âgées - Allocation aux adultes handicapés - Aides à l'emploi pour la garde des jeunes enfants - Protection complémentaire en matière de santé"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((date_courante_ >=@ (date_of_numbers (2020) (1) (4))) && - (date_courante_ <@ (date_of_numbers (2021) (1) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (4))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1)))))) (fun (_: unit) -> money_of_cents_string "1083840")); (fun (_: unit) -> handle_default @@ -13967,8 +15000,11 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme end_line=61; end_column=34; law_headings=["Circulaire de la CNAV 2022-3 du 11/01/2022 \"Revalorisation à compter du 1er janvier 2022\""; "Montants revalorisés de l'allocation de solidarité aux personnes âgées"]} - ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && - (date_courante_ <@ (date_of_numbers (2023) (1) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (1) (1)))))) (fun (_: unit) -> money_of_cents_string "1100144")); (fun (_: unit) -> handle_default @@ -13984,8 +15020,11 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme end_line=94; end_column=34; law_headings=["Circulaire de la CNAV 2021-1 du 11/01/2021 \"Revalorisation à compter du 1er janvier 2021\""; "Montants revalorisés de l'allocation de solidarité aux personnes âgées"]} - ((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) && - (date_courante_ <@ (date_of_numbers (2022) (1) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1)))))) (fun (_: unit) -> money_of_cents_string "1088175"))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -14037,9 +15076,12 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme with | LoueOuSousLoueADesTiers.Non _ -> true | LoueOuSousLoueADesTiers.Oui personne_ -> - ((((personne_.PersonneSousLocation.date_naissance_personne_sous_location) - +@ (duration_of_numbers (30) (0) (0))) - >@ date_courante_) || + (o_or + (o_gt_dat_dat + (o_add_dat_dur + (personne_.PersonneSousLocation.date_naissance_personne_sous_location) + (duration_of_numbers (30) (0) (0))) + date_courante_) (personne_.PersonneSousLocation.conforme_article_l442_1))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -14117,22 +15159,25 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (usufruit_ou_propriete_famille_ && - (((match - ((menage_.Menage.logement).Logement.proprietaire) - with - | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> - parts_ - | ParentOuAutre.Autre _ -> - (decimal_of_string "0.")) <& - seuil_l822_3_parts_propriete_) && - ((match - ((menage_.Menage.logement).Logement.usufruit) - with - | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> - parts_ - | ParentOuAutre.Autre _ -> - (decimal_of_string "0.")) <& + (o_and usufruit_ou_propriete_famille_ + (o_and + (o_lt_rat_rat + (match + ((menage_.Menage.logement).Logement.proprietaire) + with + | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> + parts_ + | ParentOuAutre.Autre _ -> + (decimal_of_string "0.")) + seuil_l822_3_parts_propriete_) + (o_lt_rat_rat + (match + ((menage_.Menage.logement).Logement.usufruit) + with + | ParentOuAutre.DemandeurOuConjointOuParentOuViaPartsSocietes parts_ -> + parts_ + | ParentOuAutre.Autre _ -> + (decimal_of_string "0.")) seuil_l822_3_parts_usufruit_))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -14321,14 +15366,15 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (Array.fold_left + (o_fold (fun (acc_: bool) (prestation_: PrestationRecue.t) -> - acc_ || - ((prestation_ = - (PrestationRecue.AllocationSoutienEnfantHandicape - ())) || - (prestation_ = + o_or acc_ + (o_or + (o_eq prestation_ + (PrestationRecue.AllocationSoutienEnfantHandicape + ())) + (o_eq prestation_ (PrestationRecue.AllocationAdulteHandicape ())))) false (menage_.Menage.prestations_recues)))) @@ -14345,7 +15391,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - (patrimoine_total_demandeur_ >=$ seuil_l822_5_patrimoine_))) + (o_gte_mon_mon patrimoine_total_demandeur_ + seuil_l822_5_patrimoine_))) (fun (_: unit) -> (demandeur_.Demandeur.patrimoine).Patrimoine.ne_produisant_pas_revenu_periode_r822_3_3_r822_4))|]) (fun (_: unit) -> (log_decision_taken @@ -14359,9 +15406,10 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - if (patrimoine_total_demandeur_ >$ seuil_l822_5_patrimoine_) - then patrimoine_total_demandeur_ else - (money_of_cents_string "0"))) + if + (o_gt_mon_mon patrimoine_total_demandeur_ + seuil_l822_5_patrimoine_) then patrimoine_total_demandeur_ + else (money_of_cents_string "0"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14405,7 +15453,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (condition_non_ouverture_l822_8_ || + (o_or condition_non_ouverture_l822_8_ condition_non_ouverture_l822_9_decence_logement_))) (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken @@ -14417,9 +15465,9 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (condition_logement_residence_principale_ && - (condition_logement_mode_occupation_ && - (condition_logement_location_tiers_ && + (o_and condition_logement_residence_principale_ + (o_and condition_logement_mode_occupation_ + (o_and condition_logement_location_tiers_ condition_ouverture_l822_10_peuplement_logement_))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -14457,7 +15505,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Partie législative"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - age_l161_17_2_secu_ +^ (duration_of_numbers (5) (0) (0)))) + o_add_dur_dur age_l161_17_2_secu_ + (duration_of_numbers (5) (0) (0)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14489,8 +15538,8 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} - (condition_nationalite_ && - (condition_logement_mode_occupation_ && + (o_and condition_nationalite_ + (o_and condition_logement_mode_occupation_ eligibilite_logement_)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14542,24 +15591,35 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme with | PersonneACharge.EnfantACharge enfant_ -> false | PersonneACharge.AutrePersonneACharge parent_ -> - (((parent_.AutrePersonneACharge.parente) = - (Parente.Ascendant ())) && - (((parent_.AutrePersonneACharge.ressources) - <=$ - (plafond_individuel_l815_9_secu_ *$ - (decimal_of_string "1.25"))) && - (((((parent_.AutrePersonneACharge.date_naissance) - +@ age_l351_8_1_secu_) <=@ - date_courante_) || - ((parent_.AutrePersonneACharge.titulaire_allocation_personne_agee) - && - (((parent_.AutrePersonneACharge.date_naissance) - +@ - (duration_of_numbers (65) (0) (0))) - <=@ date_courante_))) || - ((((parent_.AutrePersonneACharge.date_naissance) - +@ age_l161_17_2_secu_) <=@ - date_courante_) && + (o_and + (o_eq (parent_.AutrePersonneACharge.parente) + (Parente.Ascendant ())) + (o_and + (o_lte_mon_mon + (parent_.AutrePersonneACharge.ressources) + (o_mult_mon_rat + plafond_individuel_l815_9_secu_ + (decimal_of_string "1.25"))) + (o_or + (o_or + (o_lte_dat_dat + (o_add_dat_dur + (parent_.AutrePersonneACharge.date_naissance) + age_l351_8_1_secu_) + date_courante_) + (o_and + (parent_.AutrePersonneACharge.titulaire_allocation_personne_agee) + (o_lte_dat_dat + (o_add_dat_dur + (parent_.AutrePersonneACharge.date_naissance) + (duration_of_numbers (65) (0) (0))) + date_courante_))) + (o_and + (o_lte_dat_dat + (o_add_dat_dur + (parent_.AutrePersonneACharge.date_naissance) + age_l161_17_2_secu_) + date_courante_) (parent_.AutrePersonneACharge.beneficiaire_l161_19_l351_8_l643_3_secu)))))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -14629,12 +15689,13 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme | PersonneACharge.EnfantACharge enfant_ -> false | PersonneACharge.AutrePersonneACharge parent_ -> - ((parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi) - && - ((parent_.AutrePersonneACharge.ressources) - <=$ - (plafond_individuel_l815_9_secu_ - *$ (decimal_of_string "1.25"))))))) + (o_and + (parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi) + (o_lte_mon_mon + (parent_.AutrePersonneACharge.ressources) + (o_mult_mon_rat + plafond_individuel_l815_9_secu_ + (decimal_of_string "1.25"))))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; @@ -14683,8 +15744,10 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme (match param_ with | PersonneACharge.EnfantACharge enfant_ -> - (((enfant_.EnfantACharge.date_de_naissance) +@ - (duration_of_numbers (21) (0) (0))) >@ + (o_gt_dat_dat + (o_add_dat_dur + (enfant_.EnfantACharge.date_de_naissance) + (duration_of_numbers (21) (0) (0))) date_courante_) | PersonneACharge.AutrePersonneACharge parent_ -> false))) (fun (_: unit) -> true))|]) @@ -14733,7 +15796,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - array_filter + o_filter (fun (personne_a_charge_: PersonneACharge.t) -> (log_end_call ["ÉligibilitéAidesPersonnelleLogement"; "prise_en_compte_personne_à_charge"] @@ -14774,7 +15837,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) (fun (_: unit) -> - Array.map + o_map (fun (personne_a_charge_: PersonneACharge.t) -> match personne_a_charge_ with @@ -14787,7 +15850,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme coeff_) | PersonneACharge.AutrePersonneACharge _ -> (decimal_of_string "0.")) - (array_filter + (o_filter (fun (personne_a_charge_: PersonneACharge.t) -> match personne_a_charge_ with @@ -14824,7 +15887,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme law_headings=["Éligibilité aux aides personnelles au logement"; "Déclarations des champs d'application"; "Prologue : aides au logement"]} true)) - (fun (_: unit) -> array_length personnes_a_charge_prises_en_compte_)) + (fun (_: unit) -> o_length personnes_a_charge_prises_en_compte_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -14834,7 +15897,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Prologue : aides au logement"]})))) in let _: unit = if ( try - (seuil_l822_3_parts_usufruit_ <& + (o_lt_rat_rat seuil_l822_3_parts_usufruit_ (decimal_of_string "0.2")) with EmptyError -> (raise (NoValueProvided @@ -14859,7 +15922,7 @@ let eligibilite_aides_personnelle_logement (eligibilite_aides_personnelle_logeme "Code de la construction et de l'habitation"]}) in let _: unit = if ( try - (seuil_l822_3_parts_propriete_ <& + (o_lt_rat_rat seuil_l822_3_parts_propriete_ (decimal_of_string "0.2")) with EmptyError -> (raise (NoValueProvided @@ -15025,10 +16088,10 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - Array.fold_left + o_fold (fun (acc_: money) (personne_: PersonneVivantHabituellementAuFoyer.t) -> - acc_ +$ + o_add_mon_mon acc_ (personne_.PersonneVivantHabituellementAuFoyer.ressources)) (money_of_cents_string "0") personnes_vivant_habituellement_foyer_)) @@ -15064,10 +16127,10 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement (fun (_: unit) -> (let abattement_ : money = ( if - ((array_length personnes_a_charge_) = (integer_of_string + (o_eq (o_length personnes_a_charge_) (integer_of_string "0")) then (money_of_cents_string "0") else ( if - ((array_length personnes_a_charge_) <=! + (o_lte_int_int (o_length personnes_a_charge_) (integer_of_string "2")) then (money_of_cents_string "90100") else (money_of_cents_string "135000"))) @@ -15205,23 +16268,25 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - (((match mode_occupation_ - with - | ModeOccupation.Locataire _ -> true - | ModeOccupation.ResidentLogementFoyer _ -> false - | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ -> - false - | ModeOccupation.SousLocataire _ -> false - | ModeOccupation.LocationAccession _ -> false) || - (match mode_occupation_ - with - | ModeOccupation.Locataire _ -> false - | ModeOccupation.ResidentLogementFoyer _ -> true - | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ -> - false - | ModeOccupation.SousLocataire _ -> false - | ModeOccupation.LocationAccession _ -> false)) && - (condition_age_bourse_enseignement_superieur_ && + (o_and + (o_or + (match mode_occupation_ + with + | ModeOccupation.Locataire _ -> true + | ModeOccupation.ResidentLogementFoyer _ -> false + | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ -> + false + | ModeOccupation.SousLocataire _ -> false + | ModeOccupation.LocationAccession _ -> false) + (match mode_occupation_ + with + | ModeOccupation.Locataire _ -> false + | ModeOccupation.ResidentLogementFoyer _ -> true + | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation _ -> + false + | ModeOccupation.SousLocataire _ -> false + | ModeOccupation.LocationAccession _ -> false)) + (o_and condition_age_bourse_enseignement_superieur_ demandeur_poursuit_des_etudes_)))) (fun (_: unit) -> ressources_forfaitaires_r822_20_))|]) (fun (_: unit) -> (log_decision_taken @@ -15237,7 +16302,8 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (ressources_demandeur_ +$ ressources_conjoint_) +$ + o_add_mon_mon + (o_add_mon_mon ressources_demandeur_ ressources_conjoint_) ressources_personnes_vivant_habituellement_foyer_)) with EmptyError -> (raise (NoValueProvided @@ -15270,10 +16336,13 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement true)) (fun (_: unit) -> if - (demandeur_exerce_activite_remuneree_ && - (conjoint_exerce_activite_remuneree_ && - ((ressources_demandeur_ +$ ressources_conjoint_) >=$ - (base_mensuelle_allocations_familiales_dot_montant_ *$ + (o_and demandeur_exerce_activite_remuneree_ + (o_and conjoint_exerce_activite_remuneree_ + (o_gte_mon_mon + (o_add_mon_mon ressources_demandeur_ + ressources_conjoint_) + (o_mult_mon_rat + base_mensuelle_allocations_familiales_dot_montant_ (decimal_of_string "12."))))) then montant_forfaitaire_r_822_7_ else (money_of_cents_string "0"))) with @@ -15285,10 +16354,10 @@ let ressources_aides_personnelle_logement (ressources_aides_personnelle_logement "Prologue : aides au logement"]})))) in let _: unit = if ( try - (Array.fold_left + (o_fold (fun (acc_: bool) (personne_: PersonneVivantHabituellementAuFoyer.t) -> - acc_ && + o_and acc_ (personne_.PersonneVivantHabituellementAuFoyer.duree_residence_durant_periode_r_822_3_1_superieure_a_6_mois)) true personnes_vivant_habituellement_foyer_) with @@ -15413,13 +16482,16 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Livre 7 : Régimes divers - Dispositions diverses"; "Partie législative"; "Code de la sécurité sociale"]} - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = (Collectivite.Martinique ())) || - ((residence_ = (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) || - (residence_ = + (o_or (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ (Collectivite.Martinique ())) + (o_or + (o_eq residence_ (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy ())) + (o_eq residence_ (Collectivite.SaintMartin ()))))))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -15459,7 +16531,9 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Code de la sécurité sociale"]} regime_outre_mer_l751_1_)) (fun (_: unit) -> - (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ + o_mult_mon_rat + (o_mult_mon_rat smic_dot_brut_horaire_ + (decimal_of_string "0.55")) (decimal_of_string "169.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/sécurité_sociale_R.catala_fr"; @@ -15471,8 +16545,9 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ - (decimal_of_string "169."))) + o_mult_mon_rat + (o_mult_mon_rat smic_dot_brut_horaire_ + (decimal_of_string "0.55")) (decimal_of_string "169."))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; @@ -15505,33 +16580,38 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - (((match - (param_.EnfantPrestationsFamiliales.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> true - | SituationObligationScolaire.Pendant _ -> false - | SituationObligationScolaire.Apres _ -> false) - || - ((match - (param_.EnfantPrestationsFamiliales.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> false - | SituationObligationScolaire.Pendant _ -> - true - | SituationObligationScolaire.Apres _ -> false) - || - (match - (param_.EnfantPrestationsFamiliales.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> - false - | SituationObligationScolaire.Pendant _ -> - false - | SituationObligationScolaire.Apres _ -> - true))) && - ((param_.EnfantPrestationsFamiliales.remuneration_mensuelle) - <=$ plafond_l512_3_2_)))) - (fun (_: unit) -> true))|]) + (o_and + (o_or + (match + (param_.EnfantPrestationsFamiliales.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> true + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + false) + (o_or + (match + (param_.EnfantPrestationsFamiliales.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + false + | SituationObligationScolaire.Pendant _ -> + true + | SituationObligationScolaire.Apres _ -> + false) + (match + (param_.EnfantPrestationsFamiliales.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + false + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + true))) + (o_lte_mon_mon + (param_.EnfantPrestationsFamiliales.remuneration_mensuelle) + plafond_l512_3_2_)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/../prestations_familiales/prologue.catala_fr"; start_line=41; start_column=10; @@ -15586,19 +16666,24 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - ((match - (param_.EnfantPrestationsFamiliales.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> - false - | SituationObligationScolaire.Pendant _ -> - false - | SituationObligationScolaire.Apres _ -> - true) && - (((param_.EnfantPrestationsFamiliales.remuneration_mensuelle) - <=$ plafond_l512_3_2_) && - (((param_.EnfantPrestationsFamiliales.date_de_naissance) - +@ age_l512_3_2_) >@ + (o_and + (match + (param_.EnfantPrestationsFamiliales.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + false + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + true) + (o_and + (o_lte_mon_mon + (param_.EnfantPrestationsFamiliales.remuneration_mensuelle) + plafond_l512_3_2_) + (o_gt_dat_dat + (o_add_dat_dur + (param_.EnfantPrestationsFamiliales.date_de_naissance) + age_l512_3_2_) date_courante_))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -15611,15 +16696,16 @@ let eligibilite_prestations_familiales (eligibilite_prestations_familiales_in: E "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - ((match - (param_.EnfantPrestationsFamiliales.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> - true - | SituationObligationScolaire.Pendant _ -> - false - | SituationObligationScolaire.Apres _ -> - false) || + (o_or + (match + (param_.EnfantPrestationsFamiliales.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + true + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + false) (match (param_.EnfantPrestationsFamiliales.obligation_scolaire) with @@ -16060,7 +17146,7 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (match changement_logement_d842_4_ with | ChangementLogementD8424.Changement infos_ -> - (loyer_principal_ >=$ + (o_gte_mon_mon loyer_principal_ (infos_.InfosChangementLogementD8424.ancien_loyer_principal)) | ChangementLogementD8424.PasDeChangement _ -> false))) (fun (_: unit) -> param_))|]) @@ -16131,16 +17217,16 @@ let calcul_allocation_logement_locatif (calcul_allocation_logement_locatif_in: C (match changement_logement_d842_4_ with | ChangementLogementD8424.Changement infos_ -> - (loyer_principal_ >=$ + (o_gte_mon_mon loyer_principal_ (infos_.InfosChangementLogementD8424.ancien_loyer_principal)) | ChangementLogementD8424.PasDeChangement _ -> false))) (fun (_: unit) -> match changement_logement_d842_4_ with | ChangementLogementD8424.Changement infos_ -> - (loyer_principal_ -$ - ((infos_.InfosChangementLogementD8424.ancien_loyer_principal) - -$ + (o_sub_mon_mon loyer_principal_ + (o_sub_mon_mon + (infos_.InfosChangementLogementD8424.ancien_loyer_principal) (infos_.InfosChangementLogementD8424.ancienne_allocation_logement))) | ChangementLogementD8424.PasDeChangement _ -> (money_of_cents_string "0")))|]) @@ -16682,14 +17768,15 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 40"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then (money_of_cents_string "5612") else - ((money_of_cents_string "5612") +$ - ((money_of_cents_string "1272") *$ - (decimal_of_integer nombre_personnes_a_charge_))))); + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (money_of_cents_string "5612") else + (o_add_mon_mon (money_of_cents_string "5612") + (o_mult_mon_rat (money_of_cents_string "1272") + (o_intToRat nombre_personnes_a_charge_))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -16705,16 +17792,18 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 40"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then (money_of_cents_string "5422") else - ((money_of_cents_string "5422") +$ - ((money_of_cents_string "1229") *$ - (decimal_of_integer nombre_personnes_a_charge_)))))|]) + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (money_of_cents_string "5422") else + (o_add_mon_mon (money_of_cents_string "5422") + (o_mult_mon_rat (money_of_cents_string "1229") + (o_intToRat nombre_personnes_a_charge_)))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided @@ -16747,7 +17836,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -16780,7 +17871,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -16822,8 +17915,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -16848,7 +17942,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Chapitre VII : Calcul des allocations de logement en secteur logement-foyer"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -16881,10 +17977,12 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))) - && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -16917,10 +18015,12 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))) - && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -16962,10 +18062,12 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ - (date_of_numbers (2022) (7) (1)))) && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -16990,10 +18092,12 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu law_headings=["Article 43"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))) - && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) (match categorie_equivalence_loyer_d842_16_ with | CategorieEquivalenceLoyerAllocationLogementFoyer.EtudiantLogeEnChambreCROUS _ -> @@ -17045,10 +18149,11 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu true)) (fun (_: unit) -> if - ((param_ -$ montant_forfaitaire_d842_15_) <$ + (o_lt_mon_mon + (o_sub_mon_mon param_ montant_forfaitaire_d842_15_) (money_of_cents_string "0")) then (money_of_cents_string "0") else - (param_ -$ montant_forfaitaire_d842_15_))) + (o_sub_mon_mon param_ montant_forfaitaire_d842_15_))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17239,8 +18344,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (equivalence_loyer_ +$ montant_forfaitaire_charges_) -$ - param_)) + o_sub_mon_mon + (o_add_mon_mon equivalence_loyer_ + montant_forfaitaire_charges_) param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17309,7 +18415,7 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu true)) (fun (_: unit) -> if - (((log_end_call + (o_lt_mon_mon ((log_end_call ["CalculAllocationLogementFoyer"; "dépense_nette_minimale"] ((log_variable_definition ["CalculAllocationLogementFoyer"; @@ -17320,9 +18426,10 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu ((log_variable_definition ["CalculAllocationLogementFoyer"; "dépense_nette_minimale"; "input"] (embed_money) - param_))))))) <$ montant_minimal_depense_nette_d842_17_) + param_))))))) montant_minimal_depense_nette_d842_17_) then - (montant_minimal_depense_nette_d842_17_ -$ ((log_end_call + (o_sub_mon_mon montant_minimal_depense_nette_d842_17_ + ((log_end_call ["CalculAllocationLogementFoyer"; "dépense_nette_minimale"] ((log_variable_definition ["CalculAllocationLogementFoyer"; @@ -17369,8 +18476,11 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - ((equivalence_loyer_ +$ montant_forfaitaire_charges_) -$ - loyer_minimal_) *$ coefficient_prise_en_charge_)) + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon equivalence_loyer_ + montant_forfaitaire_charges_) loyer_minimal_) + coefficient_prise_en_charge_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17434,9 +18544,10 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu (embed_money) aide_finale_))))))) in ( if - ((aide_finale_ -$ abattement_) <$ (money_of_cents_string - "0")) then (money_of_cents_string "0") else - (aide_finale_ -$ abattement_)))))) + (o_lt_mon_mon (o_sub_mon_mon aide_finale_ abattement_) + (money_of_cents_string "0")) then + (money_of_cents_string "0") else + (o_sub_mon_mon aide_finale_ abattement_)))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17491,8 +18602,8 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "traitement_aide_finale_dépense_nette_minimale"; "input"] (embed_money) param_))))))) in - ( if (aide_finale_ >$ redevance_) then redevance_ else - aide_finale_)))) + ( if (o_gt_mon_mon aide_finale_ redevance_) then redevance_ + else aide_finale_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17560,15 +18671,16 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "montant"; "input"] (embed_money) aide_finale_))))))) in (let aide_finale_moins_crds_arrondie_ : money = - (money_round - ((aide_finale_ -$ crds_) -$ (money_of_cents_string - "50"))) + (o_roundMoney + (o_sub_mon_mon (o_sub_mon_mon aide_finale_ crds_) + (money_of_cents_string "50"))) in ( if - ((aide_finale_moins_crds_arrondie_ +$ crds_) >=$ + (o_gte_mon_mon + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) (money_of_cents_string "0")) then - (aide_finale_moins_crds_arrondie_ +$ crds_) else - (money_of_cents_string "0"))))))) + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) + else (money_of_cents_string "0"))))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17623,8 +18735,9 @@ let calcul_allocation_logement_foyer (calcul_allocation_logement_foyer_in: Calcu "traitement_aide_finale_contributions_sociales_arrondi"; "input"] (embed_money) param_))))))) in - ( if (aide_finale_ <$ montant_minimal_aide_d842_15_) then - (money_of_cents_string "0") else aide_finale_)))) + ( if + (o_lt_mon_mon aide_finale_ montant_minimal_aide_d842_15_) + then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17704,7 +18817,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Règlement (CE) n°2866/98 du conseil du 31 décembre 1998 concernant les taux de conversion entre l'euro et les monnaies des États membres adoptant l'euro"]} true)) (fun (_: unit) -> - (decimal_of_string "1.") /& (decimal_of_string "6.55957"))) + o_div_rat_rat (decimal_of_string "1.") + (decimal_of_string "6.55957"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -17987,21 +19101,23 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 37"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - (((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) && - (date_courante_ <@ - (date_of_numbers (2022) (7) (1)))) && + (o_and + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))) copropriete_))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2710") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5422")) +$ - ((money_of_cents_string "1229") *$ - (decimal_of_integer - nombre_personnes_a_charge_))))|]) + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2710") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5422")) + (o_mult_mon_rat (money_of_cents_string "1229") + (o_intToRat nombre_personnes_a_charge_))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/archives.catala_fr"; start_line=564; start_column=43; @@ -18009,16 +19125,18 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 34"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ (date_of_numbers (2022) (7) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then (money_of_cents_string "5422") else - ((money_of_cents_string "5422") +$ - ((money_of_cents_string "1229") *$ - (decimal_of_integer nombre_personnes_a_charge_))))); + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (money_of_cents_string "5422") else + (o_add_mon_mon (money_of_cents_string "5422") + (o_mult_mon_rat (money_of_cents_string "1229") + (o_intToRat nombre_personnes_a_charge_))))); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -18043,19 +19161,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 37"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2022) (7) (1))) && + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))) copropriete_))) (fun (_: unit) -> - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "2805") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "5612")) +$ - ((money_of_cents_string "1272") *$ - (decimal_of_integer - nombre_personnes_a_charge_))))|]) + o_add_mon_mon + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "2805") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "5612")) + (o_mult_mon_rat (money_of_cents_string "1272") + (o_intToRat nombre_personnes_a_charge_))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/arrete_2019-09-27.catala_fr"; start_line=4167; start_column=31; @@ -18063,14 +19182,15 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 34"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2022) (7) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if - (nombre_personnes_a_charge_ = (integer_of_string "0")) - then (money_of_cents_string "5612") else - ((money_of_cents_string "5612") +$ - ((money_of_cents_string "1272") *$ - (decimal_of_integer nombre_personnes_a_charge_)))))|]) + (o_eq nombre_personnes_a_charge_ (integer_of_string + "0")) then (money_of_cents_string "5612") else + (o_add_mon_mon (money_of_cents_string "5612") + (o_mult_mon_rat (money_of_cents_string "1272") + (o_intToRat nombre_personnes_a_charge_)))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=849; start_column=47; end_line=849; end_column=53; @@ -18111,10 +19231,11 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a true)) (fun (_: unit) -> if - ((param_ -$ montant_forfaitaire_d842_6_) <$ + (o_lt_mon_mon + (o_sub_mon_mon param_ montant_forfaitaire_d842_6_) (money_of_cents_string "0")) then (money_of_cents_string "0") else - (param_ -$ montant_forfaitaire_d842_6_))) + (o_sub_mon_mon param_ montant_forfaitaire_d842_6_))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -18157,143 +19278,169 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (1992) (7) (1))) && - (param_ <@ (date_of_numbers (1994) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1992) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (1994) (7) (1))))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "158700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "191300")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "205500") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "211300") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "217100") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "222900") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "228000") else - ((money_of_cents_string - "228000") +$ - ((money_of_cents_string - "19800") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "139300") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "170600")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "184700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "191200") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "197700") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "204200") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "218700") else - ((money_of_cents_string - "218700") +$ - ((money_of_cents_string - "19100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "130600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "158400")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "172600") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "179800") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "187000") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "194200") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "208600") else - ((money_of_cents_string - "208600") +$ - ((money_of_cents_string - "18200") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5")))))))))))) - *$ taux_francs_vers_euros_)); + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "158700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "191300")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "205500") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "211300") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "217100") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "222900") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "228000") else + (o_add_mon_mon + (money_of_cents_string + "228000") + (o_mult_mon_rat + (money_of_cents_string + "19800") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "139300") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "170600")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "184700") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "191200") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "197700") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "204200") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "218700") else + (o_add_mon_mon + (money_of_cents_string + "218700") + (o_mult_mon_rat + (money_of_cents_string + "19100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "130600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "158400")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "172600") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "179800") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "187000") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "194200") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "208600") else + (o_add_mon_mon + (money_of_cents_string + "208600") + (o_mult_mon_rat + (money_of_cents_string + "18200") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5")))))))))))) + taux_francs_vers_euros_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -18310,143 +19457,169 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (1994) (7) (1))) && - (param_ <@ (date_of_numbers (1997) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1994) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (1997) (7) (1))))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "160400") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "193400")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "207800") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "213700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "219600") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "225500") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "230500") else - ((money_of_cents_string - "230500") +$ - ((money_of_cents_string - "20000") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "140800") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "172500")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "186700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "193300") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "199900") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "206500") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "221100") else - ((money_of_cents_string - "221100") +$ - ((money_of_cents_string - "19300") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "132000") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "180100")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "174500") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "181800") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "189100") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "196400") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "210900") else - ((money_of_cents_string - "210900") +$ - ((money_of_cents_string - "18400") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5")))))))))))) - *$ taux_francs_vers_euros_)); + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "160400") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "193400")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "207800") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "213700") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "219600") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "225500") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "230500") else + (o_add_mon_mon + (money_of_cents_string + "230500") + (o_mult_mon_rat + (money_of_cents_string + "20000") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "140800") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "172500")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "186700") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "193300") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "199900") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "206500") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "221100") else + (o_add_mon_mon + (money_of_cents_string + "221100") + (o_mult_mon_rat + (money_of_cents_string + "19300") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "132000") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "180100")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "174500") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "181800") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "189100") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "196400") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "210900") else + (o_add_mon_mon + (money_of_cents_string + "210900") + (o_mult_mon_rat + (money_of_cents_string + "18400") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5")))))))))))) + taux_francs_vers_euros_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -18463,143 +19636,169 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (1997) (7) (1))) && - (param_ <@ (date_of_numbers (1998) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1997) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (1998) (7) (1))))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "163300") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "196900")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "211600") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "217600") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "223600") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "229600") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "234600") else - ((money_of_cents_string - "234600") +$ - ((money_of_cents_string - "20400") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "143300") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "175600")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "190100") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "196600") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "203500") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "210200") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "225100") else - ((money_of_cents_string - "225100") +$ - ((money_of_cents_string - "19600") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "134400") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "163000")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "177700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "185100") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "192500") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "199900") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "214700") else - ((money_of_cents_string - "214700") +$ - ((money_of_cents_string - "18700") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5")))))))))))) - *$ taux_francs_vers_euros_)); + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "163300") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "196900")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "211600") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "217600") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "223600") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "229600") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "234600") else + (o_add_mon_mon + (money_of_cents_string + "234600") + (o_mult_mon_rat + (money_of_cents_string + "20400") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "143300") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "175600")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "190100") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "196600") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "203500") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "210200") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "225100") else + (o_add_mon_mon + (money_of_cents_string + "225100") + (o_mult_mon_rat + (money_of_cents_string + "19600") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "134400") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "163000")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "177700") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "185100") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "192500") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "199900") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "214700") else + (o_add_mon_mon + (money_of_cents_string + "214700") + (o_mult_mon_rat + (money_of_cents_string + "18700") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5")))))))))))) + taux_francs_vers_euros_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -18616,143 +19815,169 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (1998) (7) (1))) && - (param_ <@ (date_of_numbers (1999) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1998) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (1999) (7) (1))))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "167200") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "201600")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "216700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "222800") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "229000") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "235100") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "240200") else - ((money_of_cents_string - "240200") +$ - ((money_of_cents_string - "20900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "146700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "179800")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "194700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "201500") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "208400") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "215200") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "230500") else - ((money_of_cents_string - "230500") +$ - ((money_of_cents_string - "20100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "137600") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "166900")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "182000") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "189500") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "197100") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "204700") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "219900") else - ((money_of_cents_string - "219900") +$ - ((money_of_cents_string - "19100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5")))))))))))) - *$ taux_francs_vers_euros_)); + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "167200") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "201600")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "216700") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "222800") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "229000") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "235100") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "240200") else + (o_add_mon_mon + (money_of_cents_string + "240200") + (o_mult_mon_rat + (money_of_cents_string + "20900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "146700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "179800")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "194700") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "201500") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "208400") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "215200") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "230500") else + (o_add_mon_mon + (money_of_cents_string + "230500") + (o_mult_mon_rat + (money_of_cents_string + "20100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "137600") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "166900")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "182000") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "189500") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "197100") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "204700") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "219900") else + (o_add_mon_mon + (money_of_cents_string + "219900") + (o_mult_mon_rat + (money_of_cents_string + "19100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5")))))))))))) + taux_francs_vers_euros_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -18769,143 +19994,169 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (1999) (7) (1))) && - (param_ <@ (date_of_numbers (2000) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (1999) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2000) (7) (1))))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "167400") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "201800")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "216900") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "223000") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "229200") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "235300") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "240400") else - ((money_of_cents_string - "240400") +$ - ((money_of_cents_string - "20900") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "146800") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "180000")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "194900") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "201700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "208600") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "215400") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "230700") else - ((money_of_cents_string - "230700") +$ - ((money_of_cents_string - "20100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "137700") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "167100")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "182200") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "189700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "197300") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "204900") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "220100") else - ((money_of_cents_string - "220100") +$ - ((money_of_cents_string - "19100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5")))))))))))) - *$ taux_francs_vers_euros_)); + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "167400") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "201800")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "216900") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "223000") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "229200") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "235300") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "240400") else + (o_add_mon_mon + (money_of_cents_string + "240400") + (o_mult_mon_rat + (money_of_cents_string + "20900") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "146800") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "180000")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "194900") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "201700") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "208600") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "215400") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "230700") else + (o_add_mon_mon + (money_of_cents_string + "230700") + (o_mult_mon_rat + (money_of_cents_string + "20100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "137700") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "167100")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "182200") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "189700") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "197300") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "204900") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "220100") else + (o_add_mon_mon + (money_of_cents_string + "220100") + (o_mult_mon_rat + (money_of_cents_string + "19100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5")))))))))))) + taux_francs_vers_euros_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -18922,143 +20173,169 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2000) (7) (1))) && - (param_ <@ (date_of_numbers (2001) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2000) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2001) (7) (1))))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "169100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "203800")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "219100") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "225200") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "231500") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "237700") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "242800") else - ((money_of_cents_string - "242800") +$ - ((money_of_cents_string - "21100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "148300") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "181800")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "196800") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "203700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "210700") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "217600") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "233000") else - ((money_of_cents_string - "233000") +$ - ((money_of_cents_string - "20300") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "139100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "168800")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "184000") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "191600") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "199300") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "206900") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "222300") else - ((money_of_cents_string - "222300") +$ - ((money_of_cents_string - "19300") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5")))))))))))) - *$ taux_francs_vers_euros_)); + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "169100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "203800")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "219100") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "225200") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "231500") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "237700") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "242800") else + (o_add_mon_mon + (money_of_cents_string + "242800") + (o_mult_mon_rat + (money_of_cents_string + "21100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "148300") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "181800")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "196800") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "203700") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "210700") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "217600") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "233000") else + (o_add_mon_mon + (money_of_cents_string + "233000") + (o_mult_mon_rat + (money_of_cents_string + "20300") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "139100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "168800")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "184000") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "191600") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "199300") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "206900") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "222300") else + (o_add_mon_mon + (money_of_cents_string + "222300") + (o_mult_mon_rat + (money_of_cents_string + "19300") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5")))))))))))) + taux_francs_vers_euros_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -19075,143 +20352,169 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2001) (7) (1))) && - (param_ <@ (date_of_numbers (2002) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2001) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2002) (1) (1))))))) (fun (_: unit) -> - (match zone_ - with - | ZoneDHabitation.Zone1 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "171100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "206200")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "221700") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "227900") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "234300") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "240600") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "245700") else - ((money_of_cents_string - "245700") +$ - ((money_of_cents_string - "21400") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone2 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "150100") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "184000")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "199200") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "206100") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "213200") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "220200") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "235800") else - ((money_of_cents_string - "235800") +$ - ((money_of_cents_string - "20500") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5"))))))))))) - | ZoneDHabitation.Zone3 _ -> - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "0")) then - (match situation_familiale_calcul_apl_ - with - | SituationFamilialeCalculAPL.PersonneSeule _ -> - (money_of_cents_string "140800") - | SituationFamilialeCalculAPL.Couple _ -> - (money_of_cents_string "170800")) else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "1")) then - (money_of_cents_string "186200") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "2")) then - (money_of_cents_string "193900") else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "3")) then - (money_of_cents_string "201700") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "4")) then - (money_of_cents_string "209400") - else - ( if - (nombre_personnes_a_charge_ = - (integer_of_string "5")) - then - (money_of_cents_string - "225000") else - ((money_of_cents_string - "225000") +$ - ((money_of_cents_string - "19500") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! - (integer_of_string - "5")))))))))))) - *$ taux_francs_vers_euros_)); + o_mult_mon_rat + (match zone_ + with + | ZoneDHabitation.Zone1 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "171100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "206200")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "221700") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "227900") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "234300") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "240600") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "245700") else + (o_add_mon_mon + (money_of_cents_string + "245700") + (o_mult_mon_rat + (money_of_cents_string + "21400") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone2 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "150100") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "184000")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "199200") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "206100") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "213200") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "220200") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "235800") else + (o_add_mon_mon + (money_of_cents_string + "235800") + (o_mult_mon_rat + (money_of_cents_string + "20500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5"))))))))))) + | ZoneDHabitation.Zone3 _ -> + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "0")) then + (match situation_familiale_calcul_apl_ + with + | SituationFamilialeCalculAPL.PersonneSeule _ -> + (money_of_cents_string "140800") + | SituationFamilialeCalculAPL.Couple _ -> + (money_of_cents_string "170800")) + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "1")) then + (money_of_cents_string "186200") else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "2")) then + (money_of_cents_string "193900") + else + ( if + (o_eq nombre_personnes_a_charge_ + (integer_of_string "3")) then + (money_of_cents_string "201700") + else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "4")) + then + (money_of_cents_string + "209400") else + ( if + (o_eq + nombre_personnes_a_charge_ + (integer_of_string "5")) + then + (money_of_cents_string + "225000") else + (o_add_mon_mon + (money_of_cents_string + "225000") + (o_mult_mon_rat + (money_of_cents_string + "19500") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ + (integer_of_string + "5")))))))))))) + taux_francs_vers_euros_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -19228,16 +20531,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2002) (1) (1))) && - (param_ <@ (date_of_numbers (2002) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2002) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2002) (7) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19246,40 +20553,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31435")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "33798") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "34743") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "35719") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "36679") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "37457") else - ((money_of_cents_string - "37457") +$ - ((money_of_cents_string - "3262") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "37457") + (o_mult_mon_rat + (money_of_cents_string + "3262") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19288,40 +20598,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28051")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "30368") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "31420") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "32502") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "33569") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "35947") else - ((money_of_cents_string - "35947") +$ - ((money_of_cents_string - "3125") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "35947") + (o_mult_mon_rat + (money_of_cents_string + "3125") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19330,35 +20643,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "26038")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "28386") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "29560") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "30749") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "31923") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "34301") else - ((money_of_cents_string - "34301") +$ - ((money_of_cents_string - "2973") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "34301") + (o_mult_mon_rat + (money_of_cents_string + "2973") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -19377,16 +20693,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2002) (7) (1))) && - (param_ <@ (date_of_numbers (2003) (7) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2002) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2003) (7) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19395,40 +20715,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31812")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "34204") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35160") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36148") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "37119") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "37906") else - ((money_of_cents_string - "37906") +$ - ((money_of_cents_string - "3301") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "37906") + (o_mult_mon_rat + (money_of_cents_string + "3301") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19437,40 +20760,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28388")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "30732") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "31797") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "32892") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "33972") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "36378") else - ((money_of_cents_string - "36378") +$ - ((money_of_cents_string - "3163") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "36378") + (o_mult_mon_rat + (money_of_cents_string + "3163") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19479,35 +20805,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "26350")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "28727") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "29915") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "31118") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "32306") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "34713") else - ((money_of_cents_string - "34713") +$ - ((money_of_cents_string - "3009") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "34713") + (o_mult_mon_rat + (money_of_cents_string + "3009") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -19526,16 +20855,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2003) (7) (1))) && - (param_ <@ (date_of_numbers (2005) (9) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2003) (7) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2005) (9) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19544,40 +20877,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32194")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "34614") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35582") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36582") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "37564") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "38361") else - ((money_of_cents_string - "38361") +$ - ((money_of_cents_string - "3341") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "38361") + (o_mult_mon_rat + (money_of_cents_string + "3341") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19586,40 +20922,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28729")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "31101") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "32179") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "33287") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "34380") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "36815") else - ((money_of_cents_string - "36815") +$ - ((money_of_cents_string - "3201") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "36815") + (o_mult_mon_rat + (money_of_cents_string + "3201") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19628,35 +20967,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "26666")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "29072") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "30274") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "31491") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "32694") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "35130") else - ((money_of_cents_string - "35130") +$ - ((money_of_cents_string - "3045") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "35130") + (o_mult_mon_rat + (money_of_cents_string + "3045") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -19675,16 +21017,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2005) (9) (1))) && - (param_ <@ (date_of_numbers (2007) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2005) (9) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2007) (1) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19693,40 +21039,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32773")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "35237") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "36222") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "37240") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38240") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "39051") else - ((money_of_cents_string - "39051") +$ - ((money_of_cents_string - "3401") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "39051") + (o_mult_mon_rat + (money_of_cents_string + "3401") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19735,40 +21084,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29246")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "31661") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "32758") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "33886") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "34999") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "37478") else - ((money_of_cents_string - "37478") +$ - ((money_of_cents_string - "3259") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "37478") + (o_mult_mon_rat + (money_of_cents_string + "3259") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19777,35 +21129,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "27146")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "29595") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "30819") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "32058") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "33282") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "35762") else - ((money_of_cents_string - "35762") +$ - ((money_of_cents_string - "3100") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "35762") + (o_mult_mon_rat + (money_of_cents_string + "3100") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -19824,16 +21179,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2007) (1) (1))) && - (param_ <@ (date_of_numbers (2008) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2007) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2008) (1) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19842,40 +21201,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33691")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "36224") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "37236") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "38283") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "39311") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "40144") else - ((money_of_cents_string - "40144") +$ - ((money_of_cents_string - "3496") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "40144") + (o_mult_mon_rat + (money_of_cents_string + "3496") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19884,40 +21246,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30065")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "32548") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "33675") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "34865") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "35979") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "38527") else - ((money_of_cents_string - "38527") +$ - ((money_of_cents_string - "3350") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "38527") + (o_mult_mon_rat + (money_of_cents_string + "3350") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19926,35 +21291,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "27906")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "30424") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "31682") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "32956") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "34214") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "36733") else - ((money_of_cents_string - "36733") +$ - ((money_of_cents_string - "3187") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "36733") + (o_mult_mon_rat + (money_of_cents_string + "3187") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -19973,16 +21341,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2008) (1) (1))) && - (param_ <@ (date_of_numbers (2009) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2008) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2009) (1) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -19991,40 +21363,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "34621")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "37224") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "38264") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "39340") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "40396") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "41252") else - ((money_of_cents_string - "41252") +$ - ((money_of_cents_string - "3592") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "41252") + (o_mult_mon_rat + (money_of_cents_string + "3592") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20033,40 +21408,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30895")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "33446") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "34604") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "35796") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "36972") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "39590") else - ((money_of_cents_string - "39590") +$ - ((money_of_cents_string - "3442") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "39590") + (o_mult_mon_rat + (money_of_cents_string + "3442") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20075,35 +21453,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "28676")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "31264") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "32556") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "33866") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "35158") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "37778") else - ((money_of_cents_string - "37778") +$ - ((money_of_cents_string - "3275") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "37778") + (o_mult_mon_rat + (money_of_cents_string + "3275") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -20122,16 +21503,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2009) (1) (1))) && - (param_ <@ (date_of_numbers (2010) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2009) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2010) (1) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20140,40 +21525,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35642")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "38322") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "39393") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "40501") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "41588") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "42469") else - ((money_of_cents_string - "42469") +$ - ((money_of_cents_string - "3698") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "42469") + (o_mult_mon_rat + (money_of_cents_string + "3698") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20182,40 +21570,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31806")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "34433") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35625") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36852") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38063") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "40758") else - ((money_of_cents_string - "40758") +$ - ((money_of_cents_string - "3544") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "40758") + (o_mult_mon_rat + (money_of_cents_string + "3544") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20224,35 +21615,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29522")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "32186") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "33516") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "34865") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "36195") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "38892") else - ((money_of_cents_string - "38892") +$ - ((money_of_cents_string - "3372") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "38892") + (o_mult_mon_rat + (money_of_cents_string + "3372") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -20271,16 +21665,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2010) (1) (1))) && - (param_ <@ (date_of_numbers (2011) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2010) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2011) (1) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20289,40 +21687,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "35757")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "38445") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "39519") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "40601") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "41721") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "42605") else - ((money_of_cents_string - "42605") +$ - ((money_of_cents_string - "3710") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "42605") + (o_mult_mon_rat + (money_of_cents_string + "3710") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20331,40 +21732,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31908")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "34643") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35739") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36970") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38185") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "40888") else - ((money_of_cents_string - "40888") +$ - ((money_of_cents_string - "3555") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "40888") + (o_mult_mon_rat + (money_of_cents_string + "3555") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20373,35 +21777,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29616")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "32289") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "33623") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "34977") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "36311") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "39016") else - ((money_of_cents_string - "39016") +$ - ((money_of_cents_string - "3383") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "39016") + (o_mult_mon_rat + (money_of_cents_string + "3383") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -20420,16 +21827,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2011) (1) (1))) && - (param_ <@ (date_of_numbers (2012) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2011) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2012) (1) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20438,40 +21849,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36149")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "38868") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "39954") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "41078") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "42180") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "43074") else - ((money_of_cents_string - "43074") +$ - ((money_of_cents_string - "3751") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "43074") + (o_mult_mon_rat + (money_of_cents_string + "3751") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20480,40 +21894,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32259")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "34923") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "36132") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "37373") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38605") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "41338") else - ((money_of_cents_string - "41338") +$ - ((money_of_cents_string - "3594") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "41338") + (o_mult_mon_rat + (money_of_cents_string + "3594") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20522,35 +21939,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "29942")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "32644") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "33993") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "35362") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "36710") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "39445") else - ((money_of_cents_string - "39445") +$ - ((money_of_cents_string - "3420") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "39445") + (o_mult_mon_rat + (money_of_cents_string + "3420") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -20569,16 +21989,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2012) (1) (1))) && - (param_ <@ (date_of_numbers (2013) (1) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2012) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2013) (1) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20587,40 +22011,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "36510")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "39257") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "40354") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "41489") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "42602") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "43505") else - ((money_of_cents_string - "43505") +$ - ((money_of_cents_string - "3789") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "43505") + (o_mult_mon_rat + (money_of_cents_string + "3789") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20629,40 +22056,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "32582")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "35272") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "36493") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "37751") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38991") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "41751") else - ((money_of_cents_string - "41751") +$ - ((money_of_cents_string - "3630") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "41751") + (o_mult_mon_rat + (money_of_cents_string + "3630") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20671,35 +22101,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30241")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "32970") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "34333") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "35716") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "37077") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "39839") else - ((money_of_cents_string - "39839") +$ - ((money_of_cents_string - "3454") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "39839") + (o_mult_mon_rat + (money_of_cents_string + "3454") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -20718,16 +22151,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2013) (1) (1))) && - (param_ <@ (date_of_numbers (2014) (10) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2013) (1) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2014) (10) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20736,40 +22173,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37295")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "40101") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "41222") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "42381") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "43518") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "44440") else - ((money_of_cents_string - "44440") +$ - ((money_of_cents_string - "3870") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "44440") + (o_mult_mon_rat + (money_of_cents_string + "3870") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20778,40 +22218,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33283")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "36030") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "37278") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "38563") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "39829") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "42649") else - ((money_of_cents_string - "42659") +$ - ((money_of_cents_string - "3708") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "42659") + (o_mult_mon_rat + (money_of_cents_string + "3708") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20820,35 +22263,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "30891")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "33679") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35071") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36484") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "37874") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "40696") else - ((money_of_cents_string - "40696") +$ - ((money_of_cents_string - "3528") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "40696") + (o_mult_mon_rat + (money_of_cents_string + "3528") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -20867,17 +22313,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2014) (10) (1))) - && - (param_ <@ (date_of_numbers (2015) (10) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2014) (10) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2015) (10) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20886,40 +22335,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37508")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "40330") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "41457") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "42623") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "43766") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "44693") else - ((money_of_cents_string - "44693") +$ - ((money_of_cents_string - "3892") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "44693") + (o_mult_mon_rat + (money_of_cents_string + "3892") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20928,40 +22380,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33473")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "36235") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "37490") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "38783") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "40056") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "42892") else - ((money_of_cents_string - "42892") +$ - ((money_of_cents_string - "3729") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "42892") + (o_mult_mon_rat + (money_of_cents_string + "3729") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -20970,35 +22425,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31067")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "33871") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35271") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36692") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38090") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "40928") else - ((money_of_cents_string - "40928") +$ - ((money_of_cents_string - "3548") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "40928") + (o_mult_mon_rat + (money_of_cents_string + "3548") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -21017,17 +22475,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2015) (10) (1))) - && - (param_ <@ (date_of_numbers (2017) (10) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2015) (10) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2017) (10) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21036,40 +22497,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37538")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "40362") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "41490") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "42657") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "43801") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "44729") else - ((money_of_cents_string - "44729") +$ - ((money_of_cents_string - "3895") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "44729") + (o_mult_mon_rat + (money_of_cents_string + "3895") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21078,40 +22542,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33500")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "36264") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "37520") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "38814") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "40088") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "42926") else - ((money_of_cents_string - "42926") +$ - ((money_of_cents_string - "3732") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "42926") + (o_mult_mon_rat + (money_of_cents_string + "3732") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21120,35 +22587,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31092")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "33898") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35299") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36721") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38120") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "40961") else - ((money_of_cents_string - "40961") +$ - ((money_of_cents_string - "3551") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "40961") + (o_mult_mon_rat + (money_of_cents_string + "3551") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -21167,17 +22637,20 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - ((param_ >=@ (date_of_numbers (2017) (10) (1))) - && - (param_ <@ (date_of_numbers (2019) (10) (1))))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_gte_dat_dat param_ + (date_of_numbers (2017) (10) (1))) + (o_lt_dat_dat param_ + (date_of_numbers (2019) (10) (1))))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21186,40 +22659,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37820")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "40665") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "41801") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "42977") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "44130") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "45064") else - ((money_of_cents_string - "45064") +$ - ((money_of_cents_string - "3924") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "45064") + (o_mult_mon_rat + (money_of_cents_string + "3924") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21228,40 +22704,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33751")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "36536") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "37801") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "39105") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "40389") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "43248") else - ((money_of_cents_string - "43248") +$ - ((money_of_cents_string - "3760") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "43248") + (o_mult_mon_rat + (money_of_cents_string + "3760") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21270,35 +22749,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31325")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "34152") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35564") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "36996") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38406") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "41268") else - ((money_of_cents_string - "41268") +$ - ((money_of_cents_string - "3578") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "41268") + (o_mult_mon_rat + (money_of_cents_string + "3578") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))))); (fun (_: unit) -> @@ -21317,15 +22799,17 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - (param_ >=@ (date_of_numbers (2019) (10) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_gte_dat_dat param_ + (date_of_numbers (2019) (10) (1)))))) (fun (_: unit) -> match zone_ with | ZoneDHabitation.Zone1 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21334,40 +22818,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "37933")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "40787") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "41927") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "43106") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "44262") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "45200") else - ((money_of_cents_string - "45200") +$ - ((money_of_cents_string - "3936") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "45200") + (o_mult_mon_rat + (money_of_cents_string + "3936") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone2 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21376,40 +22863,43 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "33853")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "36646") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "37915") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "39222") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "40510") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "43378") else - ((money_of_cents_string - "43378") +$ - ((money_of_cents_string - "3771") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "43378") + (o_mult_mon_rat + (money_of_cents_string + "3771") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5"))))))))))) | ZoneDHabitation.Zone3 _ -> ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "0")) then (match situation_familiale_calcul_apl_ with @@ -21418,35 +22908,38 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | SituationFamilialeCalculAPL.Couple _ -> (money_of_cents_string "31419")) else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "1")) then (money_of_cents_string "34255") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "2")) then (money_of_cents_string "35670") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "3")) then (money_of_cents_string "37107") else ( if - (nombre_personnes_a_charge_ = + (o_eq nombre_personnes_a_charge_ (integer_of_string "4")) then (money_of_cents_string "38521") else ( if - (nombre_personnes_a_charge_ = + (o_eq + nombre_personnes_a_charge_ (integer_of_string "5")) then (money_of_cents_string "41392") else - ((money_of_cents_string - "41392") +$ - ((money_of_cents_string - "3588") *$ - (decimal_of_integer - (nombre_personnes_a_charge_ - -! + (o_add_mon_mon + (money_of_cents_string + "41392") + (o_mult_mon_rat + (money_of_cents_string + "3588") + (o_intToRat + (o_sub_int_int + nombre_personnes_a_charge_ (integer_of_string "5")))))))))))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) @@ -21493,32 +22986,37 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - (((date_signature_pret_ >=@ - (date_of_numbers (1992) (9) (30))) && - (date_signature_pret_ <=@ - (date_of_numbers (1994) (9) (30)))) || - ((date_signature_pret_ >@ - (date_of_numbers (1994) (9) (30))) && - ((match type_travaux_logement_ - with - | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> - false - | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> - false - | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> - false - | TypeTravauxLogementR8425.PasDeTravaux _ -> true) - || - ((match type_travaux_logement_ - with - | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> - true - | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> - false - | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> - false - | TypeTravauxLogementR8425.PasDeTravaux _ -> - false) || + (o_or + (o_and + (o_gte_dat_dat date_signature_pret_ + (date_of_numbers (1992) (9) (30))) + (o_lte_dat_dat date_signature_pret_ + (date_of_numbers (1994) (9) (30)))) + (o_and + (o_gt_dat_dat date_signature_pret_ + (date_of_numbers (1994) (9) (30))) + (o_or + (match type_travaux_logement_ + with + | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> + false + | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> + false + | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> + false + | TypeTravauxLogementR8425.PasDeTravaux _ -> + true) + (o_or + (match type_travaux_logement_ + with + | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> + true + | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> + false + | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> + false + | TypeTravauxLogementR8425.PasDeTravaux _ -> + false) (match type_travaux_logement_ with | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> @@ -21530,7 +23028,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a | TypeTravauxLogementR8425.PasDeTravaux _ -> false))))))) (fun (_: unit) -> - mensualite_principale_ *$ coefficient_d842_12_)); + o_mult_mon_rat mensualite_principale_ + coefficient_d842_12_)); (fun (_: unit) -> handle_default {filename = "examples/aides_logement/prologue.catala_fr"; @@ -21550,8 +23049,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((date_signature_pret_ >@ - (date_of_numbers (1994) (9) (30))) && + (o_and + (o_gt_dat_dat date_signature_pret_ + (date_of_numbers (1994) (9) (30))) (match type_travaux_logement_ with | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> @@ -21595,8 +23095,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (charges_mensuelles_pret_ +$ montant_forfaitaire_charges_) - -$ param_)) + o_sub_mon_mon + (o_add_mon_mon charges_mensuelles_pret_ + montant_forfaitaire_charges_) param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -21656,14 +23157,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 37"; "Articles valables du 1er octobre 2021 au 1er juillet 2022"; "Archives législatives et réglementaires"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (10) (1))) - && - (date_courante_ <@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (10) (1))) + (o_lt_dat_dat date_courante_ (date_of_numbers (2022) (7) (1)))))) (fun (_: unit) -> if copropriete_ then - (((log_end_call + (o_mult_mon_rat ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"] ((log_variable_definition @@ -21678,7 +23179,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "input"] (embed_date) - param_))))))) *$ + param_))))))) (decimal_of_string "0.75")) else ((log_end_call @@ -21704,11 +23205,11 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 37"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ + (o_gte_dat_dat date_courante_ (date_of_numbers (2022) (7) (1))))) (fun (_: unit) -> if copropriete_ then - (((log_end_call + (o_mult_mon_rat ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"] ((log_variable_definition @@ -21723,7 +23224,7 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"; "input"] (embed_date) param_))))))) - *$ (decimal_of_string "0.75")) else + (decimal_of_string "0.75")) else ((log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"] @@ -21748,7 +23249,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a law_headings=["Article 33"; "Chapitre IV : Calcul des allocations de logement en secteur accession"; "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} - (date_courante_ >=@ (date_of_numbers (2020) (1) (1))))) + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))))) (fun (_: unit) -> (log_end_call ["CalculAllocationLogementAccessionPropriété"; "calcul_plafond_mensualité_d842_6_base"] @@ -21821,12 +23323,14 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a true)) (fun (_: unit) -> if - (ressources_menage_arrondies_base_ <=$ + (o_lte_mon_mon ressources_menage_arrondies_base_ seuil_minimal_ressources_menage_) then - ((money_round - ((seuil_minimal_ressources_menage_ +$ - (money_of_cents_string "4999")) *$ - (decimal_of_string "0.01"))) *$ + (o_mult_mon_rat + (o_roundMoney + (o_mult_mon_rat + (o_add_mon_mon seuil_minimal_ressources_menage_ + (money_of_cents_string "4999")) + (decimal_of_string "0.01"))) (decimal_of_string "100.")) else ressources_menage_arrondies_base_)) with @@ -21897,8 +23401,8 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "calcul_plafond_mensualité_d842_6_avec_copropriété"; "input"] (embed_date) date_entree_logement_))))))) in - ( if (plafond_signature_ <$ plafond_entree_) then - plafond_entree_ else plafond_signature_)))))|]) + ( if (o_lt_mon_mon plafond_signature_ plafond_entree_) + then plafond_entree_ else plafond_signature_)))))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; start_line=4557; start_column=14; end_line=4557; end_column=39; @@ -22375,39 +23879,42 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - (((match type_travaux_logement_ - with - | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> - false - | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> - false - | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> - false - | TypeTravauxLogementR8425.PasDeTravaux _ -> true) || - ((match type_travaux_logement_ - with - | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> - true - | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> - false - | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> - false - | TypeTravauxLogementR8425.PasDeTravaux _ -> false) - || - (match type_travaux_logement_ - with - | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> - false - | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> - false - | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> - true - | TypeTravauxLogementR8425.PasDeTravaux _ -> - false))) && - (date_signature_pret_ >=@ + (o_and + (o_or + (match type_travaux_logement_ + with + | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> + false + | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> + false + | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> + false + | TypeTravauxLogementR8425.PasDeTravaux _ -> true) + (o_or + (match type_travaux_logement_ + with + | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> + true + | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> + false + | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> + false + | TypeTravauxLogementR8425.PasDeTravaux _ -> + false) + (match type_travaux_logement_ + with + | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> + false + | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> + false + | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> + true + | TypeTravauxLogementR8425.PasDeTravaux _ -> + false))) + (o_gte_dat_dat date_signature_pret_ (date_of_numbers (1999) (7) (1)))))) (fun (_: unit) -> - ressources_menage_arrondies_seuil_ *$ + o_mult_mon_rat ressources_menage_arrondies_seuil_ coefficient_d842_11_))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_reglementaire.catala_fr"; @@ -22449,8 +23956,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - if (mensualite_principale_ >$ plafond_mensualite_d842_6_) then - plafond_mensualite_d842_6_ else mensualite_principale_)) + if + (o_gt_mon_mon mensualite_principale_ plafond_mensualite_d842_6_) + then plafond_mensualite_d842_6_ else mensualite_principale_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -22556,9 +24064,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a param_))))))) in ( if - (depense_nette_minimale_ <$ + (o_lt_mon_mon depense_nette_minimale_ seuil_minimal_depense_nette_minimale_) then - (seuil_minimal_depense_nette_minimale_ -$ + (o_sub_mon_mon seuil_minimal_depense_nette_minimale_ depense_nette_minimale_) else (money_of_cents_string "0"))))) with @@ -22597,8 +24105,11 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - ((mensualite_eligible_ +$ montant_forfaitaire_charges_) -$ - mensualite_minimale_) *$ coefficient_prise_en_charge_)) + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon mensualite_eligible_ + montant_forfaitaire_charges_) mensualite_minimale_) + coefficient_prise_en_charge_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -22661,9 +24172,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "abattement_dépense_nette_minimale"; "input"] (embed_money) aide_finale_))))))) in - ( if (aide_finale_ <$ abattement_) then + ( if (o_lt_mon_mon aide_finale_ abattement_) then (money_of_cents_string "0") else - (aide_finale_ -$ abattement_)))))) + (o_sub_mon_mon aide_finale_ abattement_)))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -22731,15 +24242,16 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "montant"; "input"] (embed_money) aide_finale_))))))) in (let aide_finale_moins_crds_arrondie_ : money = - (money_round - ((aide_finale_ -$ crds_) -$ (money_of_cents_string - "50"))) + (o_roundMoney + (o_sub_mon_mon (o_sub_mon_mon aide_finale_ crds_) + (money_of_cents_string "50"))) in ( if - ((aide_finale_moins_crds_arrondie_ +$ crds_) >=$ + (o_gte_mon_mon + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) (money_of_cents_string "0")) then - (aide_finale_moins_crds_arrondie_ +$ crds_) else - (money_of_cents_string "0"))))))) + (o_add_mon_mon aide_finale_moins_crds_arrondie_ crds_) + else (money_of_cents_string "0"))))))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -22794,8 +24306,9 @@ let calcul_allocation_logement_accession_propriete (calcul_allocation_logement_a "traitement_aide_finale_contributions_sociales_arrondi"; "input"] (embed_money) param_))))))) in - ( if (aide_finale_ <$ montant_minimal_aide_d842_6_) then - (money_of_cents_string "0") else aide_finale_)))) + ( if + (o_lt_mon_mon aide_finale_ montant_minimal_aide_d842_6_) + then (money_of_cents_string "0") else aide_finale_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -22890,10 +24403,12 @@ let calcul_aide_personnalisee_logement (calcul_aide_personnalisee_logement_in: C "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (money_round - ((ressources_menage_sans_arrondi_ *$ - (decimal_of_string "0.01")) +$ (money_of_cents_string - "49"))) *$ (decimal_of_string "100."))) + o_mult_mon_rat + (o_roundMoney + (o_add_mon_mon + (o_mult_mon_rat ressources_menage_sans_arrondi_ + (decimal_of_string "0.01")) (money_of_cents_string + "49"))) (decimal_of_string "100."))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -23657,20 +25172,22 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - (((Array.fold_left - (fun (acc_: integer) - (personne_a_charge_: PersonneACharge.t) -> - if - (match personne_a_charge_ - with - | PersonneACharge.EnfantACharge _ -> true - | PersonneACharge.AutrePersonneACharge _ -> - false) then - (acc_ +! (integer_of_string "1")) else - acc_) (integer_of_string "0") - (menage_.Menage.personnes_a_charge)) +! - (informations_.InformationsPrimeDeDemenagement.nombre_enfants_a_naitre_apres_troisieme_mois_grossesse)) - >=! (integer_of_string "3")))) (fun (_: unit) -> true))|]) + (o_gte_int_int + (o_add_int_int + (o_fold + (fun (acc_: integer) + (personne_a_charge_: PersonneACharge.t) -> + if + (match personne_a_charge_ + with + | PersonneACharge.EnfantACharge _ -> true + | PersonneACharge.AutrePersonneACharge _ -> + false) then + (o_add_int_int acc_ (integer_of_string "1")) + else acc_) (integer_of_string "0") + (menage_.Menage.personnes_a_charge)) + (informations_.InformationsPrimeDeDemenagement.nombre_enfants_a_naitre_apres_troisieme_mois_grossesse)) + (integer_of_string "3")))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/prologue.catala_fr"; start_line=454; start_column=11; end_line=454; end_column=32; @@ -23863,11 +25380,12 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli (match date_naissance_ou_grossesse_ with | DateDeNaissanceOuMoisDeGrossesse.DateDeNaissance date_naissance_ -> - (date_courante_ <=@ - ((first_day_of_month - (date_naissance_ +@ - (duration_of_numbers (2) (0) (0)))) - +@ (duration_of_numbers (0) (0) (-1)))) + (o_lte_dat_dat date_courante_ + (o_add_dat_dur + (o_firstDayOfMonth + (o_add_dat_dur date_naissance_ + (duration_of_numbers (2) (0) (0)))) + (duration_of_numbers (0) (0) (-1)))) | DateDeNaissanceOuMoisDeGrossesse.AvantPremierJourMoisCivilTroisiemeMoisDeGrossesse _ -> false | DateDeNaissanceOuMoisDeGrossesse.ApresPremierJourMoisCivilTroisiemeMoisDeGrossesse _ -> @@ -23903,36 +25421,44 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Arrêté du 27 septembre 2019 relatif au calcul des aides personnelles au logement et de la prime de déménagement"]} true)) (fun (_: unit) -> - (base_mensuelle_allocations_familiales_dot_montant_ *$ - (decimal_of_string "2.4")) +$ + o_add_mon_mon + (o_mult_mon_rat + base_mensuelle_allocations_familiales_dot_montant_ + (decimal_of_string "2.4")) ( if - ((Array.fold_left - (fun (acc_: integer) - (personne_a_charge_: PersonneACharge.t) -> - if - (match personne_a_charge_ - with - | PersonneACharge.EnfantACharge _ -> true - | PersonneACharge.AutrePersonneACharge _ -> false) - then (acc_ +! (integer_of_string "1")) else - acc_) (integer_of_string "0") - (menage_.Menage.personnes_a_charge)) >! + (o_gt_int_int + (o_fold + (fun (acc_: integer) + (personne_a_charge_: PersonneACharge.t) -> + if + (match personne_a_charge_ + with + | PersonneACharge.EnfantACharge _ -> true + | PersonneACharge.AutrePersonneACharge _ -> + false) then + (o_add_int_int acc_ (integer_of_string "1")) else + acc_) (integer_of_string "0") + (menage_.Menage.personnes_a_charge)) (integer_of_string "3")) then - (base_mensuelle_allocations_familiales_dot_montant_ *$ - ((decimal_of_integer - ((Array.fold_left - (fun (acc_: integer) - (personne_a_charge_: PersonneACharge.t) -> - if - (match personne_a_charge_ - with - | PersonneACharge.EnfantACharge _ -> true - | PersonneACharge.AutrePersonneACharge _ -> - false) then - (acc_ +! (integer_of_string "1")) else - acc_) (integer_of_string "0") - (menage_.Menage.personnes_a_charge)) -! - (integer_of_string "3"))) *& + (o_mult_mon_rat + base_mensuelle_allocations_familiales_dot_montant_ + (o_mult_rat_rat + (o_intToRat + (o_sub_int_int + (o_fold + (fun (acc_: integer) + (personne_a_charge_: PersonneACharge.t) -> + if + (match personne_a_charge_ + with + | PersonneACharge.EnfantACharge _ -> + true + | PersonneACharge.AutrePersonneACharge _ -> + false) then + (o_add_int_int acc_ (integer_of_string + "1")) else acc_) (integer_of_string + "0") (menage_.Menage.personnes_a_charge)) + (integer_of_string "3"))) (decimal_of_string "0.2"))) else (money_of_cents_string "0")))) with @@ -23970,11 +25496,13 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (eligibilite_apl_dot_eligibilite_ && - (condition_rang_enfant_ && - (condition_periode_demenagement_ && - ((eligibilite_apl_dot_date_courante_ -@ - date_emmenagement_) <=^ + (o_and eligibilite_apl_dot_eligibilite_ + (o_and condition_rang_enfant_ + (o_and condition_periode_demenagement_ + (o_lte_dur_dur + (o_sub_dat_dat + eligibilite_apl_dot_date_courante_ + date_emmenagement_) delai_apres_emmenagement_l823_8_2_)))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -24014,9 +25542,9 @@ let eligibilite_prime_de_demenagement (eligibilite_prime_de_demenagement_in: Eli true)) (fun (_: unit) -> if - (depenses_justifiees_reellement_engagees_ <=$ plafond_d823_22_) - then depenses_justifiees_reellement_engagees_ else - plafond_d823_22_)) + (o_lte_mon_mon depenses_justifiees_reellement_engagees_ + plafond_d823_22_) then + depenses_justifiees_reellement_engagees_ else plafond_d823_22_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -24079,20 +25607,25 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((match (param_.Pret.titulaire_pret) - with - | TitulairePret.Demandeur _ -> - false - | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> - true) && - ((match (param_.Pret.type_pret) - with - | TypePret.D331_32 _ -> false - | TypePret.D331_63_64 _ -> - false - | TypePret.D331_59_8 _ -> true - | TypePret.D331_76_1 _ -> false - | TypePret.Autre _ -> false) || + (o_and + (match + (param_.Pret.titulaire_pret) + with + | TitulairePret.Demandeur _ -> + false + | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> + true) + (o_or + (match (param_.Pret.type_pret) + with + | TypePret.D331_32 _ -> false + | TypePret.D331_63_64 _ -> + false + | TypePret.D331_59_8 _ -> + true + | TypePret.D331_76_1 _ -> + false + | TypePret.Autre _ -> false) (match (param_.Pret.type_pret) with | TypePret.D331_32 _ -> false @@ -24115,18 +25648,20 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Livre VIII : Aides personnelles au logement"; "Partie réglementaire"; "Code de la construction et de l'habitation"]} - ((match (param_.Pret.titulaire_pret) - with - | TitulairePret.Demandeur _ -> true - | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> - false) && - ((match (param_.Pret.type_pret) - with - | TypePret.D331_32 _ -> true - | TypePret.D331_63_64 _ -> false - | TypePret.D331_59_8 _ -> false - | TypePret.D331_76_1 _ -> false - | TypePret.Autre _ -> false) || + (o_and + (match (param_.Pret.titulaire_pret) + with + | TitulairePret.Demandeur _ -> true + | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> + false) + (o_or + (match (param_.Pret.type_pret) + with + | TypePret.D331_32 _ -> true + | TypePret.D331_63_64 _ -> false + | TypePret.D331_59_8 _ -> false + | TypePret.D331_76_1 _ -> false + | TypePret.Autre _ -> false) (match (param_.Pret.type_pret) with | TypePret.D331_32 _ -> false @@ -24245,40 +25780,42 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge | ModeOccupation.ResidentLogementFoyer _ -> false | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation propriete_ -> - ((((propriete_.Proprietaire.pret).Pret.date_signature) - >=@ - (date_of_numbers (2018) (1) (1))) - && - ((((propriete_.Proprietaire.pret).Pret.date_signature) - <@ - (date_of_numbers (2020) (1) (1))) - && - ((match - (propriete_.Proprietaire.anciennete_logement) - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) && + (o_and + (o_gte_dat_dat + ((propriete_.Proprietaire.pret).Pret.date_signature) + (date_of_numbers (2018) (1) (1))) + (o_and + (o_lt_dat_dat + ((propriete_.Proprietaire.pret).Pret.date_signature) + (date_of_numbers (2020) (1) (1))) + (o_and + (match + (propriete_.Proprietaire.anciennete_logement) + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) (propriete_.Proprietaire.logement_situe_commune_desequilibre_l831_2)))) | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession propriete_ -> - ((((propriete_.Proprietaire.pret).Pret.date_signature) - >=@ - (date_of_numbers (2018) (1) (1))) - && - ((((propriete_.Proprietaire.pret).Pret.date_signature) - <@ - (date_of_numbers (2020) (1) (1))) - && - ((match - (propriete_.Proprietaire.anciennete_logement) - with - | NeufOuAncien.Neuf _ -> - false - | NeufOuAncien.Ancien _ -> - true) && + (o_and + (o_gte_dat_dat + ((propriete_.Proprietaire.pret).Pret.date_signature) + (date_of_numbers (2018) (1) (1))) + (o_and + (o_lt_dat_dat + ((propriete_.Proprietaire.pret).Pret.date_signature) + (date_of_numbers (2020) (1) (1))) + (o_and + (match + (propriete_.Proprietaire.anciennete_logement) + with + | NeufOuAncien.Neuf _ -> + false + | NeufOuAncien.Ancien _ -> + true) (propriete_.Proprietaire.logement_situe_commune_desequilibre_l831_2))))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -24298,12 +25835,14 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge | ModeOccupation.ResidentLogementFoyer _ -> false | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation propriete_ -> - (((propriete_.Proprietaire.pret).Pret.date_signature) - >=@ (date_of_numbers (2017) (12) (31))) + (o_gte_dat_dat + ((propriete_.Proprietaire.pret).Pret.date_signature) + (date_of_numbers (2017) (12) (31))) | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession propriete_ -> - (((propriete_.Proprietaire.pret).Pret.date_signature) - >=@ (date_of_numbers (2017) (12) (31)))))) + (o_gte_dat_dat + ((propriete_.Proprietaire.pret).Pret.date_signature) + (date_of_numbers (2017) (12) (31)))))) (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/aides_logement/code_construction_legislatif.catala_fr"; @@ -24752,8 +26291,8 @@ let eligibilite_aide_personnalisee_logement (eligibilite_aide_personnalisee_loge "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (condition_logement_bailleur_ && - (condition_logement_pret_ && + (o_and condition_logement_bailleur_ + (o_and condition_logement_pret_ eligibilite_commune_dot_eligibilite_)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -24973,13 +26512,14 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi | ModeOccupation.ResidentLogementFoyer _ -> false | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ -> - ((match - ((proprietaire_.Proprietaire.pret).Pret.titulaire_pret) - with - | TitulairePret.Demandeur _ -> - true - | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> - false) && + (o_and + (match + ((proprietaire_.Proprietaire.pret).Pret.titulaire_pret) + with + | TitulairePret.Demandeur _ -> + true + | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> + false) (match (proprietaire_.Proprietaire.type_travaux_logement_r842_5) with @@ -25017,13 +26557,14 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi | ModeOccupation.ResidentLogementFoyer _ -> false | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ -> - ((match - ((proprietaire_.Proprietaire.pret).Pret.titulaire_pret) - with - | TitulairePret.Demandeur _ -> - true - | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> - false) && + (o_and + (match + ((proprietaire_.Proprietaire.pret).Pret.titulaire_pret) + with + | TitulairePret.Demandeur _ -> + true + | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> + false) (match (proprietaire_.Proprietaire.type_travaux_logement_r842_5) with @@ -25058,24 +26599,26 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi | ModeOccupation.ResidentLogementFoyer _ -> false | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ -> - ((match - ((proprietaire_.Proprietaire.pret).Pret.titulaire_pret) - with - | TitulairePret.Demandeur _ -> - true - | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> - false) && - ((match - (proprietaire_.Proprietaire.type_travaux_logement_r842_5) - with - | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> - false - | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> - false - | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> - false - | TypeTravauxLogementR8425.PasDeTravaux _ -> - true) || + (o_and + (match + ((proprietaire_.Proprietaire.pret).Pret.titulaire_pret) + with + | TitulairePret.Demandeur _ -> + true + | TitulairePret.VendeurQuandDemandeurAContratLocationAccession _ -> + false) + (o_or + (match + (proprietaire_.Proprietaire.type_travaux_logement_r842_5) + with + | TypeTravauxLogementR8425.ObjectifDecenceLogement _ -> + false + | TypeTravauxLogementR8425.PrevuDansListeR321_15 _ -> + false + | TypeTravauxLogementR8425.AgrandirOuRendreHabitableD331_63 _ -> + false + | TypeTravauxLogementR8425.PasDeTravaux _ -> + true) (match (proprietaire_.Proprietaire.type_travaux_logement_r842_5) with @@ -25368,8 +26911,8 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi true)) (fun (_: unit) -> if - ((not eligibilite_commune_dot_eligibilite_) || - (not condition_accession_propriete_)) then + (o_or (o_not eligibilite_commune_dot_eligibilite_) + (o_not condition_accession_propriete_)) then (TypeEligibiliteAllocationLogement.PasEligible ()) else (TypeEligibiliteAllocationLogement.AllocationLogementSociale ()))) with @@ -25447,11 +26990,12 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (menage_.Menage.situation_familiale) with | SituationFamiliale.Celibataire _ -> - (((array_length - (menage_.Menage.personnes_a_charge)) - = - (integer_of_string - "0")) && + (o_and + (o_eq + (o_length + (menage_.Menage.personnes_a_charge)) + (integer_of_string + "0")) (menage_.Menage.enfant_a_naitre_apres_quatrieme_mois_grossesse)) | SituationFamiliale.Maries _ -> false @@ -25509,7 +27053,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - ((Array.fold_left + (o_gte_int_int + ( + o_fold (fun (acc_: integer) @@ -25524,11 +27070,12 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi false | PersonneACharge.AutrePersonneACharge parent_ -> - ((parent_.AutrePersonneACharge.ascendant_descendant_collateral_deuxieme_troisieme_degre) - && + (o_and + (parent_.AutrePersonneACharge.ascendant_descendant_collateral_deuxieme_troisieme_degre) (parent_.AutrePersonneACharge.incapacite_80_pourcent_ou_restriction_emploi))) then - (acc_ +! + (o_add_int_int + acc_ (integer_of_string "1")) else @@ -25536,7 +27083,6 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi (integer_of_string "0") (menage_.Menage.personnes_a_charge)) - >=! (integer_of_string "1")))) (fun @@ -25555,14 +27101,15 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - ((Array.fold_left - (fun - (acc_: - integer) - (personne_a_charge_: - PersonneACharge.t) -> - if - ((log_end_call + (o_gte_int_int + (o_fold + (fun + (acc_: + integer) + (personne_a_charge_: + PersonneACharge.t) -> + if + ((log_end_call ["ÉligibilitéAidesPersonnelleLogement"; "condition_2_r823_4"] ((log_variable_definition @@ -25580,16 +27127,16 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "input"] (embed_personne_a_charge) personne_a_charge_))))))) - then - (acc_ +! + then + (o_add_int_int + acc_ (integer_of_string "1")) - else - acc_) - (integer_of_string - "0") - (menage_.Menage.personnes_a_charge)) - >=! + else + acc_) + (integer_of_string + "0") + (menage_.Menage.personnes_a_charge)) (integer_of_string "1")))) (fun (_: unit) -> true))|]) @@ -25606,68 +27153,71 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (((Array.fold_left - (fun (acc_: integer) - (personne_a_charge_: - PersonneACharge.t) -> - if - (match personne_a_charge_ - with - | PersonneACharge.EnfantACharge enfant_ -> - (not ((log_end_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; - "output"] - (embed_bool) - ((log_begin_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - prestations_familiales_dot_droit_ouvert_) - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; - "input"] - (embed_enfant_prestations_familiales) - ({EnfantPrestationsFamiliales.identifiant = - (enfant_.EnfantACharge.identifiant); - EnfantPrestationsFamiliales.obligation_scolaire = - (enfant_.EnfantACharge.obligation_scolaire); - EnfantPrestationsFamiliales.remuneration_mensuelle = - (enfant_.EnfantACharge.remuneration_mensuelle); - EnfantPrestationsFamiliales.date_de_naissance = - (enfant_.EnfantACharge.date_de_naissance); - EnfantPrestationsFamiliales.prise_en_charge = - (match - (enfant_.EnfantACharge.situation_garde_alternee) - with - | SituationGardeAlternee.PasDeGardeAlternee _ -> - (PriseEnChargeEnfant.EffectiveEtPermanente + (o_and + (o_eq + (o_fold + (fun (acc_: integer) + (personne_a_charge_: + PersonneACharge.t) -> + if + (match personne_a_charge_ + with + | PersonneACharge.EnfantACharge enfant_ -> + (o_not ((log_end_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "output"] + (embed_bool) + ((log_begin_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + prestations_familiales_dot_droit_ouvert_) + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; + "input"] + (embed_enfant_prestations_familiales) + ({EnfantPrestationsFamiliales.identifiant = + (enfant_.EnfantACharge.identifiant); + EnfantPrestationsFamiliales.obligation_scolaire = + (enfant_.EnfantACharge.obligation_scolaire); + EnfantPrestationsFamiliales.remuneration_mensuelle = + (enfant_.EnfantACharge.remuneration_mensuelle); + EnfantPrestationsFamiliales.date_de_naissance = + (enfant_.EnfantACharge.date_de_naissance); + EnfantPrestationsFamiliales.prise_en_charge = + (match + (enfant_.EnfantACharge.situation_garde_alternee) + with + | SituationGardeAlternee.PasDeGardeAlternee _ -> + (PriseEnChargeEnfant.EffectiveEtPermanente ()) - | SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> - (PriseEnChargeEnfant.GardeAlterneePartageAllocations + | SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> + (PriseEnChargeEnfant.GardeAlterneePartageAllocations ())); - EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = - (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); - EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = - (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))) - | PersonneACharge.AutrePersonneACharge _ -> - false) then - (acc_ +! (integer_of_string - "1")) else acc_) - (integer_of_string "0") - (menage_.Menage.personnes_a_charge)) - = (integer_of_string "0")) && + EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = + (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); + EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = + (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)}))))))))) + | PersonneACharge.AutrePersonneACharge _ -> + false) then + (o_add_int_int acc_ + (integer_of_string "1")) + else acc_) + (integer_of_string "0") + (menage_.Menage.personnes_a_charge)) + (integer_of_string "0")) (match (menage_.Menage.situation_familiale) with | SituationFamiliale.Celibataire _ -> false | SituationFamiliale.Maries date_mariage_ -> - (date_courante_ <=@ - (date_mariage_ +@ + (o_lte_dat_dat date_courante_ + (o_add_dat_dur date_mariage_ duree_l841_1_3_)) | SituationFamiliale.Pacses _ -> false @@ -25687,54 +27237,55 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - ((Array.fold_left - (fun (acc_: integer) - (personne_a_charge_: PersonneACharge.t) -> - if - (match personne_a_charge_ - with - | PersonneACharge.EnfantACharge enfant_ -> - ((log_end_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; "output"] - (embed_bool) ((log_begin_call - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"] - prestations_familiales_dot_droit_ouvert_) - ((log_variable_definition - ["ÉligibilitéPrestationsFamiliales"; - "droit_ouvert"; "input"] - (embed_enfant_prestations_familiales) - ({EnfantPrestationsFamiliales.identifiant = - (enfant_.EnfantACharge.identifiant); - EnfantPrestationsFamiliales.obligation_scolaire = - (enfant_.EnfantACharge.obligation_scolaire); - EnfantPrestationsFamiliales.remuneration_mensuelle = - (enfant_.EnfantACharge.remuneration_mensuelle); - EnfantPrestationsFamiliales.date_de_naissance = - (enfant_.EnfantACharge.date_de_naissance); - EnfantPrestationsFamiliales.prise_en_charge = - (match - (enfant_.EnfantACharge.situation_garde_alternee) - with - | SituationGardeAlternee.PasDeGardeAlternee _ -> - (PriseEnChargeEnfant.EffectiveEtPermanente - ()) - | SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> - (PriseEnChargeEnfant.GardeAlterneePartageAllocations - ())); - EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = - (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); - EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = - (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)})))))))) - | PersonneACharge.AutrePersonneACharge _ -> - false) then - (acc_ +! (integer_of_string "1")) else - acc_) (integer_of_string "0") - (menage_.Menage.personnes_a_charge)) = + (o_eq + (o_fold + (fun (acc_: integer) + (personne_a_charge_: PersonneACharge.t) -> + if + (match personne_a_charge_ + with + | PersonneACharge.EnfantACharge enfant_ -> + ((log_end_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; "output"] + (embed_bool) ((log_begin_call + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"] + prestations_familiales_dot_droit_ouvert_) + ((log_variable_definition + ["ÉligibilitéPrestationsFamiliales"; + "droit_ouvert"; "input"] + (embed_enfant_prestations_familiales) + ({EnfantPrestationsFamiliales.identifiant = + (enfant_.EnfantACharge.identifiant); + EnfantPrestationsFamiliales.obligation_scolaire = + (enfant_.EnfantACharge.obligation_scolaire); + EnfantPrestationsFamiliales.remuneration_mensuelle = + (enfant_.EnfantACharge.remuneration_mensuelle); + EnfantPrestationsFamiliales.date_de_naissance = + (enfant_.EnfantACharge.date_de_naissance); + EnfantPrestationsFamiliales.prise_en_charge = + (match + (enfant_.EnfantACharge.situation_garde_alternee) + with + | SituationGardeAlternee.PasDeGardeAlternee _ -> + (PriseEnChargeEnfant.EffectiveEtPermanente + ()) + | SituationGardeAlternee.GardeAlterneeCoefficientPriseEnCharge _ -> + (PriseEnChargeEnfant.GardeAlterneePartageAllocations + ())); + EnfantPrestationsFamiliales.a_deja_ouvert_droit_aux_allocations_familiales = + (enfant_.EnfantACharge.a_deja_ouvert_droit_aux_allocations_familiales); + EnfantPrestationsFamiliales.beneficie_titre_personnel_aide_personnelle_logement = + (enfant_.EnfantACharge.beneficie_titre_personnel_aide_personnelle_logement)})))))))) + | PersonneACharge.AutrePersonneACharge _ -> + false) then + (o_add_int_int acc_ (integer_of_string + "1")) else acc_) (integer_of_string + "0") (menage_.Menage.personnes_a_charge)) (integer_of_string "1")))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -25747,19 +27298,20 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi "Livre VIII : Aides personnelles au logement"; "Partie législative"; "Code de la construction et de l'habitation"]} - (Array.fold_left + (o_fold (fun (acc_: bool) (prestation_: PrestationRecue.t) -> - acc_ || - ((prestation_ = - (PrestationRecue.AllocationsFamiliales ())) - || - ((prestation_ = - (PrestationRecue.ComplementFamilial ())) - || - ((prestation_ = - (PrestationRecue.AllocationSoutienFamilial - ())) || - (prestation_ = + o_or acc_ + (o_or + (o_eq prestation_ + (PrestationRecue.AllocationsFamiliales ())) + (o_or + (o_eq prestation_ + (PrestationRecue.ComplementFamilial ())) + (o_or + (o_eq prestation_ + (PrestationRecue.AllocationSoutienFamilial + ())) + (o_eq prestation_ (PrestationRecue.AllocationSoutienEnfantHandicape ())))))) false (menage_.Menage.prestations_recues)))) @@ -25845,8 +27397,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi | ModeOccupation.ResidentLogementFoyer _ -> false | ModeOccupation.AccessionProprieteLocalUsageExclusifHabitation proprietaire_ -> - (((proprietaire_.Proprietaire.pret).Pret.date_signature) - >@ (date_of_numbers (2017) (12) (31))) + (o_gt_dat_dat + ((proprietaire_.Proprietaire.pret).Pret.date_signature) + (date_of_numbers (2017) (12) (31))) | ModeOccupation.SousLocataire _ -> false | ModeOccupation.LocationAccession _ -> false))) (fun (_: unit) -> @@ -25864,8 +27417,9 @@ let eligibilite_allocation_logement (eligibilite_allocation_logement_in: Eligibi true)) (fun (_: unit) -> if - ((eligibilite_dispositions_communes_ = - (TypeEligibiliteAllocationLogement.PasEligible ())) || + (o_or + (o_eq eligibilite_dispositions_communes_ + (TypeEligibiliteAllocationLogement.PasEligible ())) beneficie_aide_personnalisee_logement_) then (TypeEligibiliteAllocationLogement.PasEligible ()) else ( if eligibilite_allocation_logement_familiale_ then @@ -25957,10 +27511,12 @@ let calcul_allocation_logement (calcul_allocation_logement_in: CalculAllocationL "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - (money_round - ((ressources_menage_sans_arrondi_ *$ - (decimal_of_string "0.01")) +$ (money_of_cents_string - "49"))) *$ (decimal_of_string "100."))) + o_mult_mon_rat + (o_roundMoney + (o_add_mon_mon + (o_mult_mon_rat ressources_menage_sans_arrondi_ + (decimal_of_string "0.01")) (money_of_cents_string + "49"))) (decimal_of_string "100."))) with EmptyError -> (raise (NoValueProvided {filename = "examples/aides_logement/prologue.catala_fr"; @@ -27680,7 +29236,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - eligibilite_aide_personnalisee_logement_dot_eligibilite_ || + o_or eligibilite_aide_personnalisee_logement_dot_eligibilite_ (match eligibilite_allocation_logement_dot_eligibilite_l841_2_ with | TypeEligibiliteAllocationLogement.PasEligible _ -> false @@ -27741,11 +29297,11 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid ["CalculAllocationLogement"; "traitement_aide_finale"; "input"] (embed_money) param_))))))) in - ( if (not eligibilite_) then param_ else + ( if (o_not eligibilite_) then param_ else ( if - (eligibilite_aide_personnalisee_logement_dot_eligibilite_ - && - (not + (o_and + eligibilite_aide_personnalisee_logement_dot_eligibilite_ + (o_not (match eligibilite_allocation_logement_dot_eligibilite_l841_2_ with @@ -27755,8 +29311,8 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid false | TypeEligibiliteAllocationLogement.AllocationLogementSociale _ -> false))) then - ( if (aide_finale_apl_ >$ aide_finale_al_) then - aide_finale_apl_ else aide_finale_al_) else + ( if (o_gt_mon_mon aide_finale_apl_ aide_finale_al_) + then aide_finale_apl_ else aide_finale_al_) else ( if eligibilite_aide_personnalisee_logement_dot_eligibilite_ then aide_finale_apl_ else aide_finale_al_))))))) @@ -27790,10 +29346,11 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid "Code de la construction et de l'habitation"]} true)) (fun (_: unit) -> - if (not eligibilite_) then (money_of_cents_string "0") else + if (o_not eligibilite_) then (money_of_cents_string "0") else ( if - (eligibilite_aide_personnalisee_logement_dot_eligibilite_ && - (not + (o_and + eligibilite_aide_personnalisee_logement_dot_eligibilite_ + (o_not (match eligibilite_allocation_logement_dot_eligibilite_l841_2_ with @@ -27804,7 +29361,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid | TypeEligibiliteAllocationLogement.AllocationLogementSociale _ -> false))) then ( if - (((log_end_call + (o_gt_mon_mon ((log_end_call ["CalculAidePersonnaliséeLogement"; "traitement_aide_finale"] ((log_variable_definition ["CalculAidePersonnaliséeLogement"; @@ -27817,7 +29374,7 @@ let calculette_aides_au_logement (calculette_aides_au_logement_in: CalculetteAid ["CalculAidePersonnaliséeLogement"; "traitement_aide_finale"; "input"] (embed_money) calcul_aide_personnalisee_logement_dot_aide_finale_formule_))))))) - >$ ((log_end_call + ((log_end_call ["CalculAllocationLogement"; "traitement_aide_finale"] ((log_variable_definition ["CalculAllocationLogement"; "traitement_aide_finale"; @@ -27872,7 +29429,7 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga {Menage.prestations_recues = (menage_.Menage.prestations_recues); Menage.logement = (menage_.Menage.logement); Menage.personnes_a_charge = - (array_filter + (o_filter (fun (personne_a_charge_: PersonneACharge.t) -> match personne_a_charge_ with @@ -28173,22 +29730,25 @@ let calculette_aides_au_logement_garde_alternee (calculette_aides_au_logement_ga calculette_dot_traitement_aide_finale_) ((log_variable_definition ["CalculetteAidesAuLogement"; "traitement_aide_finale"; "input"] (embed_money) - (calculette_sans_garde_alternee_dot_aide_finale_formule_ +$ + (o_add_mon_mon + calculette_sans_garde_alternee_dot_aide_finale_formule_ ( if - ((array_length - coefficents_enfants_garde_alternee_pris_en_compte_) = + (o_eq + (o_length + coefficents_enfants_garde_alternee_pris_en_compte_) (integer_of_string "0")) then (money_of_cents_string "0") else - ((calculette_dot_aide_finale_formule_ -$ - calculette_sans_garde_alternee_dot_aide_finale_formule_) - *$ - ((Array.fold_left - (fun (acc_: decimal) (coeff_: decimal) -> - acc_ +& coeff_) (decimal_of_string "0.") - coefficents_enfants_garde_alternee_pris_en_compte_) - /& - (decimal_of_integer - (array_length + (o_mult_mon_rat + (o_sub_mon_mon calculette_dot_aide_finale_formule_ + calculette_sans_garde_alternee_dot_aide_finale_formule_) + (o_div_rat_rat + (o_fold + (fun (acc_: decimal) (coeff_: decimal) -> + o_add_rat_rat acc_ coeff_) + (decimal_of_string "0.") + coefficents_enfants_garde_alternee_pris_en_compte_) + (o_intToRat + (o_length coefficents_enfants_garde_alternee_pris_en_compte_)))))))))))))) with EmptyError -> (raise (NoValueProvided diff --git a/french_law/ocaml/law_source/allocations_familiales.ml b/french_law/ocaml/law_source/allocations_familiales.ml index 7a43146a..667ca267 100644 --- a/french_law/ocaml/law_source/allocations_familiales.ml +++ b/french_law/ocaml/law_source/allocations_familiales.ml @@ -403,12 +403,12 @@ let enfant_le_plus_age (enfant_le_plus_age_in: EnfantLePlusAgeIn.t) : EnfantLePl start_line=12; start_column=14; end_line=12; end_column=25; law_headings=["Règles diverses"; "Épilogue"]} true)) (fun (_: unit) -> - Array.fold_left + o_fold (fun (acc_: Enfant.t) (item_: Enfant.t) -> if - ((let potentiel_plus_age_ : Enfant.t = acc_ + (o_lt_dat_dat (let potentiel_plus_age_ : Enfant.t = acc_ in - (potentiel_plus_age_.Enfant.date_de_naissance)) <@ + (potentiel_plus_age_.Enfant.date_de_naissance)) (let potentiel_plus_age_ : Enfant.t = item_ in (potentiel_plus_age_.Enfant.date_de_naissance))) then @@ -459,23 +459,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2019) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2019) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1003")); @@ -494,10 +503,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2018-1173 du 19 décembre 2018 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2019) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2019) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2019) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "757")); (fun (_: unit) -> handle_default @@ -514,23 +526,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2020) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2020) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2020) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1015")); @@ -549,10 +570,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2019-1387 du 18 décembre 2019 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2020) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2020) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2020) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "766")); (fun (_: unit) -> handle_default @@ -569,23 +593,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2021) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2021) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1025")); @@ -604,10 +637,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2020-1598 du 16 décembre 2020 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2021) (1) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2021) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2021) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "774")); (fun (_: unit) -> handle_default @@ -624,23 +660,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && - ((date_courante_ <=@ (date_of_numbers (2022) (4) (30))) - && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (4) (30))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1057")); @@ -659,9 +704,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 1"; "Décret n° 2021-1741 du 22 décembre 2021 portant relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (1) (1))) && - ((date_courante_ <=@ (date_of_numbers (2022) (4) (30))) - && (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (4) (30))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "798")); (fun (_: unit) -> handle_default @@ -678,23 +727,32 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 2"; "Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (5) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2022) (12) (31))) && - ((residence_ = (Collectivite.Metropole ())) || - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = - (Collectivite.Martinique ())) || - ((residence_ = - (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) - || - ((residence_ = - (Collectivite.SaintMartin ())) - || - (residence_ = + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (5) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (12) (31))) + (o_or (o_eq residence_ (Collectivite.Metropole ())) + (o_or + (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or + (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ + (Collectivite.Martinique ())) + (o_or + (o_eq residence_ + (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy + ())) + (o_or + (o_eq residence_ + (Collectivite.SaintMartin + ())) + (o_eq residence_ (Collectivite.SaintPierreEtMiquelon ()))))))))))))) (fun (_: unit) -> money_of_cents_string "1085")); @@ -713,10 +771,13 @@ let smic (smic_in: SmicIn.t) : Smic.t = law_headings=["Article 2"; "Arrêté du 19 avril 2022 relatif au relèvement du salaire minimum de croissance"; "Montant du salaire minimum de croissance"]} - ((date_courante_ >=@ (date_of_numbers (2022) (5) (1))) && - ((date_courante_ <=@ - (date_of_numbers (2022) (12) (31))) && - (residence_ = (Collectivite.Mayotte ())))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (5) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2022) (12) (31))) + (o_eq residence_ (Collectivite.Mayotte ())))))) (fun (_: unit) -> money_of_cents_string "819"))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -747,8 +808,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=29; end_column=34; law_headings=["Instruction ministérielle N°DSS/SD2B/2019/65 du 25 mars 2019 relative à la revalorisation au 1er avril 2019 des prestations familiales servies en métropole"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2019) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2020) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2020) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "41316")); (fun (_: unit) -> handle_default @@ -762,8 +826,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=49; end_column=34; law_headings=["Instruction interministérielle no DSS/SD2B/2020/33 du 18 février 2020 relative à la revalorisation au 1er avril 2020 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2020) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2021) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2021) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "41440")); (fun (_: unit) -> handle_default @@ -777,8 +844,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=65; end_column=34; law_headings=["Instruction interministérielle n°DSS/2B/2021/65 du 19 mars 2021 relative à la revalorisation au 1er avril 2021 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2021) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2022) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2022) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "41481")); (fun (_: unit) -> handle_default @@ -792,8 +862,11 @@ let base_mensuelle_allocations_familiales (base_mensuelle_allocations_familiales end_line=83; end_column=34; law_headings=["Instruction interministérielle n°DSS/2B/2022/82 du 28 mars 2022 relative à la revalorisation au 1er avril 2022 des prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et dans le département de Mayotte"; "Montant de la base mensuelle des allocations familiales"]} - ((date_courante_ >=@ (date_of_numbers (2022) (4) (1))) && - (date_courante_ <@ (date_of_numbers (2023) (4) (1)))))) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2022) (4) (1))) + (o_lt_dat_dat date_courante_ + (date_of_numbers (2023) (4) (1)))))) (fun (_: unit) -> money_of_cents_string "42228"))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -903,13 +976,16 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie législative"; "Code de la sécurité sociale"]} - ((residence_ = (Collectivite.Guadeloupe ())) || - ((residence_ = (Collectivite.Guyane ())) || - ((residence_ = (Collectivite.Martinique ())) || - ((residence_ = (Collectivite.LaReunion ())) || - ((residence_ = - (Collectivite.SaintBarthelemy ())) || - (residence_ = + (o_or (o_eq residence_ (Collectivite.Guadeloupe ())) + (o_or (o_eq residence_ (Collectivite.Guyane ())) + (o_or + (o_eq residence_ (Collectivite.Martinique ())) + (o_or + (o_eq residence_ (Collectivite.LaReunion ())) + (o_or + (o_eq residence_ + (Collectivite.SaintBarthelemy ())) + (o_eq residence_ (Collectivite.SaintMartin ()))))))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -952,7 +1028,9 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Code de la sécurité sociale"]} regime_outre_mer_l751_1_)) (fun (_: unit) -> - (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ + o_mult_mon_rat + (o_mult_mon_rat smic_dot_brut_horaire_ + (decimal_of_string "0.55")) (decimal_of_string "169.")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_R.catala_fr"; @@ -964,8 +1042,9 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - (smic_dot_brut_horaire_ *$ (decimal_of_string "0.55")) *$ - (decimal_of_string "169."))) + o_mult_mon_rat + (o_mult_mon_rat smic_dot_brut_horaire_ + (decimal_of_string "0.55")) (decimal_of_string "169."))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1000,28 +1079,34 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - (((match (param_.Enfant.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> true - | SituationObligationScolaire.Pendant _ -> false - | SituationObligationScolaire.Apres _ -> false) - || - ((match (param_.Enfant.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> false - | SituationObligationScolaire.Pendant _ -> - true - | SituationObligationScolaire.Apres _ -> false) - || - (match (param_.Enfant.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> - false - | SituationObligationScolaire.Pendant _ -> - false - | SituationObligationScolaire.Apres _ -> - true))) && - ((param_.Enfant.remuneration_mensuelle) <=$ + (o_and + (o_or + (match (param_.Enfant.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> true + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + false) + (o_or + (match (param_.Enfant.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + false + | SituationObligationScolaire.Pendant _ -> + true + | SituationObligationScolaire.Apres _ -> + false) + (match (param_.Enfant.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + false + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + true))) + (o_lte_mon_mon + (param_.Enfant.remuneration_mensuelle) plafond_l512_3_2_)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1119,20 +1204,24 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - ((match - (param_.Enfant.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> - false - | SituationObligationScolaire.Pendant _ -> - false - | SituationObligationScolaire.Apres _ -> - true) && - (((param_.Enfant.remuneration_mensuelle) - <=$ plafond_l512_3_2_) - && - (((param_.Enfant.date_de_naissance) - +@ age_l512_3_2_) >@ + (o_and + (match + (param_.Enfant.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + false + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + true) + (o_and + (o_lte_mon_mon + (param_.Enfant.remuneration_mensuelle) + plafond_l512_3_2_) + (o_gt_dat_dat + (o_add_dat_dur + (param_.Enfant.date_de_naissance) + age_l512_3_2_) date_courante_))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken @@ -1145,15 +1234,16 @@ let prestations_familiales (prestations_familiales_in: PrestationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - ((match - (param_.Enfant.obligation_scolaire) - with - | SituationObligationScolaire.Avant _ -> - true - | SituationObligationScolaire.Pendant _ -> - false - | SituationObligationScolaire.Apres _ -> - false) || + (o_or + (match + (param_.Enfant.obligation_scolaire) + with + | SituationObligationScolaire.Avant _ -> + true + | SituationObligationScolaire.Pendant _ -> + false + | SituationObligationScolaire.Apres _ -> + false) (match (param_.Enfant.obligation_scolaire) with @@ -1779,8 +1869,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} - (((param_.Enfant.date_de_naissance) +@ - (duration_of_numbers (11) (0) (0))) <=@ + (o_lte_dat_dat + (o_add_dat_dur (param_.Enfant.date_de_naissance) + (duration_of_numbers (11) (0) (0))) (date_of_numbers (2008) (4) (30))))) (fun (_: unit) -> version_avril_2008_dot_age_minimum_alinea_1_l521_3_))|]) @@ -1827,7 +1918,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie législative"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - array_filter + o_filter (fun (enfant_: Enfant.t) -> (log_end_call ["PrestationsFamiliales"; "droit_ouvert"] ((log_variable_definition @@ -1860,7 +1951,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=33; start_column=14; end_line=33; end_column=36; law_headings=["Règles diverses"; "Épilogue"]} true)) - (fun (_: unit) -> enfant_le_plus_age_dot_le_plus_age_ = param_)) + (fun (_: unit) -> + o_eq enfant_le_plus_age_dot_le_plus_age_ param_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -1902,15 +1994,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t end_line=30; end_column=69; law_headings=["Circulaire interministérielle N° DSS/SD2B/2017/352 du 22 décembre 2017 relative à la revalorisation au 1er janvier 2018 des plafonds de ressources d’attribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2018) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2018) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2018) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "7877000") +$ - ((money_of_cents_string "562800") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "7877000") + (o_mult_mon_rat (money_of_cents_string + "562800") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); (fun (_: unit) -> handle_default @@ -1926,15 +2020,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t end_line=63; end_column=69; law_headings=["Instruction interministérielle n° DSS/SD2B/2018/279 du 17 décembre 2018 relative à la revalorisation au 1er janvier 2019 des plafonds de ressources d’attribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2019) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2019) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "7955800") +$ - ((money_of_cents_string "568400") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "7955800") + (o_mult_mon_rat (money_of_cents_string + "568400") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); (fun (_: unit) -> handle_default @@ -1950,15 +2046,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t end_line=96; end_column=69; law_headings=["Instruction interministerielle no DSS/SD2B/2019/261 du 18 décembre 2019 relative à la revalorisation au 1er janvier 2020 des plafonds de ressources d’attribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2020) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "8083100") +$ - ((money_of_cents_string "577500") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "8083100") + (o_mult_mon_rat (money_of_cents_string + "577500") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); (fun (_: unit) -> handle_default @@ -1975,15 +2073,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Article 1"; "Arrêté du 14 décembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du barème applicable au recouvrement des indus et à la saisie des prestations"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2021) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "8155800") +$ - ((money_of_cents_string "582700") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "8155800") + (o_mult_mon_rat (money_of_cents_string + "582700") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_)))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken @@ -1996,10 +2096,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - (money_of_cents_string "7830000") +$ - ((money_of_cents_string "559500") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "7830000") + (o_mult_mon_rat (money_of_cents_string "559500") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))) with EmptyError -> (raise (NoValueProvided @@ -2036,15 +2136,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t end_line=23; end_column=69; law_headings=["Circulaire interministérielle N° DSS/SD2B/2017/352 du 22 décembre 2017 relative à la revalorisation au 1er janvier 2018 des plafonds de ressources d’attribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2018) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2018) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2018) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "5628600") +$ - ((money_of_cents_string "562800") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "5628600") + (o_mult_mon_rat (money_of_cents_string + "562800") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); (fun (_: unit) -> handle_default @@ -2060,15 +2162,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t end_line=56; end_column=69; law_headings=["Instruction interministérielle n° DSS/SD2B/2018/279 du 17 décembre 2018 relative à la revalorisation au 1er janvier 2019 des plafonds de ressources d’attribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à la Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2019) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2019) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "5684900") +$ - ((money_of_cents_string "568400") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "5684900") + (o_mult_mon_rat (money_of_cents_string + "568400") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); (fun (_: unit) -> handle_default @@ -2084,15 +2188,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t end_line=89; end_column=69; law_headings=["Instruction interministerielle no DSS/SD2B/2019/261 du 18 décembre 2019 relative à la revalorisation au 1er janvier 2020 des plafonds de ressources d’attribution de certaines prestations familiales servies en métropole, en Guadeloupe, en Guyane, en Martinique, à La Réunion, à Saint-Barthélemy, à Saint-Martin et à Mayotte"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2020) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "5775900") +$ - ((money_of_cents_string "577500") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "5775900") + (o_mult_mon_rat (money_of_cents_string + "577500") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))); (fun (_: unit) -> handle_default @@ -2109,15 +2215,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Article 1"; "Arrêté du 14 décembre 2020 relatif au montant des plafonds de ressources de certaines prestations familiales et aux tranches du barème applicable au recouvrement des indus et à la saisie des prestations"; "Montant des plafonds de ressources"]} - ((date_courante_ >=@ - (date_of_numbers (2021) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2021) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2021) (12) (31)))))) (fun (_: unit) -> - (money_of_cents_string "5827900") +$ - ((money_of_cents_string "582700") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "5827900") + (o_mult_mon_rat (money_of_cents_string + "582700") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_)))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken @@ -2130,10 +2238,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - (money_of_cents_string "5595000") +$ - ((money_of_cents_string "559500") *$ - (decimal_of_integer - (array_length + o_add_mon_mon (money_of_cents_string "5595000") + (o_mult_mon_rat (money_of_cents_string "559500") + (o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))))) with EmptyError -> (raise (NoValueProvided @@ -2174,11 +2282,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie législative"; "Code de la sécurité sociale"]} - (prestations_familiales_dot_regime_outre_mer_l751_1_ - && - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - = (integer_of_string "1"))))) + (o_and + prestations_familiales_dot_regime_outre_mer_l751_1_ + (o_eq + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1"))))) (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/epilogue.catala_fr"; @@ -2233,11 +2342,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie législative"; "Code de la sécurité sociale"]} - (prestations_familiales_dot_regime_outre_mer_l751_1_ - && - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - = (integer_of_string "1"))))) + (o_and + prestations_familiales_dot_regime_outre_mer_l751_1_ + (o_eq + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1"))))) (fun (_: unit) -> false))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; @@ -2249,14 +2359,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - (((array_length enfants_a_charge_) >=! - nombre_enfants_alinea_2_l521_3_) && - (((((param_.Enfant.date_de_naissance) +@ - prestations_familiales_dot_age_l512_3_2_) - -@ date_courante_) <^ - (duration_of_numbers (0) (0) (365))) && - ((param_.Enfant.a_deja_ouvert_droit_aux_allocations_familiales) - && ((log_end_call + (o_and + (o_gte_int_int (o_length enfants_a_charge_) + nombre_enfants_alinea_2_l521_3_) + (o_and + (o_lt_dur_dur + (o_sub_dat_dat + (o_add_dat_dur + (param_.Enfant.date_de_naissance) + prestations_familiales_dot_age_l512_3_2_) + date_courante_) + (duration_of_numbers (0) (0) (365))) + (o_and + (param_.Enfant.a_deja_ouvert_droit_aux_allocations_familiales) + ((log_end_call ["PrestationsFamiliales"; "conditions_hors_âge"] ((log_variable_definition @@ -2309,14 +2425,18 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t true)) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) >! + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) (integer_of_string "3")) then - ((bmaf_dot_montant_ *$ (decimal_of_string "0.0463")) *$ - (decimal_of_integer - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - -! (integer_of_string "3")))) else + (o_mult_mon_rat + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.0463")) + (o_intToRat + (o_sub_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "3")))) else (money_of_cents_string "0"))) with EmptyError -> (raise (NoValueProvided @@ -2355,17 +2475,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2011) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2011) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2011) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0463")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2383,17 +2506,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2012) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2012) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2012) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0539")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2411,17 +2537,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2013) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2013) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2013) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0615")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2439,17 +2568,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2014) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2014) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2014) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.069")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2467,17 +2599,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2015) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2015) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2015) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0766")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2495,17 +2630,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2016) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2016) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2016) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0842")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2523,17 +2661,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2017) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2017) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2017) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0918")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2551,17 +2692,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2018) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2018) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2018) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.1089")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2579,17 +2723,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2019) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2019) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.1259")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2607,17 +2754,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) && - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) && - (date_courante_ <=@ + (o_and + (o_eq residence_ (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2020) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.143")) else (money_of_cents_string "0")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) @@ -2630,11 +2780,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t true)) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) >! + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) (integer_of_string "2")) then - (bmaf_dot_montant_ *$ (decimal_of_string "0.16")) else - (money_of_cents_string "0"))) + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.16")) + else (money_of_cents_string "0"))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -2659,9 +2810,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - decimal_of_integer - (array_length - enfants_a_charge_droit_ouvert_prestation_familiale_))) + o_intToRat + (o_length enfants_a_charge_droit_ouvert_prestation_familiale_))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -2686,9 +2836,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - Array.fold_left + o_fold (fun (acc_: decimal) (enfant_: Enfant.t) -> - acc_ +& + o_add_rat_rat acc_ (match ((log_end_call ["AllocationsFamiliales"; "prise_en_compte"] ((log_variable_definition @@ -2749,22 +2899,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2011) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2011) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2011) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2011) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.145")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2782,22 +2934,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2012) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2012) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2012) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2012) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.1393")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2815,22 +2969,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2013) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2013) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2013) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2013) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.1335")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2848,22 +3004,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2014) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2014) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2014) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2014) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.1278")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2881,22 +3039,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2015) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2015) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2015) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2015) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.122")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2914,22 +3074,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2016) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2016) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2016) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2016) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.1163")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2947,22 +3109,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2017) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2017) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2017) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2017) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.1105")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -2980,22 +3144,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2018) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2018) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2018) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2018) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0976")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3013,22 +3179,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2019) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2019) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2019) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0847")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3046,22 +3214,24 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) - && - ((date_courante_ <=@ - (date_of_numbers (2020) (12) (31))) - && - (not + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_and + (o_lte_dat_dat date_courante_ + (date_of_numbers (2020) (12) (31))) + (o_not avait_enfant_a_charge_avant_1er_janvier_2012_)))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0717")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3079,14 +3249,16 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) avait_enfant_a_charge_avant_1er_janvier_2012_))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then (money_of_cents_string "5728") else (money_of_cents_string "0")))|]) (fun (_: unit) -> false) @@ -3098,14 +3270,16 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Article 7"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - (residence_ = (Collectivite.Mayotte ())))) + (o_eq residence_ (Collectivite.Mayotte ())))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "0")) then - (bmaf_dot_montant_ *$ (decimal_of_string "0.0588")) - else (money_of_cents_string "0"))); + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "0")) then + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.0588")) else + (money_of_cents_string "0"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3124,12 +3298,15 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (prestations_familiales_dot_regime_outre_mer_l751_1_ && - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - = (integer_of_string "1"))))) + (o_and + prestations_familiales_dot_regime_outre_mer_l751_1_ + (o_eq + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1"))))) (fun (_: unit) -> - bmaf_dot_montant_ *$ (decimal_of_string "0.0588")))|]) + o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.0588")))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_D.catala_fr"; start_line=361; start_column=29; end_line=361; end_column=64; @@ -3194,11 +3371,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Article 7"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = - (Collectivite.Mayotte ())) && - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >=! (integer_of_string "1"))))) + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_gte_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1"))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; @@ -3210,11 +3389,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie législative"; "Code de la sécurité sociale"]} - (prestations_familiales_dot_regime_outre_mer_l751_1_ - && - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >=! (integer_of_string "1"))))) + (o_and + prestations_familiales_dot_regime_outre_mer_l751_1_ + (o_gte_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1"))))) (fun (_: unit) -> true))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) @@ -3228,9 +3408,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >=! (integer_of_string "2")))) (fun (_: unit) -> true))|]) + (o_gte_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; start_line=103; start_column=11; end_line=103; end_column=28; @@ -3278,26 +3459,30 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - (((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >=! nombre_enfants_alinea_2_l521_3_) && - (((param_.Enfant.date_de_naissance) +@ - ((log_end_call - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"] - ((log_variable_definition - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"; - "output"] (embed_duration) - ((log_begin_call - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"] - age_minimum_alinea_1_l521_3_) - ((log_variable_definition - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"; - "input"] (embed_enfant) - param_)))))))) <=@ date_courante_)))) + (o_and + (o_gte_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + nombre_enfants_alinea_2_l521_3_) + (o_lte_dat_dat + (o_add_dat_dur + (param_.Enfant.date_de_naissance) + ((log_end_call + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"] + ((log_variable_definition + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"; + "output"] (embed_duration) + ((log_begin_call + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"] + age_minimum_alinea_1_l521_3_) + ((log_variable_definition + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"; + "input"] (embed_enfant) + param_)))))))) date_courante_)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/securite_sociale_L.catala_fr"; @@ -3309,35 +3494,39 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie législative"; "Code de la sécurité sociale"]} - ((not ((log_end_call - ["AllocationsFamiliales"; - "est_enfant_le_plus_âgé"] - ((log_variable_definition - ["AllocationsFamiliales"; - "est_enfant_le_plus_âgé"; "output"] - (embed_bool) ((log_begin_call - ["AllocationsFamiliales"; - "est_enfant_le_plus_âgé"] - est_enfant_le_plus_age_) - ((log_variable_definition - ["AllocationsFamiliales"; - "est_enfant_le_plus_âgé"; "input"] - (embed_enfant) param_)))))))) && - (((param_.Enfant.date_de_naissance) +@ - ((log_end_call - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"] - ((log_variable_definition - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"; "output"] - (embed_duration) ((log_begin_call - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"] - age_minimum_alinea_1_l521_3_) - ((log_variable_definition - ["AllocationsFamiliales"; - "âge_minimum_alinéa_1_l521_3"; "input"] - (embed_enfant) param_)))))))) <=@ + (o_and + (o_not ((log_end_call + ["AllocationsFamiliales"; + "est_enfant_le_plus_âgé"] + ((log_variable_definition + ["AllocationsFamiliales"; + "est_enfant_le_plus_âgé"; "output"] + (embed_bool) ((log_begin_call + ["AllocationsFamiliales"; + "est_enfant_le_plus_âgé"] + est_enfant_le_plus_age_) + ((log_variable_definition + ["AllocationsFamiliales"; + "est_enfant_le_plus_âgé"; "input"] + (embed_enfant) param_)))))))) + (o_lte_dat_dat + (o_add_dat_dur + (param_.Enfant.date_de_naissance) + ((log_end_call + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"] + ((log_variable_definition + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"; + "output"] (embed_duration) + ((log_begin_call + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"] + age_minimum_alinea_1_l521_3_) + ((log_variable_definition + ["AllocationsFamiliales"; + "âge_minimum_alinéa_1_l521_3"; "input"] + (embed_enfant) param_)))))))) date_courante_)))) (fun (_: unit) -> true))|]) (fun (_: unit) -> (log_decision_taken {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3393,17 +3582,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_d521_3_) - && - (ressources_menage_ <=$ - (plafond__i_d521_3_ +$ - (param_ *$ + (o_and + (o_gt_mon_mon ressources_menage_ + plafond__i_d521_3_) + (o_lte_mon_mon ressources_menage_ + (o_add_mon_mon plafond__i_d521_3_ + (o_mult_mon_rat param_ (decimal_of_string "12."))))))) (fun (_: unit) -> - ((plafond__i_d521_3_ +$ - (param_ *$ (decimal_of_string "12."))) - -$ ressources_menage_) *$ - ((decimal_of_string "1.") /& + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon plafond__i_d521_3_ + (o_mult_mon_rat param_ + (decimal_of_string "12."))) + ressources_menage_) + (o_div_rat_rat (decimal_of_string "1.") (decimal_of_string "12.")))); (fun (_: unit) -> handle_default @@ -3423,17 +3616,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_i_d521_3_) - && - (ressources_menage_ <=$ - (plafond__i_i_d521_3_ +$ - (param_ *$ + (o_and + (o_gt_mon_mon ressources_menage_ + plafond__i_i_d521_3_) + (o_lte_mon_mon ressources_menage_ + (o_add_mon_mon plafond__i_i_d521_3_ + (o_mult_mon_rat param_ (decimal_of_string "12."))))))) (fun (_: unit) -> - ((plafond__i_i_d521_3_ +$ - (param_ *$ (decimal_of_string "12."))) - -$ ressources_menage_) *$ - ((decimal_of_string "1.") /& + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon plafond__i_i_d521_3_ + (o_mult_mon_rat param_ + (decimal_of_string "12."))) + ressources_menage_) + (o_div_rat_rat (decimal_of_string "1.") (decimal_of_string "12."))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) @@ -3487,9 +3684,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (ressources_menage_ <=$ plafond__i_d521_3_))) + (o_lte_mon_mon ressources_menage_ plafond__i_d521_3_))) (fun (_: unit) -> - bmaf_dot_montant_ *$ (decimal_of_string "0.20234"))); + o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.20234"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3508,10 +3706,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_d521_3_) && - (ressources_menage_ <=$ plafond__i_i_d521_3_)))) + (o_and + (o_gt_mon_mon ressources_menage_ plafond__i_d521_3_) + (o_lte_mon_mon ressources_menage_ plafond__i_i_d521_3_)))) (fun (_: unit) -> - bmaf_dot_montant_ *$ (decimal_of_string "0.10117"))); + o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.10117"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -3530,9 +3730,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (ressources_menage_ >$ plafond__i_i_d521_3_))) + (o_gt_mon_mon ressources_menage_ plafond__i_i_d521_3_))) (fun (_: unit) -> - bmaf_dot_montant_ *$ (decimal_of_string "0.05059")))|]) + o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.05059")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with EmptyError -> (raise (NoValueProvided @@ -3567,17 +3768,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (ressources_menage_ <=$ plafond__i_d521_3_))) + (o_lte_mon_mon ressources_menage_ plafond__i_d521_3_))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - ((bmaf_dot_montant_ *$ (decimal_of_string "0.41")) *$ - (decimal_of_integer - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - -! (integer_of_string "2")))) else + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.41")) + (o_intToRat + (o_sub_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")))) else (money_of_cents_string "0"))); (fun (_: unit) -> handle_default @@ -3597,18 +3802,23 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_d521_3_) && - (ressources_menage_ <=$ plafond__i_i_d521_3_)))) + (o_and + (o_gt_mon_mon ressources_menage_ plafond__i_d521_3_) + (o_lte_mon_mon ressources_menage_ plafond__i_i_d521_3_)))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - ((bmaf_dot_montant_ *$ (decimal_of_string "0.205")) *$ - (decimal_of_integer - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - -! (integer_of_string "2")))) else + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.205")) + (o_intToRat + (o_sub_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")))) else (money_of_cents_string "0"))); (fun (_: unit) -> handle_default @@ -3628,17 +3838,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (ressources_menage_ >$ plafond__i_i_d521_3_))) + (o_gt_mon_mon ressources_menage_ plafond__i_i_d521_3_))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "2")) then - ((bmaf_dot_montant_ *$ (decimal_of_string "0.1025")) *$ - (decimal_of_integer - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - -! (integer_of_string "2")))) else + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")) then + (o_mult_mon_rat + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.1025")) + (o_intToRat + (o_sub_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "2")))) else (money_of_cents_string "0")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError)) with @@ -3686,19 +3900,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2011) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2011) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2011) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.232")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3716,19 +3932,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2012) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2012) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2012) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2379")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3746,19 +3964,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2013) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2013) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2013) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2437")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3776,19 +3996,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2014) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2014) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2014) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2496")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3806,19 +4028,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2015) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2015) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2015) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2555")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3836,19 +4060,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2016) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2016) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2016) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2613")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3866,19 +4092,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2017) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2017) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2017) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2672")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3896,19 +4124,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2018) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2018) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2018) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2804")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3926,19 +4156,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2019) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2019) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2019) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.2936")) else (money_of_cents_string "0"))); (fun (_: unit) -> @@ -3956,19 +4188,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Annexe"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - ((residence_ = (Collectivite.Mayotte ())) - && - ((date_courante_ >=@ - (date_of_numbers (2020) (1) (1))) - && - (date_courante_ <=@ + (o_and + (o_eq residence_ + (Collectivite.Mayotte ())) + (o_and + (o_gte_dat_dat date_courante_ + (date_of_numbers (2020) (1) (1))) + (o_lte_dat_dat date_courante_ (date_of_numbers (2020) (12) (31))))))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.3068")) else (money_of_cents_string "0")))|]) (fun (_: unit) -> false) @@ -3980,13 +4214,15 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Article 7"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - (residence_ = (Collectivite.Mayotte ())))) + (o_eq residence_ (Collectivite.Mayotte ())))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ (decimal_of_string "0.32")) else + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.32")) else (money_of_cents_string "0")))|]) (fun (_: unit) -> true) (fun (_: unit) -> @@ -4013,14 +4249,16 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (ressources_menage_ <=$ plafond__i_d521_3_))) + (o_lte_mon_mon ressources_menage_ plafond__i_d521_3_))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ (decimal_of_string "0.32")) - else (money_of_cents_string "0"))); + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.32")) else + (money_of_cents_string "0"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4039,15 +4277,20 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_d521_3_) && - (ressources_menage_ <=$ plafond__i_i_d521_3_)))) + (o_and + (o_gt_mon_mon ressources_menage_ + plafond__i_d521_3_) + (o_lte_mon_mon ressources_menage_ + plafond__i_i_d521_3_)))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ (decimal_of_string "0.16")) - else (money_of_cents_string "0"))); + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.16")) else + (money_of_cents_string "0"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4066,14 +4309,17 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (ressources_menage_ >$ plafond__i_i_d521_3_))) + (o_gt_mon_mon ressources_menage_ + plafond__i_i_d521_3_))) (fun (_: unit) -> if - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - >! (integer_of_string "1")) then - (bmaf_dot_montant_ *$ (decimal_of_string "0.08")) - else (money_of_cents_string "0")))|]) + (o_gt_int_int + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) then + (o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.08")) else + (money_of_cents_string "0")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))) with EmptyError -> (raise (NoValueProvided @@ -4100,9 +4346,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - if (nombre_total_enfants_ = (decimal_of_string "0.")) then + if (o_eq nombre_total_enfants_ (decimal_of_string "0.")) then (decimal_of_string "0.") else - (nombre_moyen_enfants_ /& nombre_total_enfants_))) + (o_div_rat_rat nombre_moyen_enfants_ nombre_total_enfants_))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4138,8 +4384,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ <=$ plafond__i_d521_3_) && - ((log_end_call + (o_and + (o_lte_mon_mon ressources_menage_ + plafond__i_d521_3_) ((log_end_call ["AllocationsFamiliales"; "droit_ouvert_majoration"] ((log_variable_definition @@ -4154,7 +4401,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "droit_ouvert_majoration"; "input"] (embed_enfant) param_)))))))))) (fun (_: unit) -> - bmaf_dot_montant_ *$ (decimal_of_string "0.16"))); + o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.16"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4173,9 +4421,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (((ressources_menage_ >$ plafond__i_d521_3_) && - (ressources_menage_ <=$ plafond__i_i_d521_3_)) - && ((log_end_call + (o_and + (o_and + (o_gt_mon_mon ressources_menage_ + plafond__i_d521_3_) + (o_lte_mon_mon ressources_menage_ + plafond__i_i_d521_3_)) ((log_end_call ["AllocationsFamiliales"; "droit_ouvert_majoration"] ((log_variable_definition @@ -4190,7 +4441,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "droit_ouvert_majoration"; "input"] (embed_enfant) param_)))))))))) (fun (_: unit) -> - bmaf_dot_montant_ *$ (decimal_of_string "0.08"))); + o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.08"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4209,8 +4461,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_i_d521_3_) && - ((log_end_call + (o_and + (o_gt_mon_mon ressources_menage_ + plafond__i_i_d521_3_) ((log_end_call ["AllocationsFamiliales"; "droit_ouvert_majoration"] ((log_variable_definition @@ -4225,7 +4478,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "droit_ouvert_majoration"; "input"] (embed_enfant) param_)))))))))) (fun (_: unit) -> - bmaf_dot_montant_ *$ (decimal_of_string "0.04"))); + o_mult_mon_rat bmaf_dot_montant_ + (decimal_of_string "0.04"))); (fun (_: unit) -> handle_default {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4239,7 +4493,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t start_line=27; start_column=5; end_line=27; end_column=44; law_headings=["Règles diverses"; "Épilogue"]} - (not ((log_end_call + (o_not ((log_end_call ["AllocationsFamiliales"; "droit_ouvert_majoration"] ((log_variable_definition @@ -4285,9 +4539,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - montant_verse_forfaitaire_par_enfant_ *$ - (decimal_of_integer - (Array.fold_left + o_mult_mon_rat montant_verse_forfaitaire_par_enfant_ + (o_intToRat + (o_fold (fun (acc_: integer) (enfant_: Enfant.t) -> if ((log_end_call @@ -4304,8 +4558,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "droit_ouvert_forfaitaire"; "input"] (embed_enfant) enfant_))))))) then - (acc_ +! (integer_of_string "1")) else acc_) - (integer_of_string "0") enfants_a_charge_)))) + (o_add_int_int acc_ (integer_of_string "1")) else + acc_) (integer_of_string "0") enfants_a_charge_)))) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4345,11 +4599,12 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (prestations_familiales_dot_regime_outre_mer_l751_1_ - && - ((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - = (integer_of_string "1"))))) + (o_and + prestations_familiales_dot_regime_outre_mer_l751_1_ + (o_eq + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1"))))) (fun (_: unit) -> montant_initial_base_premier_enfant_)); (fun (_: unit) -> @@ -4367,12 +4622,14 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Article 7"; "Décret n°2002-423 du 29 mars 2002 relatif aux prestations familiales à Mayotte"; "Dispositions spéciales relatives à Mayotte"]} - (residence_ = (Collectivite.Mayotte ())))) + (o_eq residence_ (Collectivite.Mayotte ())))) (fun (_: unit) -> - ((montant_initial_base_premier_enfant_ +$ - montant_initial_base_deuxieme_enfant_) +$ - montant_initial_base_troisieme_enfant_mayotte_) - +$ + o_add_mon_mon + (o_add_mon_mon + (o_add_mon_mon + montant_initial_base_premier_enfant_ + montant_initial_base_deuxieme_enfant_) + montant_initial_base_troisieme_enfant_mayotte_) montant_initial_base_quatrieme_enfant_et_plus_mayotte_))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken @@ -4385,7 +4642,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - montant_initial_base_deuxieme_enfant_ +$ + o_add_mon_mon montant_initial_base_deuxieme_enfant_ montant_initial_base_troisieme_enfant_et_plus_)) with EmptyError -> (raise (NoValueProvided @@ -4428,7 +4685,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (((log_end_call + (o_and ((log_end_call ["AllocationsFamiliales"; "droit_ouvert_majoration"] ((log_variable_definition @@ -4441,22 +4698,27 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((log_variable_definition ["AllocationsFamiliales"; "droit_ouvert_majoration"; "input"] - (embed_enfant) param_))))))) && - (prestations_familiales_dot_regime_outre_mer_l751_1_ - && - (((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - = (integer_of_string "1")) && - ((((param_.Enfant.date_de_naissance) - +@ - (duration_of_numbers (11) (0) (0))) - <=@ date_courante_) && - (((param_.Enfant.date_de_naissance) - +@ - (duration_of_numbers (16) (0) (0))) - >@ date_courante_))))))) + (embed_enfant) param_))))))) + (o_and + prestations_familiales_dot_regime_outre_mer_l751_1_ + (o_and + (o_eq + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) + (o_and + (o_lte_dat_dat + (o_add_dat_dur + (param_.Enfant.date_de_naissance) + (duration_of_numbers (11) (0) (0))) + date_courante_) + (o_gt_dat_dat + (o_add_dat_dur + (param_.Enfant.date_de_naissance) + (duration_of_numbers (16) (0) (0))) + date_courante_))))))) (fun (_: unit) -> - bmaf_dot_montant_ *$ + o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0369"))); (fun (_: unit) -> handle_default @@ -4476,7 +4738,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 7 : Régimes divers - Dispositions diverses"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - (((log_end_call + (o_and ((log_end_call ["AllocationsFamiliales"; "droit_ouvert_majoration"] ((log_variable_definition @@ -4489,18 +4751,21 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ((log_variable_definition ["AllocationsFamiliales"; "droit_ouvert_majoration"; "input"] - (embed_enfant) param_))))))) && - (prestations_familiales_dot_regime_outre_mer_l751_1_ - && - (((array_length - enfants_a_charge_droit_ouvert_prestation_familiale_) - = (integer_of_string "1")) && - (((param_.Enfant.date_de_naissance) - +@ - (duration_of_numbers (16) (0) (0))) - <=@ date_courante_)))))) + (embed_enfant) param_))))))) + (o_and + prestations_familiales_dot_regime_outre_mer_l751_1_ + (o_and + (o_eq + (o_length + enfants_a_charge_droit_ouvert_prestation_familiale_) + (integer_of_string "1")) + (o_lte_dat_dat + (o_add_dat_dur + (param_.Enfant.date_de_naissance) + (duration_of_numbers (16) (0) (0))) + date_courante_)))))) (fun (_: unit) -> - bmaf_dot_montant_ *$ + o_mult_mon_rat bmaf_dot_montant_ (decimal_of_string "0.0567")))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) @@ -4574,17 +4839,23 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_d521_3_) && - (ressources_menage_ <=$ - (plafond__i_d521_3_ +$ - (montant_verse_forfaitaire_ *$ + (o_and + (o_gt_mon_mon ressources_menage_ + plafond__i_d521_3_) + (o_lte_mon_mon ressources_menage_ + (o_add_mon_mon plafond__i_d521_3_ + (o_mult_mon_rat + montant_verse_forfaitaire_ (decimal_of_string "12."))))))) (fun (_: unit) -> - ((plafond__i_d521_3_ +$ - (montant_verse_forfaitaire_ *$ - (decimal_of_string "12."))) -$ - ressources_menage_) *$ - ((decimal_of_string "1.") /& + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon plafond__i_d521_3_ + (o_mult_mon_rat + montant_verse_forfaitaire_ + (decimal_of_string "12."))) + ressources_menage_) + (o_div_rat_rat (decimal_of_string "1.") (decimal_of_string "12.")))); (fun (_: unit) -> handle_default @@ -4604,17 +4875,23 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} - ((ressources_menage_ >$ plafond__i_i_d521_3_) && - (ressources_menage_ <=$ - (plafond__i_i_d521_3_ +$ - (montant_verse_forfaitaire_ *$ + (o_and + (o_gt_mon_mon ressources_menage_ + plafond__i_i_d521_3_) + (o_lte_mon_mon ressources_menage_ + (o_add_mon_mon plafond__i_i_d521_3_ + (o_mult_mon_rat + montant_verse_forfaitaire_ (decimal_of_string "12."))))))) (fun (_: unit) -> - ((plafond__i_i_d521_3_ +$ - (montant_verse_forfaitaire_ *$ - (decimal_of_string "12."))) -$ - ressources_menage_) *$ - ((decimal_of_string "1.") /& + o_mult_mon_rat + (o_sub_mon_mon + (o_add_mon_mon plafond__i_i_d521_3_ + (o_mult_mon_rat + montant_verse_forfaitaire_ + (decimal_of_string "12."))) + ressources_menage_) + (o_div_rat_rat (decimal_of_string "1.") (decimal_of_string "12."))))|]) (fun (_: unit) -> false) (fun (_: unit) -> raise EmptyError))|]) (fun (_: unit) -> (log_decision_taken @@ -4652,7 +4929,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - montant_initial_base_ *$ rapport_enfants_total_moyen_)) + o_mult_mon_rat montant_initial_base_ rapport_enfants_total_moyen_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4682,7 +4959,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Partie réglementaire - Décrets en Conseil d'Etat"; "Code de la sécurité sociale"]} true)) (fun (_: unit) -> - ((log_end_call + o_mult_mon_rat ((log_end_call ["AllocationsFamiliales"; "montant_initial_majoration"] ((log_variable_definition ["AllocationsFamiliales"; "montant_initial_majoration"; @@ -4690,7 +4967,7 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t ["AllocationsFamiliales"; "montant_initial_majoration"] montant_initial_majoration_) ((log_variable_definition ["AllocationsFamiliales"; "montant_initial_majoration"; - "input"] (embed_enfant) param_))))))) *$ + "input"] (embed_enfant) param_))))))) (match ((log_end_call ["AllocationsFamiliales"; "prise_en_compte"] ((log_variable_definition @@ -4751,9 +5028,9 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Règles diverses"; "Épilogue"]} true)) (fun (_: unit) -> if droit_ouvert_base_ then - (Array.fold_left + (o_fold (fun (acc_: money) (enfant_: Enfant.t) -> - acc_ +$ ((log_end_call + o_add_mon_mon acc_ ((log_end_call ["AllocationsFamiliales"; "montant_avec_garde_alternée_majoration"] ((log_variable_definition @@ -4792,7 +5069,8 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Livre 5 : Prestations familiales et prestations assimilées"; "Partie réglementaire - Décrets simples"; "Code de la sécurité sociale"]} true)) - (fun (_: unit) -> montant_verse_base_ +$ montant_verse_majoration_)) + (fun (_: unit) -> + o_add_mon_mon montant_verse_base_ montant_verse_majoration_)) with EmptyError -> (raise (NoValueProvided {filename = "examples/allocations_familiales/prologue.catala_fr"; @@ -4850,9 +5128,13 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t law_headings=["Règles diverses"; "Épilogue"]} true)) (fun (_: unit) -> if droit_ouvert_base_ then - ((((montant_verse_base_ +$ montant_verse_majoration_) +$ - montant_verse_forfaitaire_) +$ - montant_verse_complement_pour_base_et_majoration_) +$ + (o_add_mon_mon + (o_add_mon_mon + (o_add_mon_mon + (o_add_mon_mon montant_verse_base_ + montant_verse_majoration_) + montant_verse_forfaitaire_) + montant_verse_complement_pour_base_et_majoration_) montant_verse_complement_pour_forfaitaire_) else (money_of_cents_string "0"))) with @@ -4863,9 +5145,10 @@ let allocations_familiales (allocations_familiales_in: AllocationsFamilialesIn.t "Prologue"]})))) in let _: unit = if ( try - (personne_charge_effective_permanente_est_parent_ || - ((not personne_charge_effective_permanente_est_parent_) - && + (o_or personne_charge_effective_permanente_est_parent_ + (o_and + (o_not + personne_charge_effective_permanente_est_parent_) personne_charge_effective_permanente_remplit_titre__i_)) with EmptyError -> (raise (NoValueProvided @@ -4912,18 +5195,22 @@ let interface_allocations_familiales (interface_allocations_familiales_in: Inter law_headings=["Article L131-1"; "Interface du programme"; "Épilogue"]} true)) (fun (_: unit) -> - Array.map + o_map (fun (enfant_: EnfantEntree.t) -> {Enfant.identifiant = (enfant_.EnfantEntree.d_identifiant); Enfant.obligation_scolaire = ( if - (((enfant_.EnfantEntree.d_date_de_naissance) +@ - (duration_of_numbers (3) (0) (0))) >=@ + (o_gte_dat_dat + (o_add_dat_dur + (enfant_.EnfantEntree.d_date_de_naissance) + (duration_of_numbers (3) (0) (0))) i_date_courante_) then (SituationObligationScolaire.Avant ()) else ( if - (((enfant_.EnfantEntree.d_date_de_naissance) +@ - (duration_of_numbers (16) (0) (0))) >=@ + (o_gte_dat_dat + (o_add_dat_dur + (enfant_.EnfantEntree.d_date_de_naissance) + (duration_of_numbers (16) (0) (0))) i_date_courante_) then (SituationObligationScolaire.Pendant ()) else (SituationObligationScolaire.Apres ()))); diff --git a/runtimes/ocaml/runtime.ml b/runtimes/ocaml/runtime.ml index e3f99160..e7a8db14 100644 --- a/runtimes/ocaml/runtime.ml +++ b/runtimes/ocaml/runtime.ml @@ -561,80 +561,8 @@ let handle_default_opt let no_input : unit -> 'a = fun _ -> raise EmptyError -let ( *$ ) (i1 : money) (i2 : decimal) : money = - let i1_abs = Z.abs i1 in - let i2_abs = Q.abs i2 in - let sign_int = Z.sign i1 * Q.sign i2 in - let rat_result = Q.mul (Q.of_bigint i1_abs) i2_abs in - let res, remainder = Z.div_rem (Q.num rat_result) (Q.den rat_result) in - (* we perform nearest rounding when multiplying an amount of money by a - decimal !*) - if Z.(of_int 2 * remainder >= Q.den rat_result) then - Z.(add res (of_int 1) * of_int sign_int) - else Z.(res * of_int sign_int) - -let ( /$ ) (m1 : money) (m2 : money) : decimal = - if Z.zero = m2 then raise Division_by_zero - else Q.div (Q.of_bigint m1) (Q.of_bigint m2) - -let ( +$ ) (m1 : money) (m2 : money) : money = Z.add m1 m2 -let ( -$ ) (m1 : money) (m2 : money) : money = Z.sub m1 m2 -let ( ~-$ ) (m1 : money) : money = Z.sub Z.zero m1 -let ( +! ) (i1 : integer) (i2 : integer) : integer = Z.add i1 i2 -let ( -! ) (i1 : integer) (i2 : integer) : integer = Z.sub i1 i2 -let ( ~-! ) (i1 : integer) : integer = Z.sub Z.zero i1 -let ( *! ) (i1 : integer) (i2 : integer) : integer = Z.mul i1 i2 - -let ( /! ) (i1 : integer) (i2 : integer) : integer = - if Z.zero = i2 then raise Division_by_zero else Z.div i1 i2 - -let ( +& ) (i1 : decimal) (i2 : decimal) : decimal = Q.add i1 i2 -let ( -& ) (i1 : decimal) (i2 : decimal) : decimal = Q.sub i1 i2 -let ( ~-& ) (i1 : decimal) : decimal = Q.sub Q.zero i1 -let ( *& ) (i1 : decimal) (i2 : decimal) : decimal = Q.mul i1 i2 - -let ( /& ) (i1 : decimal) (i2 : decimal) : decimal = - if Q.zero = i2 then raise Division_by_zero else Q.div i1 i2 - -let ( +@ ) : date -> duration -> date = Dates_calc.Dates.add_dates -let ( -@ ) : date -> date -> duration = Dates_calc.Dates.sub_dates -let ( +^ ) : duration -> duration -> duration = Dates_calc.Dates.add_periods -let ( -^ ) : duration -> duration -> duration = Dates_calc.Dates.sub_periods - -let ( *^ ) (d : duration) (m : integer) : duration = - Dates_calc.Dates.mul_period d (Z.to_int m) - -let ( <=$ ) (m1 : money) (m2 : money) : bool = Z.compare m1 m2 <= 0 -let ( >=$ ) (m1 : money) (m2 : money) : bool = Z.compare m1 m2 >= 0 -let ( <$ ) (m1 : money) (m2 : money) : bool = Z.compare m1 m2 < 0 -let ( >$ ) (m1 : money) (m2 : money) : bool = Z.compare m1 m2 > 0 -let ( =$ ) (m1 : money) (m2 : money) : bool = Z.compare m1 m2 = 0 -let ( >=! ) (i1 : integer) (i2 : integer) : bool = Z.compare i1 i2 >= 0 -let ( <=! ) (i1 : integer) (i2 : integer) : bool = Z.compare i1 i2 <= 0 -let ( >! ) (i1 : integer) (i2 : integer) : bool = Z.compare i1 i2 > 0 -let ( =& ) (i1 : decimal) (i2 : decimal) : bool = Q.compare i1 i2 >= 0 -let ( <=& ) (i1 : decimal) (i2 : decimal) : bool = Q.compare i1 i2 <= 0 -let ( >& ) (i1 : decimal) (i2 : decimal) : bool = Q.compare i1 i2 > 0 -let ( <& ) (i1 : decimal) (i2 : decimal) : bool = Q.compare i1 i2 < 0 -let ( =& ) (i1 : decimal) (i2 : decimal) : bool = Q.compare i1 i2 = 0 - -let ( >=@ ) (d1 : date) (d2 : date) : bool = - Dates_calc.Dates.compare_dates d1 d2 >= 0 - -let ( <=@ ) (d1 : date) (d2 : date) : bool = - Dates_calc.Dates.compare_dates d1 d2 <= 0 - -let ( >@ ) (d1 : date) (d2 : date) : bool = - Dates_calc.Dates.compare_dates d1 d2 > 0 - -let ( <@ ) (d1 : date) (d2 : date) : bool = - Dates_calc.Dates.compare_dates d1 d2 < 0 - -let ( =@ ) (d1 : date) (d2 : date) : bool = - Dates_calc.Dates.compare_dates d1 d2 = 0 - +(* TODO: add a compare built-in to dates_calc. At the moment this fails on e.g. + [3 months, 4 months] *) let compare_periods (p1 : duration) (p2 : duration) : int = try let p1_days = Dates_calc.Dates.period_to_days p1 in @@ -642,14 +570,102 @@ let compare_periods (p1 : duration) (p2 : duration) : int = compare p1_days p2_days with Dates_calc.Dates.AmbiguousComputation -> raise UncomparableDurations -let ( >=^ ) (d1 : duration) (d2 : duration) : bool = compare_periods d1 d2 >= 0 -let ( <=^ ) (d1 : duration) (d2 : duration) : bool = compare_periods d1 d2 <= 0 -let ( >^ ) (d1 : duration) (d2 : duration) : bool = compare_periods d1 d2 > 0 -let ( <^ ) (d1 : duration) (d2 : duration) : bool = compare_periods d1 d2 < 0 -let ( =^ ) (d1 : duration) (d2 : duration) : bool = compare_periods d1 d2 = 0 -let ( ~-^ ) : duration -> duration = Dates_calc.Dates.neg_period +(* TODO: same here, although it was tweaked to never fail on equal dates. + Comparing the difference to duration_0 is not a good idea because we still + want to fail on [1 month, 30 days] rather than return [false] *) +let equal_periods (p1 : duration) (p2 : duration) : bool = + try Dates_calc.Dates.period_to_days (Dates_calc.Dates.sub_periods p1 p2) = 0 + with Dates_calc.Dates.AmbiguousComputation -> raise UncomparableDurations -let array_filter (f : 'a -> bool) (a : 'a array) : 'a array = - Array.of_list (List.filter f (Array.to_list a)) +module Oper = struct + let o_not = Stdlib.not + let o_length a = Z.of_int (Array.length a) + let o_intToRat = decimal_of_integer + let o_moneyToRat = decimal_of_money + let o_ratToMoney = money_of_decimal + let o_getDay = day_of_month_of_date + let o_getMonth = month_number_of_date + let o_getYear = year_of_date + let o_firstDayOfMonth = first_day_of_month + let o_lastDayOfMonth = last_day_of_month + let o_roundMoney = money_round + let o_roundDecimal = decimal_round + let o_minus_int i1 = Z.sub Z.zero i1 + let o_minus_rat i1 = Q.sub Q.zero i1 + let o_minus_mon m1 = Z.sub Z.zero m1 + let o_minus_dur = Dates_calc.Dates.neg_period + let o_and = ( && ) + let o_or = ( || ) + let o_xor : bool -> bool -> bool = ( <> ) + let o_eq = ( = ) + let o_map = Array.map + let o_concat = Array.append + let o_filter f a = Array.of_list (List.filter f (Array.to_list a)) + let o_add_int_int i1 i2 = Z.add i1 i2 + let o_add_rat_rat i1 i2 = Q.add i1 i2 + let o_add_mon_mon m1 m2 = Z.add m1 m2 + let o_add_dat_dur da du = Dates_calc.Dates.add_dates da du + let o_add_dur_dur = Dates_calc.Dates.add_periods + let o_sub_int_int i1 i2 = Z.sub i1 i2 + let o_sub_rat_rat i1 i2 = Q.sub i1 i2 + let o_sub_mon_mon m1 m2 = Z.sub m1 m2 + let o_sub_dat_dat = Dates_calc.Dates.sub_dates + let o_sub_dat_dur dat dur = Dates_calc.Dates.(add_dates dat (neg_period dur)) + let o_sub_dur_dur = Dates_calc.Dates.sub_periods + let o_mult_int_int i1 i2 = Z.mul i1 i2 + let o_mult_rat_rat i1 i2 = Q.mul i1 i2 -let array_length (a : 'a array) : integer = Z.of_int (Array.length a) + let o_mult_mon_rat i1 i2 = + let i1_abs = Z.abs i1 in + let i2_abs = Q.abs i2 in + let sign_int = Z.sign i1 * Q.sign i2 in + let rat_result = Q.mul (Q.of_bigint i1_abs) i2_abs in + let res, remainder = Z.div_rem (Q.num rat_result) (Q.den rat_result) in + (* we perform nearest rounding when multiplying an amount of money by a + decimal !*) + if Z.(of_int 2 * remainder >= Q.den rat_result) then + Z.(add res (of_int 1) * of_int sign_int) + else Z.(res * of_int sign_int) + + let o_mult_dur_int d m = Dates_calc.Dates.mul_period d (Z.to_int m) + let o_div_int_int i1 i2 = Z.div i1 i2 (* raises Division_by_zero *) + + let o_div_rat_rat i1 i2 = + if Q.zero = i2 then raise Division_by_zero else Q.div i1 i2 + + let o_div_mon_mon m1 m2 = + if Z.zero = m2 then raise Division_by_zero + else Q.div (Q.of_bigint m1) (Q.of_bigint m2) + + let o_div_mon_rat m1 r1 = + if Q.zero = r1 then raise Division_by_zero else o_mult_mon_rat m1 (Q.inv r1) + + let o_lt_int_int i1 i2 = Z.compare i1 i2 < 0 + let o_lt_rat_rat i1 i2 = Q.compare i1 i2 < 0 + let o_lt_mon_mon m1 m2 = Z.compare m1 m2 < 0 + let o_lt_dur_dur d1 d2 = compare_periods d1 d2 < 0 + let o_lt_dat_dat d1 d2 = Dates_calc.Dates.compare_dates d1 d2 < 0 + let o_lte_int_int i1 i2 = Z.compare i1 i2 <= 0 + let o_lte_rat_rat i1 i2 = Q.compare i1 i2 <= 0 + let o_lte_mon_mon m1 m2 = Z.compare m1 m2 <= 0 + let o_lte_dur_dur d1 d2 = compare_periods d1 d2 <= 0 + let o_lte_dat_dat d1 d2 = Dates_calc.Dates.compare_dates d1 d2 <= 0 + let o_gt_int_int i1 i2 = Z.compare i1 i2 > 0 + let o_gt_rat_rat i1 i2 = Q.compare i1 i2 > 0 + let o_gt_mon_mon m1 m2 = Z.compare m1 m2 > 0 + let o_gt_dur_dur d1 d2 = compare_periods d1 d2 > 0 + let o_gt_dat_dat d1 d2 = Dates_calc.Dates.compare_dates d1 d2 > 0 + let o_gte_int_int i1 i2 = Z.compare i1 i2 >= 0 + let o_gte_rat_rat i1 i2 = Q.compare i1 i2 >= 0 + let o_gte_mon_mon m1 m2 = Z.compare m1 m2 >= 0 + let o_gte_dur_dur d1 d2 = compare_periods d1 d2 >= 0 + let o_gte_dat_dat d1 d2 = Dates_calc.Dates.compare_dates d1 d2 >= 0 + let o_eq_int_int i1 i2 = Z.equal i1 i2 + let o_eq_rat_rat i1 i2 = Q.equal i1 i2 + let o_eq_mon_mon m1 m2 = Z.equal m1 m2 + let o_eq_dur_dur d1 d2 = equal_periods d1 d2 + let o_eq_dat_dat d1 d2 = Dates_calc.Dates.compare_dates d1 d2 = 0 + let o_fold = Array.fold_left +end + +include Oper diff --git a/runtimes/ocaml/runtime.mli b/runtimes/ocaml/runtime.mli index 8510eba0..1ab584c2 100644 --- a/runtimes/ocaml/runtime.mli +++ b/runtimes/ocaml/runtime.mli @@ -285,85 +285,76 @@ val no_input : unit -> 'a (**{1 Operators} *) -(**{2 Money} *) +module Oper : sig + (* The types **must** match with Shared_ast.Operator.*_type *) + val o_not : bool -> bool + val o_length : 'a array -> integer + val o_intToRat : integer -> decimal + val o_moneyToRat : money -> decimal + val o_ratToMoney : decimal -> money + val o_getDay : date -> integer + val o_getMonth : date -> integer + val o_getYear : date -> integer + val o_firstDayOfMonth : date -> date + val o_lastDayOfMonth : date -> date + val o_roundMoney : money -> money + val o_roundDecimal : decimal -> decimal + val o_minus_int : integer -> integer + val o_minus_rat : decimal -> decimal + val o_minus_mon : money -> money + val o_minus_dur : duration -> duration + val o_and : bool -> bool -> bool + val o_or : bool -> bool -> bool + val o_xor : bool -> bool -> bool + val o_eq : 'a -> 'a -> bool + val o_map : ('a -> 'b) -> 'a array -> 'b array + val o_concat : 'a array -> 'a array -> 'a array + val o_filter : ('a -> bool) -> 'a array -> 'a array + val o_add_int_int : integer -> integer -> integer + val o_add_rat_rat : decimal -> decimal -> decimal + val o_add_mon_mon : money -> money -> money + val o_add_dat_dur : date -> duration -> date + val o_add_dur_dur : duration -> duration -> duration + val o_sub_int_int : integer -> integer -> integer + val o_sub_rat_rat : decimal -> decimal -> decimal + val o_sub_mon_mon : money -> money -> money + val o_sub_dat_dat : date -> date -> duration + val o_sub_dat_dur : date -> duration -> date + val o_sub_dur_dur : duration -> duration -> duration + val o_mult_int_int : integer -> integer -> integer + val o_mult_rat_rat : decimal -> decimal -> decimal + val o_mult_mon_rat : money -> decimal -> money + val o_mult_dur_int : duration -> integer -> duration + val o_div_int_int : integer -> integer -> integer + val o_div_rat_rat : decimal -> decimal -> decimal + val o_div_mon_mon : money -> money -> decimal + val o_div_mon_rat : money -> decimal -> money + val o_lt_int_int : integer -> integer -> bool + val o_lt_rat_rat : decimal -> decimal -> bool + val o_lt_mon_mon : money -> money -> bool + val o_lt_dur_dur : duration -> duration -> bool + val o_lt_dat_dat : date -> date -> bool + val o_lte_int_int : integer -> integer -> bool + val o_lte_rat_rat : decimal -> decimal -> bool + val o_lte_mon_mon : money -> money -> bool + val o_lte_dur_dur : duration -> duration -> bool + val o_lte_dat_dat : date -> date -> bool + val o_gt_int_int : integer -> integer -> bool + val o_gt_rat_rat : decimal -> decimal -> bool + val o_gt_mon_mon : money -> money -> bool + val o_gt_dur_dur : duration -> duration -> bool + val o_gt_dat_dat : date -> date -> bool + val o_gte_int_int : integer -> integer -> bool + val o_gte_rat_rat : decimal -> decimal -> bool + val o_gte_mon_mon : money -> money -> bool + val o_gte_dur_dur : duration -> duration -> bool + val o_gte_dat_dat : date -> date -> bool + val o_eq_int_int : integer -> integer -> bool + val o_eq_rat_rat : decimal -> decimal -> bool + val o_eq_mon_mon : money -> money -> bool + val o_eq_dur_dur : duration -> duration -> bool + val o_eq_dat_dat : date -> date -> bool + val o_fold : ('a -> 'b -> 'a) -> 'a -> 'b array -> 'a +end -val ( *$ ) : money -> decimal -> money - -val ( /$ ) : money -> money -> decimal -(** @raise Division_by_zero *) - -val ( +$ ) : money -> money -> money -val ( -$ ) : money -> money -> money -val ( ~-$ ) : money -> money -val ( =$ ) : money -> money -> bool -val ( <=$ ) : money -> money -> bool -val ( >=$ ) : money -> money -> bool -val ( <$ ) : money -> money -> bool -val ( >$ ) : money -> money -> bool - -(**{2 Integers} *) - -val ( +! ) : integer -> integer -> integer -val ( -! ) : integer -> integer -> integer -val ( ~-! ) : integer -> integer -val ( *! ) : integer -> integer -> integer - -val ( /! ) : integer -> integer -> integer -(** @raise Division_by_zero *) - -val ( =! ) : integer -> integer -> bool -val ( >=! ) : integer -> integer -> bool -val ( <=! ) : integer -> integer -> bool -val ( >! ) : integer -> integer -> bool -val ( integer -> bool - -(** {2 Decimals} *) - -val ( +& ) : decimal -> decimal -> decimal -val ( -& ) : decimal -> decimal -> decimal -val ( ~-& ) : decimal -> decimal -val ( *& ) : decimal -> decimal -> decimal - -val ( /& ) : decimal -> decimal -> decimal -(** @raise Division_by_zero *) - -val ( =& ) : decimal -> decimal -> bool -val ( >=& ) : decimal -> decimal -> bool -val ( <=& ) : decimal -> decimal -> bool -val ( >& ) : decimal -> decimal -> bool -val ( <& ) : decimal -> decimal -> bool - -(** {2 Dates} *) - -val ( +@ ) : date -> duration -> date -val ( -@ ) : date -> date -> duration -val ( =@ ) : date -> date -> bool -val ( >=@ ) : date -> date -> bool -val ( <=@ ) : date -> date -> bool -val ( >@ ) : date -> date -> bool -val ( <@ ) : date -> date -> bool - -(** {2 Durations} *) - -val ( +^ ) : duration -> duration -> duration -val ( -^ ) : duration -> duration -> duration -val ( *^ ) : duration -> integer -> duration -val ( ~-^ ) : duration -> duration -val ( =^ ) : duration -> duration -> bool - -val ( >=^ ) : duration -> duration -> bool -(** @raise UncomparableDurations *) - -val ( <=^ ) : duration -> duration -> bool -(** @raise UncomparableDurations *) - -val ( >^ ) : duration -> duration -> bool -(** @raise UncomparableDurations *) - -val ( <^ ) : duration -> duration -> bool -(** @raise UncomparableDurations *) - -(** {2 Arrays} *) - -val array_filter : ('a -> bool) -> 'a array -> 'a array -val array_length : 'a array -> integer +include module type of Oper diff --git a/runtimes/python/catala/src/catala/runtime.py b/runtimes/python/catala/src/catala/runtime.py index 1cae0d91..ef4fff58 100644 --- a/runtimes/python/catala/src/catala/runtime.py +++ b/runtimes/python/catala/src/catala/runtime.py @@ -150,7 +150,12 @@ class Money: return Money(Integer(res)) def __truediv__(self, other: 'Money') -> Decimal: - return Decimal(mpq(self.value.value / other.value.value)) + if isinstance(other, Money): + return Decimal(mpq(self.value.value / other.value.value)) + elif isinstance(other, Decimal): + return self * (1. / other.value) + else: + raise Exception("Dividing money and invalid obj") def __neg__(self: 'Money') -> 'Money': return Money(- self.value) @@ -193,8 +198,13 @@ class Date: def __add__(self, other: 'Duration') -> 'Date': return Date(self.value + other.value) - def __sub__(self, other: 'Date') -> 'Duration': - return Duration(dateutil.relativedelta.relativedelta(self.value, other.value)) + def __sub__(self, other: object) -> object: + if isinstance(other, Date): + return Duration(dateutil.relativedelta.relativedelta(self.value, other.value)) + elif isinstance(other, Duration): + return Date(self.value - other.value) + else: + raise Exception("Substracting date and invalid obj") def __lt__(self, other: 'Date') -> bool: return self.value < other.value diff --git a/tests/test_array/bad/fold_error.catala_en b/tests/test_array/bad/fold_error.catala_en index 3ba65628..1f99745e 100644 --- a/tests/test_array/bad/fold_error.catala_en +++ b/tests/test_array/bad/fold_error.catala_en @@ -12,15 +12,13 @@ scope A: ```catala-test-inline $ catala Interpret -s A -[ERROR] Error during typechecking, incompatible types: ---> integer ---> money +[ERROR] I don't know how to apply operator >= on types integer and +money -Error coming from typechecking the following expression: -┌─⯈ tests/test_array/bad/fold_error.catala_en:10.61-62: +┌─⯈ tests/test_array/bad/fold_error.catala_en:10.63-66: └──┐ 10 │ definition list_high_count equals number for m in list of (m >=$ $7) - │ ‾ + │ ‾‾‾ └─ Article Type integer coming from expression: @@ -31,10 +29,10 @@ Type integer coming from expression: └─ Article Type money coming from expression: -┌─⯈ tests/test_array/bad/fold_error.catala_en:10.63-66: +┌─⯈ tests/test_array/bad/fold_error.catala_en:10.67-69: └──┐ 10 │ definition list_high_count equals number for m in list of (m >=$ $7) - │ ‾‾‾ + │ ‾‾ └─ Article #return code 255# ``` diff --git a/tests/test_bool/bad/test_xor_with_int.catala_en b/tests/test_bool/bad/test_xor_with_int.catala_en index 7944b588..c3662a02 100644 --- a/tests/test_bool/bad/test_xor_with_int.catala_en +++ b/tests/test_bool/bad/test_xor_with_int.catala_en @@ -15,17 +15,17 @@ $ catala Typecheck --> bool Error coming from typechecking the following expression: -┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.36-38: +┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.29-31: └─┐ 8 │ definition test_var equals 10 xor 20 - │ ‾‾ + │ ‾‾ └─ 'xor' should be a boolean operator Type integer coming from expression: -┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.36-38: +┌─⯈ tests/test_bool/bad/test_xor_with_int.catala_en:8.29-31: └─┐ 8 │ definition test_var equals 10 xor 20 - │ ‾‾ + │ ‾‾ └─ 'xor' should be a boolean operator Type bool coming from expression: diff --git a/tests/test_bool/good/test_bool.catala_en b/tests/test_bool/good/test_bool.catala_en index 4d218d28..ce632b8e 100644 --- a/tests/test_bool/good/test_bool.catala_en +++ b/tests/test_bool/good/test_bool.catala_en @@ -24,7 +24,7 @@ let TestBool : in let foo1 : bool = error_empty ⟨foo () | true ⊢ - ⟨⟨bar1 >= 0 ⊢ true⟩, ⟨bar1 < 0 ⊢ false⟩ | false ⊢ + ⟨⟨bar1 >=! 0 ⊢ true⟩, ⟨bar1 = 0 ⊢ true⟩, ⟨bar < 0 ⊢ false⟩ | false ⊢ ∅ ⟩ + ⟨⟨bar >=! 0 ⊢ true⟩, ⟨bar 0 ⊢ param - 1⟩; + λ (param: integer) → ⟨b && param >! 0 ⊢ param -! 1⟩; call A[a] ``` @@ -30,7 +30,7 @@ let A = let f : integer → integer = A_in."f_in" in let f1 : integer → integer = λ (param: integer) → error_empty - ⟨f param | true ⊢ ⟨true ⊢ param + 1⟩⟩ in + ⟨f param | true ⊢ ⟨true ⊢ param +! 1⟩⟩ in A { } ``` @@ -40,7 +40,7 @@ let B = λ (B_in: B_in {"b_in": bool}) → let b : bool = B_in."b_in" in let a.f : integer → integer = - λ (param: integer) → ⟨b && param > 0 ⊢ param - 1⟩ in + λ (param: integer) → ⟨b && param >! 0 ⊢ param -! 1⟩ in let result : A {} = A (A_in { "f_in"= a.f }) in B { } ``` diff --git a/tests/test_io/good/all_io.catala_en b/tests/test_io/good/all_io.catala_en index 7b62afa9..d5d664b0 100644 --- a/tests/test_io/good/all_io.catala_en +++ b/tests/test_io/good/all_io.catala_en @@ -27,11 +27,11 @@ let A = let e : unit → integer = A_in."e_in" in let f : unit → integer = A_in."f_in" in let a : integer = error_empty ⟨true ⊢ 0⟩ in - let b : integer = error_empty ⟨true ⊢ a + 1⟩ in + let b : integer = error_empty ⟨true ⊢ a +! 1⟩ in let e1 : integer = error_empty - ⟨e () | true ⊢ ⟨true ⊢ b + c + d + 1⟩⟩ in + ⟨e () | true ⊢ ⟨true ⊢ b +! c +! d +! 1⟩⟩ in let f1 : integer = error_empty - ⟨f () | true ⊢ ⟨true ⊢ e1 + 1⟩⟩ in + ⟨f () | true ⊢ ⟨true ⊢ e1 +! 1⟩⟩ in A { "b"= b; "d"= d; "f"= f1 } ``` diff --git a/tests/test_typing/bad/err2.catala_en b/tests/test_typing/bad/err2.catala_en index 6b37f0ca..620397a5 100644 --- a/tests/test_typing/bad/err2.catala_en +++ b/tests/test_typing/bad/err2.catala_en @@ -31,10 +31,10 @@ Type decimal coming from expression: Type collection coming from expression: -┌─⯈ tests/test_typing/bad/err2.catala_en:10.22-28: +┌─⯈ tests/test_typing/bad/err2.catala_en:10.35-37: └──┐ 10 │ definition a equals number of (z ++ 1.1) / 2 - │ ‾‾‾‾‾‾ + │ ‾‾ #return code 255# ``` diff --git a/tests/test_typing/good/overload.catala_en b/tests/test_typing/good/overload.catala_en new file mode 100644 index 00000000..6e13693a --- /dev/null +++ b/tests/test_typing/good/overload.catala_en @@ -0,0 +1,68 @@ +```catala +declaration scope S: + internal i1 content integer + internal i2 content integer + internal x1 content decimal + internal x2 content decimal + internal m1 content money + internal m2 content money + internal d1 content duration + internal d2 content duration + internal t1 content date + internal t2 content date + output o_i content integer + output o_x content decimal + output o_m content money + output o_d content duration + output o_t content date + output o_b content boolean + +scope S: + definition i1 equals 1 + definition i2 equals 2 + definition x1 equals 3. + definition x2 equals 4. + definition m1 equals $5 + definition m2 equals $6 + definition d1 equals 7 day + definition d2 equals 8 day + definition t1 equals |2022-01-09| + definition t2 equals |2022-01-10| + + definition o_i equals -i1 + i2 - i1 * i2 / (i1 + i2) + definition o_x equals -x1 + x2 - x1 * x2 / (x1 + x2) + definition o_m equals -m1 + m2 - m1 * x2 / (x1 * m1 / m2) + m1 / x2 + definition o_d equals -d1 + d2 - d1 * i2 + definition o_t equals d1 + t1 + d1 + (t2 - t1) + definition o_b equals + i1 < i2 and x1 < x2 and m1 < m2 and d1 < d2 and t1 < t2 and + i1 <= i2 and x1 <= x2 and m1 <= m2 and d1 <= d2 and t1 <= t2 and + not ( + i1 > i2 or x1 > x2 or m1 > m2 or d1 > d2 or t1 > t2 or + i1 >= i2 or x1 >= x2 or m1 >= m2 or d1 >= d2 or t1 >= t2 + ) + + assertion o_i = -i1 +! i2 -! i1 *! i2 /! (i1 +! i2) + assertion o_x = -.x1 +. x2 -. x1 *. x2 /. (x1 +. x2) + assertion o_m = -$m1 +$ m2 -$ m1 *$ x2 / (m1 *$ x1 /$ m2) +$ m1 / x2 + assertion o_d = -^d1 +^ d2 -^ d1 *^ i2 + assertion o_t = t1 +@ d1 +@ (t2 -@ t1) +@ d1 + assertion o_b = + i1 ! i2 or x1 >. x2 or m1 >$ m2 or d1 >^ d2 or t1 >@ t2 or + i1 >=! i2 or x1 >=. x2 or m1 >=$ m2 or d1 >=^ d2 or t1 >=@ t2 + ) +``` + +```catala-test-inline +$ catala Interpret -s S +[RESULT] Computation successful! Results: +[RESULT] o_b = true +[RESULT] o_d = [0 years, 0 months, -13 days] +[RESULT] o_i = 1 +[RESULT] o_m = $-5.75 +[RESULT] o_t = 2022-01-24 +[RESULT] o_x = -0.71428571428571428571… +``` diff --git a/tests/test_variable_state/good/subscope.catala_en b/tests/test_variable_state/good/subscope.catala_en index a573d716..293d7808 100644 --- a/tests/test_variable_state/good/subscope.catala_en +++ b/tests/test_variable_state/good/subscope.catala_en @@ -35,8 +35,8 @@ $ catala Scopelang -s A let scope A (foo_bar: integer|context) (foo_baz: integer|internal) (foo_fizz: integer|internal|output) = let foo_bar : integer = reentrant or by default ⟨true ⊢ 1⟩; - let foo_baz : integer = ⟨true ⊢ foo_bar + 1⟩; - let foo_fizz : integer = ⟨true ⊢ foo_baz + 1⟩ + let foo_baz : integer = ⟨true ⊢ foo_bar +! 1⟩; + let foo_fizz : integer = ⟨true ⊢ foo_baz +! 1⟩ ``` ```catala-test-inline