Skip to content
Snippets Groups Projects
Commit f18799a0 authored by erwan's avatar erwan
Browse files

test: add a pseudo-potential function to test/async-unison

parent 66703f86
No related branches found
No related tags found
No related merge requests found
......@@ -10,20 +10,20 @@ let
res = (s1 = s2) or (s1 - s2 - 1) mod k = 0 or (s1 - s2 + 1) mod k = 0;
tel
-- all neigbhbors are close
function is_legitimate<<const l:int>>(State : int^pn) returns (res:bool)
var
i,j:int;
let
i = l/pn;
j = l mod pn;
j = l mod pn;
res =
with l = 0 then true
else is_legitimate<<l-1>>(State) and
(i<=j or (adjacency[l/pn][l mod pn] => is_close(State[l/pn], State[l mod pn])));
tel
 
node async_unison_oracle (Legitimate:bool; pot:real;Enab, Acti: bool^an^pn; State : int^pn; round:bool; round_nb:int)
returns (res:bool);
let
res = redge(Legitimate) => (round_nb <= diameter*card);
......@@ -34,4 +34,3 @@ let
res = false -> x and not (pre x);
tel
-- end of redge
(* Automatically generated by /home/jahier/.opam/4.10.0/bin/sasa version "4.2.8-23-gd6b73fc" ("d6b73fc")*)
(* on crevetete the 1/9/2020 at 17:26:43*)
(*sasa -reg ring.dot*)
open Algo
let is_close s1 s2 =
(* The absolute value of the difference modulo k is <= 1 *)
(s1 = s2) || P.modulo (s1 - s2 - 1) P.k = 0 || P.modulo (s1 - s2 + 1) P.k = 0
let potential = None (* None => only -sd, -cd, -lcd, -dd, or -custd are possible *)
let legitimate = None (* None => only silent configuration are legitimate *)
let fault = None (* None => the simulation stop once a legitimate configuration is reached *)
(* A configuration is legitimate when all neigbhors are close *)
let all_true = List.fold_left (&&) true
let legitimate pidl get =
let all_close (s, nl) = List.for_all (fun (n,_) -> is_close s (state n)) nl in
List.map (fun pid -> all_close (get pid)) pidl |> all_true
let legitimate = Some legitimate
let fault = None
let init_search_utils = None
let sumi l = List.fold_left (+) 0 l
let sumf l = List.fold_left (+.) 0. l
let count b = if b then 1 else 0
(* It's actually only a pseudo-potential function (i.e., it measure a
distance to the set of stable configurations, but it is not
strictly decreasing), which is ok for simulation purposes.
*)
let _pseudo_pot pidl get =
let count_behind (clock, nl) =
let nl = fst (List.split nl) in
List.map (fun n -> P.behind clock (state n)) nl |> List.map count |> sumi
in
List.map (fun pid -> count_behind(get pid)) pidl |> sumi |> float_of_int
let count b = if b then 0. else 1.
let __pseudo_pot pidl get =
let count_far (s, nl) =
List.fold_left (fun acc (n,_) -> acc +. count (is_close s (state n))) 0. nl in
List.map (fun pid -> count_far (get pid)) pidl |> sumf
let pseudo_pot pidl get =
let count_far (s, nl) =
List.fold_left (fun acc (n,_) ->
let res = (acc +. count (is_close s (state n))) in
if res>=1.0 then 1.0 else 0.0) 0. nl
in
List.map (fun pid -> count_far (get pid)) pidl |> sumf
(* *)
let potential = Some pseudo_pot
(* Time-stamp: <modified the 17/01/2023 (at 14:26) by Erwan Jahier> *)
(* Time-stamp: <modified the 07/02/2023 (at 12:06) by Erwan Jahier> *)
(* Couvreur, J., Francez, N., and Gouda, M. G. (1992) Asynchronous
unison (extended abstract). Proceedings of the 12th International
......@@ -19,7 +19,7 @@ let (enable_f: int enable_fun) =
fun c nl ->
if List.for_all (fun q -> behind c (state q)) nl then ["I(p)"] else
if List.exists (fun q -> not (behind c (state q)) &&
not (behind (state q) c)) nl
not (behind (state q) c)) nl
&& c <> 0 then ["R(p)"] else []
let (step_f: int step_fun) =
......
# Automatically generated by /home/jahier/.opam/4.14.0/bin/sasa version "v4.6.0" ("73ebb5e")
# on crevetete the 23/6/2022 at 14:36:59
# Automatically generated by /home/jahier/.opam/4.14.0/bin/sasa version "v4.9.0" ("26dce53")
# on crevetete the 27/2/2023 at 16:14:54
#sasa -l 500 ring.dot -seed 42
#seed 42
#inputs
#outputs "p1_c":int "p2_c":int "p3_c":int "p4_c":int "p5_c":int "p6_c":int "p7_c":int "Enab_p1_Ip":bool "Enab_p1_Rp":bool "Enab_p2_Ip":bool "Enab_p2_Rp":bool "Enab_p3_Ip":bool "Enab_p3_Rp":bool "Enab_p4_Ip":bool "Enab_p4_Rp":bool "Enab_p5_Ip":bool "Enab_p5_Rp":bool "Enab_p6_Ip":bool "Enab_p6_Rp":bool "Enab_p7_Ip":bool "Enab_p7_Rp":bool "p1_Ip":bool "p1_Rp":bool "p2_Ip":bool "p2_Rp":bool "p3_Ip":bool "p3_Rp":bool "p4_Ip":bool "p4_Rp":bool "p5_Ip":bool "p5_Rp":bool "p6_Ip":bool "p6_Rp":bool "p7_Ip":bool "p7_Rp":bool "legitimate":bool round:bool round_nb:int
#outputs "p1_c":int "p2_c":int "p3_c":int "p4_c":int "p5_c":int "p6_c":int "p7_c":int "Enab_p1_Ip":bool "Enab_p1_Rp":bool "Enab_p2_Ip":bool "Enab_p2_Rp":bool "Enab_p3_Ip":bool "Enab_p3_Rp":bool "Enab_p4_Ip":bool "Enab_p4_Rp":bool "Enab_p5_Ip":bool "Enab_p5_Rp":bool "Enab_p6_Ip":bool "Enab_p6_Rp":bool "Enab_p7_Ip":bool "Enab_p7_Rp":bool "p1_Ip":bool "p1_Rp":bool "p2_Ip":bool "p2_Rp":bool "p3_Ip":bool "p3_Rp":bool "p4_Ip":bool "p4_Rp":bool "p5_Ip":bool "p5_Rp":bool "p6_Ip":bool "p6_Rp":bool "p7_Ip":bool "p7_Rp":bool "legitimate":bool potential:real round:bool round_nb:int
#step 0
#outs 14 5 23 3 7 5 34 f t f t f t f t f f f t f t f t f t f t f t f f f f f f f f 0
#outs 14 5 23 3 7 5 34 f t f t f t f t f f f t f t f t f t f t f t f f f f f f f 7. f 0
#step 1
#outs 0 0 0 0 7 5 34 f f t f t f t f f f f t f t f f f f f f f f f f f f f t f f 1
#outs 0 0 0 0 7 5 34 f f t f t f t f f f f t f t f f f f f f f f f f f f f t f 5. f 1
#step 2
#outs 0 0 0 0 7 5 0 t f t f t f t f f f f f t f f f t f f f f f f f f f f f f t 2
#outs 0 0 0 0 7 5 0 t f t f t f t f f f f f t f f f t f f f f f f f f f f f f 4. t 2
#step 3
#outs 0 1 0 0 7 5 0 t f f f t f t f f f f f t f f f f f t f t f f f f f f f f f 2
#outs 0 1 0 0 7 5 0 t f f f t f t f f f f f t f f f f f t f t f f f f f f f f 4. f 2
#step 4
#outs 0 1 1 1 7 5 0 t f f f t f t f f f f f t f t f f f t f f f f f f f f f f f 2
#outs 0 1 1 1 7 5 0 t f f f t f t f f f f f t f t f f f t f f f f f f f f f f 4. f 2
#step 5
#outs 1 1 2 1 7 5 0 f f t f f f t f f f f f t f f f t f f f t f f f f f f f f f 2
#outs 1 1 2 1 7 5 0 f f t f f f t f f f f f t f f f t f f f t f f f f f f f f 4. f 2
#step 6
#outs 1 2 2 2 7 5 0 f f f f t f t f f f f f t f f f f f f f t f f f f f f f f f 2
#outs 1 2 2 2 7 5 0 f f f f t f t f f f f f t f f f f f f f t f f f f f f f f 4. f 2
#step 7
#outs 1 2 2 3 7 5 0 f f f f t f f f f f f f t f f f f f f f f f f f f f t f f f 2
#outs 1 2 2 3 7 5 0 f f f f t f f f f f f f t f f f f f f f f f f f f f t f f 4. f 2
#step 8
#outs 1 2 2 3 7 5 1 t f f f t f f f f f f f t f t f f f f f f f f f f f t f f t 3
#outs 1 2 2 3 7 5 1 t f f f t f f f f f f f t f t f f f f f f f f f f f t f f 4. t 3
#step 9
#outs 2 2 2 3 7 5 2 t f t f t f f f f f f f t f f f f f t f f f f f f f f f f f 3
#outs 2 2 2 3 7 5 2 t f t f t f f f f f f f t f f f f f t f f f f f f f f f f 4. f 3
#step 10
#outs 2 2 3 3 7 5 2 t f t f f f t f f f f f t f t f t f f f t f f f f f t f f t 4
#outs 2 2 3 3 7 5 2 t f t f f f t f f f f f t f t f t f f f t f f f f f t f f 4. t 4
#step 11
#outs 3 3 3 4 7 5 3 t f t f t f f f f f f f t f f f t f t f f f f f f f t f f t 5
#outs 3 3 3 4 7 5 3 t f t f t f f f f f f f t f f f t f t f f f f f f f t f f 4. t 5
#step 12
#outs 3 4 4 4 7 5 4 t f f f t f t f f f f f f f f f f f f f t f f f f f f f f f 5
#outs 3 4 4 4 7 5 4 t f f f t f t f f f f f f f f f f f f f t f f f f f f f f 3. f 5
#step 13
#outs 3 4 4 5 7 5 4 t f f f t f f f f f f f f f t f f f f f f f f f f f f f f f 5
#outs 3 4 4 5 7 5 4 t f f f t f f f f f f f f f t f f f f f f f f f f f f f f 3. f 5
#step 14
#outs 4 4 4 5 7 5 4 t f t f t f f f f f f f t f f f f f t f f f f f f f f f f t 6
#outs 4 4 4 5 7 5 4 t f t f t f f f f f f f t f f f f f t f f f f f f f f f f 3. t 6
#step 15
#outs 4 4 5 5 7 5 4 t f t f f f t f f f f f t f f f t f f f f f f f f f f f f f 6
#outs 4 4 5 5 7 5 4 t f t f f f t f f f f f t f f f t f f f f f f f f f f f f 3. f 6
#step 16
#outs 4 5 5 5 7 5 4 t f f f t f t f f f f f t f t f f f f f f f f f f f t f f f 6
#outs 4 5 5 5 7 5 4 t f f f t f t f f f f f t f t f f f f f f f f f f f t f f 3. f 6
#step 17
#outs 5 5 5 5 7 5 5 t f t f t f t f f f t f t f t f f f f f f f f f f f t f f t 7
#outs 5 5 5 5 7 5 5 t f t f t f t f f f t f t f t f f f f f f f f f f f t f f 3. t 7
#step 18
#outs 6 5 5 5 7 5 6 f f t f t f t f f f t f f f f f t f t f t f f f t f f f f f 7
#outs 6 5 5 5 7 5 6 f f t f t f t f f f t f f f f f t f t f t f f f t f f f f 3. f 7
#step 19
#outs 6 6 6 6 7 6 6 t f t f t f t f f f t f t f f f t f t f t f f f t f f f f t 8
#outs 6 6 6 6 7 6 6 t f t f t f t f f f t f t f f f t f t f t f f f t f f f t 0. t 7
#step 20
#outs 6 7 7 7 7 7 6 t f f f t f t f t f f f t f t f f f f f t f t f f f f f f f 8
#This algo reached a legitimate configuration after 36 moves, 19 steps, 6 rounds.
#step 21
#outs 7 7 7 8 8 7 6 f f t f t f f f f f f f t f f f t f t f f f f f f f t f f f 8
#step 22
#outs 7 8 8 8 8 7 7 t f f f t f t f f f t f t f t f f f t f f f f f t f f f f t 9
#step 23
#outs 8 8 9 8 8 8 7 f f t f f f t f t f f f t f f f f f f f t f f f f f t f f f 9
#step 24
#outs 8 8 9 9 8 8 8 t f t f f f f f t f t f t f t f t f f f f f t f f f t f f t 10
#step 25
#outs 9 9 9 9 9 8 9 t f t f t f t f f f t f f f t f t f t f t f f f t f f f f f 10
#step 26
#outs 10 10 10 10 9 9 9 f f t f t f f f t f t f t f f f t f t f f f t f f f t f f t 11
#step 27
#outs 10 11 11 10 10 9 10 t f f f f f t f f f t f f f t f f f f f f f f f f f f f f f 11
#step 28
#outs 11 11 11 10 10 9 10 f f t f f f t f f f t f f f f f t f f f f f f f f f f f f f 11
#step 29
#outs 11 12 11 10 10 9 10 f f f f f f t f f f t f f f f f f f f f t f f f t f f f f f 11
#step 30
#outs 11 12 11 11 10 10 10 f f f f t f f f t f t f t f f f f f t f f f f f f f t f f t 12
#step 31
#outs 11 12 12 11 10 10 11 t f f f f f f f t f t f f f t f f f f f f f f f f f f f f f 12
#step 32
#outs 12 12 12 11 10 10 11 f f t f f f f f t f t f f f f f t f f f f f f f f f f f f f 12
#step 33
#outs 12 13 12 11 10 10 11 f f f f f f f f t f t f f f f f f f f f f f f f t f f f f f 12
#step 34
#outs 12 13 12 11 10 11 11 f f f f f f f f t f f f t f f f f f f f f f t f f f t f f f 12
#step 35
#outs 12 13 12 11 11 11 12 t f f f f f t f t f t f f f t f f f f f f f t f f f f f f t 13
#step 36
#outs 13 13 12 11 12 11 12 f f f f f f t f f f t f f f f f f f f f f f f f t f f f f f 13
#step 37
#outs 13 13 12 11 12 12 12 f f f f f f t f f f t f t f f f f f f f f f f f t f t f f f 13
#step 38
#outs 13 13 12 11 12 13 13 t f f f f f t f f f f f t f f f f f f f t f f f f f t f f f 13
#step 39
#outs 13 13 12 12 12 13 14 t f f f t f t f t f f f f f t f f f t f f f f f f f f f f t 14
#step 40
#outs 14 13 13 12 12 13 14 f f t f f f t f t f f f f f f f t f f f t f f f f f f f f f 14
#step 41
#outs 14 14 13 13 12 13 14 t f f f t f f f t f f f f f t f f f f f f f t f f f f f f f 14
#step 42
#outs 15 14 13 13 13 13 14 f f f f t f t f t f t f f f f f f f f f f f t f t f f f f t 15
#step 43
#outs 15 14 13 13 14 14 14 f f f f t f t f f f t f t f f f f f t f t f f f f f t f f f 15
#step 44
#outs 15 14 14 14 14 14 15 f f t f t f t f t f t f f f f f t f t f f f f f t f f f f t 16
#step 45
#outs 15 15 15 14 14 15 15 t f t f f f t f t f f f t f f f f f f f f f f f f f t f f f 16
#step 46
#outs 15 15 15 14 14 15 16 t f t f f f t f t f f f f f f f f f f f t f t f f f f f f f 16
#step 47
#outs 15 15 15 15 15 15 16 t f t f t f t f t f t f f f t f f f t f t f t f f f f f f t 17
#step 48
#outs 16 15 16 16 16 15 16 f f t f f f t f f f t f f f f f t f f f f f f f f f f f f f 17
#step 49
#outs 16 16 16 16 16 15 16 t f t f t f t f f f t f f f f f t f f f t f f f t f f f f f 17
#step 50
#outs 16 17 16 17 16 16 16 t f f f t f f f t f t f t f t f f f f f f f f f f f t f f t 18
#step 51
#outs 17 17 16 17 16 16 17 t f f f t f f f t f t f f f t f f f f f f f f f t f f f f f 18
#step 52
#outs 18 17 16 17 16 17 17 f f f f t f f f t f f f t f f f f f t f f f t f f f f f f f 18
#step 53
#outs 18 17 17 17 17 17 17 f f t f t f t f t f t f t f f f f f t f t f t f t f t f f t 19
#step 54
#outs 18 17 18 18 18 18 18 f f t f f f t f t f t f t f f f t f f f t f t f f f f f f f 19
#step 55
#outs 18 18 18 19 19 18 18 t f t f t f f f f f t f t f f f t f f f f f f f f f t f f t 20
#step 56
#outs 18 19 18 19 19 18 19 t f f f t f f f f f t f f f f f f f t f f f f f t f f f f f 20
#step 57
#outs 18 19 19 19 19 19 19 t f f f t f t f t f t f f f f f f f t f f f t f f f f f f f 20
#step 58
#outs 18 19 20 19 20 19 19 t f f f f f t f f f t f f f t f f f f f f f f f t f f f f f 20
#step 59
#outs 19 19 20 19 20 20 19 t f t f f f t f f f f f t f t f t f f f t f f f f f t f f t 21
#step 60
#outs 20 20 20 20 20 20 20 t f t f t f t f t f t f t f t f f f t f f f f f f f f f f t 22
#step 61
#outs 21 20 21 20 20 20 20 f f t f f f t f t f t f t f f f f f f f t f f f f f t f f f 22
#step 62
#outs 21 20 21 21 20 20 21 f f t f f f f f t f t f f f f f f f f f f f t f t f f f f f 22
#step 63
#outs 21 20 21 21 21 21 21 f f t f f f t f t f t f t f f f f f f f t f f f f f t f f f 22
#step 64
#outs 21 20 21 22 21 21 22 f f t f f f f f t f t f f f f f f f f f f f t f f f f f f f 22
#step 65
#outs 21 20 21 22 22 21 22 f f t f f f f f f f t f f f f f t f f f f f f f t f f f f f 22
#step 66
#outs 21 21 21 22 22 22 22 t f t f t f f f t f t f f f f f t f f f f f t f t f f f f t 23
#step 67
#outs 21 22 21 22 23 23 22 t f f f t f f f f f f f f f t f f f t f f f f f f f f f f f 23
#step 68
#outs 22 22 22 22 23 23 22 t f t f t f t f f f f f t f t f t f t f f f f f f f t f f t 24
#step 69
#outs 23 23 23 22 23 23 23 t f t f f f t f f f t f t f f f f f f f t f f f f f f f f f 24
#step 70
#outs 23 23 23 23 23 23 23 t f t f t f t f t f t f t f f f f f t f f f t f t f t f f t 25
#step 71
#outs 23 23 24 23 24 24 24 t f t f f f t f f f t f f f f f t f f f f f f f f f f f f f 25
#step 72
#outs 23 24 24 23 24 24 24 t f f f f f t f f f t f f f t f f f f f t f f f t f f f f f 25
#step 73
#outs 24 24 24 24 24 25 24 t f t f t f t f t f f f t f t f t f t f f f t f f f f f f t 26
#step 74
#outs 25 25 25 24 25 25 24 f f t f f f t f f f f f t f f f t f f f f f f f f f f f f f 26
#step 75
#outs 25 26 25 24 25 25 24 f f f f f f t f f f f f t f f f f f f f t f f f f f t f f f 26
#step 76
#outs 25 26 25 25 25 25 25 t f f f t f t f t f t f t f t f f f f f t f f f t f f f f t 27
#step 77
#outs 26 26 25 26 25 26 25 f f f f t f f f t f f f t f f f f f t f f f t f f f t f f f 27
#step 78
#outs 26 26 26 26 26 26 26 t f t f t f t f t f t f t f t f f f t f t f t f f f f f f t 28
#step 79
#outs 27 26 27 27 27 26 26 f f t f f f t f f f t f t f f f t f f f f f f f t f f f f f 28
#step 80
#outs 27 27 27 27 27 27 26 f f t f t f t f t f f f t f f f t f t f t f t f f f t f f f 28
#step 81
#outs 27 28 28 28 28 27 27 t f f f t f t f f f t f t f t f f f t f f f f f t f f f f t 29
#step 82
#outs 28 28 29 28 28 28 27 f f t f f f t f t f f f t f f f t f f f t f f f f f t f f f 29
#step 83
#outs 28 29 29 29 28 28 28 t f f f t f f f t f t f t f f f f f f f f f f f t f f f f t 30
#step 84
#outs 28 29 29 29 28 29 28 t f f f t f f f t f f f t f f f f f t f f f t f f f t f f f 30
#step 85
#outs 28 29 30 29 29 29 29 t f f f f f t f t f t f f f f f f f f f t f t f t f f f f f 30
#step 86
#outs 28 29 30 30 30 30 29 t f f f f f t f t f f f f f t f f f f f f f t f f f f f f f 30
#step 87
#outs 29 29 30 30 31 30 29 t f t f f f t f f f f f t f t f t f f f t f f f f f f f f t 31
#step 88
#outs 30 30 30 31 31 30 29 f f t f t f f f f f f f t f f f t f t f f f f f f f t f f f 31
#step 89
#outs 30 31 31 31 31 30 30 t f f f t f t f f f t f t f f f f f t f t f f f t f t f f t 32
#step 90
#outs 30 31 32 32 31 31 31 t f f f f f f f t f t f f f t f f f f f f f t f f f f f f f 32
#step 91
#outs 31 31 32 32 32 31 31 t f t f f f t f f f t f t f f f t f f f f f f f t f t f f t 33
#step 92
#outs 31 32 32 32 32 32 32 t f f f t f t f t f t f f f f f f f t f f f f f f f f f f f 33
#step 93
#outs 31 32 33 32 32 32 32 t f f f f f t f t f t f f f t f f f f f t f t f f f f f f f 33
#step 94
#outs 32 32 33 33 33 32 32 t f t f f f t f f f t f t f t f t f f f t f f f t f t f f t 34
#step 95
#outs 33 33 33 34 33 33 33 t f t f t f f f t f t f t f t f f f t f f f f f t f f f f t 35
#step 96
#outs 34 33 34 34 33 34 33 f f t f f f f f t f f f t f f f t f f f f f t f f f f f f f 35
#step 97
#outs 34 34 34 34 34 34 33 f f t f t f t f t f f f t f f f f f f f f f f f f f t f f f 35
#step 98
#outs 34 34 34 34 34 34 34 t f t f t f t f t f t f t f t f t f t f f f t f t f t f f t 36
#step 99
#outs 35 35 35 34 35 35 35 t f t f f f t f f f t f t f f f t f f f f f f f t f t f f f 36
#step 100
#outs 35 36 35 34 35 36 36 t f f f f f t f f f f f f f t f f f f f f f f f f f f f f f 36
#step 101
#outs 36 36 35 34 35 36 36 t f f f f f t f f f f f t f t f f f f f f f f f f f t f f f 36
#step 102
#outs 37 36 35 34 35 36 37 f f f f f f t f f f f f f f f f f f f f t f f f f f f f f f 36
#step 103
#outs 37 36 35 35 35 36 37 f f f f t f t f t f f f f f f f f f t f t f t f f f f f f t 37
#step 104
#outs 37 36 36 36 36 36 37 f f t f t f t f t f t f f f f f f f f f t f f f f f f f f t 38
#step 105
#outs 37 36 36 37 36 36 37 f f t f t f f f t f t f f f f f t f t f f f f f f f f f f f 38
#step 106
#outs 37 37 37 37 36 36 37 t f t f t f f f t f t f f f t f f f f f f f f f f f f f f f 38
#step 107
#outs 38 37 37 37 36 36 37 f f t f t f f f t f t f f f f f f f f f f f t f t f f f f f 38
#step 108
#outs 38 37 37 37 37 37 37 f f t f t f t f t f t f t f f f t f f f t f f f t f t f f t 39
#step 109
#outs 38 38 37 38 37 38 38 t f f f t f f f t f f f t f f f f f f f f f t f f f f f f f 39
#step 110
#outs 38 38 37 38 38 38 38 t f f f t f f f t f t f t f f f f f f f f f f f t f t f f f 39
#step 111
#outs 38 38 37 38 38 39 39 t f f f t f f f t f f f f f t f f f t f f f f f f f f f f f 39
#step 112
#outs 39 38 38 38 38 39 39 f f t f t f t f t f f f t f f f f f t f t f f f f f f f f t 40
#step 113
#outs 39 38 39 39 38 39 39 f f t f f f f f t f f f t f f f t f f f f f t f f f t f f f 40
#step 114
#outs 39 39 39 39 39 39 40 t f t f t f t f t f t f f f t f f f t f t f f f t f f f f t 41
#step 115
#outs 40 39 40 40 39 40 40 f f t f f f f f t f f f t f f f t f f f f f f f f f f f f f 41
#step 116
#outs 40 40 40 40 39 40 40 t f t f t f f f t f f f t f f f t f t f f f t f f f t f f f 41
#step 117
#outs 40 41 41 40 40 40 41 t f f f f f t f t f t f f f f f f f f f t f f f t f f f f t 42
#step 118
#outs 40 41 41 41 40 41 41 t f f f t f f f t f f f f f f f f f f f f f t f f f f f f f 42
#step 119
#outs 40 41 41 41 41 41 41 t f f f t f t f t f t f f f f f f f t f t f t f f f f f f f 42
#step 120
#outs 40 41 42 42 42 41 41 t f f f f f t f f f t f f f t f f f f f f f f f t f f f f f 42
#step 121
#outs 41 41 42 42 42 42 41 t f t f f f t f t f f f t f f f f f f f t f t f f f t f f t 43
#step 122
#outs 41 41 42 43 43 42 42 t f t f f f f f f f t f f f f f f f f f f f f f t f f f f f 43
#step 123
#outs 41 41 42 43 43 43 42 t f t f f f f f t f f f f f f f t f f f f f t f f f f f f f 43
#step 124
#outs 41 42 42 43 44 43 42 t f f f t f f f f f f f f f f f f f t f f f f f f f f f f f 43
#step 125
#outs 41 42 43 43 44 43 42 t f f f f f t f f f f f f f f f f f f f t f f f f f f f f f 43
#step 126
#outs 41 42 43 44 44 43 42 t f f f f f f f f f f f f f t f f f f f f f f f f f f f f f 43
#step 127
#outs 42 42 43 44 44 43 42 t f t f f f f f f f f f t f f f t f f f f f f f f f t f f t 44
#step 128
#outs 42 43 43 44 44 43 43 t f f f t f f f f f t f f f t f f f t f f f f f t f f f f f 44
#step 129
#outs 43 43 44 44 44 44 43 t f t f f f t f t f f f t f t f t f f f t f t f f f t f f t 45
#step 130
#outs 44 44 44 45 45 44 44 t f t f t f f f f f t f t f t f f f f f f f f f t f t f f t 46
#step 131
#outs 45 44 44 45 45 45 45 f f t f t f f f t f t f t f f f t f f f f f t f t f f f f f 46
#step 132
#outs 45 45 44 45 46 46 45 t f f f t f f f f f f f t f t f f f t f f f f f f f f f f f 46
#step 133
#outs 46 45 45 45 46 46 45 f f t f t f t f f f f f t f f f t f f f f f f f f f f f f t 47
#step 134
#outs 46 46 45 45 46 46 45 f f f f t f t f f f f f t f f f f f f f f f f f f f t f f f 47
#step 135
#outs 46 46 45 45 46 46 46 t f f f t f t f f f t f t f f f f f f f f f f f f f t f f f 47
#step 136
#outs 46 46 45 45 46 46 47 t f f f t f t f f f t f f f f f f f t f t f f f t f f f f f 47
#step 137
#outs 46 46 46 46 46 47 47 t f t f t f t f t f f f f f t f f f f f t f t f f f f f f t 48
#step 138
#outs 47 46 46 47 47 47 47 f f t f t f f f t f t f t f f f t f t f f f f f t f f f f f 48
#step 139
#outs 47 47 47 47 47 48 47 t f t f t f t f t f f f t f t f f f f f f f t f f f f f f t 49
#step 140
#outs 48 47 47 47 48 48 47 f f t f t f t f f f f f t f f f f f t f t f f f f f f f f f 49
#step 141
#outs 48 47 48 48 48 48 47 f f t f f f t f t f f f t f f f t f f f f f t f f f f f f f 49
#step 142
#outs 48 48 48 48 49 48 47 f f t f t f t f f f f f t f f f t f t f t f f f f f f f f f 49
#step 143
#outs 48 49 49 49 49 48 47 f f f f t f t f f f f f t f f f f f f f t f f f f f f f f f 49
#step 144
#outs 48 49 49 0 49 48 47 f f f f t f f f f f f f t f f f f f f f f f f f f f t f f f 49
#step 145
#outs 48 49 49 0 49 48 48 t f f f t f f f f f t f t f f f f f t f f f f f f f t f f t 50
#step 146
#outs 48 49 0 0 49 48 49 t f f f f f f f f f t f f f f f f f f f f f f f t f f f f f 50
#step 147
#outs 48 49 0 0 49 49 49 t f f f f f f f t f t f f f f f f f f f f f t f f f f f f f 50
#step 148
#outs 48 49 0 0 0 49 49 t f f f f f t f f f t f f f t f f f f f t f f f t f f f f f 50
#step 149
#outs 49 49 0 1 0 0 49 t f t f f f f f t f f f t f t f t f f f f f f f f f f f f t 51
#step 150
#outs 0 0 0 1 0 0 49 f f t f t f f f t f f f t f f f t f t f f f t f f f f f f f 51
#step 151
#outs 0 1 1 1 1 0 49 f f f f t f t f f f f f t f f f f f f f t f f f f f t f f f 51
#step 152
#outs 0 1 1 2 1 0 0 t f f f t f f f f f t f t f t f f f f f f f f f f f t f f t 52
#step 153
#outs 1 1 1 2 1 0 1 t f t f t f f f f f t f f f t f t f t f f f f f f f f f f f 52
#step 154
#outs 2 2 2 2 1 0 1 f f t f t f f f f f t f f f f f t f t f f f f f t f f f f f 52
#step 155
#outs 2 3 3 2 1 1 1 f f f f f f f f t f t f t f f f f f f f f f f f f f t f f t 53
#step 156
#outs 2 3 3 2 1 1 2 t f f f f f f f t f t f f f t f f f f f f f t f t f f f f f 53
#step 157
#outs 3 3 3 2 2 2 2 f f t f f f t f t f t f t f f f t f f f t f t f f f f f f t 54
#step 158
#outs 3 4 3 3 3 2 2 f f f f t f t f f f t f t f f f f f f f f f f f t f t f f f 54
#step 159
#outs 3 4 3 3 3 3 3 t f f f t f t f t f t f t f f f f f f f f f t f f f f f f t 55
#step 160
#outs 3 4 3 3 4 3 3 t f f f t f t f f f t f t f t f f f f f f f f f t f f f f f 55
#step 161
#outs 4 4 3 3 4 4 3 f f f f t f t f f f f f t f f f f f t f t f f f f f t f f f 55
#step 162
#outs 4 4 4 4 4 4 4 t f t f t f t f t f t f t f t f t f f f t f t f t f t f f t 56
#step 163
#outs 5 5 4 5 5 5 5 t f f f t f f f t f t f t f f f f f t f f f f f t f f f f f 56
#step 164
#outs 5 5 5 5 5 6 5 t f t f t f t f t f f f t f f f f f t f f f f f f f f f f t 57
#step 165
#outs 5 5 6 5 5 6 5 t f t f f f t f t f f f t f f f f f f f f f t f f f f f f f 57
#step 166
#outs 5 5 6 5 6 6 5 t f t f f f t f f f f f t f t f t f f f t f f f f f f f f f 57
#step 167
#outs 6 6 6 6 6 6 5 f f t f t f t f t f f f t f f f t f t f t f f f f f t f f f 57
#step 168
#outs 6 7 7 7 6 6 6 t f f f t f f f t f t f t f f f f f f f f f t f f f f f f t 58
#step 169
#outs 6 7 7 7 7 6 6 t f f f t f t f f f t f t f t f f f t f t f f f f f f f f f 58
#step 170
#outs 7 7 8 8 7 6 6 f f t f f f f f f f t f t f f f t f f f f f f f f f t f f f 58
#step 171
#outs 7 8 8 8 7 6 7 t f f f t f f f f f t f f f t f f f t f f f f f t f f f f f 58
#step 172
#outs 8 8 9 8 7 7 7 f f t f f f f f t f t f t f f f t f f f f f f f t f f f f t 59
#step 173
#outs 8 9 9 8 7 8 7 f f f f f f f f t f f f t f f f f f f f f f t f f f t f f f 59
#step 174
#outs 8 9 9 8 8 8 8 t f f f f f t f t f t f t f t f f f f f t f t f f f t f f t 60
#step 175
#outs 9 9 9 9 9 8 9 t f t f t f t f f f t f f f t f t f f f f f f f t f f f f f 60
#step 176
#outs 10 10 9 9 9 9 9 f f f f t f t f t f t f t f f f f f f f f f t f t f t f f t 61
#step 177
#outs 10 10 9 9 10 10 10 t f f f t f t f f f t f t f t f f f f f t f f f t f t f f f 61
#step 178
#outs 11 10 9 10 10 11 11 f f f f t f f f t f f f t f f f f f f f f f t f f f f f f f 61
#step 179
#outs 11 10 9 10 11 11 11 f f f f t f f f f f t f t f f f f f f f f f f f t f t f f f 61
#step 180
#outs 11 10 9 10 11 12 12 f f f f t f f f f f f f f f f f f f t f f f f f f f f f f f 61
#step 181
#outs 11 10 10 10 11 12 12 f f t f t f t f f f f f f f f f f f t f t f f f f f f f f t 62
#step 182
#outs 11 10 11 11 11 12 12 f f t f f f t f t f f f f f f f t f f f t f t f f f f f f f 62
#step 183
#outs 11 11 11 12 12 12 12 t f t f t f f f t f t f f f f f f f t f f f f f f f f f f t 63
#step 184
#outs 11 11 12 12 12 12 12 t f t f f f t f t f t f f f t f t f f f f f t f t f f f f f 63
#step 185
#outs 12 12 12 12 13 13 12 t f t f t f t f f f f f t f t f t f t f f f f f f f f f f t 64
#step 186
#outs 13 13 13 12 13 13 12 f f t f f f t f f f f f t f f f t f f f f f f f f f f f f f 64
#step 187
#outs 13 14 13 12 13 13 12 f f f f f f t f f f f f t f f f f f f f f f f f f f t f f f 64
#step 188
#outs 13 14 13 12 13 13 13 t f f f f f t f f f t f t f t f f f f f f f f f f f f f f f 64
#step 189
#outs 14 14 13 12 13 13 13 f f f f f f t f f f t f t f f f f f f f t f f f f f t f f f 64
#step 190
#outs 14 14 13 13 13 13 14 t f f f t f t f t f t f f f t f f f t f t f f f t f f f f t 65
#step 191
#outs 15 14 14 14 13 14 14 f f t f t f f f t f f f t f f f f f t f f f t f f f t f f f 65
#step 192
#outs 15 14 15 14 14 14 15 f f t f f f t f t f t f f f f f f f f f t f t f f f f f f t 66
#step 193
#outs 15 14 15 15 15 14 15 f f t f f f t f f f t f f f f f t f f f f f f f f f f f f f 66
#step 194
#outs 15 15 15 15 15 14 15 t f t f t f t f f f t f f f f f f f t f t f f f t f f f f f 66
#step 195
#outs 15 15 16 16 15 15 15 t f t f f f f f t f t f t f f f t f f f f f f f f f f f f t 67
#step 196
#outs 15 16 16 16 15 15 15 t f f f t f f f t f t f t f t f f f t f f f t f t f t f f f 67
#step 197
#outs 16 16 17 16 16 16 16 t f t f f f t f t f t f t f f f f f f f t f f f f f f f f t 68
#step 198
#outs 16 16 17 17 16 16 16 t f t f f f f f t f t f t f t f t f f f f f f f f f f f f f 68
#step 199
#outs 17 17 17 17 16 16 16 f f t f t f f f t f t f t f f f t f t f f f t f f f f f f f 68
#step 200
#outs 17 18 18 17 17 16 16 f f f f f f t f f f t f t f f f f f f f f f f f t f t f f f 68
#step 201
#outs 17 18 18 17 17 17 17 t f f f f f t f t f t f t f t f f f f f t f t f t f t f f t 69
#step 202
#outs 18 18 18 18 18 18 18 t f t f t f t f t f t f t f t f f f f f f f f f f f t f f t 70
#step 203
#outs 19 18 18 18 18 18 19 f f t f t f t f t f t f f f f f t f t f t f t f t f f f f f 70
#step 204
#outs 19 19 19 19 19 19 19 t f t f t f t f t f t f t f t f f f t f f f t f t f f f f t 71
#step 205
#outs 20 19 20 19 20 20 19 f f t f f f t f f f f f t f f f f f f f f f f f f f t f f f 71
#step 206
#outs 20 19 20 19 20 20 20 f f t f f f t f f f t f t f f f f f f f t f f f f f t f f f 71
#step 207
#outs 20 19 20 20 20 20 21 f f t f f f t f t f t f f f f f t f f f f f t f f f f f f f 71
#step 208
#outs 20 20 20 20 21 20 21 t f t f t f t f f f t f f f f f t f t f t f f f f f f f f t 72
#step 209
#outs 20 21 21 21 21 20 21 t f f f t f t f f f t f f f t f f f t f t f f f t f f f f f 72
#step 210
#outs 21 21 22 22 21 21 21 t f t f f f f f t f t f t f t f t f f f f f f f t f f f f t 73
#step 211
#outs 22 22 22 22 21 22 21 f f t f t f f f t f f f t f f f t f t f f f f f f f t f f f 73
#step 212
#outs 22 23 23 22 21 22 22 t f f f f f f f t f f f t f t f f f f f f f f f f f t f f f 73
#step 213
#outs 23 23 23 22 21 22 23 t f t f f f f f t f f f f f t f t f f f f f t f f f f f f f 73
#step 214
#outs 24 24 23 22 22 22 23 f f f f f f t f t f t f f f f f f f f f t f t f t f f f f t 74
#step 215
#outs 24 24 23 23 23 23 23 f f f f t f t f t f t f t f f f f f t f t f t f f f f f f t 75
#step 216
#outs 24 24 24 24 24 23 23 f f t f t f t f f f t f t f f f f f t f f f f f f f f f f f 75
#step 217
#outs 24 24 25 24 24 23 23 f f t f f f t f f f t f t f f f t f f f t f f f t f f f f f 75
#step 218
#outs 24 25 25 25 24 24 23 f f f f t f f f t f f f t f f f f f f f f f t f f f f f f f 75
#step 219
#outs 24 25 25 25 25 24 23 f f f f t f t f f f f f t f f f f f f f t f f f f f t f f f 75
#step 220
#outs 24 25 25 26 25 24 24 t f f f t f f f f f t f t f t f f f f f f f f f f f f f f t 76
#step 221
#outs 25 25 25 26 25 24 24 f f t f t f f f f f t f t f f f t f f f f f f f f f t f f f 76
#step 222
#outs 25 26 25 26 25 24 25 t f f f t f f f f f t f f f f f f f t f f f f f t f f f f f 76
#step 223
#outs 25 26 26 26 25 25 25 t f f f t f f f t f t f t f t f f f t f f f t f f f t f f t 77
#step 224
#outs 26 26 27 26 26 25 26 t f t f f f t f f f t f f f f f t f f f t f f f f f f f f f 77
#step 225
#outs 26 27 27 27 26 25 26 t f f f t f f f f f t f f f t f f f f f f f f f f f f f f f 77
#step 226
#outs 27 27 27 27 26 25 26 f f t f t f f f f f t f f f f f f f f f f f f f t f f f f f 77
#step 227
#outs 27 27 27 27 26 26 26 f f t f t f f f t f t f t f f f t f f f f f f f f f f f f t 78
#step 228
#outs 27 28 27 27 26 26 26 f f f f t f f f t f t f t f f f f f t f f f t f f f f f f f 78
#step 229
#outs 27 28 28 27 27 26 26 f f f f f f t f f f t f t f f f f f f f t f f f t f f f f f 78
#step 230
#outs 27 28 28 28 27 27 26 f f f f t f f f t f f f t f f f f f f f f f t f f f t f f f 78
#step 231
#outs 27 28 28 28 28 27 27 t f f f t f t f f f t f t f f f f f t f t f f f f f t f f t 79
#step 232
#outs 27 28 29 29 28 27 28 t f f f f f f f f f t f f f t f f f f f f f f f f f f f f f 79
#step 233
#outs 28 28 29 29 28 27 28 t f t f f f f f f f t f f f t f f f f f f f f f t f f f f f 79
#step 234
#outs 29 28 29 29 28 28 28 f f t f f f f f t f t f t f f f t f f f f f f f t f f f f t 80
#step 235
#outs 29 29 29 29 28 29 28 f f t f t f f f t f f f t f f f f f f f f f t f f f f f f f 80
#step 236
#outs 29 29 29 29 29 29 28 f f t f t f t f t f f f t f f f t f t f t f t f f f f f f f 80
#step 237
#outs 29 30 30 30 30 29 28 f f f f t f t f f f f f t f f f f f t f f f f f f f f f f f 80
#step 238
#outs 29 30 31 30 30 29 28 f f f f f f t f f f f f t f f f f f f f f f f f f f t f f f 80
#step 239
#outs 29 30 31 30 30 29 29 t f f f f f t f f f t f t f f f f f f f t f f f t f f f f t 81
#step 240
#outs 29 30 31 31 30 30 29 t f f f f f f f t f f f t f t f f f f f f f t f f f t f f f 81
#step 241
#outs 30 30 31 31 31 30 30 t f t f f f t f f f t f t f t f f f f f f f f f t f t f f t 82
#step 242
#outs 31 30 31 31 31 31 31 f f t f f f t f t f t f t f f f t f f f t f f f f f f f f f 82
#step 243
#outs 31 31 31 32 31 31 31 t f t f t f f f t f t f t f f f f f t f f f t f f f f f f t 83
#step 244
#outs 31 31 32 32 32 31 31 t f t f f f t f f f t f t f t f f f f f f f f f t f f f f f 83
#step 245
#outs 32 31 32 32 32 32 31 f f t f f f t f t f f f t f f f t f f f f f f f f f t f f f 83
#step 246
#outs 32 32 32 32 32 32 32 t f t f t f t f t f t f t f f f f f t f f f f f t f f f f t 84
#step 247
#outs 32 32 33 32 32 33 32 t f t f f f t f t f f f t f t f f f f f t f t f f f t f f f 84
#step 248
#outs 33 32 33 33 33 33 33 f f t f f f t f t f t f t f f f f f f f f f t f f f f f f f 84
#step 249
#outs 33 32 33 33 34 33 33 f f t f f f t f f f t f t f f f t f f f t f f f f f f f f f 84
#step 250
#outs 33 33 33 34 34 33 33 t f t f t f f f f f t f t f t f t f t f f f f f f f f f f t 85
#step 251
#outs 34 34 34 34 34 33 33 f f t f t f t f f f t f t f f f t f t f f f f f f f t f f f 85
#step 252
#outs 34 35 35 34 34 33 34 t f f f f f t f f f t f f f f f f f f f t f f f t f f f f f 85
#step 253
#outs 34 35 35 35 34 34 34 t f f f t f f f t f t f t f t f f f t f f f t f f f t f f t 86
#step 254
#outs 35 35 36 35 35 34 35 t f t f f f t f f f t f f f f f f f f f t f f f t f f f f f 86
#step 255
#outs 35 35 36 36 35 35 35 t f t f f f f f t f t f t f f f t f f f f f f f f f t f f t 87
#step 256
#outs 35 36 36 36 35 35 36 t f f f t f f f t f t f f f f f f f t f f f t f t f f f f f 87
#step 257
#outs 35 36 37 36 36 36 36 t f f f f f t f t f t f f f t f f f f f f f t f f f f f f f 87
#step 258
#outs 36 36 37 36 37 36 36 t f t f f f t f f f t f t f t f f f f f t f f f t f f f f t 88
#step 259
#outs 37 36 37 37 37 37 36 f f t f f f t f t f f f t f f f f f f f f f t f f f f f f f 88
#step 260
#outs 37 36 37 37 38 37 36 f f t f f f t f f f f f t f f f t f f f t f f f f f t f f f 88
#step 261
#outs 37 37 37 38 38 37 37 t f t f t f f f f f t f t f f f t f t f f f f f f f f f f t 89
#step 262
#outs 37 38 38 38 38 37 37 t f f f t f t f f f t f t f t f f f t f t f f f t f f f f f 89
#step 263
#outs 38 38 39 39 38 38 37 f f t f f f f f t f f f t f f f f f f f f f t f f f f f f f 89
#step 264
#outs 38 38 39 39 39 38 37 f f t f f f t f f f f f t f f f t f f f t f f f f f f f f f 89
#step 265
#outs 38 39 39 40 39 38 37 f f f f t f f f f f f f t f f f f f t f f f f f f f f f f f 89
#step 266
#outs 38 39 40 40 39 38 37 f f f f f f f f f f f f t f f f f f f f f f f f f f t f f f 89
#step 267
#outs 38 39 40 40 39 38 38 t f f f f f f f f f t f t f t f f f f f f f f f f f f f f t 90
#step 268
#outs 39 39 40 40 39 38 38 f f t f f f f f f f t f t f f f t f f f f f f f t f f f f f 90
#step 269
#outs 39 40 40 40 39 39 38 f f f f t f f f t f f f t f f f f f t f f f f f f f t f f f 90
#step 270
#outs 39 40 41 40 39 39 39 t f f f f f f f t f t f t f t f f f f f f f f f t f t f f t 91
#step 271
#outs 40 40 41 40 39 40 40 t f t f f f f f t f f f t f f f t f f f f f f f f f f f f f 91
#step 272
#outs 40 41 41 40 39 40 40 t f f f f f f f t f f f t f t f f f f f f f t f f f f f f f 91
#step 273
#outs 41 41 41 40 40 40 40 f f t f f f t f t f t f t f f f f f f f t f f f t f f f f t 92
#step 274
#outs 41 41 41 41 40 41 40 f f t f t f f f t f f f t f f f f f f f f f t f f f f f f f 92
#step 275
#outs 41 41 41 41 41 41 40 f f t f t f t f t f f f t f f f t f t f t f f f f f t f f f 92
#step 276
#outs 41 42 42 42 41 41 41 t f f f t f f f t f t f t f t f f f f f f f t f t f f f f t 93
#step 277
#outs 42 42 42 42 42 42 41 f f t f t f t f t f f f t f f f t f f f f f t f f f f f f f 93
#step 278
#outs 42 43 42 42 43 42 41 f f f f t f t f f f f f t f f f f f t f t f f f f f t f f f 93
#step 279
#outs 42 43 43 43 43 42 42 t f f f t f t f f f t f t f f f f f f f t f f f f f t f f t 94
#step 280
#outs 42 43 43 44 43 42 43 t f f f t f f f f f t f f f t f f f t f f f f f t f f f f f 94
#step 281
#outs 43 43 44 44 43 43 43 t f t f f f f f t f t f t f t f f f f f f f f f t f f f f t 95
#step 282
#outs 44 43 44 44 43 44 43 f f t f f f f f t f f f t f f f t f f f f f f f f f t f f f 95
#step 283
#outs 44 44 44 44 43 44 44 t f t f t f f f t f f f t f f f f f f f f f f f f f t f f f 95
#step 284
#outs 44 44 44 44 43 44 45 t f t f t f f f t f f f f f f f t f f f f f t f f f f f f f 95
#step 285
#outs 44 45 44 44 44 44 45 t f f f t f t f t f t f f f t f f f f f t f t f t f f f f t 96
#step 286
#outs 45 45 44 45 45 45 45 t f f f t f f f t f t f t f t f f f t f f f t f t f t f f f 96
#step 287
#outs 46 45 45 45 46 46 46 f f t f t f t f f f t f t f f f t f f f t f f f t f f f f t 97
#step 288
#outs 46 46 45 46 46 47 46 t f f f t f f f t f f f t f t f f f f f f f t f f f t f f f 97
#step 289
#outs 47 46 45 46 47 47 47 f f f f t f f f f f t f t f f f f f t f f f f f t f f f f f 97
#step 290
#outs 47 46 46 46 47 48 47 f f t f t f t f f f f f t f f f t f f f f f f f f f f f f t 98
#step 291
#outs 47 47 46 46 47 48 47 t f f f t f t f f f f f t f f f f f t f f f f f f f f f f f 98
#step 292
#outs 47 47 47 46 47 48 47 t f t f f f t f f f f f t f t f f f f f f f f f f f t f f f 98
#step 293
#outs 48 47 47 46 47 48 48 f f t f f f t f f f f f t f f f f f f f t f f f f f t f f f 98
#step 294
#outs 48 47 47 47 47 48 49 f f t f t f t f t f f f f f f f f f t f f f f f f f f f f t 99
#step 295
#outs 48 47 48 47 47 48 49 f f t f f f t f t f f f f f f f t f f f f f f f f f f f f f 99
#step 296
#outs 48 48 48 47 47 48 49 t f t f f f t f t f f f f f t f f f f f f f f f f f f f f f 99
#step 297
#outs 49 48 48 47 47 48 49 f f t f f f t f t f f f f f f f t f f f t f t f f f f f f f 99
#step 298
#outs 49 49 48 48 48 48 49 t f f f t f t f t f t f f f t f f f t f f f t f f f f f f t 100
#step 299
#outs 0 49 49 48 49 48 49 f f t f f f t f f f t f f f f f t f f f f f f f f f f f f f 100
#step 300
#outs 0 0 49 48 49 48 49 f f f f f f t f f f t f f f f f f f f f t f f f t f f f f f 100
#step 301
#outs 0 0 49 49 49 49 49 f f f f t f t f t f t f t f f f f f f f f f t f f f f f f t 101
#step 302
#outs 0 0 49 49 0 49 49 f f f f t f t f f f t f t f f f f f t f f f f f t f f f f f 101
#step 303
#outs 0 0 0 49 0 0 49 f f t f f f t f f f f f t f f f f f f f t f f f f f f f f f 101
#step 304
#outs 0 0 0 0 0 0 49 f f t f t f t f t f f f t f f f t f t f t f f f f f f f f f 101
#step 305
#outs 0 1 1 1 0 0 49 f f f f t f f f t f f f t f f f f f t f f f f f f f t f f f 101
#step 306
#outs 0 1 2 1 0 0 0 t f f f f f f f t f t f t f f f f f f f f f f f t f t f f t 102
#step 307
#outs 0 1 2 1 0 1 1 t f f f f f f f t f f f f f t f f f f f f f f f f f f f f f 102
#step 308
#outs 1 1 2 1 0 1 1 t f t f f f f f t f f f t f t f f f f f f f f f f f f f f f 102
#step 309
#outs 2 1 2 1 0 1 1 f f t f f f f f t f f f t f f f f f f f f f t f f f t f f f 102
#step 310
#outs 2 1 2 1 1 1 2 f f t f f f t f t f t f f f f f f f f f f f t f t f f f f t 103
#step 311
#outs 2 1 2 1 2 2 2 f f t f f f t f f f t f t f f f t f f f f f f f t f t f f f 103
#step 312
#outs 2 2 2 1 2 3 3 t f t f f f t f f f f f f f f f f f f f t f f f f f f f f f 103
#step 313
#outs 2 2 2 2 2 3 3 t f t f t f t f t f f f f f t f f f t f t f t f f f f f f t 104
#step 314
#outs 3 2 3 3 3 3 3 f f t f f f t f t f t f t f f f t f f f t f t f t f f f f f 104
#step 315
#outs 3 3 3 4 4 4 3 t f t f t f f f t f f f t f f f t f f f f f f f f f t f f t 105
#step 316
#outs 3 4 3 4 4 4 4 t f f f t f f f t f t f f f f f f f t f f f t f t f f f f f 105
#step 317
#outs 3 4 4 4 5 5 4 t f f f t f t f f f f f f f t f f f t f f f f f f f f f f f 105
#step 318
#outs 4 4 5 4 5 5 4 t f t f f f t f f f f f t f t f f f f f t f f f f f t f f t 106
#step 319
#outs 5 4 5 5 5 5 5 f f t f f f t f t f t f t f f f t f f f f f t f t f t f f f 106
#step 320
#outs 5 5 5 5 6 6 6 t f t f t f t f f f t f f f f f f f f f t f f f t f f f f t 107
#step 321
#outs 5 5 5 6 6 7 6 t f t f t f f f t f f f f f t f t f t f f f f f f f f f f f 107
#step 322
#outs 6 6 6 6 6 7 6 t f t f t f t f t f f f t f t f f f t f t f f f f f f f f t 108
#step 323
#outs 7 6 7 7 6 7 6 f f t f f f f f t f f f t f f f t f f f f f f f f f t f f f 108
#step 324
#outs 7 7 7 7 6 7 7 t f t f t f f f t f f f t f t f f f f f f f f f f f f f f f 108
#step 325
#outs 8 7 7 7 6 7 7 f f t f t f f f t f f f t f f f t f t f f f f f f f f f f f 108
#step 326
#outs 8 8 8 7 6 7 7 f f t f f f f f t f f f t f f f t f f f f f t f f f t f f f 108
#step 327
#outs 8 9 8 7 7 7 8 t f f f f f t f t f t f f f f f f f f f t f t f f f f f f t 109
#step 328
#outs 8 9 8 8 8 7 8 t f f f t f t f f f t f f f f f f f f f f f f f t f f f f f 109
#step 329
#outs 8 9 8 8 8 8 8 t f f f t f t f t f t f t f t f f f t f f f t f t f f f f f 109
#step 330
#outs 9 9 9 8 9 9 8 f f t f f f t f f f f f t f f f t f f f t f f f f f f f f t 110
#step 331
#outs 9 10 9 9 9 9 8 f f f f t f t f t f f f t f f f f f f f t f t f f f t f f f 110
#step 332
#outs 9 10 9 10 10 9 9 t f f f t f f f f f t f t f t f f f f f f f f f f f t f f t 111
#step 333
#outs 10 10 9 10 10 9 10 t f f f t f f f f f t f f f t f f f f f f f f f f f f f f f 111
#step 334
#outs 11 10 9 10 10 9 10 f f f f t f f f f f t f f f f f f f t f f f f f f f f f f f 111
#step 335
#outs 11 10 10 10 10 9 10 f f t f t f t f f f t f f f f f t f t f t f f f t f f f f f 111
#step 336
#outs 11 11 11 11 10 10 10 f f t f t f f f t f t f t f f f t f f f f f t f f f f f f t 112
#step 337
#outs 11 12 11 11 11 10 10 f f f f t f t f f f t f t f f f f f t f t f f f f f t f f f 112
#step 338
#outs 11 12 12 12 11 10 11 t f f f t f f f f f t f f f t f f f f f f f f f t f f f f f 112
#step 339
#outs 12 12 12 12 11 11 11 f f t f t f f f t f t f t f f f f f t f f f t f t f f f f t 113
#step 340
#outs 12 12 13 12 12 12 11 f f t f f f t f t f f f t f f f f f f f f f t f f f t f f f 113
#step 341
#outs 12 12 13 12 13 12 12 t f t f f f t f f f t f t f t f f f f f f f f f t f f f f f 113
#step 342
#outs 13 12 13 12 13 13 12 f f t f f f t f f f f f t f f f f f f f t f f f f f t f f f 113
#step 343
#outs 13 12 13 13 13 13 13 f f t f f f t f t f t f t f f f t f f f f f t f t f t f f f 113
#step 344
#outs 13 13 13 13 14 14 14 t f t f t f t f f f t f f f f f t f t f f f f f t f f f f t 114
#step 345
#outs 13 14 14 13 14 15 14 t f f f f f t f f f f f f f t f f f f f t f f f f f f f f f 114
#step 346
#outs 14 14 14 14 14 15 14 t f t f t f t f t f f f t f f f t f t f f f t f f f f f f t 115
#step 347
#outs 14 15 15 14 15 15 14 t f f f f f t f f f f f t f t f f f f f t f f f f f t f f f 115
#step 348
#outs 15 15 15 15 15 15 15 t f t f t f t f t f t f t f f f t f f f f f f f t f t f f t 116
#step 349
#outs 15 16 15 15 15 16 16 t f f f t f t f t f f f f f t f f f t f t f t f f f f f f f 116
#step 350
#outs 16 16 16 16 16 16 16 t f t f t f t f t f t f t f f f t f f f f f f f f f f f f t 117
#step 351
#outs 16 17 16 16 16 16 16 t f f f t f t f t f t f t f t f f f t f t f t f f f f f f f 117
#step 352
#outs 17 17 17 17 17 16 16 f f t f t f t f f f t f t f f f t f f f f f f f f f f f f f 117
#step 353
#outs 17 18 17 17 17 16 16 f f f f t f t f f f t f t f f f f f t f f f f f t f f f f f 117
#step 354
#outs 17 18 18 17 17 17 16 f f f f f f t f t f f f t f f f f f f f f f t f f f f f f f 117
#step 355
#outs 17 18 18 17 18 17 16 f f f f f f t f f f f f t f f f f f f f f f f f f f t f f f 117
#step 356
#outs 17 18 18 17 18 17 17 t f f f f f t f f f t f t f f f f f f f t f f f f f t f f t 118
#step 357
#outs 17 18 18 18 18 17 18 t f f f t f t f f f t f f f t f f f t f t f f f t f f f f f 118
#step 358
#outs 18 18 19 19 18 18 18 t f t f f f f f t f t f t f t f f f f f f f f f t f t f f t 119
#step 359
#outs 19 18 19 19 18 19 19 f f t f f f f f t f f f t f f f t f f f f f t f f f t f f f 119
#step 360
#outs 19 19 19 19 19 19 20 t f t f t f t f t f t f f f f f t f f f f f f f t f f f f t 120
#step 361
#outs 19 20 19 19 19 20 20 t f f f t f t f t f f f f f t f f f t f f f t f f f f f f f 120
#step 362
#outs 20 20 20 19 20 20 20 t f t f f f t f f f t f t f f f f f f f f f f f t f f f f f 120
#step 363
#outs 20 20 20 19 20 21 20 t f t f f f t f f f f f t f t f t f f f f f f f f f t f f f 120
#step 364
#outs 21 21 20 19 20 21 21 t f f f f f t f f f f f t f f f f f f f f f f f f f t f f f 120
#step 365
#outs 21 21 20 19 20 21 22 t f f f f f t f f f f f f f f f f f f f t f f f f f f f f f 120
#step 366
#outs 21 21 20 20 20 21 22 t f f f t f t f t f f f f f t f f f t f f f f f f f f f f t 121
#step 367
#outs 22 21 21 20 20 21 22 f f t f f f t f t f f f f f f f t f f f f f t f f f f f f f 121
#step 368
#outs 22 22 21 20 21 21 22 t f f f f f t f f f t f f f t f f f f f t f f f t f f f f f 121
#step 369
#outs 23 22 21 21 21 22 22 f f f f t f t f t f f f t f f f f f f f f f t f f f f f f t 122
#step 370
#outs 23 22 21 21 22 22 22 f f f f t f t f f f t f t f f f f f f f t f f f t f t f f f 122
#step 371
#outs 23 22 21 22 22 23 23 f f f f t f f f t f f f t f f f f f f f f f t f f f t f f f 122
#step 372
#outs 23 22 21 22 23 23 24 f f f f t f f f f f t f f f f f f f t f f f f f f f f f f f 122
#step 373
#outs 23 22 22 22 23 23 24 f f t f t f t f f f t f f f f f f f f f t f f f f f f f f t 123
#step 374
#outs 23 22 22 23 23 23 24 f f t f t f f f t f t f f f f f f f t f f f f f t f f f f f 123
#step 375
#outs 23 22 23 23 23 24 24 f f t f f f t f t f f f f f f f t f f f f f f f f f f f f f 123
#step 376
#outs 23 23 23 23 23 24 24 t f t f t f t f t f f f f f t f f f f f f f t f f f f f f t 124
#step 377
#outs 24 23 23 23 24 24 24 f f t f t f t f f f t f t f f f t f f f t f f f t f t f f f 124
#step 378
#outs 24 24 23 24 24 25 25 t f f f t f f f t f f f f f t f f f f f f f f f f f f f f f 124
#step 379
#outs 25 24 23 24 24 25 25 f f f f t f f f t f f f t f f f f f f f f f f f f f t f f f 124
#step 380
#outs 25 24 23 24 24 25 26 f f f f t f f f t f f f f f f f f f t f f f f f f f f f f f 124
#step 381
#outs 25 24 24 24 24 25 26 f f t f t f t f t f f f f f f f t f f f t f f f f f f f f t 125
#step 382
#outs 25 25 24 25 24 25 26 t f f f t f f f t f f f f f t f f f t f f f f f f f f f f f 125
#step 383
#outs 26 25 25 25 24 25 26 f f t f t f f f t f f f f f f f f f t f f f f f f f f f f f 125
#step 384
#outs 26 25 26 25 24 25 26 f f t f f f f f t f f f f f f f f f f f f f t f f f f f f f 125
#step 385
#outs 26 25 26 25 25 25 26 f f t f f f t f t f t f f f f f t f f f f f t f f f f f f t 126
#step 386
#outs 26 26 26 25 26 25 26 t f t f f f t f f f t f f f f f t f f f t f f f f f f f f f 126
#step 387
#outs 26 27 26 26 26 25 26 t f f f t f t f f f t f f f t f f f f f t f f f t f f f f f 126
#step 388
#outs 27 27 26 27 26 26 26 f f f f t f f f t f t f t f f f f f t f f f f f f f f f f t 127
#step 389
#outs 27 27 27 27 26 26 26 f f t f t f f f t f t f t f f f t f f f f f t f t f t f f f 127
#step 390
#outs 27 28 27 27 27 27 27 t f f f t f t f t f t f t f f f f f f f f f f f t f f f f t 128
#step 391
#outs 27 28 27 27 27 28 27 t f f f t f t f t f f f t f t f f f f f t f t f f f t f f f 128
#step 392
#outs 28 28 27 28 28 28 28 t f f f t f f f t f t f t f f f f f t f f f t f f f f f f f 128
#step 393
#outs 28 28 28 28 29 28 28 t f t f t f t f f f t f t f t f f f f f t f f f f f t f f t 129
#step 394
#outs 29 28 28 29 29 28 29 f f t f t f f f f f t f f f f f t f t f f f f f f f f f f f 129
#step 395
#outs 29 29 29 29 29 28 29 t f t f t f t f f f t f f f t f t f t f f f f f f f f f f f 129
#step 396
#outs 30 30 30 29 29 28 29 f f t f f f t f f f t f f f f f f f f f t f f f f f f f f f 129
#step 397
#outs 30 30 30 30 29 28 29 f f t f t f f f f f t f f f f f t f t f f f f f t f f f f f 129
#step 398
#outs 30 31 31 30 29 29 29 f f f f f f f f t f t f t f f f f f f f f f t f t f t f f t 130
#step 399
#outs 30 31 31 30 30 30 30 t f f f f f t f t f t f t f f f f f f f f f t f f f t f f t 131
#step 400
#outs 30 31 31 30 31 30 31 t f f f f f t f f f t f f f t f f f f f t f f f f f f f f f 131
#step 401
#outs 31 31 31 31 31 30 31 t f t f t f t f f f t f f f f f t f t f t f f f f f f f f f 131
#step 402
#outs 31 32 32 32 31 30 31 t f f f t f f f f f t f f f f f f f t f f f f f t f f f f f 131
#step 403
#outs 31 32 33 32 31 31 31 t f f f f f f f t f t f t f f f f f f f f f t f f f t f f t 132
#step 404
#outs 31 32 33 32 32 31 32 t f f f f f t f f f t f f f f f f f f f f f f f t f f f f f 132
#step 405
#outs 31 32 33 32 32 32 32 t f f f f f t f t f t f f f t f f f f f t f f f t f f f f f 132
#step 406
#outs 32 32 33 33 32 33 32 t f t f f f f f t f f f t f t f f f f f f f f f f f f f f t 133
#step 407
#outs 33 32 33 33 32 33 32 f f t f f f f f t f f f t f f f f f f f f f t f f f t f f f 133
#step 408
#outs 33 32 33 33 33 33 33 f f t f f f t f t f t f t f f f t f f f t f t f f f t f f f 133
#step 409
#outs 33 33 33 34 34 33 34 t f t f t f f f f f t f f f f f t f t f f f f f f f f f f t 134
#step 410
#outs 33 34 34 34 34 33 34 t f f f t f t f f f t f f f t f f f f f t f f f f f f f f f 134
#step 411
#outs 34 34 34 35 34 33 34 t f t f t f f f f f t f f f t f f f t f f f f f f f f f f f 134
#step 412
#outs 35 34 35 35 34 33 34 f f t f f f f f f f t f f f f f f f f f f f f f t f f f f f 134
#step 413
#outs 35 34 35 35 34 34 34 f f t f f f f f t f t f t f f f t f f f f f t f t f t f f t 135
#step 414
#outs 35 35 35 35 35 35 35 t f t f t f t f t f t f t f f f t f t f f f t f t f t f f t 136
#step 415
#outs 35 36 36 35 36 36 36 t f f f f f t f f f t f f f f f f f f f t f f f t f f f f f 136
#step 416
#outs 35 36 36 36 36 37 36 t f f f t f t f t f f f f f t f f f t f t f t f f f f f f f 136
#step 417
#outs 36 36 37 37 37 37 36 t f t f f f t f t f f f t f t f f f f f t f t f f f f f f t 137
#step 418
#outs 37 36 37 38 38 37 36 f f t f f f f f f f f f t f f f f f f f f f f f f f t f f f 137
#step 419
#outs 37 36 37 38 38 37 37 f f t f f f f f f f t f t f f f f f f f f f f f f f t f f f 137
#step 420
#outs 37 36 37 38 38 37 38 f f t f f f f f f f t f f f f f t f f f f f f f t f f f f f 137
#step 421
#outs 37 37 37 38 38 38 38 t f t f t f f f t f t f f f f f f f t f f f f f t f f f f t 138
#step 422
#outs 37 37 38 38 38 39 38 t f t f f f t f t f f f f f f f t f f f t f t f f f f f f f 138
#step 423
#outs 37 38 38 39 39 39 38 t f f f t f f f t f f f f f t f f f f f f f t f f f f f f f 138
#step 424
#outs 38 38 38 39 40 39 38 t f t f t f f f f f f f t f f f t f f f f f f f f f t f f t 139
#step 425
#outs 38 39 38 39 40 39 39 t f f f t f f f f f t f f f t f f f t f f f f f f f f f f f 139
#step 426
#outs 39 39 39 39 40 39 39 t f t f t f t f f f t f t f f f t f t f f f f f f f f f f t 140
#step 427
#outs 39 40 40 39 40 39 39 t f f f f f t f f f t f t f t f f f f f t f f f f f t f f f 140
#step 428
#outs 40 40 40 40 40 39 40 t f t f t f t f f f t f f f f f t f f f t f f f t f f f f f 140
#step 429
#outs 40 41 40 41 40 40 40 t f f f t f f f t f t f t f t f f f f f f f f f t f f f f t 141
#step 430
#outs 41 41 40 41 40 41 40 f f f f t f f f t f f f t f f f f f f f f f t f f f t f f f 141
#step 431
#outs 41 41 40 41 41 41 41 t f f f t f f f t f t f t f t f f f f f f f f f t f f f f f 141
#step 432
#outs 42 41 40 41 41 42 41 f f f f t f f f t f f f t f f f f f t f f f t f f f t f f f 141
#step 433
#outs 42 41 41 41 42 42 42 f f t f t f t f f f t f t f f f f f f f t f f f f f t f f t 142
#step 434
#outs 42 41 41 42 42 42 43 f f t f t f f f t f t f f f f f t f f f f f f f t f f f f f 142
#step 435
#outs 42 42 41 42 42 43 43 t f f f t f f f t f f f f f t f f f t f f f t f f f f f f f 142
#step 436
#outs 43 42 42 42 43 43 43 f f t f t f t f f f t f t f f f t f t f t f f f f f t f f t 143
#step 437
#outs 43 43 43 43 43 43 44 t f t f t f t f t f t f f f f f t f f f f f t f t f f f f f 143
#step 438
#outs 43 44 43 43 44 44 44 t f f f t f t f f f t f f f f f f f t f t f f f f f f f f t 144
#step 439
#outs 43 44 44 44 44 44 44 t f f f t f t f t f t f f f f f f f t f t f t f t f f f f f 144
#step 440
#outs 43 44 45 45 45 45 44 t f f f f f t f t f f f f f f f f f f f t f t f f f f f f f 144
#step 441
#outs 43 44 45 46 46 45 44 t f f f f f f f f f f f f f t f f f f f f f f f f f f f f f 144
#step 442
#outs 44 44 45 46 46 45 44 t f t f f f f f f f f f t f f f t f f f f f f f f f t f f t 145
#step 443
#outs 44 45 45 46 46 45 45 t f f f t f f f f f t f f f t f f f f f f f f f t f f f f f 145
#step 444
#outs 45 45 45 46 46 46 45 t f t f t f f f t f f f t f f f f f f f f f f f f f t f f t 146
#step 445
#outs 45 45 45 46 46 46 46 t f t f t f f f t f t f f f f f f f t f f f t f f f f f f f 146
#step 446
#outs 45 45 46 46 47 46 46 t f t f f f t f f f t f f f t f f f f f t f f f f f f f f f 146
#step 447
#outs 46 45 46 47 47 46 46 f f t f f f f f f f t f t f f f t f f f f f f f t f t f f f 146
#step 448
#outs 46 46 46 47 47 47 47 t f t f t f f f t f t f f f f f t f f f f f t f f f f f f t 147
#step 449
#outs 46 47 46 47 48 47 47 t f f f t f f f f f t f f f t f f f f f f f f f f f f f f f 147
#step 450
#outs 47 47 46 47 48 47 47 t f f f t f f f f f t f t f t f f f t f f f f f f f t f f f 147
#step 451
#outs 48 47 47 47 48 47 48 f f t f t f t f f f t f f f f f f f f f t f f f f f f f f f 147
#step 452
#outs 48 47 47 48 48 47 48 f f t f t f f f f f t f f f f f f f t f f f f f f f f f f f 147
#step 453
#outs 48 47 48 48 48 47 48 f f t f f f t f f f t f f f f f t f f f f f f f f f f f f f 147
#step 454
#outs 48 48 48 48 48 47 48 t f t f t f t f f f t f f f t f f f f f f f f f f f f f f f 147
#step 455
#outs 49 48 48 48 48 47 48 f f t f t f t f f f t f f f f f t f t f t f f f f f f f f f 147
#step 456
#outs 49 49 49 49 48 47 48 f f t f t f f f f f t f f f f f t f t f f f f f f f f f f f 147
#step 457
#outs 49 0 0 49 48 47 48 f f f f f f f f f f t f f f f f f f f f f f f f t f f f f f 147
#step 458
#outs 49 0 0 49 48 48 48 f f f f f f f f t f t f t f f f f f f f f f t f t f f f f t 148
#step 459
#outs 49 0 0 49 49 49 48 f f f f f f t f t f f f t f f f f f f f t f f f f f f f f f 148
#step 460
#outs 49 0 0 0 49 49 48 f f f f t f f f t f f f t f f f f f f f f f t f f f t f f f 148
#step 461
#outs 49 0 0 0 0 49 49 t f f f t f t f f f t f t f f f f f t f t f f f t f t f f t 149
#step 462
#outs 49 0 1 1 0 0 0 t f f f f f f f t f t f f f f f f f f f f f t f f f f f f f 149
#step 463
#outs 49 0 1 1 1 0 0 t f f f f f t f f f t f f f t f f f f f f f f f f f f f f f 149
#step 464
#outs 0 0 1 1 1 0 0 t f t f f f t f f f t f t f t f f f f f f f f f f f t f f t 150
#step 465
#outs 1 0 1 1 1 0 1 f f t f f f t f f f t f f f f f f f f f f f f f t f f f f f 150
#step 466
#outs 1 0 1 1 1 1 1 f f t f f f t f t f t f t f f f t f f f f f t f t f t f f f 150
#step 467
#outs 1 1 1 1 2 2 2 t f t f t f t f f f t f f f t f f f f f t f f f f f f f f f 150
#step 468
#outs 2 1 1 2 2 2 2 f f t f t f f f t f t f t f f f t f t f f f f f t f f f f t 151
#step 469
#outs 2 2 2 2 2 3 2 t f t f t f t f t f f f t f f f f f t f t f t f f f t f f f 151
#step 470
#outs 2 2 3 3 3 3 3 t f t f f f t f t f t f f f t f t f f f f f f f f f f f f t 152
#step 471
#outs 3 3 3 3 3 3 3 t f t f t f t f t f t f t f t f t f t f t f t f f f f f f f 152
#step 472
#outs 4 4 4 4 4 3 3 f f t f t f t f f f t f t f f f f f t f f f f f f f t f f f 152
#step 473
#outs 4 4 5 4 4 3 4 t f t f f f t f f f t f f f f f f f f f f f f f t f f f f f 152
#step 474
#outs 4 4 5 4 4 4 4 t f t f f f t f t f t f t f f f t f f f f f t f f f f f f t 153
#step 475
#outs 4 5 5 4 5 4 4 t f f f f f t f f f t f t f f f f f f f t f f f t f t f f f 153
#step 476
#outs 4 5 5 5 5 5 5 t f f f t f t f t f t f f f t f f f t f f f f f t f f f f f 153
#step 477
#outs 5 5 6 5 5 6 5 t f t f f f t f t f f f t f t f t f f f f f t f f f t f f t 154
#step 478
#outs 6 6 6 5 6 6 6 t f t f f f t f f f t f t f f f f f f f t f f f f f f f f f 154
#step 479
#outs 6 6 6 6 6 6 6 t f t f t f t f t f t f t f t f f f f f f f t f t f f f f t 155
#step 480
#outs 7 6 6 6 7 7 6 f f t f t f t f f f f f t f f f f f f f t f f f f f f f f f 155
#step 481
#outs 7 6 6 7 7 7 6 f f t f t f f f t f f f t f f f t f f f f f t f f f f f f f 155
#step 482
#outs 7 7 6 7 8 7 6 f f f f t f f f f f f f t f f f f f t f f f f f f f f f f f 155
#step 483
#outs 7 7 7 7 8 7 6 f f t f t f t f f f f f t f f f f f t f t f f f f f f f f f 155
#step 484
#outs 7 7 8 8 8 7 6 f f t f f f t f f f f f t f f f f f f f f f f f f f t f f f 155
#step 485
#outs 7 7 8 8 8 7 7 t f t f f f t f f f t f t f t f t f f f f f f f f f f f f t 156
#step 486
#outs 8 8 8 8 8 7 7 f f t f t f t f f f t f t f f f t f t f f f f f f f t f f f 156
#step 487
#outs 8 9 9 8 8 7 8 t f f f f f t f f f t f f f t f f f f f f f f f f f f f f f 156
#step 488
#outs 9 9 9 8 8 7 8 f f t f f f t f f f t f f f f f f f f f f f f f t f f f f f 156
#step 489
#outs 9 9 9 8 8 8 8 f f t f f f t f t f t f t f f f f f f f t f f f f f f f f f 156
#step 490
#outs 9 9 9 9 8 8 8 f f t f t f f f t f t f t f f f t f f f f f f f t f t f f t 157
#step 491
#outs 9 10 9 9 8 9 9 t f f f t f f f t f f f t f t f f f f f f f f f f f f f f f 157
#step 492
#outs 10 10 9 9 8 9 9 f f f f t f f f t f f f t f f f f f f f f f t f f f f f f f 157
#step 493
#outs 10 10 9 9 9 9 9 f f f f t f t f t f t f t f f f f f t f f f f f t f f f f f 157
#step 494
#outs 10 10 10 9 9 10 9 f f t f f f t f t f f f t f f f t f f f f f t f f f f f f t 158
#step 495
#outs 10 11 10 9 10 10 9 f f f f f f t f f f f f t f f f f f f f t f f f f f t f f f 158
#step 496
#outs 10 11 10 10 10 10 10 t f f f t f t f t f t f t f t f f f f f t f f f t f t f f t 159
#step 497
#outs 11 11 10 11 10 11 11 t f f f t f f f t f f f t f f f f f t f f f f f f f t f f f 159
#step 498
#outs 11 11 11 11 10 11 12 t f t f t f f f t f f f f f f f t f f f f f t f f f f f f f 159
#step 499
#outs 11 12 11 11 11 11 12 t f f f t f t f t f t f f f f f f f t f t f t f f f f f f t 160
#step 500
#outs 11 12 12 12 12 11 12 t f f f t f t f f f t f f f f f f f t f t f f f t f f f f f 160
#q
#quit
type t = int
type t = int
let to_string = (fun s -> Printf.sprintf "c=%i" s)
let of_string = Some int_of_string
let copy x = x
let actions = ["I(p)"; "R(p)"]
let potential = None
let legitimate = None
let fault = None
let (of_string: (string -> t) option) =
Some (fun s ->
try
Scanf.sscanf s "c=%i"
(fun c -> c)
with _ -> assert false
)
......@@ -3,11 +3,12 @@ include "../lustre/utils.lus"
type state = int;
node st_KK06_algo1_oracle<<const an:int; const pn:int>>
(legitimate:bool; Enab,Acti:bool^an^pn; Config: int^pn;round:bool; round_nb:int) returns (ok:bool);
(legitimate:bool; potential:real; Enab,Acti:bool^an^pn; Config: int^pn;round:bool; round_nb:int)
returns (ok:bool);
var
moves : int;
let
-- Theorem 2. Algorithm 1 stabilizes in O(n diam(G)) moves.
-- Theorem 2. Algorithm 1 stabilizes in O(n diam(G)) moves.
moves = count_move<<an,pn>>(Acti);
ok = moves <= card * diameter ;
tel
\ No newline at end of file
tel
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment