diff --git a/salut/Makefile b/salut/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..85aba6186146e2776d1eb0f958246189c696e512 --- /dev/null +++ b/salut/Makefile @@ -0,0 +1,22 @@ + + +# build: lib/sasacore/sasaVersion.ml +build: + dune build @install + +clean: + dune clean + cd test; make clean + +install: + dune install + +reinstall:install + +uninstall: + dune uninstall + +.PHONY:test +test: + make + cd test; make test diff --git a/salut/README.md b/salut/README.md new file mode 100644 index 0000000000000000000000000000000000000000..3e153030b154ea7486347a9707b8674f72a3aacf --- /dev/null +++ b/salut/README.md @@ -0,0 +1,84 @@ +# SALut - Self-stabilizing Algorithms in LUsTre + +[SALut](.) is a companion project to [Verimag's Synchrone Reactive Toolbox](https://www-verimag.imag.fr/DIST-TOOLS/SYNCHRONE/reactive-toolbox/). + +It is dedicated to the [Simulation and Formal Verification of Self-stabilizing Algorithms](https://ensiwiki.ensimag.fr/index.php?title=IRL_-_Simulation_and_Formal_Verification_of_Self-stabilizing_Algorithms) in [the Lustre Programming Language](https://www-verimag.imag.fr/The-Lustre-Programming-Language-and), relying on [Lurette][lurette] and [SASA](https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/) for testing/simulation and on [Kind2][kind2] for SMT-powered verification. + + +## [dot2lus](src/dot2lus.ml) + +### Summary + +dot2lus compiles a graph described in the [DOT +format](https://en.wikipedia.org/wiki/DOT_(graph_description_language)) +into a Lustre program that executes some [Distributed +Self-Stabilizing +Algorithm](https://www-verimag.imag.fr/New-Book-Introduction-to-Distributed.html) +over an equivalent network topology. + +``` +dot2lus <dotfile> [-o <lusfile>] [--clock] [--help] + -o Set output file (default is inferred from input file) + --clock Generate clocked code (default is unclocked) + --help Display this list of options +``` + +### Algorithm API + +Following the conventions used in [SASA's +API](https://verimag.gricad-pages.univ-grenoble-alpes.fr/synchrone/sasa/_html/algo/Algo/index.html), +every algorithm currently needs to provide the following definitions, +which are shared by all nodes: + +```ocaml +(* Represents a node's state. *) +type state; + +(* Enumerates the possible atomic actions a node might execute. *) +type action; +const actions_number : int; + +(* Maps an integer in [0,actions_number) to an equivalent action. *) +function action_of_int(i : int) returns (a : action); +``` + +And each algorithmic node needs `enable` and `step` functions prefixed by its name: + +```ocaml +(* p.lus *) + +(* Computes the set of actions enabled in this configuration. *) +function p_enable<<const degree:int>>( + this : state; + neighbors : state^degree +) returns (enabled : bool^actions_number); + +(* Executes the given action, returning the updated node state. *) +function p_step<<const degree:int>>( + this : state; + neighbors : state^degree; + action : action +) returns (new : state); +``` + +**Check out the generated Lustre topology for the graph constants it defines.** + +### Examples + +Some [example algorithms](test/) are provided in this repository. +Each folder contains a distributed algorithm defined in both OCaml+SASA and LustreV6+SALUT and with a common network topology. + +The [shared Makefile](test/Makefile.inc) has instructions on how to `build` the Lustre-defined network and use [Lurette][lurette] to `test` it agains the SASA model. + +You can also `verify` it with [Kind2][kind2]. +Note that this currently requires converting LustreV6 to LustreV4 and adding Kind2's required annotations (to the generated LV4), which is also handled by the makefile. + +### Build instructions + +```sh +$ cd src/ +$ make # => bin/dot2lus +``` + +[lurette]: https://www-verimag.imag.fr/Lurette-107.html +[kind2]: https://kind2-mc.github.io/kind2/ diff --git a/salut/lib/Random/lustre_consts.c b/salut/lib/Random/lustre_consts.c new file mode 100644 index 0000000000000000000000000000000000000000..bc36e0d33cb2f2e0716bd6f404a2846aa0354d19 --- /dev/null +++ b/salut/lib/Random/lustre_consts.c @@ -0,0 +1,4 @@ +/* This file was generated by lv6 version v6.106.1. */ +/* lv6 utils.lus -n random -2c -exec -dir Random */ +/* on PC-Travail the 18/07/2022 at 15:00:26 */ +#include "lustre_consts.h" \ No newline at end of file diff --git a/salut/lib/Random/lustre_consts.h b/salut/lib/Random/lustre_consts.h new file mode 100644 index 0000000000000000000000000000000000000000..0c80098eb11ab652e1f189c5a1abd90dbaeb0208 --- /dev/null +++ b/salut/lib/Random/lustre_consts.h @@ -0,0 +1,4 @@ +/* This file was generated by lv6 version v6.106.1. */ +/* lv6 utils.lus -n random -2c -exec -dir Random */ +/* on PC-Travail the 18/07/2022 at 15:00:26 */ +#include "lustre_types.h" \ No newline at end of file diff --git a/salut/lib/Random/lustre_types.h b/salut/lib/Random/lustre_types.h new file mode 100644 index 0000000000000000000000000000000000000000..d9385f1c7473cb75e81f6a5b84b7d8a557f1d879 --- /dev/null +++ b/salut/lib/Random/lustre_types.h @@ -0,0 +1,16 @@ +/* This file was generated by lv6 version v6.106.1. */ +/* lv6 utils.lus -n random -2c -exec -dir Random */ +/* on PC-Travail the 18/07/2022 at 15:00:26 */ + +#ifndef _SOC2C_PREDEF_TYPES +#define _SOC2C_PREDEF_TYPES +typedef int _boolean; +typedef int _integer; +typedef char* _string; +typedef double _real; +typedef double _double; +typedef float _float; +#define _false 0 +#define _true 1 +#endif +// end of _SOC2C_PREDEF_TYPES \ No newline at end of file diff --git a/salut/lib/Random/random.sh b/salut/lib/Random/random.sh new file mode 100644 index 0000000000000000000000000000000000000000..07a6da3163aef4c06ba5fc7a484bc88f5787ee5d --- /dev/null +++ b/salut/lib/Random/random.sh @@ -0,0 +1,4 @@ +if [ -z ${C_COMPILER} ]; then C_COMPILER=gcc; fi +$C_COMPILER -o random.exec \ + Random/utils_random_ext.c Random/lustre_consts.c Random/utils_random.c Random/utils_random_loop.c + diff --git a/salut/lib/Random/utils_random.c b/salut/lib/Random/utils_random.c new file mode 100644 index 0000000000000000000000000000000000000000..5d2b57e70ad2733ae3f6daa30db4a437d36b78d2 --- /dev/null +++ b/salut/lib/Random/utils_random.c @@ -0,0 +1,13 @@ +/* This file was generated by lv6 version v6.106.1. */ +/* lv6 utils.lus -n random -2c -exec -dir Random */ +/* on PC-Travail the 18/07/2022 at 15:00:26 */ +#include "utils_random.h" +//// Defining step functions +// Step function(s) for utils_c_rand_ctx +// Step function(s) for utils_random_ctx +void utils_random_step(_integer x,_integer *res){ + + utils_c_rand_step(x,res); + +} // End of utils_random_step + diff --git a/salut/lib/Random/utils_random.h b/salut/lib/Random/utils_random.h new file mode 100644 index 0000000000000000000000000000000000000000..9109348389598202f3cd0234deca4d7baf078c80 --- /dev/null +++ b/salut/lib/Random/utils_random.h @@ -0,0 +1,24 @@ +/* This file was generated by lv6 version v6.106.1. */ +/* lv6 utils.lus -n random -2c -exec -dir Random */ +/* on PC-Travail the 18/07/2022 at 15:00:26 */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include "lustre_consts.h" + +// User typedef +#ifndef _utils_random_TYPES +#define _utils_random_TYPES +// Memoryless soc ctx typedef +// Memoryfull soc ctx typedef +#endif // end of _utils_random_TYPES + +#ifndef _utils_random_H_FILE +#include "utils_random_ext.h" +#define _utils_random_H_FILE +#endif // _utils_random_H_FILE + +void utils_random_step(_integer ,_integer *); + +///////////////////////////////////////////////// diff --git a/salut/lib/Random/utils_random_ext.c b/salut/lib/Random/utils_random_ext.c new file mode 100644 index 0000000000000000000000000000000000000000..83e091f80507ada189b4e143de7abc7acf7874c2 --- /dev/null +++ b/salut/lib/Random/utils_random_ext.c @@ -0,0 +1,6 @@ +#include "utils_random.h" +#include <assert.h> +void utils_c_rand_step(_integer x,_integer *res){ + assert (0 < x ); + *res = (rand() % x); +} diff --git a/salut/lib/Random/utils_random_ext.h b/salut/lib/Random/utils_random_ext.h new file mode 100644 index 0000000000000000000000000000000000000000..80c5463d74ddc6907b5db2b73555db161c442646 --- /dev/null +++ b/salut/lib/Random/utils_random_ext.h @@ -0,0 +1 @@ +void utils_c_rand_step(_integer ,_integer *); diff --git a/salut/lib/Random/utils_random_loop.c b/salut/lib/Random/utils_random_loop.c new file mode 100644 index 0000000000000000000000000000000000000000..4aac425fc3f9c7e391cf2c73b88a0ba6d9fee24c --- /dev/null +++ b/salut/lib/Random/utils_random_loop.c @@ -0,0 +1,151 @@ +/* This file was generated by lv6 version v6.106.1. */ +/* lv6 utils.lus -n random -2c -exec -dir Random */ +/* on PC-Travail the 18/07/2022 at 15:00:26 */ + +#include <stdlib.h> +#include <stdio.h> +#include <unistd.h> +#include "utils_random.h" +/* Print a promt ? ************************/ +static int ISATTY; +/* MACROS DEFINITIONS ****************/ +#ifndef TT +#define TT "1" +#endif +#ifndef FF +#define FF "0" +#endif +#ifndef BB +#define BB "bottom" +#endif +#ifdef CKCHECK +/* set this macro for testing output clocks */ +#endif + +void _read_pragma(char b[]) { + + if (!strcmp(b,"#quit")) exit(0); + if (!strcmp(b,"#q")) exit(0); +} +char* _get_string(char* n){ + static char b[10] = "dummy"; + return b; +} +/* Standard Input procedures **************/ +_boolean _get_bool(char* n){ + char b[512]; + char c; + _boolean r = 0; + int s = 1; + do { + if(ISATTY) { + if((s != 1)||(r == -1)) printf("\a"); + // printf("%s (1,t,T/0,f,F) ? ", n); + } + if(scanf("%s", b)==EOF) exit(0); + r = -1; + c=b[0]; + if(c == 'q') exit(0); + if(c == '#') _read_pragma(b); + if((c == '0') || (c == 'f') || (c == 'F')) r = 0; + if((c == '1') || (c == 't') || (c == 'T')) r = 1; + } while((s != 1) || (r == -1)); + return r; +} +_integer _get_int(char* n){ + char b[512]; + _integer r; + int s = 1; + do { + if(ISATTY) { + if(s != 1) printf("\a"); + //printf("%s (integer) ? ", n); + } + if(scanf("%s", b)==EOF) exit(0); + if(*b == 'q') exit(0); + if(*b == '#') { + _read_pragma(b); + } else { + s = sscanf(b, "%d", &r); + } + } while(s != 1); + return r; +} +#define REALFORMAT ((sizeof(_real)==8)?"%lf":"%f") +_real _get_real(char* n){ + char b[512]; + _real r; + int s = 1; + do { + if(ISATTY) { + if(s != 1) printf("\a"); + //printf("%s (real) ? ", n); + } + if(scanf("%s", b)==EOF) exit(0); + if(*b == 'q') exit(0); + if(*b == '#') { + _read_pragma(b); + } else { + s = sscanf(b, REALFORMAT, &r); + } + } while(s != 1); + return r; +} +/* Standard Output procedures **************/ +void _put_bottom(char* n){ + if(ISATTY) printf("%s = ", n); + printf("%s ", BB); + if(ISATTY) printf("\n"); +} +void _put_bool(char* n, _boolean _V){ + if(ISATTY) printf("%s = ", n); + printf("%s ", (_V)? TT : FF); + if(ISATTY) printf("\n"); +} +void _put_int(char* n, _integer _V){ + if(ISATTY) printf("%s = ", n); + printf("%d ", _V); + if(ISATTY) printf("\n"); +} +void _put_real(char* n, _real _V){ + if(ISATTY) printf("%s = ", n); + printf("%f ", _V); + if(ISATTY) printf("\n"); +} +void _put_string(char* n, char* _V){ + if(ISATTY) printf("%s = ", n); + printf("%s ", _V); + if(ISATTY) printf("\n"); +} + +/* Output procedures **********************/ +#ifdef CKCHECK +void %s_BOT_n(void* cdata){ + _put_bottom("n"); +} +#endif + +/* Main procedure *************************/ +int main(){ + int _s = 0; + _integer x; + _integer res; + + printf("#inputs \"x\":int\n"); + printf("#outputs \"res\":int\n"); + + /* Main loop */ + ISATTY = isatty(0); + while(1){ + if (ISATTY) printf("#step %d \n", _s+1); + else if(_s) printf("\n"); + fflush(stdout); + ++_s; + x = _get_int("x"); + utils_random_step(x,&res); + // printf("%d #outs %d\n",x,res); + printf("%d\n",res); + } + return 1; + +} diff --git a/salut/lib/UsrIntBinary.lus b/salut/lib/UsrIntBinary.lus new file mode 100644 index 0000000000000000000000000000000000000000..35b4ec5fa6346a5ef338ab716e406a7f0ca8fdce --- /dev/null +++ b/salut/lib/UsrIntBinary.lus @@ -0,0 +1,100 @@ + +-- Signed binary + +-- const BIN_SZ=8; +type UsrInt = bool^BIN_SZ; + +--const UsrInt_0 = false^BIN_SZ; + + +node UsrIntIf( + c : bool; x : UsrInt; y : UsrInt +) returns ( + s : UsrInt +); +let + s = if c^BIN_SZ then x else y; +tel + +node UsrIntPlus( x : UsrInt; y : UsrInt) returns ( s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = false; + + c[1..BIN_SZ] = if c[0..BIN_SZ-1] then (x or y) else (x and y); + s = x xor y xor c[0..BIN_SZ-1]; +tel + +node UsrInt +Chs( x : UsrInt) returns ( s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = false; + c[1..BIN_SZ] = c[0..BIN_SZ-1] or x; + s = c[0..BIN_SZ-1] xor x; +tel + +node UsrIntIncr(x : UsrInt) returns (s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = true; + c[1..BIN_SZ] = c[0..BIN_SZ-1] and x; + s = c[0..BIN_SZ-1] xor x; +tel + +node UsrIntDecr(x : UsrInt) returns (s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = true; + c[1..BIN_SZ] = c[0..BIN_SZ-1] and not x; + s = c[0..BIN_SZ-1] xor x; +tel + +node UsrIntMinus( x : UsrInt; y : UsrInt) returns ( s : UsrInt); +let + s = UsrIntPlus(x, UsrIntChs(y)); +tel + + +node UsrIntGt( x : UsrInt; y : UsrInt) returns ( o : bool); +var + z : UsrInt; +let + -- x > y <=> y - x < 0 + z = UsrIntPlus(y, UsrIntChs(x)); + o = z[BIN_SZ-1]; +tel + +node UsrIntLt( x : UsrInt; y : UsrInt) returns ( o : bool); +let + -- x < y <=> y > x + o = UsrIntGt(y,x); +tel + +node UsrIntGte( x : UsrInt; y : UsrInt) returns ( o : bool); +let + -- x >= y <=> not y > x + o = not UsrIntGt(y,x); +tel + +node UsrIntLte( x : UsrInt; y : UsrInt) returns ( o : bool); +let + -- x <= y <=> not x > y + o = not UsrIntGt(x,y); +tel + +node UsrIntEq( x : UsrInt; y : UsrInt) returns ( o : bool); +var + a : bool^BIN_SZ+1; +let + a[0] = true; + a[1..BIN_SZ] = a[0..BIN_SZ-1] and (x = y); + o = a[BIN_SZ]; +tel + +node UsrIntNeq( x : UsrInt; y : UsrInt) returns ( o : bool); +let + o = not UsrIntEq(x,y); +tel + + diff --git a/salut/lib/UsrIntBinary5.lus b/salut/lib/UsrIntBinary5.lus new file mode 100644 index 0000000000000000000000000000000000000000..b1d55c222de03b4ad14e30b64a33411c60e1ddba --- /dev/null +++ b/salut/lib/UsrIntBinary5.lus @@ -0,0 +1,23 @@ + +-- to be included BEFORE binary.lus +-- Signed binary on 5 bits +-- (range [-15, 15] + nan (0001) + +const BIN_SZ=5; + +const UsrInt_0 = [0, 0, 0, 0, 0]; +const UsrInt_1 = [1, 0, 0, 0, 0]; +const UsrInt_2 = [0, 1, 0, 0, 0]; +const UsrInt_3 = [1, 1, 0, 0, 0]; +const UsrInt_4 = [0, 0, 1, 0, 0]; +const UsrInt_5 = [1, 0, 1, 0, 0]; +const UsrInt_6 = [0, 1, 1, 0, 0]; +const UsrInt_7 = [1, 1, 1, 0, 0]; +const UsrInt_8 = [0, 0, 0, 1, 0]; +const UsrInt_9 = [1, 0, 0, 1, 0]; +const UsrInt_10 = [0, 1, 0, 1, 0]; +const UsrInt_11 = [1, 1, 0, 1, 0]; +const UsrInt_12 = [0, 0, 1, 1, 0]; +const UsrInt_13 = [1, 0, 1, 1, 0]; +const UsrInt_14 = [0, 1, 1, 1, 0]; +const UsrInt_15 = [1, 1, 1, 1, 0]; diff --git a/salut/lib/UsrIntCounters.lus b/salut/lib/UsrIntCounters.lus new file mode 100644 index 0000000000000000000000000000000000000000..248690af6619a870bbfd5e16654e59fb30de6380 --- /dev/null +++ b/salut/lib/UsrIntCounters.lus @@ -0,0 +1,102 @@ + +-- UNSIGNED binary +/* + - modulo max arithmetic (no overflow) + - diff with signed : + * no csh (indeed) + * comparisons +*/ + +--const BIN_SZ=5; +type UsrInt = bool^BIN_SZ; + +--const UsrInt_0 = false^BIN_SZ; + + +node UsrIntIf( + c : bool; x : UsrInt; y : UsrInt +) returns ( + s : UsrInt +); +let + s = if c^BIN_SZ then x else y; +tel + +node UsrIntPlus( x : UsrInt; y : UsrInt) returns ( s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = false; + c[1..BIN_SZ] = if c[0..BIN_SZ-1] then (x or y) else (x and y); + s = x xor y xor c[0..BIN_SZ-1]; +tel + +node UsrIntMinus( x : UsrInt; y : UsrInt) returns ( s : UsrInt); +var c : bool^(BIN_SZ+1); + ny: UsrInt; +let + c[0] = true; + ny = not y; + c[1..BIN_SZ] = if c[0..BIN_SZ-1] then (x or ny) else (x and ny); + s = x xor ny xor c[0..BIN_SZ-1]; +tel + + +node UsrIntIncr(x : UsrInt) returns (s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = true; + c[1..BIN_SZ] = c[0..BIN_SZ-1] and x; + s = c[0..BIN_SZ-1] xor x; +tel + +node UsrIntDecr(x : UsrInt) returns (s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = true; + c[1..BIN_SZ] = c[0..BIN_SZ-1] and not x; + s = c[0..BIN_SZ-1] xor x; +tel + +node _internal_GT (const sz : int; x, y: bool^sz) returns (o: bool); +let + o = with (sz = 1) then (x[0] and not y[0]) + else if (x[sz-1] and not y[sz-1]) then true + else if (not x[sz-1] and y[sz-1]) then false + else _internal_GT(sz-1, x[0..sz-2], y[0..sz-2]); +tel + +node UsrIntGt( x : UsrInt; y : UsrInt) returns ( o : bool); +let + o = _internal_GT(BIN_SZ, x, y); +tel + +node UsrIntLt( x : UsrInt; y : UsrInt) returns ( o : bool); +let + o = UsrIntGt(y,x); +tel + +node UsrIntGte( x : UsrInt; y : UsrInt) returns ( o : bool); +let + o = not UsrIntGt(y,x); +tel + +node UsrIntLte( x : UsrInt; y : UsrInt) returns ( o : bool); +let + o = not UsrIntGt(x,y); +tel + +node UsrIntEq( x : UsrInt; y : UsrInt) returns ( o : bool); +var + a : bool^BIN_SZ+1; +let + a[0] = true; + a[1..BIN_SZ] = a[0..BIN_SZ-1] and (x = y); + o = a[BIN_SZ]; +tel + +node UsrIntNeq( x : UsrInt; y : UsrInt) returns ( o : bool); +let + o = not UsrIntEq(x,y); +tel + + diff --git a/salut/lib/UsrIntCounters5.lus b/salut/lib/UsrIntCounters5.lus new file mode 100644 index 0000000000000000000000000000000000000000..a0c686037d78cd1c93e3a0921c72121f57f50630 --- /dev/null +++ b/salut/lib/UsrIntCounters5.lus @@ -0,0 +1,39 @@ + +-- to be included BEFORE binary.lus +-- unigned binary on 5 bits +-- (range [0, 31]) + +const BIN_SZ=5; + +const UsrInt_0 = [0, 0, 0, 0, 0]; +const UsrInt_1 = [1, 0, 0, 0, 0]; +const UsrInt_2 = [0, 1, 0, 0, 0]; +const UsrInt_3 = [1, 1, 0, 0, 0]; +const UsrInt_4 = [0, 0, 1, 0, 0]; +const UsrInt_5 = [1, 0, 1, 0, 0]; +const UsrInt_6 = [0, 1, 1, 0, 0]; +const UsrInt_7 = [1, 1, 1, 0, 0]; +const UsrInt_8 = [0, 0, 0, 1, 0]; +const UsrInt_9 = [1, 0, 0, 1, 0]; +const UsrInt_10 = [0, 1, 0, 1, 0]; +const UsrInt_11 = [1, 1, 0, 1, 0]; +const UsrInt_12 = [0, 0, 1, 1, 0]; +const UsrInt_13 = [1, 0, 1, 1, 0]; +const UsrInt_14 = [0, 1, 1, 1, 0]; +const UsrInt_15 = [1, 1, 1, 1, 0]; +const UsrInt_16 = [0, 0, 0, 0, 1]; +const UsrInt_17 = [1, 0, 0, 0, 1]; +const UsrInt_18 = [0, 1, 0, 0, 1]; +const UsrInt_19 = [1, 1, 0, 0, 1]; +const UsrInt_20 = [0, 0, 1, 0, 1]; +const UsrInt_21 = [1, 0, 1, 0, 1]; +const UsrInt_22 = [0, 1, 1, 0, 1]; +const UsrInt_23 = [1, 1, 1, 0, 1]; +const UsrInt_24 = [0, 0, 0, 1, 1]; +const UsrInt_25 = [1, 0, 0, 1, 1]; +const UsrInt_26 = [0, 1, 0, 1, 1]; +const UsrInt_27 = [1, 1, 0, 1, 1]; +const UsrInt_28 = [0, 0, 1, 1, 1]; +const UsrInt_29 = [1, 0, 1, 1, 1]; +const UsrInt_30 = [0, 1, 1, 1, 1]; +const UsrInt_31 = [1, 1, 1, 1, 1]; diff --git a/salut/lib/bit-blast/Makefile b/salut/lib/bit-blast/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..15994b5e0543c1b889ec474b225e8637473b763a --- /dev/null +++ b/salut/lib/bit-blast/Makefile @@ -0,0 +1,4 @@ + + +gen_binary: gen_binary.ml + ocamlopt gen_binary.ml -o $@ diff --git a/salut/lib/bit-blast/README.md b/salut/lib/bit-blast/README.md new file mode 100644 index 0000000000000000000000000000000000000000..d299e3cbe9440a670a6a47f5e086119494d56ae4 --- /dev/null +++ b/salut/lib/bit-blast/README.md @@ -0,0 +1,4 @@ + +Some lustre files that implements int using bool arrays. + +Very useful to perform proof with lesar on integers. \ No newline at end of file diff --git a/salut/lib/bit-blast/UsrIntChs.ec b/salut/lib/bit-blast/UsrIntChs.ec new file mode 100644 index 0000000000000000000000000000000000000000..3136d796062423e61af340dfad6de2b2d7ccb223 --- /dev/null +++ b/salut/lib/bit-blast/UsrIntChs.ec @@ -0,0 +1,33 @@ +node UsrIntChs + (x_0: bool; + x_1: bool; + x_2: bool; + x_3: bool; + x_4: bool) +returns + (s_0: bool; + s_1: bool; + s_2: bool; + s_3: bool; + s_4: bool); + +var + V145_c_1: bool; + V146_c_2: bool; + V147_c_3: bool; + V148_c_4: bool; + V149_c_5: bool; + +let + s_0 = (false xor x_0); + s_1 = (V145_c_1 xor x_1); + s_2 = (V146_c_2 xor x_2); + s_3 = (V147_c_3 xor x_3); + s_4 = (V148_c_4 xor x_4); + V145_c_1 = (false or x_0); + V146_c_2 = (V145_c_1 or x_1); + V147_c_3 = (V146_c_2 or x_2); + V148_c_4 = (V147_c_3 or x_3); + V149_c_5 = (V148_c_4 or x_4); +tel + diff --git a/salut/lib/bit-blast/UsrIntLt.ec b/salut/lib/bit-blast/UsrIntLt.ec new file mode 100644 index 0000000000000000000000000000000000000000..6540c43ffe32b576aa6b2c4ae54e9cb0fe8e330b --- /dev/null +++ b/salut/lib/bit-blast/UsrIntLt.ec @@ -0,0 +1,78 @@ +node UsrIntLt + (x_0: bool; + x_1: bool; + x_2: bool; + x_3: bool; + x_4: bool; + x_5: bool; + x_6: bool; + y_0: bool; + y_1: bool; + y_2: bool; + y_3: bool; + y_4: bool; + y_5: bool; + y_6: bool) +returns + (o: bool); + +var + V421_z_0: bool; + V422_z_1: bool; + V423_z_2: bool; + V424_z_3: bool; + V425_z_4: bool; + V426_z_5: bool; + V427_c_1: bool; + V428_c_2: bool; + V429_c_3: bool; + V430_c_4: bool; + V431_c_5: bool; + V432_c_6: bool; + V433_c_7: bool; + V434_c_1: bool; + V435_c_2: bool; + V436_c_3: bool; + V437_c_4: bool; + V438_c_5: bool; + V439_c_6: bool; + V440_c_7: bool; + V441_y_0: bool; + V442_y_1: bool; + V443_y_2: bool; + V444_y_3: bool; + V445_y_4: bool; + V446_y_5: bool; + V447_y_6: bool; + +let + o = ((x_6 xor V447_y_6) xor V439_c_6); + V421_z_0 = ((x_0 xor V441_y_0) xor false); + V422_z_1 = ((x_1 xor V442_y_1) xor V434_c_1); + V423_z_2 = ((x_2 xor V443_y_2) xor V435_c_2); + V424_z_3 = ((x_3 xor V444_y_3) xor V436_c_3); + V425_z_4 = ((x_4 xor V445_y_4) xor V437_c_4); + V426_z_5 = ((x_5 xor V446_y_5) xor V438_c_5); + V427_c_1 = (false or y_0); + V428_c_2 = (V427_c_1 or y_1); + V429_c_3 = (V428_c_2 or y_2); + V430_c_4 = (V429_c_3 or y_3); + V431_c_5 = (V430_c_4 or y_4); + V432_c_6 = (V431_c_5 or y_5); + V433_c_7 = (V432_c_6 or y_6); + V434_c_1 = (if false then (x_0 or V441_y_0) else (x_0 and V441_y_0)); + V435_c_2 = (if V434_c_1 then (x_1 or V442_y_1) else (x_1 and V442_y_1)); + V436_c_3 = (if V435_c_2 then (x_2 or V443_y_2) else (x_2 and V443_y_2)); + V437_c_4 = (if V436_c_3 then (x_3 or V444_y_3) else (x_3 and V444_y_3)); + V438_c_5 = (if V437_c_4 then (x_4 or V445_y_4) else (x_4 and V445_y_4)); + V439_c_6 = (if V438_c_5 then (x_5 or V446_y_5) else (x_5 and V446_y_5)); + V440_c_7 = (if V439_c_6 then (x_6 or V447_y_6) else (x_6 and V447_y_6)); + V441_y_0 = (false xor y_0); + V442_y_1 = (V427_c_1 xor y_1); + V443_y_2 = (V428_c_2 xor y_2); + V444_y_3 = (V429_c_3 xor y_3); + V445_y_4 = (V430_c_4 xor y_4); + V446_y_5 = (V431_c_5 xor y_5); + V447_y_6 = (V432_c_6 xor y_6); +tel + diff --git a/salut/lib/bit-blast/UsrIntLt.oc b/salut/lib/bit-blast/UsrIntLt.oc new file mode 100644 index 0000000000000000000000000000000000000000..b39cf73bc5334a24435bb69c73b2bfda56b03582 --- /dev/null +++ b/salut/lib/bit-blast/UsrIntLt.oc @@ -0,0 +1,356 @@ +oc5: +module: UsrIntLt + +signals: 15 + 0: input:x_0 - single:1 bool:0 + 1: input:x_1 - single:2 bool:0 + 2: input:x_2 - single:3 bool:0 + 3: input:x_3 - single:4 bool:0 + 4: input:x_4 - single:5 bool:0 + 5: input:x_5 - single:6 bool:0 + 6: input:x_6 - single:7 bool:0 + 7: input:y_0 - single:8 bool:0 + 8: input:y_1 - single:9 bool:0 + 9: input:y_2 - single:10 bool:0 + 10: input:y_3 - single:11 bool:0 + 11: input:y_4 - single:12 bool:0 + 12: input:y_5 - single:13 bool:0 + 13: input:y_6 - single:14 bool:0 + 14: output:o - single:15 +end: + +variables: 16 + 0: $0 + 1: $0 + 2: $0 + 3: $0 + 4: $0 + 5: $0 + 6: $0 + 7: $0 + 8: $0 + 9: $0 + 10: $0 + 11: $0 + 12: $0 + 13: $0 + 14: $0 + 15: $0 +end: + +actions: 31 + 0: present: 0 + 1: present: 1 + 2: present: 2 + 3: present: 3 + 4: present: 4 + 5: present: 5 + 6: present: 6 + 7: present: 7 + 8: present: 8 + 9: present: 9 + 10: present: 10 + 11: present: 11 + 12: present: 12 + 13: present: 13 + 14: output: 14 + 15: if: 7 + 16: if: 14 + 17: if: 13 + 18: if: 12 + 19: if: 11 + 20: if: 10 + 21: if: 8 + 22: if: 9 + 23: if: 6 + 24: if: 5 + 25: if: 4 + 26: if: 3 + 27: if: 2 + 28: if: 1 + 29: call:$0 (15) (@$0) + 30: call:$0 (15) (@$1) +end: + +states: 1 +startpoint: 0 +calls: 4620 +0: 15 ( 16 ( 17 ( 18 ( 19 ( 20 ( 21 ( 22 ( 23 ( 24 ( 25 ( 26 ( 27 ( 28 ( 29 14 +)( 30 14))( 30 14))( 30 14))( 30 14))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 26 ( 27 + ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14))( 30 14))( 30 14))( 30 14)))( 22 ( 23 + ( 24 ( 25 ( 26 ( 27 ( 29 14)( 30 14))( 30 14))( 30 14))( 30 14))( 30 14))( 23 + ( 24 ( 25 ( 26 ( 29 14)( 30 14))( 30 14))( 30 14))( 30 14))))( 21 ( 22 ( 23 ( +24 ( 25 ( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14)))( 30 14))( 30 14))( +30 14))( 23 ( 24 ( 25 ( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))( 30 14 +))( 30 14))( 30 14)))( 22 ( 23 ( 24 ( 25 ( 26 ( 29 14)( 27 ( 29 14)( 30 14)))( +30 14))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 29 14)( 30 14))( 30 14))( 30 14)))))( + 20 ( 21 ( 22 ( 23 ( 24 ( 25 ( 29 14)( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( + 30 14)))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 29 14)( 26 ( 27 ( 29 14)( 28 ( 29 +14)( 30 14)))( 30 14)))( 30 14))( 30 14)))( 22 ( 23 ( 24 ( 25 ( 29 14)( 26 ( 27 + ( 29 14)( 30 14))( 30 14)))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 29 14)( 26 ( 29 +14)( 30 14)))( 30 14))( 30 14))))( 21 ( 22 ( 23 ( 24 ( 25 ( 29 14)( 26 ( 29 14 +)( 27 ( 28 ( 29 14)( 30 14))( 30 14))))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 29 14 +)( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14)))))( 30 14))( 30 14)))( 22 ( +23 ( 24 ( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 30 14))))( 30 14))( 30 14))( +23 ( 24 ( 29 14)( 30 14))( 30 14))))))( 19 ( 20 ( 21 ( 22 ( 23 ( 24 ( 29 14)( +25 ( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14))( 30 14)))( 30 14))( 23 ( +24 ( 29 14)( 25 ( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14))( 30 14)))( +30 14)))( 22 ( 23 ( 24 ( 29 14)( 25 ( 26 ( 27 ( 29 14)( 30 14))( 30 14))( 30 14 +)))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 26 ( 29 14)( 30 14))( 30 14)))( 30 14))))( + 21 ( 22 ( 23 ( 24 ( 29 14)( 25 ( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14 +)))( 30 14)))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 26 ( 29 14)( 27 ( 29 14)( 28 ( +29 14)( 30 14))))( 30 14)))( 30 14)))( 22 ( 23 ( 24 ( 29 14)( 25 ( 26 ( 29 14)( + 27 ( 29 14)( 30 14)))( 30 14)))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 29 14)( 30 14 +)))( 30 14)))))( 20 ( 21 ( 22 ( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 ( 28 ( +29 14)( 30 14))( 30 14))( 30 14))))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 + ( 27 ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14))))( 30 14)))( 22 ( 23 ( 24 ( 29 +14)( 25 ( 29 14)( 26 ( 27 ( 29 14)( 30 14))( 30 14))))( 30 14))( 23 ( 24 ( 29 +14)( 25 ( 29 14)( 26 ( 29 14)( 30 14))))( 30 14))))( 21 ( 22 ( 23 ( 24 ( 29 14 +)( 25 ( 29 14)( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14)))))( 30 14))( 23 + ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))) +)( 30 14)))( 22 ( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 30 +14)))))( 30 14))( 23 ( 29 14)( 30 14)))))))( 18 ( 19 ( 20 ( 21 ( 22 ( 23 ( 29 +14)( 24 ( 25 ( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14))( 30 14))( 30 14 +)))( 23 ( 29 14)( 24 ( 25 ( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14))( +30 14))( 30 14))))( 22 ( 23 ( 29 14)( 24 ( 25 ( 26 ( 27 ( 29 14)( 30 14))( 30 +14))( 30 14))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 26 ( 29 14)( 30 14))( 30 14))( +30 14)))))( 21 ( 22 ( 23 ( 29 14)( 24 ( 25 ( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 +14))( 30 14)))( 30 14))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 26 ( 29 14)( 27 ( 29 +14)( 28 ( 29 14)( 30 14))))( 30 14))( 30 14))))( 22 ( 23 ( 29 14)( 24 ( 25 ( 26 + ( 29 14)( 27 ( 29 14)( 30 14)))( 30 14))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 29 +14)( 30 14))( 30 14))))))( 20 ( 21 ( 22 ( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( +27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14)))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( +29 14)( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14)))( 30 14))))( 22 ( 23 ( + 29 14)( 24 ( 25 ( 29 14)( 26 ( 27 ( 29 14)( 30 14))( 30 14)))( 30 14)))( 23 ( +29 14)( 24 ( 25 ( 29 14)( 26 ( 29 14)( 30 14)))( 30 14)))))( 21 ( 22 ( 23 ( 29 +14)( 24 ( 25 ( 29 14)( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14))))( 30 14 +)))( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 +14)))))( 30 14))))( 22 ( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14 +)( 30 14))))( 30 14)))( 23 ( 29 14)( 24 ( 29 14)( 30 14)))))))( 19 ( 20 ( 21 ( +22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 + 14))( 30 14))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 27 ( 29 14)( 28 ( 29 14)( + 30 14)))( 30 14))( 30 14)))))( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 27 ( +29 14)( 30 14))( 30 14))( 30 14))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 29 14 +)( 30 14))( 30 14))))))( 21 ( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 29 14)( +27 ( 28 ( 29 14)( 30 14))( 30 14)))( 30 14))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( +26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))( 30 14)))))( 22 ( 23 ( 29 14)( + 24 ( 29 14)( 25 ( 26 ( 29 14)( 27 ( 29 14)( 30 14)))( 30 14))))( 23 ( 29 14)( +24 ( 29 14)( 25 ( 29 14)( 30 14)))))))( 20 ( 21 ( 22 ( 23 ( 29 14)( 24 ( 29 14 +)( 25 ( 29 14)( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14)))))( 23 ( 29 14 +)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14)))) +))( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 ( 29 14)( 30 14))( 30 +14)))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 30 14)))))))( 21 ( + 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 +14))( 30 14))))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 +14)( 28 ( 29 14)( 30 14))))))))( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 + ( 29 14)( 27 ( 29 14)( 30 14))))))( 29 14)))))))( 17 ( 18 ( 19 ( 20 ( 21 ( 22 + ( 23 ( 24 ( 25 ( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14))( 29 + 14))( 29 14))( 23 ( 24 ( 25 ( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14) +)( 29 14))( 29 14))( 29 14)))( 22 ( 23 ( 24 ( 25 ( 26 ( 27 ( 30 14)( 29 14))( +29 14))( 29 14))( 29 14))( 29 14))( 23 ( 24 ( 25 ( 26 ( 30 14)( 29 14))( 29 14) +)( 29 14))( 29 14))))( 21 ( 22 ( 23 ( 24 ( 25 ( 26 ( 30 14)( 27 ( 28 ( 30 14)( +29 14))( 29 14)))( 29 14))( 29 14))( 29 14))( 23 ( 24 ( 25 ( 26 ( 30 14)( 27 ( +30 14)( 28 ( 30 14)( 29 14))))( 29 14))( 29 14))( 29 14)))( 22 ( 23 ( 24 ( 25 ( + 26 ( 30 14)( 27 ( 30 14)( 29 14)))( 29 14))( 29 14))( 29 14))( 23 ( 24 ( 25 ( +30 14)( 29 14))( 29 14))( 29 14)))))( 20 ( 21 ( 22 ( 23 ( 24 ( 25 ( 30 14)( 26 + ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14)))( 29 14))( 29 14))( 23 ( 24 ( 25 + ( 30 14)( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14)))( 29 14))( 29 14)) +)( 22 ( 23 ( 24 ( 25 ( 30 14)( 26 ( 27 ( 30 14)( 29 14))( 29 14)))( 29 14))( 29 + 14))( 23 ( 24 ( 25 ( 30 14)( 26 ( 30 14)( 29 14)))( 29 14))( 29 14))))( 21 ( +22 ( 23 ( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14))))( +29 14))( 29 14))( 23 ( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( + 29 14)))))( 29 14))( 29 14)))( 22 ( 23 ( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 ( +30 14)( 29 14))))( 29 14))( 29 14))( 23 ( 24 ( 30 14)( 29 14))( 29 14))))))( 19 + ( 20 ( 21 ( 22 ( 23 ( 24 ( 30 14)( 25 ( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14) +)( 29 14))( 29 14)))( 29 14))( 23 ( 24 ( 30 14)( 25 ( 26 ( 27 ( 30 14)( 28 ( 30 + 14)( 29 14)))( 29 14))( 29 14)))( 29 14)))( 22 ( 23 ( 24 ( 30 14)( 25 ( 26 ( +27 ( 30 14)( 29 14))( 29 14))( 29 14)))( 29 14))( 23 ( 24 ( 30 14)( 25 ( 26 ( +30 14)( 29 14))( 29 14)))( 29 14))))( 21 ( 22 ( 23 ( 24 ( 30 14)( 25 ( 26 ( 30 +14)( 27 ( 28 ( 30 14)( 29 14))( 29 14)))( 29 14)))( 29 14))( 23 ( 24 ( 30 14)( +25 ( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 14))))( 29 14)))( 29 14)))( 22 ( + 23 ( 24 ( 30 14)( 25 ( 26 ( 30 14)( 27 ( 30 14)( 29 14)))( 29 14)))( 29 14))( +23 ( 24 ( 30 14)( 25 ( 30 14)( 29 14)))( 29 14)))))( 20 ( 21 ( 22 ( 23 ( 24 ( +30 14)( 25 ( 30 14)( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14))))( 29 14) +)( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 +14))))( 29 14)))( 22 ( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( 27 ( 30 14)( 29 14) +)( 29 14))))( 29 14))( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 29 14))))( +29 14))))( 21 ( 22 ( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 27 ( 28 ( 30 +14)( 29 14))( 29 14)))))( 29 14))( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( +27 ( 30 14)( 28 ( 30 14)( 29 14))))))( 29 14)))( 22 ( 23 ( 24 ( 30 14)( 25 ( 30 + 14)( 26 ( 30 14)( 27 ( 30 14)( 29 14)))))( 29 14))( 23 ( 30 14)( 29 14)))))))( + 18 ( 19 ( 20 ( 21 ( 22 ( 23 ( 30 14)( 24 ( 25 ( 26 ( 27 ( 28 ( 30 14)( 29 14) +)( 29 14))( 29 14))( 29 14))( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 26 ( 27 ( 30 14 +)( 28 ( 30 14)( 29 14)))( 29 14))( 29 14))( 29 14))))( 22 ( 23 ( 30 14)( 24 ( +25 ( 26 ( 27 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14)))( 23 ( 30 14)( 24 ( +25 ( 26 ( 30 14)( 29 14))( 29 14))( 29 14)))))( 21 ( 22 ( 23 ( 30 14)( 24 ( 25 + ( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14)))( 29 14))( 29 14)))( 23 ( 30 + 14)( 24 ( 25 ( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 14))))( 29 14))( 29 +14))))( 22 ( 23 ( 30 14)( 24 ( 25 ( 26 ( 30 14)( 27 ( 30 14)( 29 14)))( 29 14) +)( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 30 14)( 29 14))( 29 14))))))( 20 ( 21 ( 22 + ( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 +14)))( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 27 ( 30 14)( 28 ( 30 14)( +29 14)))( 29 14)))( 29 14))))( 22 ( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 27 ( 30 + 14)( 29 14))( 29 14)))( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 30 14)( +29 14)))( 29 14)))))( 21 ( 22 ( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 + ( 28 ( 30 14)( 29 14))( 29 14))))( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 + ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 14)))))( 29 14))))( 22 ( 23 ( 30 14)( +24 ( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 29 14))))( 29 14)))( 23 ( 30 14)( +24 ( 30 14)( 29 14)))))))( 19 ( 20 ( 21 ( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( +26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14))))( 23 ( 30 14)( 24 ( +30 14)( 25 ( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14))( 29 14)))))( 22 ( + 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 ( 27 ( 30 14)( 29 14))( 29 14))( 29 14))))( +23 ( 30 14)( 24 ( 30 14)( 25 ( 26 ( 30 14)( 29 14))( 29 14))))))( 21 ( 22 ( 23 + ( 30 14)( 24 ( 30 14)( 25 ( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14)))( +29 14))))( 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14 +)( 29 14))))( 29 14)))))( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 ( 30 14)( 27 ( + 30 14)( 29 14)))( 29 14))))( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 29 14))))) +))( 20 ( 21 ( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 27 ( 28 ( 30 14 +)( 29 14))( 29 14))( 29 14)))))( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 27 + ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14))))))( 22 ( 23 ( 30 14)( 24 ( 30 14)( +25 ( 30 14)( 26 ( 27 ( 30 14)( 29 14))( 29 14)))))( 23 ( 30 14)( 24 ( 30 14)( +25 ( 30 14)( 26 ( 30 14)( 29 14)))))))( 21 ( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 + ( 30 14)( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14))))))( 23 ( 30 14)( 24 + ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 14))))))))( +22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 29 14)))) +))( 30 14))))))))( 16 ( 17 ( 18 ( 19 ( 20 ( 21 ( 22 ( 23 ( 24 ( 25 ( 26 ( 27 ( +28 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14))( 29 14))( 29 14))( 23 ( 24 ( 25 + ( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14))( 29 14))( 29 14))( 29 14)) +)( 22 ( 23 ( 24 ( 25 ( 26 ( 27 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14))( 29 + 14))( 23 ( 24 ( 25 ( 26 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14))))( 21 ( +22 ( 23 ( 24 ( 25 ( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14)))( 29 14))( +29 14))( 29 14))( 23 ( 24 ( 25 ( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 14)) +))( 29 14))( 29 14))( 29 14)))( 22 ( 23 ( 24 ( 25 ( 26 ( 30 14)( 27 ( 30 14)( +29 14)))( 29 14))( 29 14))( 29 14))( 23 ( 24 ( 25 ( 30 14)( 29 14))( 29 14))( +29 14)))))( 20 ( 21 ( 22 ( 23 ( 24 ( 25 ( 30 14)( 26 ( 27 ( 28 ( 30 14)( 29 14) +)( 29 14))( 29 14)))( 29 14))( 29 14))( 23 ( 24 ( 25 ( 30 14)( 26 ( 27 ( 30 14 +)( 28 ( 30 14)( 29 14)))( 29 14)))( 29 14))( 29 14)))( 22 ( 23 ( 24 ( 25 ( 30 +14)( 26 ( 27 ( 30 14)( 29 14))( 29 14)))( 29 14))( 29 14))( 23 ( 24 ( 25 ( 30 +14)( 26 ( 30 14)( 29 14)))( 29 14))( 29 14))))( 21 ( 22 ( 23 ( 24 ( 25 ( 30 14 +)( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14))))( 29 14))( 29 14))( 23 ( 24 + ( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 14)))))( 29 14))( 29 +14)))( 22 ( 23 ( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 29 14))))( 29 14) +)( 29 14))( 23 ( 24 ( 30 14)( 29 14))( 29 14))))))( 19 ( 20 ( 21 ( 22 ( 23 ( 24 + ( 30 14)( 25 ( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14)))( 29 +14))( 23 ( 24 ( 30 14)( 25 ( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14))( +29 14)))( 29 14)))( 22 ( 23 ( 24 ( 30 14)( 25 ( 26 ( 27 ( 30 14)( 29 14))( 29 +14))( 29 14)))( 29 14))( 23 ( 24 ( 30 14)( 25 ( 26 ( 30 14)( 29 14))( 29 14)))( + 29 14))))( 21 ( 22 ( 23 ( 24 ( 30 14)( 25 ( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 +14))( 29 14)))( 29 14)))( 29 14))( 23 ( 24 ( 30 14)( 25 ( 26 ( 30 14)( 27 ( 30 +14)( 28 ( 30 14)( 29 14))))( 29 14)))( 29 14)))( 22 ( 23 ( 24 ( 30 14)( 25 ( 26 + ( 30 14)( 27 ( 30 14)( 29 14)))( 29 14)))( 29 14))( 23 ( 24 ( 30 14)( 25 ( 30 +14)( 29 14)))( 29 14)))))( 20 ( 21 ( 22 ( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( +27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14))))( 29 14))( 23 ( 24 ( 30 14)( 25 ( +30 14)( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14))))( 29 14)))( 22 ( 23 ( + 24 ( 30 14)( 25 ( 30 14)( 26 ( 27 ( 30 14)( 29 14))( 29 14))))( 29 14))( 23 ( +24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 29 14))))( 29 14))))( 21 ( 22 ( 23 ( 24 + ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14)))))( 29 +14))( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 +14))))))( 29 14)))( 22 ( 23 ( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14 +)( 29 14)))))( 29 14))( 23 ( 30 14)( 29 14)))))))( 18 ( 19 ( 20 ( 21 ( 22 ( 23 + ( 30 14)( 24 ( 25 ( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14))( 29 14))( + 29 14)))( 23 ( 30 14)( 24 ( 25 ( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 +14))( 29 14))( 29 14))))( 22 ( 23 ( 30 14)( 24 ( 25 ( 26 ( 27 ( 30 14)( 29 14) +)( 29 14))( 29 14))( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 26 ( 30 14)( 29 14))( 29 +14))( 29 14)))))( 21 ( 22 ( 23 ( 30 14)( 24 ( 25 ( 26 ( 30 14)( 27 ( 28 ( 30 14 +)( 29 14))( 29 14)))( 29 14))( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 26 ( 30 14)( 27 + ( 30 14)( 28 ( 30 14)( 29 14))))( 29 14))( 29 14))))( 22 ( 23 ( 30 14)( 24 ( +25 ( 26 ( 30 14)( 27 ( 30 14)( 29 14)))( 29 14))( 29 14)))( 23 ( 30 14)( 24 ( +25 ( 30 14)( 29 14))( 29 14))))))( 20 ( 21 ( 22 ( 23 ( 30 14)( 24 ( 25 ( 30 14 +)( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14)))( 29 14)))( 23 ( 30 14)( 24 + ( 25 ( 30 14)( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( 29 14)))( 29 14))))( +22 ( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 27 ( 30 14)( 29 14))( 29 14)))( 29 14) +))( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 30 14)( 29 14)))( 29 14)))))( 21 ( 22 ( + 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14)) +))( 29 14)))( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 +14)( 29 14)))))( 29 14))))( 22 ( 23 ( 30 14)( 24 ( 25 ( 30 14)( 26 ( 30 14)( 27 + ( 30 14)( 29 14))))( 29 14)))( 23 ( 30 14)( 24 ( 30 14)( 29 14)))))))( 19 ( 20 + ( 21 ( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 +14))( 29 14))( 29 14))))( 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 ( 27 ( 30 14)( 28 ( + 30 14)( 29 14)))( 29 14))( 29 14)))))( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 + ( 27 ( 30 14)( 29 14))( 29 14))( 29 14))))( 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 + ( 30 14)( 29 14))( 29 14))))))( 21 ( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 26 ( +30 14)( 27 ( 28 ( 30 14)( 29 14))( 29 14)))( 29 14))))( 23 ( 30 14)( 24 ( 30 14 +)( 25 ( 26 ( 30 14)( 27 ( 30 14)( 28 ( 30 14)( 29 14))))( 29 14)))))( 22 ( 23 ( + 30 14)( 24 ( 30 14)( 25 ( 26 ( 30 14)( 27 ( 30 14)( 29 14)))( 29 14))))( 23 ( +30 14)( 24 ( 30 14)( 25 ( 30 14)( 29 14)))))))( 20 ( 21 ( 22 ( 23 ( 30 14)( 24 + ( 30 14)( 25 ( 30 14)( 26 ( 27 ( 28 ( 30 14)( 29 14))( 29 14))( 29 14)))))( 23 + ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 27 ( 30 14)( 28 ( 30 14)( 29 14)))( +29 14))))))( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 27 ( 30 14)( 29 +14))( 29 14)))))( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 29 14)))) +)))( 21 ( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( 27 ( 28 ( 30 + 14)( 29 14))( 29 14))))))( 23 ( 30 14)( 24 ( 30 14)( 25 ( 30 14)( 26 ( 30 14)( + 27 ( 30 14)( 28 ( 30 14)( 29 14))))))))( 22 ( 23 ( 30 14)( 24 ( 30 14)( 25 ( +30 14)( 26 ( 30 14)( 27 ( 30 14)( 29 14))))))( 30 14)))))))( 17 ( 18 ( 19 ( 20 + ( 21 ( 22 ( 23 ( 24 ( 25 ( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14))( +30 14))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 14) +))( 30 14))( 30 14))( 30 14))( 30 14)))( 22 ( 23 ( 24 ( 25 ( 26 ( 27 ( 29 14)( +30 14))( 30 14))( 30 14))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 26 ( 29 14)( 30 14) +)( 30 14))( 30 14))( 30 14))))( 21 ( 22 ( 23 ( 24 ( 25 ( 26 ( 29 14)( 27 ( 28 ( + 29 14)( 30 14))( 30 14)))( 30 14))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 26 ( 29 +14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))( 30 14))( 30 14))( 30 14)))( 22 ( 23 ( + 24 ( 25 ( 26 ( 29 14)( 27 ( 29 14)( 30 14)))( 30 14))( 30 14))( 30 14))( 23 ( +24 ( 25 ( 29 14)( 30 14))( 30 14))( 30 14)))))( 20 ( 21 ( 22 ( 23 ( 24 ( 25 ( +29 14)( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14)))( 30 14))( 30 14))( 23 + ( 24 ( 25 ( 29 14)( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14)))( 30 14) +)( 30 14)))( 22 ( 23 ( 24 ( 25 ( 29 14)( 26 ( 27 ( 29 14)( 30 14))( 30 14)))( +30 14))( 30 14))( 23 ( 24 ( 25 ( 29 14)( 26 ( 29 14)( 30 14)))( 30 14))( 30 14) +)))( 21 ( 22 ( 23 ( 24 ( 25 ( 29 14)( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( +30 14))))( 30 14))( 30 14))( 23 ( 24 ( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( +28 ( 29 14)( 30 14)))))( 30 14))( 30 14)))( 22 ( 23 ( 24 ( 25 ( 29 14)( 26 ( 29 + 14)( 27 ( 29 14)( 30 14))))( 30 14))( 30 14))( 23 ( 24 ( 29 14)( 30 14))( 30 +14))))))( 19 ( 20 ( 21 ( 22 ( 23 ( 24 ( 29 14)( 25 ( 26 ( 27 ( 28 ( 29 14)( 30 +14))( 30 14))( 30 14))( 30 14)))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 26 ( 27 ( 29 +14)( 28 ( 29 14)( 30 14)))( 30 14))( 30 14)))( 30 14)))( 22 ( 23 ( 24 ( 29 14)( + 25 ( 26 ( 27 ( 29 14)( 30 14))( 30 14))( 30 14)))( 30 14))( 23 ( 24 ( 29 14)( +25 ( 26 ( 29 14)( 30 14))( 30 14)))( 30 14))))( 21 ( 22 ( 23 ( 24 ( 29 14)( 25 + ( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14)))( 30 14)))( 30 14))( 23 ( 24 + ( 29 14)( 25 ( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))( 30 14)))( 30 +14)))( 22 ( 23 ( 24 ( 29 14)( 25 ( 26 ( 29 14)( 27 ( 29 14)( 30 14)))( 30 14)) +)( 30 14))( 23 ( 24 ( 29 14)( 25 ( 29 14)( 30 14)))( 30 14)))))( 20 ( 21 ( 22 ( + 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14) +)))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 +14)))( 30 14))))( 30 14)))( 22 ( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 ( 29 14 +)( 30 14))( 30 14))))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 30 +14))))( 30 14))))( 21 ( 22 ( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 27 ( +28 ( 29 14)( 30 14))( 30 14)))))( 30 14))( 23 ( 24 ( 29 14)( 25 ( 29 14)( 26 ( +29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))))( 30 14)))( 22 ( 23 ( 24 ( 29 14)( + 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 30 14)))))( 30 14))( 23 ( 29 14)( 30 14 +)))))))( 18 ( 19 ( 20 ( 21 ( 22 ( 23 ( 29 14)( 24 ( 25 ( 26 ( 27 ( 28 ( 29 14)( + 30 14))( 30 14))( 30 14))( 30 14))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 26 ( 27 ( + 29 14)( 28 ( 29 14)( 30 14)))( 30 14))( 30 14))( 30 14))))( 22 ( 23 ( 29 14)( +24 ( 25 ( 26 ( 27 ( 29 14)( 30 14))( 30 14))( 30 14))( 30 14)))( 23 ( 29 14)( +24 ( 25 ( 26 ( 29 14)( 30 14))( 30 14))( 30 14)))))( 21 ( 22 ( 23 ( 29 14)( 24 + ( 25 ( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14)))( 30 14))( 30 14)))( 23 + ( 29 14)( 24 ( 25 ( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))( 30 14))( + 30 14))))( 22 ( 23 ( 29 14)( 24 ( 25 ( 26 ( 29 14)( 27 ( 29 14)( 30 14)))( 30 +14))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 29 14)( 30 14))( 30 14))))))( 20 ( 21 ( +22 ( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 + 14)))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( 27 ( 29 14)( 28 ( 29 14)( + 30 14)))( 30 14)))( 30 14))))( 22 ( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( 27 ( +29 14)( 30 14))( 30 14)))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( 29 14 +)( 30 14)))( 30 14)))))( 21 ( 22 ( 23 ( 29 14)( 24 ( 25 ( 29 14)( 26 ( 29 14)( +27 ( 28 ( 29 14)( 30 14))( 30 14))))( 30 14)))( 23 ( 29 14)( 24 ( 25 ( 29 14)( +26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14)))))( 30 14))))( 22 ( 23 ( 29 14)( + 24 ( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 30 14))))( 30 14)))( 23 ( 29 14)( +24 ( 29 14)( 30 14)))))))( 19 ( 20 ( 21 ( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( +26 ( 27 ( 28 ( 29 14)( 30 14))( 30 14))( 30 14))( 30 14))))( 23 ( 29 14)( 24 ( +29 14)( 25 ( 26 ( 27 ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14))( 30 14)))))( 22 ( + 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 27 ( 29 14)( 30 14))( 30 14))( 30 14))))( +23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 29 14)( 30 14))( 30 14))))))( 21 ( 22 ( 23 + ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14)))( +30 14))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14 +)( 30 14))))( 30 14)))))( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 26 ( 29 14)( 27 ( + 29 14)( 30 14)))( 30 14))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 30 14))))) +))( 20 ( 21 ( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 ( 28 ( 29 14 +)( 30 14))( 30 14))( 30 14)))))( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 27 + ( 29 14)( 28 ( 29 14)( 30 14)))( 30 14))))))( 22 ( 23 ( 29 14)( 24 ( 29 14)( +25 ( 29 14)( 26 ( 27 ( 29 14)( 30 14))( 30 14)))))( 23 ( 29 14)( 24 ( 29 14)( +25 ( 29 14)( 26 ( 29 14)( 30 14)))))))( 21 ( 22 ( 23 ( 29 14)( 24 ( 29 14)( 25 + ( 29 14)( 26 ( 29 14)( 27 ( 28 ( 29 14)( 30 14))( 30 14))))))( 23 ( 29 14)( 24 + ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 28 ( 29 14)( 30 14))))))))( +22 ( 23 ( 29 14)( 24 ( 29 14)( 25 ( 29 14)( 26 ( 29 14)( 27 ( 29 14)( 30 14)))) +))( 29 14)))))))) <0> + +end: + +endmodule: \ No newline at end of file diff --git a/salut/lib/bit-blast/a.out b/salut/lib/bit-blast/a.out new file mode 100755 index 0000000000000000000000000000000000000000..a8e822261ff3a0527c09a607b669802dbe85775f Binary files /dev/null and b/salut/lib/bit-blast/a.out differ diff --git a/salut/lib/bit-blast/binary.lus b/salut/lib/bit-blast/binary.lus new file mode 100644 index 0000000000000000000000000000000000000000..77e236191e714a7b7167008d303ef9f43a8035aa --- /dev/null +++ b/salut/lib/bit-blast/binary.lus @@ -0,0 +1,97 @@ + +-- Signed binary + +-- const BIN_SZ=8; +type UsrInt = bool^BIN_SZ; + +--const UsrInt_0 = false^BIN_SZ; + + +node UsrIntIf( + c : bool; x : UsrInt; y : UsrInt +) returns ( + s : UsrInt +); +let + s = if c^BIN_SZ then x else y; +tel + +node UsrIntPlus( x : UsrInt; y : UsrInt) returns ( s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = false; + + c[1..BIN_SZ] = if c[0..BIN_SZ-1] then (x or y) else (x and y); + s = x xor y xor c[0..BIN_SZ-1]; +tel + +node UsrIntChs( x : UsrInt) returns ( s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = false; + c[1..BIN_SZ] = c[0..BIN_SZ-1] or x; + s = c[0..BIN_SZ-1] xor x; +tel + +node UsrIntIncr(x : UsrInt) returns (s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = true; + c[1..BIN_SZ] = c[0..BIN_SZ-1] and x; + s = c[0..BIN_SZ-1] xor x; +tel + +node UsrIntDecr(x : UsrInt) returns (s : UsrInt); +var c : bool^(BIN_SZ+1); +let + c[0] = true; + c[1..BIN_SZ] = c[0..BIN_SZ-1] and not x; + s = c[0..BIN_SZ-1] xor x; +tel + +node UsrIntMinus( x : UsrInt; y : UsrInt) returns ( s : UsrInt); +let + s = UsrIntPlus(x, UsrIntChs(y)); +tel + + +node UsrIntGt( x : UsrInt; y : UsrInt) returns ( o : bool); +var + z : UsrInt; +let + -- x > y <=> y - x < 0 + z = UsrIntPlus(y, UsrIntChs(x)); + o = z[BIN_SZ-1]; +tel + +node UsrIntLt( x : UsrInt; y : UsrInt) returns ( o : bool); +let + -- x < y <=> y > x + o = UsrIntGt(y,x); +tel + +node UsrIntGte( x : UsrInt; y : UsrInt) returns ( o : bool); +let + -- x >= y <=> not y > x + o = not UsrIntGt(y,x); +tel + +node UsrIntLte( x : UsrInt; y : UsrInt) returns ( o : bool); +let + -- x <= y <=> not x > y + o = not UsrIntGt(x,y); +tel + +node UsrIntEq( x : UsrInt; y : UsrInt) returns ( o : bool); +var + a : bool^BIN_SZ+1; +let + a[0] = true; + a[1..BIN_SZ] = a[0..BIN_SZ-1] and (x = y); + o = a[BIN_SZ]; +tel + +node UsrIntNeq( x : UsrInt; y : UsrInt) returns ( o : bool); +let + o = not UsrIntEq(x,y); +tel diff --git a/salut/lib/bit-blast/binary11.lus b/salut/lib/bit-blast/binary11.lus new file mode 100644 index 0000000000000000000000000000000000000000..388a6d51033b01314c87ff60e7e2c8c1d615c313 --- /dev/null +++ b/salut/lib/bit-blast/binary11.lus @@ -0,0 +1,2050 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=11; +const UsrInt_0 = [false,false,false,false,false,false,false,false,false,false,false]; +const UsrInt_1 = [true,false,false,false,false,false,false,false,false,false,false]; +const UsrInt_2 = [false,true,false,false,false,false,false,false,false,false,false]; +const UsrInt_3 = [true,true,false,false,false,false,false,false,false,false,false]; +const UsrInt_4 = [false,false,true,false,false,false,false,false,false,false,false]; +const UsrInt_5 = [true,false,true,false,false,false,false,false,false,false,false]; +const UsrInt_6 = [false,true,true,false,false,false,false,false,false,false,false]; +const UsrInt_7 = [true,true,true,false,false,false,false,false,false,false,false]; +const UsrInt_8 = [false,false,false,true,false,false,false,false,false,false,false]; +const UsrInt_9 = [true,false,false,true,false,false,false,false,false,false,false]; +const UsrInt_10 = [false,true,false,true,false,false,false,false,false,false,false]; +const UsrInt_11 = [true,true,false,true,false,false,false,false,false,false,false]; +const UsrInt_12 = [false,false,true,true,false,false,false,false,false,false,false]; +const UsrInt_13 = [true,false,true,true,false,false,false,false,false,false,false]; +const UsrInt_14 = [false,true,true,true,false,false,false,false,false,false,false]; +const UsrInt_15 = [true,true,true,true,false,false,false,false,false,false,false]; +const UsrInt_16 = [false,false,false,false,true,false,false,false,false,false,false]; +const UsrInt_17 = [true,false,false,false,true,false,false,false,false,false,false]; +const UsrInt_18 = [false,true,false,false,true,false,false,false,false,false,false]; +const UsrInt_19 = [true,true,false,false,true,false,false,false,false,false,false]; +const UsrInt_20 = [false,false,true,false,true,false,false,false,false,false,false]; +const UsrInt_21 = [true,false,true,false,true,false,false,false,false,false,false]; +const UsrInt_22 = [false,true,true,false,true,false,false,false,false,false,false]; +const UsrInt_23 = [true,true,true,false,true,false,false,false,false,false,false]; +const UsrInt_24 = [false,false,false,true,true,false,false,false,false,false,false]; +const UsrInt_25 = [true,false,false,true,true,false,false,false,false,false,false]; +const UsrInt_26 = [false,true,false,true,true,false,false,false,false,false,false]; +const UsrInt_27 = [true,true,false,true,true,false,false,false,false,false,false]; +const UsrInt_28 = [false,false,true,true,true,false,false,false,false,false,false]; +const UsrInt_29 = [true,false,true,true,true,false,false,false,false,false,false]; +const UsrInt_30 = [false,true,true,true,true,false,false,false,false,false,false]; +const UsrInt_31 = [true,true,true,true,true,false,false,false,false,false,false]; +const UsrInt_32 = [false,false,false,false,false,true,false,false,false,false,false]; +const UsrInt_33 = [true,false,false,false,false,true,false,false,false,false,false]; +const UsrInt_34 = [false,true,false,false,false,true,false,false,false,false,false]; +const UsrInt_35 = [true,true,false,false,false,true,false,false,false,false,false]; +const UsrInt_36 = [false,false,true,false,false,true,false,false,false,false,false]; +const UsrInt_37 = [true,false,true,false,false,true,false,false,false,false,false]; +const UsrInt_38 = [false,true,true,false,false,true,false,false,false,false,false]; +const UsrInt_39 = [true,true,true,false,false,true,false,false,false,false,false]; +const UsrInt_40 = [false,false,false,true,false,true,false,false,false,false,false]; +const UsrInt_41 = [true,false,false,true,false,true,false,false,false,false,false]; +const UsrInt_42 = [false,true,false,true,false,true,false,false,false,false,false]; +const UsrInt_43 = [true,true,false,true,false,true,false,false,false,false,false]; +const UsrInt_44 = [false,false,true,true,false,true,false,false,false,false,false]; +const UsrInt_45 = [true,false,true,true,false,true,false,false,false,false,false]; +const UsrInt_46 = [false,true,true,true,false,true,false,false,false,false,false]; +const UsrInt_47 = [true,true,true,true,false,true,false,false,false,false,false]; +const UsrInt_48 = [false,false,false,false,true,true,false,false,false,false,false]; +const UsrInt_49 = [true,false,false,false,true,true,false,false,false,false,false]; +const UsrInt_50 = [false,true,false,false,true,true,false,false,false,false,false]; +const UsrInt_51 = [true,true,false,false,true,true,false,false,false,false,false]; +const UsrInt_52 = [false,false,true,false,true,true,false,false,false,false,false]; +const UsrInt_53 = [true,false,true,false,true,true,false,false,false,false,false]; +const UsrInt_54 = [false,true,true,false,true,true,false,false,false,false,false]; +const UsrInt_55 = [true,true,true,false,true,true,false,false,false,false,false]; +const UsrInt_56 = [false,false,false,true,true,true,false,false,false,false,false]; +const UsrInt_57 = [true,false,false,true,true,true,false,false,false,false,false]; +const UsrInt_58 = [false,true,false,true,true,true,false,false,false,false,false]; +const UsrInt_59 = [true,true,false,true,true,true,false,false,false,false,false]; +const UsrInt_60 = [false,false,true,true,true,true,false,false,false,false,false]; +const UsrInt_61 = [true,false,true,true,true,true,false,false,false,false,false]; +const UsrInt_62 = [false,true,true,true,true,true,false,false,false,false,false]; +const UsrInt_63 = [true,true,true,true,true,true,false,false,false,false,false]; +const UsrInt_64 = [false,false,false,false,false,false,true,false,false,false,false]; +const UsrInt_65 = [true,false,false,false,false,false,true,false,false,false,false]; +const UsrInt_66 = [false,true,false,false,false,false,true,false,false,false,false]; +const UsrInt_67 = [true,true,false,false,false,false,true,false,false,false,false]; +const UsrInt_68 = [false,false,true,false,false,false,true,false,false,false,false]; +const UsrInt_69 = [true,false,true,false,false,false,true,false,false,false,false]; +const UsrInt_70 = [false,true,true,false,false,false,true,false,false,false,false]; +const UsrInt_71 = [true,true,true,false,false,false,true,false,false,false,false]; +const UsrInt_72 = [false,false,false,true,false,false,true,false,false,false,false]; +const UsrInt_73 = [true,false,false,true,false,false,true,false,false,false,false]; +const UsrInt_74 = [false,true,false,true,false,false,true,false,false,false,false]; +const UsrInt_75 = [true,true,false,true,false,false,true,false,false,false,false]; +const UsrInt_76 = [false,false,true,true,false,false,true,false,false,false,false]; +const UsrInt_77 = [true,false,true,true,false,false,true,false,false,false,false]; +const UsrInt_78 = [false,true,true,true,false,false,true,false,false,false,false]; +const UsrInt_79 = [true,true,true,true,false,false,true,false,false,false,false]; +const UsrInt_80 = [false,false,false,false,true,false,true,false,false,false,false]; +const UsrInt_81 = [true,false,false,false,true,false,true,false,false,false,false]; +const UsrInt_82 = [false,true,false,false,true,false,true,false,false,false,false]; +const UsrInt_83 = [true,true,false,false,true,false,true,false,false,false,false]; +const UsrInt_84 = [false,false,true,false,true,false,true,false,false,false,false]; +const UsrInt_85 = [true,false,true,false,true,false,true,false,false,false,false]; +const UsrInt_86 = [false,true,true,false,true,false,true,false,false,false,false]; +const UsrInt_87 = [true,true,true,false,true,false,true,false,false,false,false]; +const UsrInt_88 = [false,false,false,true,true,false,true,false,false,false,false]; +const UsrInt_89 = [true,false,false,true,true,false,true,false,false,false,false]; +const UsrInt_90 = [false,true,false,true,true,false,true,false,false,false,false]; +const UsrInt_91 = [true,true,false,true,true,false,true,false,false,false,false]; +const UsrInt_92 = [false,false,true,true,true,false,true,false,false,false,false]; +const UsrInt_93 = [true,false,true,true,true,false,true,false,false,false,false]; +const UsrInt_94 = [false,true,true,true,true,false,true,false,false,false,false]; +const UsrInt_95 = [true,true,true,true,true,false,true,false,false,false,false]; +const UsrInt_96 = [false,false,false,false,false,true,true,false,false,false,false]; +const UsrInt_97 = [true,false,false,false,false,true,true,false,false,false,false]; +const UsrInt_98 = [false,true,false,false,false,true,true,false,false,false,false]; +const UsrInt_99 = [true,true,false,false,false,true,true,false,false,false,false]; +const UsrInt_100 = [false,false,true,false,false,true,true,false,false,false,false]; +const UsrInt_101 = [true,false,true,false,false,true,true,false,false,false,false]; +const UsrInt_102 = [false,true,true,false,false,true,true,false,false,false,false]; +const UsrInt_103 = [true,true,true,false,false,true,true,false,false,false,false]; +const UsrInt_104 = [false,false,false,true,false,true,true,false,false,false,false]; +const UsrInt_105 = [true,false,false,true,false,true,true,false,false,false,false]; +const UsrInt_106 = [false,true,false,true,false,true,true,false,false,false,false]; +const UsrInt_107 = [true,true,false,true,false,true,true,false,false,false,false]; +const UsrInt_108 = [false,false,true,true,false,true,true,false,false,false,false]; +const UsrInt_109 = [true,false,true,true,false,true,true,false,false,false,false]; +const UsrInt_110 = [false,true,true,true,false,true,true,false,false,false,false]; +const UsrInt_111 = [true,true,true,true,false,true,true,false,false,false,false]; +const UsrInt_112 = [false,false,false,false,true,true,true,false,false,false,false]; +const UsrInt_113 = [true,false,false,false,true,true,true,false,false,false,false]; +const UsrInt_114 = [false,true,false,false,true,true,true,false,false,false,false]; +const UsrInt_115 = [true,true,false,false,true,true,true,false,false,false,false]; +const UsrInt_116 = [false,false,true,false,true,true,true,false,false,false,false]; +const UsrInt_117 = [true,false,true,false,true,true,true,false,false,false,false]; +const UsrInt_118 = [false,true,true,false,true,true,true,false,false,false,false]; +const UsrInt_119 = [true,true,true,false,true,true,true,false,false,false,false]; +const UsrInt_120 = [false,false,false,true,true,true,true,false,false,false,false]; +const UsrInt_121 = [true,false,false,true,true,true,true,false,false,false,false]; +const UsrInt_122 = [false,true,false,true,true,true,true,false,false,false,false]; +const UsrInt_123 = [true,true,false,true,true,true,true,false,false,false,false]; +const UsrInt_124 = [false,false,true,true,true,true,true,false,false,false,false]; +const UsrInt_125 = [true,false,true,true,true,true,true,false,false,false,false]; +const UsrInt_126 = [false,true,true,true,true,true,true,false,false,false,false]; +const UsrInt_127 = [true,true,true,true,true,true,true,false,false,false,false]; +const UsrInt_128 = [false,false,false,false,false,false,false,true,false,false,false]; +const UsrInt_129 = [true,false,false,false,false,false,false,true,false,false,false]; +const UsrInt_130 = [false,true,false,false,false,false,false,true,false,false,false]; +const UsrInt_131 = [true,true,false,false,false,false,false,true,false,false,false]; +const UsrInt_132 = [false,false,true,false,false,false,false,true,false,false,false]; +const UsrInt_133 = [true,false,true,false,false,false,false,true,false,false,false]; +const UsrInt_134 = [false,true,true,false,false,false,false,true,false,false,false]; +const UsrInt_135 = [true,true,true,false,false,false,false,true,false,false,false]; +const UsrInt_136 = [false,false,false,true,false,false,false,true,false,false,false]; +const UsrInt_137 = [true,false,false,true,false,false,false,true,false,false,false]; +const UsrInt_138 = [false,true,false,true,false,false,false,true,false,false,false]; +const UsrInt_139 = [true,true,false,true,false,false,false,true,false,false,false]; +const UsrInt_140 = [false,false,true,true,false,false,false,true,false,false,false]; +const UsrInt_141 = [true,false,true,true,false,false,false,true,false,false,false]; +const UsrInt_142 = [false,true,true,true,false,false,false,true,false,false,false]; +const UsrInt_143 = [true,true,true,true,false,false,false,true,false,false,false]; +const UsrInt_144 = [false,false,false,false,true,false,false,true,false,false,false]; +const UsrInt_145 = [true,false,false,false,true,false,false,true,false,false,false]; +const UsrInt_146 = [false,true,false,false,true,false,false,true,false,false,false]; +const UsrInt_147 = [true,true,false,false,true,false,false,true,false,false,false]; +const UsrInt_148 = [false,false,true,false,true,false,false,true,false,false,false]; +const UsrInt_149 = [true,false,true,false,true,false,false,true,false,false,false]; +const UsrInt_150 = [false,true,true,false,true,false,false,true,false,false,false]; +const UsrInt_151 = [true,true,true,false,true,false,false,true,false,false,false]; +const UsrInt_152 = [false,false,false,true,true,false,false,true,false,false,false]; +const UsrInt_153 = [true,false,false,true,true,false,false,true,false,false,false]; +const UsrInt_154 = [false,true,false,true,true,false,false,true,false,false,false]; +const UsrInt_155 = [true,true,false,true,true,false,false,true,false,false,false]; +const UsrInt_156 = [false,false,true,true,true,false,false,true,false,false,false]; +const UsrInt_157 = [true,false,true,true,true,false,false,true,false,false,false]; +const UsrInt_158 = [false,true,true,true,true,false,false,true,false,false,false]; +const UsrInt_159 = [true,true,true,true,true,false,false,true,false,false,false]; +const UsrInt_160 = [false,false,false,false,false,true,false,true,false,false,false]; +const UsrInt_161 = [true,false,false,false,false,true,false,true,false,false,false]; +const UsrInt_162 = [false,true,false,false,false,true,false,true,false,false,false]; +const UsrInt_163 = [true,true,false,false,false,true,false,true,false,false,false]; +const UsrInt_164 = [false,false,true,false,false,true,false,true,false,false,false]; +const UsrInt_165 = [true,false,true,false,false,true,false,true,false,false,false]; +const UsrInt_166 = [false,true,true,false,false,true,false,true,false,false,false]; +const UsrInt_167 = [true,true,true,false,false,true,false,true,false,false,false]; +const UsrInt_168 = [false,false,false,true,false,true,false,true,false,false,false]; +const UsrInt_169 = [true,false,false,true,false,true,false,true,false,false,false]; +const UsrInt_170 = [false,true,false,true,false,true,false,true,false,false,false]; +const UsrInt_171 = [true,true,false,true,false,true,false,true,false,false,false]; +const UsrInt_172 = [false,false,true,true,false,true,false,true,false,false,false]; +const UsrInt_173 = [true,false,true,true,false,true,false,true,false,false,false]; +const UsrInt_174 = [false,true,true,true,false,true,false,true,false,false,false]; +const UsrInt_175 = [true,true,true,true,false,true,false,true,false,false,false]; +const UsrInt_176 = [false,false,false,false,true,true,false,true,false,false,false]; +const UsrInt_177 = [true,false,false,false,true,true,false,true,false,false,false]; +const UsrInt_178 = [false,true,false,false,true,true,false,true,false,false,false]; +const UsrInt_179 = [true,true,false,false,true,true,false,true,false,false,false]; +const UsrInt_180 = [false,false,true,false,true,true,false,true,false,false,false]; +const UsrInt_181 = [true,false,true,false,true,true,false,true,false,false,false]; +const UsrInt_182 = [false,true,true,false,true,true,false,true,false,false,false]; +const UsrInt_183 = [true,true,true,false,true,true,false,true,false,false,false]; +const UsrInt_184 = [false,false,false,true,true,true,false,true,false,false,false]; +const UsrInt_185 = [true,false,false,true,true,true,false,true,false,false,false]; +const UsrInt_186 = [false,true,false,true,true,true,false,true,false,false,false]; +const UsrInt_187 = [true,true,false,true,true,true,false,true,false,false,false]; +const UsrInt_188 = [false,false,true,true,true,true,false,true,false,false,false]; +const UsrInt_189 = [true,false,true,true,true,true,false,true,false,false,false]; +const UsrInt_190 = [false,true,true,true,true,true,false,true,false,false,false]; +const UsrInt_191 = [true,true,true,true,true,true,false,true,false,false,false]; +const UsrInt_192 = [false,false,false,false,false,false,true,true,false,false,false]; +const UsrInt_193 = [true,false,false,false,false,false,true,true,false,false,false]; +const UsrInt_194 = [false,true,false,false,false,false,true,true,false,false,false]; +const UsrInt_195 = [true,true,false,false,false,false,true,true,false,false,false]; +const UsrInt_196 = [false,false,true,false,false,false,true,true,false,false,false]; +const UsrInt_197 = [true,false,true,false,false,false,true,true,false,false,false]; +const UsrInt_198 = [false,true,true,false,false,false,true,true,false,false,false]; +const UsrInt_199 = [true,true,true,false,false,false,true,true,false,false,false]; +const UsrInt_200 = [false,false,false,true,false,false,true,true,false,false,false]; +const UsrInt_201 = [true,false,false,true,false,false,true,true,false,false,false]; +const UsrInt_202 = [false,true,false,true,false,false,true,true,false,false,false]; +const UsrInt_203 = [true,true,false,true,false,false,true,true,false,false,false]; +const UsrInt_204 = [false,false,true,true,false,false,true,true,false,false,false]; +const UsrInt_205 = [true,false,true,true,false,false,true,true,false,false,false]; +const UsrInt_206 = [false,true,true,true,false,false,true,true,false,false,false]; +const UsrInt_207 = [true,true,true,true,false,false,true,true,false,false,false]; +const UsrInt_208 = [false,false,false,false,true,false,true,true,false,false,false]; +const UsrInt_209 = [true,false,false,false,true,false,true,true,false,false,false]; +const UsrInt_210 = [false,true,false,false,true,false,true,true,false,false,false]; +const UsrInt_211 = [true,true,false,false,true,false,true,true,false,false,false]; +const UsrInt_212 = [false,false,true,false,true,false,true,true,false,false,false]; +const UsrInt_213 = [true,false,true,false,true,false,true,true,false,false,false]; +const UsrInt_214 = [false,true,true,false,true,false,true,true,false,false,false]; +const UsrInt_215 = [true,true,true,false,true,false,true,true,false,false,false]; +const UsrInt_216 = [false,false,false,true,true,false,true,true,false,false,false]; +const UsrInt_217 = [true,false,false,true,true,false,true,true,false,false,false]; +const UsrInt_218 = [false,true,false,true,true,false,true,true,false,false,false]; +const UsrInt_219 = [true,true,false,true,true,false,true,true,false,false,false]; +const UsrInt_220 = [false,false,true,true,true,false,true,true,false,false,false]; +const UsrInt_221 = [true,false,true,true,true,false,true,true,false,false,false]; +const UsrInt_222 = [false,true,true,true,true,false,true,true,false,false,false]; +const UsrInt_223 = [true,true,true,true,true,false,true,true,false,false,false]; +const UsrInt_224 = [false,false,false,false,false,true,true,true,false,false,false]; +const UsrInt_225 = [true,false,false,false,false,true,true,true,false,false,false]; +const UsrInt_226 = [false,true,false,false,false,true,true,true,false,false,false]; +const UsrInt_227 = [true,true,false,false,false,true,true,true,false,false,false]; +const UsrInt_228 = [false,false,true,false,false,true,true,true,false,false,false]; +const UsrInt_229 = [true,false,true,false,false,true,true,true,false,false,false]; +const UsrInt_230 = [false,true,true,false,false,true,true,true,false,false,false]; +const UsrInt_231 = [true,true,true,false,false,true,true,true,false,false,false]; +const UsrInt_232 = [false,false,false,true,false,true,true,true,false,false,false]; +const UsrInt_233 = [true,false,false,true,false,true,true,true,false,false,false]; +const UsrInt_234 = [false,true,false,true,false,true,true,true,false,false,false]; +const UsrInt_235 = [true,true,false,true,false,true,true,true,false,false,false]; +const UsrInt_236 = [false,false,true,true,false,true,true,true,false,false,false]; +const UsrInt_237 = [true,false,true,true,false,true,true,true,false,false,false]; +const UsrInt_238 = [false,true,true,true,false,true,true,true,false,false,false]; +const UsrInt_239 = [true,true,true,true,false,true,true,true,false,false,false]; +const UsrInt_240 = [false,false,false,false,true,true,true,true,false,false,false]; +const UsrInt_241 = [true,false,false,false,true,true,true,true,false,false,false]; +const UsrInt_242 = [false,true,false,false,true,true,true,true,false,false,false]; +const UsrInt_243 = [true,true,false,false,true,true,true,true,false,false,false]; +const UsrInt_244 = [false,false,true,false,true,true,true,true,false,false,false]; +const UsrInt_245 = [true,false,true,false,true,true,true,true,false,false,false]; +const UsrInt_246 = [false,true,true,false,true,true,true,true,false,false,false]; +const UsrInt_247 = [true,true,true,false,true,true,true,true,false,false,false]; +const UsrInt_248 = [false,false,false,true,true,true,true,true,false,false,false]; +const UsrInt_249 = [true,false,false,true,true,true,true,true,false,false,false]; +const UsrInt_250 = [false,true,false,true,true,true,true,true,false,false,false]; +const UsrInt_251 = [true,true,false,true,true,true,true,true,false,false,false]; +const UsrInt_252 = [false,false,true,true,true,true,true,true,false,false,false]; +const UsrInt_253 = [true,false,true,true,true,true,true,true,false,false,false]; +const UsrInt_254 = [false,true,true,true,true,true,true,true,false,false,false]; +const UsrInt_255 = [true,true,true,true,true,true,true,true,false,false,false]; +const UsrInt_256 = [false,false,false,false,false,false,false,false,true,false,false]; +const UsrInt_257 = [true,false,false,false,false,false,false,false,true,false,false]; +const UsrInt_258 = [false,true,false,false,false,false,false,false,true,false,false]; +const UsrInt_259 = [true,true,false,false,false,false,false,false,true,false,false]; +const UsrInt_260 = [false,false,true,false,false,false,false,false,true,false,false]; +const UsrInt_261 = [true,false,true,false,false,false,false,false,true,false,false]; +const UsrInt_262 = [false,true,true,false,false,false,false,false,true,false,false]; +const UsrInt_263 = [true,true,true,false,false,false,false,false,true,false,false]; +const UsrInt_264 = [false,false,false,true,false,false,false,false,true,false,false]; +const UsrInt_265 = [true,false,false,true,false,false,false,false,true,false,false]; +const UsrInt_266 = [false,true,false,true,false,false,false,false,true,false,false]; +const UsrInt_267 = [true,true,false,true,false,false,false,false,true,false,false]; +const UsrInt_268 = [false,false,true,true,false,false,false,false,true,false,false]; +const UsrInt_269 = [true,false,true,true,false,false,false,false,true,false,false]; +const UsrInt_270 = [false,true,true,true,false,false,false,false,true,false,false]; +const UsrInt_271 = [true,true,true,true,false,false,false,false,true,false,false]; +const UsrInt_272 = [false,false,false,false,true,false,false,false,true,false,false]; +const UsrInt_273 = [true,false,false,false,true,false,false,false,true,false,false]; +const UsrInt_274 = [false,true,false,false,true,false,false,false,true,false,false]; +const UsrInt_275 = [true,true,false,false,true,false,false,false,true,false,false]; +const UsrInt_276 = [false,false,true,false,true,false,false,false,true,false,false]; +const UsrInt_277 = [true,false,true,false,true,false,false,false,true,false,false]; +const UsrInt_278 = [false,true,true,false,true,false,false,false,true,false,false]; +const UsrInt_279 = [true,true,true,false,true,false,false,false,true,false,false]; +const UsrInt_280 = [false,false,false,true,true,false,false,false,true,false,false]; +const UsrInt_281 = [true,false,false,true,true,false,false,false,true,false,false]; +const UsrInt_282 = [false,true,false,true,true,false,false,false,true,false,false]; +const UsrInt_283 = [true,true,false,true,true,false,false,false,true,false,false]; +const UsrInt_284 = [false,false,true,true,true,false,false,false,true,false,false]; +const UsrInt_285 = [true,false,true,true,true,false,false,false,true,false,false]; +const UsrInt_286 = [false,true,true,true,true,false,false,false,true,false,false]; +const UsrInt_287 = [true,true,true,true,true,false,false,false,true,false,false]; +const UsrInt_288 = [false,false,false,false,false,true,false,false,true,false,false]; +const UsrInt_289 = [true,false,false,false,false,true,false,false,true,false,false]; +const UsrInt_290 = [false,true,false,false,false,true,false,false,true,false,false]; +const UsrInt_291 = [true,true,false,false,false,true,false,false,true,false,false]; +const UsrInt_292 = [false,false,true,false,false,true,false,false,true,false,false]; +const UsrInt_293 = [true,false,true,false,false,true,false,false,true,false,false]; +const UsrInt_294 = [false,true,true,false,false,true,false,false,true,false,false]; +const UsrInt_295 = [true,true,true,false,false,true,false,false,true,false,false]; +const UsrInt_296 = [false,false,false,true,false,true,false,false,true,false,false]; +const UsrInt_297 = [true,false,false,true,false,true,false,false,true,false,false]; +const UsrInt_298 = [false,true,false,true,false,true,false,false,true,false,false]; +const UsrInt_299 = [true,true,false,true,false,true,false,false,true,false,false]; +const UsrInt_300 = [false,false,true,true,false,true,false,false,true,false,false]; +const UsrInt_301 = [true,false,true,true,false,true,false,false,true,false,false]; +const UsrInt_302 = [false,true,true,true,false,true,false,false,true,false,false]; +const UsrInt_303 = [true,true,true,true,false,true,false,false,true,false,false]; +const UsrInt_304 = [false,false,false,false,true,true,false,false,true,false,false]; +const UsrInt_305 = [true,false,false,false,true,true,false,false,true,false,false]; +const UsrInt_306 = [false,true,false,false,true,true,false,false,true,false,false]; +const UsrInt_307 = [true,true,false,false,true,true,false,false,true,false,false]; +const UsrInt_308 = [false,false,true,false,true,true,false,false,true,false,false]; +const UsrInt_309 = [true,false,true,false,true,true,false,false,true,false,false]; +const UsrInt_310 = [false,true,true,false,true,true,false,false,true,false,false]; +const UsrInt_311 = [true,true,true,false,true,true,false,false,true,false,false]; +const UsrInt_312 = [false,false,false,true,true,true,false,false,true,false,false]; +const UsrInt_313 = [true,false,false,true,true,true,false,false,true,false,false]; +const UsrInt_314 = [false,true,false,true,true,true,false,false,true,false,false]; +const UsrInt_315 = [true,true,false,true,true,true,false,false,true,false,false]; +const UsrInt_316 = [false,false,true,true,true,true,false,false,true,false,false]; +const UsrInt_317 = [true,false,true,true,true,true,false,false,true,false,false]; +const UsrInt_318 = [false,true,true,true,true,true,false,false,true,false,false]; +const UsrInt_319 = [true,true,true,true,true,true,false,false,true,false,false]; +const UsrInt_320 = [false,false,false,false,false,false,true,false,true,false,false]; +const UsrInt_321 = [true,false,false,false,false,false,true,false,true,false,false]; +const UsrInt_322 = [false,true,false,false,false,false,true,false,true,false,false]; +const UsrInt_323 = [true,true,false,false,false,false,true,false,true,false,false]; +const UsrInt_324 = [false,false,true,false,false,false,true,false,true,false,false]; +const UsrInt_325 = [true,false,true,false,false,false,true,false,true,false,false]; +const UsrInt_326 = [false,true,true,false,false,false,true,false,true,false,false]; +const UsrInt_327 = [true,true,true,false,false,false,true,false,true,false,false]; +const UsrInt_328 = [false,false,false,true,false,false,true,false,true,false,false]; +const UsrInt_329 = [true,false,false,true,false,false,true,false,true,false,false]; +const UsrInt_330 = [false,true,false,true,false,false,true,false,true,false,false]; +const UsrInt_331 = [true,true,false,true,false,false,true,false,true,false,false]; +const UsrInt_332 = [false,false,true,true,false,false,true,false,true,false,false]; +const UsrInt_333 = [true,false,true,true,false,false,true,false,true,false,false]; +const UsrInt_334 = [false,true,true,true,false,false,true,false,true,false,false]; +const UsrInt_335 = [true,true,true,true,false,false,true,false,true,false,false]; +const UsrInt_336 = [false,false,false,false,true,false,true,false,true,false,false]; +const UsrInt_337 = [true,false,false,false,true,false,true,false,true,false,false]; +const UsrInt_338 = [false,true,false,false,true,false,true,false,true,false,false]; +const UsrInt_339 = [true,true,false,false,true,false,true,false,true,false,false]; +const UsrInt_340 = [false,false,true,false,true,false,true,false,true,false,false]; +const UsrInt_341 = [true,false,true,false,true,false,true,false,true,false,false]; +const UsrInt_342 = [false,true,true,false,true,false,true,false,true,false,false]; +const UsrInt_343 = [true,true,true,false,true,false,true,false,true,false,false]; +const UsrInt_344 = [false,false,false,true,true,false,true,false,true,false,false]; +const UsrInt_345 = [true,false,false,true,true,false,true,false,true,false,false]; +const UsrInt_346 = [false,true,false,true,true,false,true,false,true,false,false]; +const UsrInt_347 = [true,true,false,true,true,false,true,false,true,false,false]; +const UsrInt_348 = [false,false,true,true,true,false,true,false,true,false,false]; +const UsrInt_349 = [true,false,true,true,true,false,true,false,true,false,false]; +const UsrInt_350 = [false,true,true,true,true,false,true,false,true,false,false]; +const UsrInt_351 = [true,true,true,true,true,false,true,false,true,false,false]; +const UsrInt_352 = [false,false,false,false,false,true,true,false,true,false,false]; +const UsrInt_353 = [true,false,false,false,false,true,true,false,true,false,false]; +const UsrInt_354 = [false,true,false,false,false,true,true,false,true,false,false]; +const UsrInt_355 = [true,true,false,false,false,true,true,false,true,false,false]; +const UsrInt_356 = [false,false,true,false,false,true,true,false,true,false,false]; +const UsrInt_357 = [true,false,true,false,false,true,true,false,true,false,false]; +const UsrInt_358 = [false,true,true,false,false,true,true,false,true,false,false]; +const UsrInt_359 = [true,true,true,false,false,true,true,false,true,false,false]; +const UsrInt_360 = [false,false,false,true,false,true,true,false,true,false,false]; +const UsrInt_361 = [true,false,false,true,false,true,true,false,true,false,false]; +const UsrInt_362 = [false,true,false,true,false,true,true,false,true,false,false]; +const UsrInt_363 = [true,true,false,true,false,true,true,false,true,false,false]; +const UsrInt_364 = [false,false,true,true,false,true,true,false,true,false,false]; +const UsrInt_365 = [true,false,true,true,false,true,true,false,true,false,false]; +const UsrInt_366 = [false,true,true,true,false,true,true,false,true,false,false]; +const UsrInt_367 = [true,true,true,true,false,true,true,false,true,false,false]; +const UsrInt_368 = [false,false,false,false,true,true,true,false,true,false,false]; +const UsrInt_369 = [true,false,false,false,true,true,true,false,true,false,false]; +const UsrInt_370 = [false,true,false,false,true,true,true,false,true,false,false]; +const UsrInt_371 = [true,true,false,false,true,true,true,false,true,false,false]; +const UsrInt_372 = [false,false,true,false,true,true,true,false,true,false,false]; +const UsrInt_373 = [true,false,true,false,true,true,true,false,true,false,false]; +const UsrInt_374 = [false,true,true,false,true,true,true,false,true,false,false]; +const UsrInt_375 = [true,true,true,false,true,true,true,false,true,false,false]; +const UsrInt_376 = [false,false,false,true,true,true,true,false,true,false,false]; +const UsrInt_377 = [true,false,false,true,true,true,true,false,true,false,false]; +const UsrInt_378 = [false,true,false,true,true,true,true,false,true,false,false]; +const UsrInt_379 = [true,true,false,true,true,true,true,false,true,false,false]; +const UsrInt_380 = [false,false,true,true,true,true,true,false,true,false,false]; +const UsrInt_381 = [true,false,true,true,true,true,true,false,true,false,false]; +const UsrInt_382 = [false,true,true,true,true,true,true,false,true,false,false]; +const UsrInt_383 = [true,true,true,true,true,true,true,false,true,false,false]; +const UsrInt_384 = [false,false,false,false,false,false,false,true,true,false,false]; +const UsrInt_385 = [true,false,false,false,false,false,false,true,true,false,false]; +const UsrInt_386 = [false,true,false,false,false,false,false,true,true,false,false]; +const UsrInt_387 = [true,true,false,false,false,false,false,true,true,false,false]; +const UsrInt_388 = [false,false,true,false,false,false,false,true,true,false,false]; +const UsrInt_389 = [true,false,true,false,false,false,false,true,true,false,false]; +const UsrInt_390 = [false,true,true,false,false,false,false,true,true,false,false]; +const UsrInt_391 = [true,true,true,false,false,false,false,true,true,false,false]; +const UsrInt_392 = [false,false,false,true,false,false,false,true,true,false,false]; +const UsrInt_393 = [true,false,false,true,false,false,false,true,true,false,false]; +const UsrInt_394 = [false,true,false,true,false,false,false,true,true,false,false]; +const UsrInt_395 = [true,true,false,true,false,false,false,true,true,false,false]; +const UsrInt_396 = [false,false,true,true,false,false,false,true,true,false,false]; +const UsrInt_397 = [true,false,true,true,false,false,false,true,true,false,false]; +const UsrInt_398 = [false,true,true,true,false,false,false,true,true,false,false]; +const UsrInt_399 = [true,true,true,true,false,false,false,true,true,false,false]; +const UsrInt_400 = [false,false,false,false,true,false,false,true,true,false,false]; +const UsrInt_401 = [true,false,false,false,true,false,false,true,true,false,false]; +const UsrInt_402 = [false,true,false,false,true,false,false,true,true,false,false]; +const UsrInt_403 = [true,true,false,false,true,false,false,true,true,false,false]; +const UsrInt_404 = [false,false,true,false,true,false,false,true,true,false,false]; +const UsrInt_405 = [true,false,true,false,true,false,false,true,true,false,false]; +const UsrInt_406 = [false,true,true,false,true,false,false,true,true,false,false]; +const UsrInt_407 = [true,true,true,false,true,false,false,true,true,false,false]; +const UsrInt_408 = [false,false,false,true,true,false,false,true,true,false,false]; +const UsrInt_409 = [true,false,false,true,true,false,false,true,true,false,false]; +const UsrInt_410 = [false,true,false,true,true,false,false,true,true,false,false]; +const UsrInt_411 = [true,true,false,true,true,false,false,true,true,false,false]; +const UsrInt_412 = [false,false,true,true,true,false,false,true,true,false,false]; +const UsrInt_413 = [true,false,true,true,true,false,false,true,true,false,false]; +const UsrInt_414 = [false,true,true,true,true,false,false,true,true,false,false]; +const UsrInt_415 = [true,true,true,true,true,false,false,true,true,false,false]; +const UsrInt_416 = [false,false,false,false,false,true,false,true,true,false,false]; +const UsrInt_417 = [true,false,false,false,false,true,false,true,true,false,false]; +const UsrInt_418 = [false,true,false,false,false,true,false,true,true,false,false]; +const UsrInt_419 = [true,true,false,false,false,true,false,true,true,false,false]; +const UsrInt_420 = [false,false,true,false,false,true,false,true,true,false,false]; +const UsrInt_421 = [true,false,true,false,false,true,false,true,true,false,false]; +const UsrInt_422 = [false,true,true,false,false,true,false,true,true,false,false]; +const UsrInt_423 = [true,true,true,false,false,true,false,true,true,false,false]; +const UsrInt_424 = [false,false,false,true,false,true,false,true,true,false,false]; +const UsrInt_425 = [true,false,false,true,false,true,false,true,true,false,false]; +const UsrInt_426 = [false,true,false,true,false,true,false,true,true,false,false]; +const UsrInt_427 = [true,true,false,true,false,true,false,true,true,false,false]; +const UsrInt_428 = [false,false,true,true,false,true,false,true,true,false,false]; +const UsrInt_429 = [true,false,true,true,false,true,false,true,true,false,false]; +const UsrInt_430 = [false,true,true,true,false,true,false,true,true,false,false]; +const UsrInt_431 = [true,true,true,true,false,true,false,true,true,false,false]; +const UsrInt_432 = [false,false,false,false,true,true,false,true,true,false,false]; +const UsrInt_433 = [true,false,false,false,true,true,false,true,true,false,false]; +const UsrInt_434 = [false,true,false,false,true,true,false,true,true,false,false]; +const UsrInt_435 = [true,true,false,false,true,true,false,true,true,false,false]; +const UsrInt_436 = [false,false,true,false,true,true,false,true,true,false,false]; +const UsrInt_437 = [true,false,true,false,true,true,false,true,true,false,false]; +const UsrInt_438 = [false,true,true,false,true,true,false,true,true,false,false]; +const UsrInt_439 = [true,true,true,false,true,true,false,true,true,false,false]; +const UsrInt_440 = [false,false,false,true,true,true,false,true,true,false,false]; +const UsrInt_441 = [true,false,false,true,true,true,false,true,true,false,false]; +const UsrInt_442 = [false,true,false,true,true,true,false,true,true,false,false]; +const UsrInt_443 = [true,true,false,true,true,true,false,true,true,false,false]; +const UsrInt_444 = [false,false,true,true,true,true,false,true,true,false,false]; +const UsrInt_445 = [true,false,true,true,true,true,false,true,true,false,false]; +const UsrInt_446 = [false,true,true,true,true,true,false,true,true,false,false]; +const UsrInt_447 = [true,true,true,true,true,true,false,true,true,false,false]; +const UsrInt_448 = [false,false,false,false,false,false,true,true,true,false,false]; +const UsrInt_449 = [true,false,false,false,false,false,true,true,true,false,false]; +const UsrInt_450 = [false,true,false,false,false,false,true,true,true,false,false]; +const UsrInt_451 = [true,true,false,false,false,false,true,true,true,false,false]; +const UsrInt_452 = [false,false,true,false,false,false,true,true,true,false,false]; +const UsrInt_453 = [true,false,true,false,false,false,true,true,true,false,false]; +const UsrInt_454 = [false,true,true,false,false,false,true,true,true,false,false]; +const UsrInt_455 = [true,true,true,false,false,false,true,true,true,false,false]; +const UsrInt_456 = [false,false,false,true,false,false,true,true,true,false,false]; +const UsrInt_457 = [true,false,false,true,false,false,true,true,true,false,false]; +const UsrInt_458 = [false,true,false,true,false,false,true,true,true,false,false]; +const UsrInt_459 = [true,true,false,true,false,false,true,true,true,false,false]; +const UsrInt_460 = [false,false,true,true,false,false,true,true,true,false,false]; +const UsrInt_461 = [true,false,true,true,false,false,true,true,true,false,false]; +const UsrInt_462 = [false,true,true,true,false,false,true,true,true,false,false]; +const UsrInt_463 = [true,true,true,true,false,false,true,true,true,false,false]; +const UsrInt_464 = [false,false,false,false,true,false,true,true,true,false,false]; +const UsrInt_465 = [true,false,false,false,true,false,true,true,true,false,false]; +const UsrInt_466 = [false,true,false,false,true,false,true,true,true,false,false]; +const UsrInt_467 = [true,true,false,false,true,false,true,true,true,false,false]; +const UsrInt_468 = [false,false,true,false,true,false,true,true,true,false,false]; +const UsrInt_469 = [true,false,true,false,true,false,true,true,true,false,false]; +const UsrInt_470 = [false,true,true,false,true,false,true,true,true,false,false]; +const UsrInt_471 = [true,true,true,false,true,false,true,true,true,false,false]; +const UsrInt_472 = [false,false,false,true,true,false,true,true,true,false,false]; +const UsrInt_473 = [true,false,false,true,true,false,true,true,true,false,false]; +const UsrInt_474 = [false,true,false,true,true,false,true,true,true,false,false]; +const UsrInt_475 = [true,true,false,true,true,false,true,true,true,false,false]; +const UsrInt_476 = [false,false,true,true,true,false,true,true,true,false,false]; +const UsrInt_477 = [true,false,true,true,true,false,true,true,true,false,false]; +const UsrInt_478 = [false,true,true,true,true,false,true,true,true,false,false]; +const UsrInt_479 = [true,true,true,true,true,false,true,true,true,false,false]; +const UsrInt_480 = [false,false,false,false,false,true,true,true,true,false,false]; +const UsrInt_481 = [true,false,false,false,false,true,true,true,true,false,false]; +const UsrInt_482 = [false,true,false,false,false,true,true,true,true,false,false]; +const UsrInt_483 = [true,true,false,false,false,true,true,true,true,false,false]; +const UsrInt_484 = [false,false,true,false,false,true,true,true,true,false,false]; +const UsrInt_485 = [true,false,true,false,false,true,true,true,true,false,false]; +const UsrInt_486 = [false,true,true,false,false,true,true,true,true,false,false]; +const UsrInt_487 = [true,true,true,false,false,true,true,true,true,false,false]; +const UsrInt_488 = [false,false,false,true,false,true,true,true,true,false,false]; +const UsrInt_489 = [true,false,false,true,false,true,true,true,true,false,false]; +const UsrInt_490 = [false,true,false,true,false,true,true,true,true,false,false]; +const UsrInt_491 = [true,true,false,true,false,true,true,true,true,false,false]; +const UsrInt_492 = [false,false,true,true,false,true,true,true,true,false,false]; +const UsrInt_493 = [true,false,true,true,false,true,true,true,true,false,false]; +const UsrInt_494 = [false,true,true,true,false,true,true,true,true,false,false]; +const UsrInt_495 = [true,true,true,true,false,true,true,true,true,false,false]; +const UsrInt_496 = [false,false,false,false,true,true,true,true,true,false,false]; +const UsrInt_497 = [true,false,false,false,true,true,true,true,true,false,false]; +const UsrInt_498 = [false,true,false,false,true,true,true,true,true,false,false]; +const UsrInt_499 = [true,true,false,false,true,true,true,true,true,false,false]; +const UsrInt_500 = [false,false,true,false,true,true,true,true,true,false,false]; +const UsrInt_501 = [true,false,true,false,true,true,true,true,true,false,false]; +const UsrInt_502 = [false,true,true,false,true,true,true,true,true,false,false]; +const UsrInt_503 = [true,true,true,false,true,true,true,true,true,false,false]; +const UsrInt_504 = [false,false,false,true,true,true,true,true,true,false,false]; +const UsrInt_505 = [true,false,false,true,true,true,true,true,true,false,false]; +const UsrInt_506 = [false,true,false,true,true,true,true,true,true,false,false]; +const UsrInt_507 = [true,true,false,true,true,true,true,true,true,false,false]; +const UsrInt_508 = [false,false,true,true,true,true,true,true,true,false,false]; +const UsrInt_509 = [true,false,true,true,true,true,true,true,true,false,false]; +const UsrInt_510 = [false,true,true,true,true,true,true,true,true,false,false]; +const UsrInt_511 = [true,true,true,true,true,true,true,true,true,false,false]; +const UsrInt_512 = [false,false,false,false,false,false,false,false,false,true,false]; +const UsrInt_513 = [true,false,false,false,false,false,false,false,false,true,false]; +const UsrInt_514 = [false,true,false,false,false,false,false,false,false,true,false]; +const UsrInt_515 = [true,true,false,false,false,false,false,false,false,true,false]; +const UsrInt_516 = [false,false,true,false,false,false,false,false,false,true,false]; +const UsrInt_517 = [true,false,true,false,false,false,false,false,false,true,false]; +const UsrInt_518 = [false,true,true,false,false,false,false,false,false,true,false]; +const UsrInt_519 = [true,true,true,false,false,false,false,false,false,true,false]; +const UsrInt_520 = [false,false,false,true,false,false,false,false,false,true,false]; +const UsrInt_521 = [true,false,false,true,false,false,false,false,false,true,false]; +const UsrInt_522 = [false,true,false,true,false,false,false,false,false,true,false]; +const UsrInt_523 = [true,true,false,true,false,false,false,false,false,true,false]; +const UsrInt_524 = [false,false,true,true,false,false,false,false,false,true,false]; +const UsrInt_525 = [true,false,true,true,false,false,false,false,false,true,false]; +const UsrInt_526 = [false,true,true,true,false,false,false,false,false,true,false]; +const UsrInt_527 = [true,true,true,true,false,false,false,false,false,true,false]; +const UsrInt_528 = [false,false,false,false,true,false,false,false,false,true,false]; +const UsrInt_529 = [true,false,false,false,true,false,false,false,false,true,false]; +const UsrInt_530 = [false,true,false,false,true,false,false,false,false,true,false]; +const UsrInt_531 = [true,true,false,false,true,false,false,false,false,true,false]; +const UsrInt_532 = [false,false,true,false,true,false,false,false,false,true,false]; +const UsrInt_533 = [true,false,true,false,true,false,false,false,false,true,false]; +const UsrInt_534 = [false,true,true,false,true,false,false,false,false,true,false]; +const UsrInt_535 = [true,true,true,false,true,false,false,false,false,true,false]; +const UsrInt_536 = [false,false,false,true,true,false,false,false,false,true,false]; +const UsrInt_537 = [true,false,false,true,true,false,false,false,false,true,false]; +const UsrInt_538 = [false,true,false,true,true,false,false,false,false,true,false]; +const UsrInt_539 = [true,true,false,true,true,false,false,false,false,true,false]; +const UsrInt_540 = [false,false,true,true,true,false,false,false,false,true,false]; +const UsrInt_541 = [true,false,true,true,true,false,false,false,false,true,false]; +const UsrInt_542 = [false,true,true,true,true,false,false,false,false,true,false]; +const UsrInt_543 = [true,true,true,true,true,false,false,false,false,true,false]; +const UsrInt_544 = [false,false,false,false,false,true,false,false,false,true,false]; +const UsrInt_545 = [true,false,false,false,false,true,false,false,false,true,false]; +const UsrInt_546 = [false,true,false,false,false,true,false,false,false,true,false]; +const UsrInt_547 = [true,true,false,false,false,true,false,false,false,true,false]; +const UsrInt_548 = [false,false,true,false,false,true,false,false,false,true,false]; +const UsrInt_549 = [true,false,true,false,false,true,false,false,false,true,false]; +const UsrInt_550 = [false,true,true,false,false,true,false,false,false,true,false]; +const UsrInt_551 = [true,true,true,false,false,true,false,false,false,true,false]; +const UsrInt_552 = [false,false,false,true,false,true,false,false,false,true,false]; +const UsrInt_553 = [true,false,false,true,false,true,false,false,false,true,false]; +const UsrInt_554 = [false,true,false,true,false,true,false,false,false,true,false]; +const UsrInt_555 = [true,true,false,true,false,true,false,false,false,true,false]; +const UsrInt_556 = [false,false,true,true,false,true,false,false,false,true,false]; +const UsrInt_557 = [true,false,true,true,false,true,false,false,false,true,false]; +const UsrInt_558 = [false,true,true,true,false,true,false,false,false,true,false]; +const UsrInt_559 = [true,true,true,true,false,true,false,false,false,true,false]; +const UsrInt_560 = [false,false,false,false,true,true,false,false,false,true,false]; +const UsrInt_561 = [true,false,false,false,true,true,false,false,false,true,false]; +const UsrInt_562 = [false,true,false,false,true,true,false,false,false,true,false]; +const UsrInt_563 = [true,true,false,false,true,true,false,false,false,true,false]; +const UsrInt_564 = [false,false,true,false,true,true,false,false,false,true,false]; +const UsrInt_565 = [true,false,true,false,true,true,false,false,false,true,false]; +const UsrInt_566 = [false,true,true,false,true,true,false,false,false,true,false]; +const UsrInt_567 = [true,true,true,false,true,true,false,false,false,true,false]; +const UsrInt_568 = [false,false,false,true,true,true,false,false,false,true,false]; +const UsrInt_569 = [true,false,false,true,true,true,false,false,false,true,false]; +const UsrInt_570 = [false,true,false,true,true,true,false,false,false,true,false]; +const UsrInt_571 = [true,true,false,true,true,true,false,false,false,true,false]; +const UsrInt_572 = [false,false,true,true,true,true,false,false,false,true,false]; +const UsrInt_573 = [true,false,true,true,true,true,false,false,false,true,false]; +const UsrInt_574 = [false,true,true,true,true,true,false,false,false,true,false]; +const UsrInt_575 = [true,true,true,true,true,true,false,false,false,true,false]; +const UsrInt_576 = [false,false,false,false,false,false,true,false,false,true,false]; +const UsrInt_577 = [true,false,false,false,false,false,true,false,false,true,false]; +const UsrInt_578 = [false,true,false,false,false,false,true,false,false,true,false]; +const UsrInt_579 = [true,true,false,false,false,false,true,false,false,true,false]; +const UsrInt_580 = [false,false,true,false,false,false,true,false,false,true,false]; +const UsrInt_581 = [true,false,true,false,false,false,true,false,false,true,false]; +const UsrInt_582 = [false,true,true,false,false,false,true,false,false,true,false]; +const UsrInt_583 = [true,true,true,false,false,false,true,false,false,true,false]; +const UsrInt_584 = [false,false,false,true,false,false,true,false,false,true,false]; +const UsrInt_585 = [true,false,false,true,false,false,true,false,false,true,false]; +const UsrInt_586 = [false,true,false,true,false,false,true,false,false,true,false]; +const UsrInt_587 = [true,true,false,true,false,false,true,false,false,true,false]; +const UsrInt_588 = [false,false,true,true,false,false,true,false,false,true,false]; +const UsrInt_589 = [true,false,true,true,false,false,true,false,false,true,false]; +const UsrInt_590 = [false,true,true,true,false,false,true,false,false,true,false]; +const UsrInt_591 = [true,true,true,true,false,false,true,false,false,true,false]; +const UsrInt_592 = [false,false,false,false,true,false,true,false,false,true,false]; +const UsrInt_593 = [true,false,false,false,true,false,true,false,false,true,false]; +const UsrInt_594 = [false,true,false,false,true,false,true,false,false,true,false]; +const UsrInt_595 = [true,true,false,false,true,false,true,false,false,true,false]; +const UsrInt_596 = [false,false,true,false,true,false,true,false,false,true,false]; +const UsrInt_597 = [true,false,true,false,true,false,true,false,false,true,false]; +const UsrInt_598 = [false,true,true,false,true,false,true,false,false,true,false]; +const UsrInt_599 = [true,true,true,false,true,false,true,false,false,true,false]; +const UsrInt_600 = [false,false,false,true,true,false,true,false,false,true,false]; +const UsrInt_601 = [true,false,false,true,true,false,true,false,false,true,false]; +const UsrInt_602 = [false,true,false,true,true,false,true,false,false,true,false]; +const UsrInt_603 = [true,true,false,true,true,false,true,false,false,true,false]; +const UsrInt_604 = [false,false,true,true,true,false,true,false,false,true,false]; +const UsrInt_605 = [true,false,true,true,true,false,true,false,false,true,false]; +const UsrInt_606 = [false,true,true,true,true,false,true,false,false,true,false]; +const UsrInt_607 = [true,true,true,true,true,false,true,false,false,true,false]; +const UsrInt_608 = [false,false,false,false,false,true,true,false,false,true,false]; +const UsrInt_609 = [true,false,false,false,false,true,true,false,false,true,false]; +const UsrInt_610 = [false,true,false,false,false,true,true,false,false,true,false]; +const UsrInt_611 = [true,true,false,false,false,true,true,false,false,true,false]; +const UsrInt_612 = [false,false,true,false,false,true,true,false,false,true,false]; +const UsrInt_613 = [true,false,true,false,false,true,true,false,false,true,false]; +const UsrInt_614 = [false,true,true,false,false,true,true,false,false,true,false]; +const UsrInt_615 = [true,true,true,false,false,true,true,false,false,true,false]; +const UsrInt_616 = [false,false,false,true,false,true,true,false,false,true,false]; +const UsrInt_617 = [true,false,false,true,false,true,true,false,false,true,false]; +const UsrInt_618 = [false,true,false,true,false,true,true,false,false,true,false]; +const UsrInt_619 = [true,true,false,true,false,true,true,false,false,true,false]; +const UsrInt_620 = [false,false,true,true,false,true,true,false,false,true,false]; +const UsrInt_621 = [true,false,true,true,false,true,true,false,false,true,false]; +const UsrInt_622 = [false,true,true,true,false,true,true,false,false,true,false]; +const UsrInt_623 = [true,true,true,true,false,true,true,false,false,true,false]; +const UsrInt_624 = [false,false,false,false,true,true,true,false,false,true,false]; +const UsrInt_625 = [true,false,false,false,true,true,true,false,false,true,false]; +const UsrInt_626 = [false,true,false,false,true,true,true,false,false,true,false]; +const UsrInt_627 = [true,true,false,false,true,true,true,false,false,true,false]; +const UsrInt_628 = [false,false,true,false,true,true,true,false,false,true,false]; +const UsrInt_629 = [true,false,true,false,true,true,true,false,false,true,false]; +const UsrInt_630 = [false,true,true,false,true,true,true,false,false,true,false]; +const UsrInt_631 = [true,true,true,false,true,true,true,false,false,true,false]; +const UsrInt_632 = [false,false,false,true,true,true,true,false,false,true,false]; +const UsrInt_633 = [true,false,false,true,true,true,true,false,false,true,false]; +const UsrInt_634 = [false,true,false,true,true,true,true,false,false,true,false]; +const UsrInt_635 = [true,true,false,true,true,true,true,false,false,true,false]; +const UsrInt_636 = [false,false,true,true,true,true,true,false,false,true,false]; +const UsrInt_637 = [true,false,true,true,true,true,true,false,false,true,false]; +const UsrInt_638 = [false,true,true,true,true,true,true,false,false,true,false]; +const UsrInt_639 = [true,true,true,true,true,true,true,false,false,true,false]; +const UsrInt_640 = [false,false,false,false,false,false,false,true,false,true,false]; +const UsrInt_641 = [true,false,false,false,false,false,false,true,false,true,false]; +const UsrInt_642 = [false,true,false,false,false,false,false,true,false,true,false]; +const UsrInt_643 = [true,true,false,false,false,false,false,true,false,true,false]; +const UsrInt_644 = [false,false,true,false,false,false,false,true,false,true,false]; +const UsrInt_645 = [true,false,true,false,false,false,false,true,false,true,false]; +const UsrInt_646 = [false,true,true,false,false,false,false,true,false,true,false]; +const UsrInt_647 = [true,true,true,false,false,false,false,true,false,true,false]; +const UsrInt_648 = [false,false,false,true,false,false,false,true,false,true,false]; +const UsrInt_649 = [true,false,false,true,false,false,false,true,false,true,false]; +const UsrInt_650 = [false,true,false,true,false,false,false,true,false,true,false]; +const UsrInt_651 = [true,true,false,true,false,false,false,true,false,true,false]; +const UsrInt_652 = [false,false,true,true,false,false,false,true,false,true,false]; +const UsrInt_653 = [true,false,true,true,false,false,false,true,false,true,false]; +const UsrInt_654 = [false,true,true,true,false,false,false,true,false,true,false]; +const UsrInt_655 = [true,true,true,true,false,false,false,true,false,true,false]; +const UsrInt_656 = [false,false,false,false,true,false,false,true,false,true,false]; +const UsrInt_657 = [true,false,false,false,true,false,false,true,false,true,false]; +const UsrInt_658 = [false,true,false,false,true,false,false,true,false,true,false]; +const UsrInt_659 = [true,true,false,false,true,false,false,true,false,true,false]; +const UsrInt_660 = [false,false,true,false,true,false,false,true,false,true,false]; +const UsrInt_661 = [true,false,true,false,true,false,false,true,false,true,false]; +const UsrInt_662 = [false,true,true,false,true,false,false,true,false,true,false]; +const UsrInt_663 = [true,true,true,false,true,false,false,true,false,true,false]; +const UsrInt_664 = [false,false,false,true,true,false,false,true,false,true,false]; +const UsrInt_665 = [true,false,false,true,true,false,false,true,false,true,false]; +const UsrInt_666 = [false,true,false,true,true,false,false,true,false,true,false]; +const UsrInt_667 = [true,true,false,true,true,false,false,true,false,true,false]; +const UsrInt_668 = [false,false,true,true,true,false,false,true,false,true,false]; +const UsrInt_669 = [true,false,true,true,true,false,false,true,false,true,false]; +const UsrInt_670 = [false,true,true,true,true,false,false,true,false,true,false]; +const UsrInt_671 = [true,true,true,true,true,false,false,true,false,true,false]; +const UsrInt_672 = [false,false,false,false,false,true,false,true,false,true,false]; +const UsrInt_673 = [true,false,false,false,false,true,false,true,false,true,false]; +const UsrInt_674 = [false,true,false,false,false,true,false,true,false,true,false]; +const UsrInt_675 = [true,true,false,false,false,true,false,true,false,true,false]; +const UsrInt_676 = [false,false,true,false,false,true,false,true,false,true,false]; +const UsrInt_677 = [true,false,true,false,false,true,false,true,false,true,false]; +const UsrInt_678 = [false,true,true,false,false,true,false,true,false,true,false]; +const UsrInt_679 = [true,true,true,false,false,true,false,true,false,true,false]; +const UsrInt_680 = [false,false,false,true,false,true,false,true,false,true,false]; +const UsrInt_681 = [true,false,false,true,false,true,false,true,false,true,false]; +const UsrInt_682 = [false,true,false,true,false,true,false,true,false,true,false]; +const UsrInt_683 = [true,true,false,true,false,true,false,true,false,true,false]; +const UsrInt_684 = [false,false,true,true,false,true,false,true,false,true,false]; +const UsrInt_685 = [true,false,true,true,false,true,false,true,false,true,false]; +const UsrInt_686 = [false,true,true,true,false,true,false,true,false,true,false]; +const UsrInt_687 = [true,true,true,true,false,true,false,true,false,true,false]; +const UsrInt_688 = [false,false,false,false,true,true,false,true,false,true,false]; +const UsrInt_689 = [true,false,false,false,true,true,false,true,false,true,false]; +const UsrInt_690 = [false,true,false,false,true,true,false,true,false,true,false]; +const UsrInt_691 = [true,true,false,false,true,true,false,true,false,true,false]; +const UsrInt_692 = [false,false,true,false,true,true,false,true,false,true,false]; +const UsrInt_693 = [true,false,true,false,true,true,false,true,false,true,false]; +const UsrInt_694 = [false,true,true,false,true,true,false,true,false,true,false]; +const UsrInt_695 = [true,true,true,false,true,true,false,true,false,true,false]; +const UsrInt_696 = [false,false,false,true,true,true,false,true,false,true,false]; +const UsrInt_697 = [true,false,false,true,true,true,false,true,false,true,false]; +const UsrInt_698 = [false,true,false,true,true,true,false,true,false,true,false]; +const UsrInt_699 = [true,true,false,true,true,true,false,true,false,true,false]; +const UsrInt_700 = [false,false,true,true,true,true,false,true,false,true,false]; +const UsrInt_701 = [true,false,true,true,true,true,false,true,false,true,false]; +const UsrInt_702 = [false,true,true,true,true,true,false,true,false,true,false]; +const UsrInt_703 = [true,true,true,true,true,true,false,true,false,true,false]; +const UsrInt_704 = [false,false,false,false,false,false,true,true,false,true,false]; +const UsrInt_705 = [true,false,false,false,false,false,true,true,false,true,false]; +const UsrInt_706 = [false,true,false,false,false,false,true,true,false,true,false]; +const UsrInt_707 = [true,true,false,false,false,false,true,true,false,true,false]; +const UsrInt_708 = [false,false,true,false,false,false,true,true,false,true,false]; +const UsrInt_709 = [true,false,true,false,false,false,true,true,false,true,false]; +const UsrInt_710 = [false,true,true,false,false,false,true,true,false,true,false]; +const UsrInt_711 = [true,true,true,false,false,false,true,true,false,true,false]; +const UsrInt_712 = [false,false,false,true,false,false,true,true,false,true,false]; +const UsrInt_713 = [true,false,false,true,false,false,true,true,false,true,false]; +const UsrInt_714 = [false,true,false,true,false,false,true,true,false,true,false]; +const UsrInt_715 = [true,true,false,true,false,false,true,true,false,true,false]; +const UsrInt_716 = [false,false,true,true,false,false,true,true,false,true,false]; +const UsrInt_717 = [true,false,true,true,false,false,true,true,false,true,false]; +const UsrInt_718 = [false,true,true,true,false,false,true,true,false,true,false]; +const UsrInt_719 = [true,true,true,true,false,false,true,true,false,true,false]; +const UsrInt_720 = [false,false,false,false,true,false,true,true,false,true,false]; +const UsrInt_721 = [true,false,false,false,true,false,true,true,false,true,false]; +const UsrInt_722 = [false,true,false,false,true,false,true,true,false,true,false]; +const UsrInt_723 = [true,true,false,false,true,false,true,true,false,true,false]; +const UsrInt_724 = [false,false,true,false,true,false,true,true,false,true,false]; +const UsrInt_725 = [true,false,true,false,true,false,true,true,false,true,false]; +const UsrInt_726 = [false,true,true,false,true,false,true,true,false,true,false]; +const UsrInt_727 = [true,true,true,false,true,false,true,true,false,true,false]; +const UsrInt_728 = [false,false,false,true,true,false,true,true,false,true,false]; +const UsrInt_729 = [true,false,false,true,true,false,true,true,false,true,false]; +const UsrInt_730 = [false,true,false,true,true,false,true,true,false,true,false]; +const UsrInt_731 = [true,true,false,true,true,false,true,true,false,true,false]; +const UsrInt_732 = [false,false,true,true,true,false,true,true,false,true,false]; +const UsrInt_733 = [true,false,true,true,true,false,true,true,false,true,false]; +const UsrInt_734 = [false,true,true,true,true,false,true,true,false,true,false]; +const UsrInt_735 = [true,true,true,true,true,false,true,true,false,true,false]; +const UsrInt_736 = [false,false,false,false,false,true,true,true,false,true,false]; +const UsrInt_737 = [true,false,false,false,false,true,true,true,false,true,false]; +const UsrInt_738 = [false,true,false,false,false,true,true,true,false,true,false]; +const UsrInt_739 = [true,true,false,false,false,true,true,true,false,true,false]; +const UsrInt_740 = [false,false,true,false,false,true,true,true,false,true,false]; +const UsrInt_741 = [true,false,true,false,false,true,true,true,false,true,false]; +const UsrInt_742 = [false,true,true,false,false,true,true,true,false,true,false]; +const UsrInt_743 = [true,true,true,false,false,true,true,true,false,true,false]; +const UsrInt_744 = [false,false,false,true,false,true,true,true,false,true,false]; +const UsrInt_745 = [true,false,false,true,false,true,true,true,false,true,false]; +const UsrInt_746 = [false,true,false,true,false,true,true,true,false,true,false]; +const UsrInt_747 = [true,true,false,true,false,true,true,true,false,true,false]; +const UsrInt_748 = [false,false,true,true,false,true,true,true,false,true,false]; +const UsrInt_749 = [true,false,true,true,false,true,true,true,false,true,false]; +const UsrInt_750 = [false,true,true,true,false,true,true,true,false,true,false]; +const UsrInt_751 = [true,true,true,true,false,true,true,true,false,true,false]; +const UsrInt_752 = [false,false,false,false,true,true,true,true,false,true,false]; +const UsrInt_753 = [true,false,false,false,true,true,true,true,false,true,false]; +const UsrInt_754 = [false,true,false,false,true,true,true,true,false,true,false]; +const UsrInt_755 = [true,true,false,false,true,true,true,true,false,true,false]; +const UsrInt_756 = [false,false,true,false,true,true,true,true,false,true,false]; +const UsrInt_757 = [true,false,true,false,true,true,true,true,false,true,false]; +const UsrInt_758 = [false,true,true,false,true,true,true,true,false,true,false]; +const UsrInt_759 = [true,true,true,false,true,true,true,true,false,true,false]; +const UsrInt_760 = [false,false,false,true,true,true,true,true,false,true,false]; +const UsrInt_761 = [true,false,false,true,true,true,true,true,false,true,false]; +const UsrInt_762 = [false,true,false,true,true,true,true,true,false,true,false]; +const UsrInt_763 = [true,true,false,true,true,true,true,true,false,true,false]; +const UsrInt_764 = [false,false,true,true,true,true,true,true,false,true,false]; +const UsrInt_765 = [true,false,true,true,true,true,true,true,false,true,false]; +const UsrInt_766 = [false,true,true,true,true,true,true,true,false,true,false]; +const UsrInt_767 = [true,true,true,true,true,true,true,true,false,true,false]; +const UsrInt_768 = [false,false,false,false,false,false,false,false,true,true,false]; +const UsrInt_769 = [true,false,false,false,false,false,false,false,true,true,false]; +const UsrInt_770 = [false,true,false,false,false,false,false,false,true,true,false]; +const UsrInt_771 = [true,true,false,false,false,false,false,false,true,true,false]; +const UsrInt_772 = [false,false,true,false,false,false,false,false,true,true,false]; +const UsrInt_773 = [true,false,true,false,false,false,false,false,true,true,false]; +const UsrInt_774 = [false,true,true,false,false,false,false,false,true,true,false]; +const UsrInt_775 = [true,true,true,false,false,false,false,false,true,true,false]; +const UsrInt_776 = [false,false,false,true,false,false,false,false,true,true,false]; +const UsrInt_777 = [true,false,false,true,false,false,false,false,true,true,false]; +const UsrInt_778 = [false,true,false,true,false,false,false,false,true,true,false]; +const UsrInt_779 = [true,true,false,true,false,false,false,false,true,true,false]; +const UsrInt_780 = [false,false,true,true,false,false,false,false,true,true,false]; +const UsrInt_781 = [true,false,true,true,false,false,false,false,true,true,false]; +const UsrInt_782 = [false,true,true,true,false,false,false,false,true,true,false]; +const UsrInt_783 = [true,true,true,true,false,false,false,false,true,true,false]; +const UsrInt_784 = [false,false,false,false,true,false,false,false,true,true,false]; +const UsrInt_785 = [true,false,false,false,true,false,false,false,true,true,false]; +const UsrInt_786 = [false,true,false,false,true,false,false,false,true,true,false]; +const UsrInt_787 = [true,true,false,false,true,false,false,false,true,true,false]; +const UsrInt_788 = [false,false,true,false,true,false,false,false,true,true,false]; +const UsrInt_789 = [true,false,true,false,true,false,false,false,true,true,false]; +const UsrInt_790 = [false,true,true,false,true,false,false,false,true,true,false]; +const UsrInt_791 = [true,true,true,false,true,false,false,false,true,true,false]; +const UsrInt_792 = [false,false,false,true,true,false,false,false,true,true,false]; +const UsrInt_793 = [true,false,false,true,true,false,false,false,true,true,false]; +const UsrInt_794 = [false,true,false,true,true,false,false,false,true,true,false]; +const UsrInt_795 = [true,true,false,true,true,false,false,false,true,true,false]; +const UsrInt_796 = [false,false,true,true,true,false,false,false,true,true,false]; +const UsrInt_797 = [true,false,true,true,true,false,false,false,true,true,false]; +const UsrInt_798 = [false,true,true,true,true,false,false,false,true,true,false]; +const UsrInt_799 = [true,true,true,true,true,false,false,false,true,true,false]; +const UsrInt_800 = [false,false,false,false,false,true,false,false,true,true,false]; +const UsrInt_801 = [true,false,false,false,false,true,false,false,true,true,false]; +const UsrInt_802 = [false,true,false,false,false,true,false,false,true,true,false]; +const UsrInt_803 = [true,true,false,false,false,true,false,false,true,true,false]; +const UsrInt_804 = [false,false,true,false,false,true,false,false,true,true,false]; +const UsrInt_805 = [true,false,true,false,false,true,false,false,true,true,false]; +const UsrInt_806 = [false,true,true,false,false,true,false,false,true,true,false]; +const UsrInt_807 = [true,true,true,false,false,true,false,false,true,true,false]; +const UsrInt_808 = [false,false,false,true,false,true,false,false,true,true,false]; +const UsrInt_809 = [true,false,false,true,false,true,false,false,true,true,false]; +const UsrInt_810 = [false,true,false,true,false,true,false,false,true,true,false]; +const UsrInt_811 = [true,true,false,true,false,true,false,false,true,true,false]; +const UsrInt_812 = [false,false,true,true,false,true,false,false,true,true,false]; +const UsrInt_813 = [true,false,true,true,false,true,false,false,true,true,false]; +const UsrInt_814 = [false,true,true,true,false,true,false,false,true,true,false]; +const UsrInt_815 = [true,true,true,true,false,true,false,false,true,true,false]; +const UsrInt_816 = [false,false,false,false,true,true,false,false,true,true,false]; +const UsrInt_817 = [true,false,false,false,true,true,false,false,true,true,false]; +const UsrInt_818 = [false,true,false,false,true,true,false,false,true,true,false]; +const UsrInt_819 = [true,true,false,false,true,true,false,false,true,true,false]; +const UsrInt_820 = [false,false,true,false,true,true,false,false,true,true,false]; +const UsrInt_821 = [true,false,true,false,true,true,false,false,true,true,false]; +const UsrInt_822 = [false,true,true,false,true,true,false,false,true,true,false]; +const UsrInt_823 = [true,true,true,false,true,true,false,false,true,true,false]; +const UsrInt_824 = [false,false,false,true,true,true,false,false,true,true,false]; +const UsrInt_825 = [true,false,false,true,true,true,false,false,true,true,false]; +const UsrInt_826 = [false,true,false,true,true,true,false,false,true,true,false]; +const UsrInt_827 = [true,true,false,true,true,true,false,false,true,true,false]; +const UsrInt_828 = [false,false,true,true,true,true,false,false,true,true,false]; +const UsrInt_829 = [true,false,true,true,true,true,false,false,true,true,false]; +const UsrInt_830 = [false,true,true,true,true,true,false,false,true,true,false]; +const UsrInt_831 = [true,true,true,true,true,true,false,false,true,true,false]; +const UsrInt_832 = [false,false,false,false,false,false,true,false,true,true,false]; +const UsrInt_833 = [true,false,false,false,false,false,true,false,true,true,false]; +const UsrInt_834 = [false,true,false,false,false,false,true,false,true,true,false]; +const UsrInt_835 = [true,true,false,false,false,false,true,false,true,true,false]; +const UsrInt_836 = [false,false,true,false,false,false,true,false,true,true,false]; +const UsrInt_837 = [true,false,true,false,false,false,true,false,true,true,false]; +const UsrInt_838 = [false,true,true,false,false,false,true,false,true,true,false]; +const UsrInt_839 = [true,true,true,false,false,false,true,false,true,true,false]; +const UsrInt_840 = [false,false,false,true,false,false,true,false,true,true,false]; +const UsrInt_841 = [true,false,false,true,false,false,true,false,true,true,false]; +const UsrInt_842 = [false,true,false,true,false,false,true,false,true,true,false]; +const UsrInt_843 = [true,true,false,true,false,false,true,false,true,true,false]; +const UsrInt_844 = [false,false,true,true,false,false,true,false,true,true,false]; +const UsrInt_845 = [true,false,true,true,false,false,true,false,true,true,false]; +const UsrInt_846 = [false,true,true,true,false,false,true,false,true,true,false]; +const UsrInt_847 = [true,true,true,true,false,false,true,false,true,true,false]; +const UsrInt_848 = [false,false,false,false,true,false,true,false,true,true,false]; +const UsrInt_849 = [true,false,false,false,true,false,true,false,true,true,false]; +const UsrInt_850 = [false,true,false,false,true,false,true,false,true,true,false]; +const UsrInt_851 = [true,true,false,false,true,false,true,false,true,true,false]; +const UsrInt_852 = [false,false,true,false,true,false,true,false,true,true,false]; +const UsrInt_853 = [true,false,true,false,true,false,true,false,true,true,false]; +const UsrInt_854 = [false,true,true,false,true,false,true,false,true,true,false]; +const UsrInt_855 = [true,true,true,false,true,false,true,false,true,true,false]; +const UsrInt_856 = [false,false,false,true,true,false,true,false,true,true,false]; +const UsrInt_857 = [true,false,false,true,true,false,true,false,true,true,false]; +const UsrInt_858 = [false,true,false,true,true,false,true,false,true,true,false]; +const UsrInt_859 = [true,true,false,true,true,false,true,false,true,true,false]; +const UsrInt_860 = [false,false,true,true,true,false,true,false,true,true,false]; +const UsrInt_861 = [true,false,true,true,true,false,true,false,true,true,false]; +const UsrInt_862 = [false,true,true,true,true,false,true,false,true,true,false]; +const UsrInt_863 = [true,true,true,true,true,false,true,false,true,true,false]; +const UsrInt_864 = [false,false,false,false,false,true,true,false,true,true,false]; +const UsrInt_865 = [true,false,false,false,false,true,true,false,true,true,false]; +const UsrInt_866 = [false,true,false,false,false,true,true,false,true,true,false]; +const UsrInt_867 = [true,true,false,false,false,true,true,false,true,true,false]; +const UsrInt_868 = [false,false,true,false,false,true,true,false,true,true,false]; +const UsrInt_869 = [true,false,true,false,false,true,true,false,true,true,false]; +const UsrInt_870 = [false,true,true,false,false,true,true,false,true,true,false]; +const UsrInt_871 = [true,true,true,false,false,true,true,false,true,true,false]; +const UsrInt_872 = [false,false,false,true,false,true,true,false,true,true,false]; +const UsrInt_873 = [true,false,false,true,false,true,true,false,true,true,false]; +const UsrInt_874 = [false,true,false,true,false,true,true,false,true,true,false]; +const UsrInt_875 = [true,true,false,true,false,true,true,false,true,true,false]; +const UsrInt_876 = [false,false,true,true,false,true,true,false,true,true,false]; +const UsrInt_877 = [true,false,true,true,false,true,true,false,true,true,false]; +const UsrInt_878 = [false,true,true,true,false,true,true,false,true,true,false]; +const UsrInt_879 = [true,true,true,true,false,true,true,false,true,true,false]; +const UsrInt_880 = [false,false,false,false,true,true,true,false,true,true,false]; +const UsrInt_881 = [true,false,false,false,true,true,true,false,true,true,false]; +const UsrInt_882 = [false,true,false,false,true,true,true,false,true,true,false]; +const UsrInt_883 = [true,true,false,false,true,true,true,false,true,true,false]; +const UsrInt_884 = [false,false,true,false,true,true,true,false,true,true,false]; +const UsrInt_885 = [true,false,true,false,true,true,true,false,true,true,false]; +const UsrInt_886 = [false,true,true,false,true,true,true,false,true,true,false]; +const UsrInt_887 = [true,true,true,false,true,true,true,false,true,true,false]; +const UsrInt_888 = [false,false,false,true,true,true,true,false,true,true,false]; +const UsrInt_889 = [true,false,false,true,true,true,true,false,true,true,false]; +const UsrInt_890 = [false,true,false,true,true,true,true,false,true,true,false]; +const UsrInt_891 = [true,true,false,true,true,true,true,false,true,true,false]; +const UsrInt_892 = [false,false,true,true,true,true,true,false,true,true,false]; +const UsrInt_893 = [true,false,true,true,true,true,true,false,true,true,false]; +const UsrInt_894 = [false,true,true,true,true,true,true,false,true,true,false]; +const UsrInt_895 = [true,true,true,true,true,true,true,false,true,true,false]; +const UsrInt_896 = [false,false,false,false,false,false,false,true,true,true,false]; +const UsrInt_897 = [true,false,false,false,false,false,false,true,true,true,false]; +const UsrInt_898 = [false,true,false,false,false,false,false,true,true,true,false]; +const UsrInt_899 = [true,true,false,false,false,false,false,true,true,true,false]; +const UsrInt_900 = [false,false,true,false,false,false,false,true,true,true,false]; +const UsrInt_901 = [true,false,true,false,false,false,false,true,true,true,false]; +const UsrInt_902 = [false,true,true,false,false,false,false,true,true,true,false]; +const UsrInt_903 = [true,true,true,false,false,false,false,true,true,true,false]; +const UsrInt_904 = [false,false,false,true,false,false,false,true,true,true,false]; +const UsrInt_905 = [true,false,false,true,false,false,false,true,true,true,false]; +const UsrInt_906 = [false,true,false,true,false,false,false,true,true,true,false]; +const UsrInt_907 = [true,true,false,true,false,false,false,true,true,true,false]; +const UsrInt_908 = [false,false,true,true,false,false,false,true,true,true,false]; +const UsrInt_909 = [true,false,true,true,false,false,false,true,true,true,false]; +const UsrInt_910 = [false,true,true,true,false,false,false,true,true,true,false]; +const UsrInt_911 = [true,true,true,true,false,false,false,true,true,true,false]; +const UsrInt_912 = [false,false,false,false,true,false,false,true,true,true,false]; +const UsrInt_913 = [true,false,false,false,true,false,false,true,true,true,false]; +const UsrInt_914 = [false,true,false,false,true,false,false,true,true,true,false]; +const UsrInt_915 = [true,true,false,false,true,false,false,true,true,true,false]; +const UsrInt_916 = [false,false,true,false,true,false,false,true,true,true,false]; +const UsrInt_917 = [true,false,true,false,true,false,false,true,true,true,false]; +const UsrInt_918 = [false,true,true,false,true,false,false,true,true,true,false]; +const UsrInt_919 = [true,true,true,false,true,false,false,true,true,true,false]; +const UsrInt_920 = [false,false,false,true,true,false,false,true,true,true,false]; +const UsrInt_921 = [true,false,false,true,true,false,false,true,true,true,false]; +const UsrInt_922 = [false,true,false,true,true,false,false,true,true,true,false]; +const UsrInt_923 = [true,true,false,true,true,false,false,true,true,true,false]; +const UsrInt_924 = [false,false,true,true,true,false,false,true,true,true,false]; +const UsrInt_925 = [true,false,true,true,true,false,false,true,true,true,false]; +const UsrInt_926 = [false,true,true,true,true,false,false,true,true,true,false]; +const UsrInt_927 = [true,true,true,true,true,false,false,true,true,true,false]; +const UsrInt_928 = [false,false,false,false,false,true,false,true,true,true,false]; +const UsrInt_929 = [true,false,false,false,false,true,false,true,true,true,false]; +const UsrInt_930 = [false,true,false,false,false,true,false,true,true,true,false]; +const UsrInt_931 = [true,true,false,false,false,true,false,true,true,true,false]; +const UsrInt_932 = [false,false,true,false,false,true,false,true,true,true,false]; +const UsrInt_933 = [true,false,true,false,false,true,false,true,true,true,false]; +const UsrInt_934 = [false,true,true,false,false,true,false,true,true,true,false]; +const UsrInt_935 = [true,true,true,false,false,true,false,true,true,true,false]; +const UsrInt_936 = [false,false,false,true,false,true,false,true,true,true,false]; +const UsrInt_937 = [true,false,false,true,false,true,false,true,true,true,false]; +const UsrInt_938 = [false,true,false,true,false,true,false,true,true,true,false]; +const UsrInt_939 = [true,true,false,true,false,true,false,true,true,true,false]; +const UsrInt_940 = [false,false,true,true,false,true,false,true,true,true,false]; +const UsrInt_941 = [true,false,true,true,false,true,false,true,true,true,false]; +const UsrInt_942 = [false,true,true,true,false,true,false,true,true,true,false]; +const UsrInt_943 = [true,true,true,true,false,true,false,true,true,true,false]; +const UsrInt_944 = [false,false,false,false,true,true,false,true,true,true,false]; +const UsrInt_945 = [true,false,false,false,true,true,false,true,true,true,false]; +const UsrInt_946 = [false,true,false,false,true,true,false,true,true,true,false]; +const UsrInt_947 = [true,true,false,false,true,true,false,true,true,true,false]; +const UsrInt_948 = [false,false,true,false,true,true,false,true,true,true,false]; +const UsrInt_949 = [true,false,true,false,true,true,false,true,true,true,false]; +const UsrInt_950 = [false,true,true,false,true,true,false,true,true,true,false]; +const UsrInt_951 = [true,true,true,false,true,true,false,true,true,true,false]; +const UsrInt_952 = [false,false,false,true,true,true,false,true,true,true,false]; +const UsrInt_953 = [true,false,false,true,true,true,false,true,true,true,false]; +const UsrInt_954 = [false,true,false,true,true,true,false,true,true,true,false]; +const UsrInt_955 = [true,true,false,true,true,true,false,true,true,true,false]; +const UsrInt_956 = [false,false,true,true,true,true,false,true,true,true,false]; +const UsrInt_957 = [true,false,true,true,true,true,false,true,true,true,false]; +const UsrInt_958 = [false,true,true,true,true,true,false,true,true,true,false]; +const UsrInt_959 = [true,true,true,true,true,true,false,true,true,true,false]; +const UsrInt_960 = [false,false,false,false,false,false,true,true,true,true,false]; +const UsrInt_961 = [true,false,false,false,false,false,true,true,true,true,false]; +const UsrInt_962 = [false,true,false,false,false,false,true,true,true,true,false]; +const UsrInt_963 = [true,true,false,false,false,false,true,true,true,true,false]; +const UsrInt_964 = [false,false,true,false,false,false,true,true,true,true,false]; +const UsrInt_965 = [true,false,true,false,false,false,true,true,true,true,false]; +const UsrInt_966 = [false,true,true,false,false,false,true,true,true,true,false]; +const UsrInt_967 = [true,true,true,false,false,false,true,true,true,true,false]; +const UsrInt_968 = [false,false,false,true,false,false,true,true,true,true,false]; +const UsrInt_969 = [true,false,false,true,false,false,true,true,true,true,false]; +const UsrInt_970 = [false,true,false,true,false,false,true,true,true,true,false]; +const UsrInt_971 = [true,true,false,true,false,false,true,true,true,true,false]; +const UsrInt_972 = [false,false,true,true,false,false,true,true,true,true,false]; +const UsrInt_973 = [true,false,true,true,false,false,true,true,true,true,false]; +const UsrInt_974 = [false,true,true,true,false,false,true,true,true,true,false]; +const UsrInt_975 = [true,true,true,true,false,false,true,true,true,true,false]; +const UsrInt_976 = [false,false,false,false,true,false,true,true,true,true,false]; +const UsrInt_977 = [true,false,false,false,true,false,true,true,true,true,false]; +const UsrInt_978 = [false,true,false,false,true,false,true,true,true,true,false]; +const UsrInt_979 = [true,true,false,false,true,false,true,true,true,true,false]; +const UsrInt_980 = [false,false,true,false,true,false,true,true,true,true,false]; +const UsrInt_981 = [true,false,true,false,true,false,true,true,true,true,false]; +const UsrInt_982 = [false,true,true,false,true,false,true,true,true,true,false]; +const UsrInt_983 = [true,true,true,false,true,false,true,true,true,true,false]; +const UsrInt_984 = [false,false,false,true,true,false,true,true,true,true,false]; +const UsrInt_985 = [true,false,false,true,true,false,true,true,true,true,false]; +const UsrInt_986 = [false,true,false,true,true,false,true,true,true,true,false]; +const UsrInt_987 = [true,true,false,true,true,false,true,true,true,true,false]; +const UsrInt_988 = [false,false,true,true,true,false,true,true,true,true,false]; +const UsrInt_989 = [true,false,true,true,true,false,true,true,true,true,false]; +const UsrInt_990 = [false,true,true,true,true,false,true,true,true,true,false]; +const UsrInt_991 = [true,true,true,true,true,false,true,true,true,true,false]; +const UsrInt_992 = [false,false,false,false,false,true,true,true,true,true,false]; +const UsrInt_993 = [true,false,false,false,false,true,true,true,true,true,false]; +const UsrInt_994 = [false,true,false,false,false,true,true,true,true,true,false]; +const UsrInt_995 = [true,true,false,false,false,true,true,true,true,true,false]; +const UsrInt_996 = [false,false,true,false,false,true,true,true,true,true,false]; +const UsrInt_997 = [true,false,true,false,false,true,true,true,true,true,false]; +const UsrInt_998 = [false,true,true,false,false,true,true,true,true,true,false]; +const UsrInt_999 = [true,true,true,false,false,true,true,true,true,true,false]; +const UsrInt_1000 = [false,false,false,true,false,true,true,true,true,true,false]; +const UsrInt_1001 = [true,false,false,true,false,true,true,true,true,true,false]; +const UsrInt_1002 = [false,true,false,true,false,true,true,true,true,true,false]; +const UsrInt_1003 = [true,true,false,true,false,true,true,true,true,true,false]; +const UsrInt_1004 = [false,false,true,true,false,true,true,true,true,true,false]; +const UsrInt_1005 = [true,false,true,true,false,true,true,true,true,true,false]; +const UsrInt_1006 = [false,true,true,true,false,true,true,true,true,true,false]; +const UsrInt_1007 = [true,true,true,true,false,true,true,true,true,true,false]; +const UsrInt_1008 = [false,false,false,false,true,true,true,true,true,true,false]; +const UsrInt_1009 = [true,false,false,false,true,true,true,true,true,true,false]; +const UsrInt_1010 = [false,true,false,false,true,true,true,true,true,true,false]; +const UsrInt_1011 = [true,true,false,false,true,true,true,true,true,true,false]; +const UsrInt_1012 = [false,false,true,false,true,true,true,true,true,true,false]; +const UsrInt_1013 = [true,false,true,false,true,true,true,true,true,true,false]; +const UsrInt_1014 = [false,true,true,false,true,true,true,true,true,true,false]; +const UsrInt_1015 = [true,true,true,false,true,true,true,true,true,true,false]; +const UsrInt_1016 = [false,false,false,true,true,true,true,true,true,true,false]; +const UsrInt_1017 = [true,false,false,true,true,true,true,true,true,true,false]; +const UsrInt_1018 = [false,true,false,true,true,true,true,true,true,true,false]; +const UsrInt_1019 = [true,true,false,true,true,true,true,true,true,true,false]; +const UsrInt_1020 = [false,false,true,true,true,true,true,true,true,true,false]; +const UsrInt_1021 = [true,false,true,true,true,true,true,true,true,true,false]; +const UsrInt_1022 = [false,true,true,true,true,true,true,true,true,true,false]; +const UsrInt_1023 = [true,true,true,true,true,true,true,true,true,true,false]; +const UsrInt_1024 = [false,false,false,false,false,false,false,false,false,false,true]; +const UsrInt_1025 = [true,false,false,false,false,false,false,false,false,false,true]; +const UsrInt_1026 = [false,true,false,false,false,false,false,false,false,false,true]; +const UsrInt_1027 = [true,true,false,false,false,false,false,false,false,false,true]; +const UsrInt_1028 = [false,false,true,false,false,false,false,false,false,false,true]; +const UsrInt_1029 = [true,false,true,false,false,false,false,false,false,false,true]; +const UsrInt_1030 = [false,true,true,false,false,false,false,false,false,false,true]; +const UsrInt_1031 = [true,true,true,false,false,false,false,false,false,false,true]; +const UsrInt_1032 = [false,false,false,true,false,false,false,false,false,false,true]; +const UsrInt_1033 = [true,false,false,true,false,false,false,false,false,false,true]; +const UsrInt_1034 = [false,true,false,true,false,false,false,false,false,false,true]; +const UsrInt_1035 = [true,true,false,true,false,false,false,false,false,false,true]; +const UsrInt_1036 = [false,false,true,true,false,false,false,false,false,false,true]; +const UsrInt_1037 = [true,false,true,true,false,false,false,false,false,false,true]; +const UsrInt_1038 = [false,true,true,true,false,false,false,false,false,false,true]; +const UsrInt_1039 = [true,true,true,true,false,false,false,false,false,false,true]; +const UsrInt_1040 = [false,false,false,false,true,false,false,false,false,false,true]; +const UsrInt_1041 = [true,false,false,false,true,false,false,false,false,false,true]; +const UsrInt_1042 = [false,true,false,false,true,false,false,false,false,false,true]; +const UsrInt_1043 = [true,true,false,false,true,false,false,false,false,false,true]; +const UsrInt_1044 = [false,false,true,false,true,false,false,false,false,false,true]; +const UsrInt_1045 = [true,false,true,false,true,false,false,false,false,false,true]; +const UsrInt_1046 = [false,true,true,false,true,false,false,false,false,false,true]; +const UsrInt_1047 = [true,true,true,false,true,false,false,false,false,false,true]; +const UsrInt_1048 = [false,false,false,true,true,false,false,false,false,false,true]; +const UsrInt_1049 = [true,false,false,true,true,false,false,false,false,false,true]; +const UsrInt_1050 = [false,true,false,true,true,false,false,false,false,false,true]; +const UsrInt_1051 = [true,true,false,true,true,false,false,false,false,false,true]; +const UsrInt_1052 = [false,false,true,true,true,false,false,false,false,false,true]; +const UsrInt_1053 = [true,false,true,true,true,false,false,false,false,false,true]; +const UsrInt_1054 = [false,true,true,true,true,false,false,false,false,false,true]; +const UsrInt_1055 = [true,true,true,true,true,false,false,false,false,false,true]; +const UsrInt_1056 = [false,false,false,false,false,true,false,false,false,false,true]; +const UsrInt_1057 = [true,false,false,false,false,true,false,false,false,false,true]; +const UsrInt_1058 = [false,true,false,false,false,true,false,false,false,false,true]; +const UsrInt_1059 = [true,true,false,false,false,true,false,false,false,false,true]; +const UsrInt_1060 = [false,false,true,false,false,true,false,false,false,false,true]; +const UsrInt_1061 = [true,false,true,false,false,true,false,false,false,false,true]; +const UsrInt_1062 = [false,true,true,false,false,true,false,false,false,false,true]; +const UsrInt_1063 = [true,true,true,false,false,true,false,false,false,false,true]; +const UsrInt_1064 = [false,false,false,true,false,true,false,false,false,false,true]; +const UsrInt_1065 = [true,false,false,true,false,true,false,false,false,false,true]; +const UsrInt_1066 = [false,true,false,true,false,true,false,false,false,false,true]; +const UsrInt_1067 = [true,true,false,true,false,true,false,false,false,false,true]; +const UsrInt_1068 = [false,false,true,true,false,true,false,false,false,false,true]; +const UsrInt_1069 = [true,false,true,true,false,true,false,false,false,false,true]; +const UsrInt_1070 = [false,true,true,true,false,true,false,false,false,false,true]; +const UsrInt_1071 = [true,true,true,true,false,true,false,false,false,false,true]; +const UsrInt_1072 = [false,false,false,false,true,true,false,false,false,false,true]; +const UsrInt_1073 = [true,false,false,false,true,true,false,false,false,false,true]; +const UsrInt_1074 = [false,true,false,false,true,true,false,false,false,false,true]; +const UsrInt_1075 = [true,true,false,false,true,true,false,false,false,false,true]; +const UsrInt_1076 = [false,false,true,false,true,true,false,false,false,false,true]; +const UsrInt_1077 = [true,false,true,false,true,true,false,false,false,false,true]; +const UsrInt_1078 = [false,true,true,false,true,true,false,false,false,false,true]; +const UsrInt_1079 = [true,true,true,false,true,true,false,false,false,false,true]; +const UsrInt_1080 = [false,false,false,true,true,true,false,false,false,false,true]; +const UsrInt_1081 = [true,false,false,true,true,true,false,false,false,false,true]; +const UsrInt_1082 = [false,true,false,true,true,true,false,false,false,false,true]; +const UsrInt_1083 = [true,true,false,true,true,true,false,false,false,false,true]; +const UsrInt_1084 = [false,false,true,true,true,true,false,false,false,false,true]; +const UsrInt_1085 = [true,false,true,true,true,true,false,false,false,false,true]; +const UsrInt_1086 = [false,true,true,true,true,true,false,false,false,false,true]; +const UsrInt_1087 = [true,true,true,true,true,true,false,false,false,false,true]; +const UsrInt_1088 = [false,false,false,false,false,false,true,false,false,false,true]; +const UsrInt_1089 = [true,false,false,false,false,false,true,false,false,false,true]; +const UsrInt_1090 = [false,true,false,false,false,false,true,false,false,false,true]; +const UsrInt_1091 = [true,true,false,false,false,false,true,false,false,false,true]; +const UsrInt_1092 = [false,false,true,false,false,false,true,false,false,false,true]; +const UsrInt_1093 = [true,false,true,false,false,false,true,false,false,false,true]; +const UsrInt_1094 = [false,true,true,false,false,false,true,false,false,false,true]; +const UsrInt_1095 = [true,true,true,false,false,false,true,false,false,false,true]; +const UsrInt_1096 = [false,false,false,true,false,false,true,false,false,false,true]; +const UsrInt_1097 = [true,false,false,true,false,false,true,false,false,false,true]; +const UsrInt_1098 = [false,true,false,true,false,false,true,false,false,false,true]; +const UsrInt_1099 = [true,true,false,true,false,false,true,false,false,false,true]; +const UsrInt_1100 = [false,false,true,true,false,false,true,false,false,false,true]; +const UsrInt_1101 = [true,false,true,true,false,false,true,false,false,false,true]; +const UsrInt_1102 = [false,true,true,true,false,false,true,false,false,false,true]; +const UsrInt_1103 = [true,true,true,true,false,false,true,false,false,false,true]; +const UsrInt_1104 = [false,false,false,false,true,false,true,false,false,false,true]; +const UsrInt_1105 = [true,false,false,false,true,false,true,false,false,false,true]; +const UsrInt_1106 = [false,true,false,false,true,false,true,false,false,false,true]; +const UsrInt_1107 = [true,true,false,false,true,false,true,false,false,false,true]; +const UsrInt_1108 = [false,false,true,false,true,false,true,false,false,false,true]; +const UsrInt_1109 = [true,false,true,false,true,false,true,false,false,false,true]; +const UsrInt_1110 = [false,true,true,false,true,false,true,false,false,false,true]; +const UsrInt_1111 = [true,true,true,false,true,false,true,false,false,false,true]; +const UsrInt_1112 = [false,false,false,true,true,false,true,false,false,false,true]; +const UsrInt_1113 = [true,false,false,true,true,false,true,false,false,false,true]; +const UsrInt_1114 = [false,true,false,true,true,false,true,false,false,false,true]; +const UsrInt_1115 = [true,true,false,true,true,false,true,false,false,false,true]; +const UsrInt_1116 = [false,false,true,true,true,false,true,false,false,false,true]; +const UsrInt_1117 = [true,false,true,true,true,false,true,false,false,false,true]; +const UsrInt_1118 = [false,true,true,true,true,false,true,false,false,false,true]; +const UsrInt_1119 = [true,true,true,true,true,false,true,false,false,false,true]; +const UsrInt_1120 = [false,false,false,false,false,true,true,false,false,false,true]; +const UsrInt_1121 = [true,false,false,false,false,true,true,false,false,false,true]; +const UsrInt_1122 = [false,true,false,false,false,true,true,false,false,false,true]; +const UsrInt_1123 = [true,true,false,false,false,true,true,false,false,false,true]; +const UsrInt_1124 = [false,false,true,false,false,true,true,false,false,false,true]; +const UsrInt_1125 = [true,false,true,false,false,true,true,false,false,false,true]; +const UsrInt_1126 = [false,true,true,false,false,true,true,false,false,false,true]; +const UsrInt_1127 = [true,true,true,false,false,true,true,false,false,false,true]; +const UsrInt_1128 = [false,false,false,true,false,true,true,false,false,false,true]; +const UsrInt_1129 = [true,false,false,true,false,true,true,false,false,false,true]; +const UsrInt_1130 = [false,true,false,true,false,true,true,false,false,false,true]; +const UsrInt_1131 = [true,true,false,true,false,true,true,false,false,false,true]; +const UsrInt_1132 = [false,false,true,true,false,true,true,false,false,false,true]; +const UsrInt_1133 = [true,false,true,true,false,true,true,false,false,false,true]; +const UsrInt_1134 = [false,true,true,true,false,true,true,false,false,false,true]; +const UsrInt_1135 = [true,true,true,true,false,true,true,false,false,false,true]; +const UsrInt_1136 = [false,false,false,false,true,true,true,false,false,false,true]; +const UsrInt_1137 = [true,false,false,false,true,true,true,false,false,false,true]; +const UsrInt_1138 = [false,true,false,false,true,true,true,false,false,false,true]; +const UsrInt_1139 = [true,true,false,false,true,true,true,false,false,false,true]; +const UsrInt_1140 = [false,false,true,false,true,true,true,false,false,false,true]; +const UsrInt_1141 = [true,false,true,false,true,true,true,false,false,false,true]; +const UsrInt_1142 = [false,true,true,false,true,true,true,false,false,false,true]; +const UsrInt_1143 = [true,true,true,false,true,true,true,false,false,false,true]; +const UsrInt_1144 = [false,false,false,true,true,true,true,false,false,false,true]; +const UsrInt_1145 = [true,false,false,true,true,true,true,false,false,false,true]; +const UsrInt_1146 = [false,true,false,true,true,true,true,false,false,false,true]; +const UsrInt_1147 = [true,true,false,true,true,true,true,false,false,false,true]; +const UsrInt_1148 = [false,false,true,true,true,true,true,false,false,false,true]; +const UsrInt_1149 = [true,false,true,true,true,true,true,false,false,false,true]; +const UsrInt_1150 = [false,true,true,true,true,true,true,false,false,false,true]; +const UsrInt_1151 = [true,true,true,true,true,true,true,false,false,false,true]; +const UsrInt_1152 = [false,false,false,false,false,false,false,true,false,false,true]; +const UsrInt_1153 = [true,false,false,false,false,false,false,true,false,false,true]; +const UsrInt_1154 = [false,true,false,false,false,false,false,true,false,false,true]; +const UsrInt_1155 = [true,true,false,false,false,false,false,true,false,false,true]; +const UsrInt_1156 = [false,false,true,false,false,false,false,true,false,false,true]; +const UsrInt_1157 = [true,false,true,false,false,false,false,true,false,false,true]; +const UsrInt_1158 = [false,true,true,false,false,false,false,true,false,false,true]; +const UsrInt_1159 = [true,true,true,false,false,false,false,true,false,false,true]; +const UsrInt_1160 = [false,false,false,true,false,false,false,true,false,false,true]; +const UsrInt_1161 = [true,false,false,true,false,false,false,true,false,false,true]; +const UsrInt_1162 = [false,true,false,true,false,false,false,true,false,false,true]; +const UsrInt_1163 = [true,true,false,true,false,false,false,true,false,false,true]; +const UsrInt_1164 = [false,false,true,true,false,false,false,true,false,false,true]; +const UsrInt_1165 = [true,false,true,true,false,false,false,true,false,false,true]; +const UsrInt_1166 = [false,true,true,true,false,false,false,true,false,false,true]; +const UsrInt_1167 = [true,true,true,true,false,false,false,true,false,false,true]; +const UsrInt_1168 = [false,false,false,false,true,false,false,true,false,false,true]; +const UsrInt_1169 = [true,false,false,false,true,false,false,true,false,false,true]; +const UsrInt_1170 = [false,true,false,false,true,false,false,true,false,false,true]; +const UsrInt_1171 = [true,true,false,false,true,false,false,true,false,false,true]; +const UsrInt_1172 = [false,false,true,false,true,false,false,true,false,false,true]; +const UsrInt_1173 = [true,false,true,false,true,false,false,true,false,false,true]; +const UsrInt_1174 = [false,true,true,false,true,false,false,true,false,false,true]; +const UsrInt_1175 = [true,true,true,false,true,false,false,true,false,false,true]; +const UsrInt_1176 = [false,false,false,true,true,false,false,true,false,false,true]; +const UsrInt_1177 = [true,false,false,true,true,false,false,true,false,false,true]; +const UsrInt_1178 = [false,true,false,true,true,false,false,true,false,false,true]; +const UsrInt_1179 = [true,true,false,true,true,false,false,true,false,false,true]; +const UsrInt_1180 = [false,false,true,true,true,false,false,true,false,false,true]; +const UsrInt_1181 = [true,false,true,true,true,false,false,true,false,false,true]; +const UsrInt_1182 = [false,true,true,true,true,false,false,true,false,false,true]; +const UsrInt_1183 = [true,true,true,true,true,false,false,true,false,false,true]; +const UsrInt_1184 = [false,false,false,false,false,true,false,true,false,false,true]; +const UsrInt_1185 = [true,false,false,false,false,true,false,true,false,false,true]; +const UsrInt_1186 = [false,true,false,false,false,true,false,true,false,false,true]; +const UsrInt_1187 = [true,true,false,false,false,true,false,true,false,false,true]; +const UsrInt_1188 = [false,false,true,false,false,true,false,true,false,false,true]; +const UsrInt_1189 = [true,false,true,false,false,true,false,true,false,false,true]; +const UsrInt_1190 = [false,true,true,false,false,true,false,true,false,false,true]; +const UsrInt_1191 = [true,true,true,false,false,true,false,true,false,false,true]; +const UsrInt_1192 = [false,false,false,true,false,true,false,true,false,false,true]; +const UsrInt_1193 = [true,false,false,true,false,true,false,true,false,false,true]; +const UsrInt_1194 = [false,true,false,true,false,true,false,true,false,false,true]; +const UsrInt_1195 = [true,true,false,true,false,true,false,true,false,false,true]; +const UsrInt_1196 = [false,false,true,true,false,true,false,true,false,false,true]; +const UsrInt_1197 = [true,false,true,true,false,true,false,true,false,false,true]; +const UsrInt_1198 = [false,true,true,true,false,true,false,true,false,false,true]; +const UsrInt_1199 = [true,true,true,true,false,true,false,true,false,false,true]; +const UsrInt_1200 = [false,false,false,false,true,true,false,true,false,false,true]; +const UsrInt_1201 = [true,false,false,false,true,true,false,true,false,false,true]; +const UsrInt_1202 = [false,true,false,false,true,true,false,true,false,false,true]; +const UsrInt_1203 = [true,true,false,false,true,true,false,true,false,false,true]; +const UsrInt_1204 = [false,false,true,false,true,true,false,true,false,false,true]; +const UsrInt_1205 = [true,false,true,false,true,true,false,true,false,false,true]; +const UsrInt_1206 = [false,true,true,false,true,true,false,true,false,false,true]; +const UsrInt_1207 = [true,true,true,false,true,true,false,true,false,false,true]; +const UsrInt_1208 = [false,false,false,true,true,true,false,true,false,false,true]; +const UsrInt_1209 = [true,false,false,true,true,true,false,true,false,false,true]; +const UsrInt_1210 = [false,true,false,true,true,true,false,true,false,false,true]; +const UsrInt_1211 = [true,true,false,true,true,true,false,true,false,false,true]; +const UsrInt_1212 = [false,false,true,true,true,true,false,true,false,false,true]; +const UsrInt_1213 = [true,false,true,true,true,true,false,true,false,false,true]; +const UsrInt_1214 = [false,true,true,true,true,true,false,true,false,false,true]; +const UsrInt_1215 = [true,true,true,true,true,true,false,true,false,false,true]; +const UsrInt_1216 = [false,false,false,false,false,false,true,true,false,false,true]; +const UsrInt_1217 = [true,false,false,false,false,false,true,true,false,false,true]; +const UsrInt_1218 = [false,true,false,false,false,false,true,true,false,false,true]; +const UsrInt_1219 = [true,true,false,false,false,false,true,true,false,false,true]; +const UsrInt_1220 = [false,false,true,false,false,false,true,true,false,false,true]; +const UsrInt_1221 = [true,false,true,false,false,false,true,true,false,false,true]; +const UsrInt_1222 = [false,true,true,false,false,false,true,true,false,false,true]; +const UsrInt_1223 = [true,true,true,false,false,false,true,true,false,false,true]; +const UsrInt_1224 = [false,false,false,true,false,false,true,true,false,false,true]; +const UsrInt_1225 = [true,false,false,true,false,false,true,true,false,false,true]; +const UsrInt_1226 = [false,true,false,true,false,false,true,true,false,false,true]; +const UsrInt_1227 = [true,true,false,true,false,false,true,true,false,false,true]; +const UsrInt_1228 = [false,false,true,true,false,false,true,true,false,false,true]; +const UsrInt_1229 = [true,false,true,true,false,false,true,true,false,false,true]; +const UsrInt_1230 = [false,true,true,true,false,false,true,true,false,false,true]; +const UsrInt_1231 = [true,true,true,true,false,false,true,true,false,false,true]; +const UsrInt_1232 = [false,false,false,false,true,false,true,true,false,false,true]; +const UsrInt_1233 = [true,false,false,false,true,false,true,true,false,false,true]; +const UsrInt_1234 = [false,true,false,false,true,false,true,true,false,false,true]; +const UsrInt_1235 = [true,true,false,false,true,false,true,true,false,false,true]; +const UsrInt_1236 = [false,false,true,false,true,false,true,true,false,false,true]; +const UsrInt_1237 = [true,false,true,false,true,false,true,true,false,false,true]; +const UsrInt_1238 = [false,true,true,false,true,false,true,true,false,false,true]; +const UsrInt_1239 = [true,true,true,false,true,false,true,true,false,false,true]; +const UsrInt_1240 = [false,false,false,true,true,false,true,true,false,false,true]; +const UsrInt_1241 = [true,false,false,true,true,false,true,true,false,false,true]; +const UsrInt_1242 = [false,true,false,true,true,false,true,true,false,false,true]; +const UsrInt_1243 = [true,true,false,true,true,false,true,true,false,false,true]; +const UsrInt_1244 = [false,false,true,true,true,false,true,true,false,false,true]; +const UsrInt_1245 = [true,false,true,true,true,false,true,true,false,false,true]; +const UsrInt_1246 = [false,true,true,true,true,false,true,true,false,false,true]; +const UsrInt_1247 = [true,true,true,true,true,false,true,true,false,false,true]; +const UsrInt_1248 = [false,false,false,false,false,true,true,true,false,false,true]; +const UsrInt_1249 = [true,false,false,false,false,true,true,true,false,false,true]; +const UsrInt_1250 = [false,true,false,false,false,true,true,true,false,false,true]; +const UsrInt_1251 = [true,true,false,false,false,true,true,true,false,false,true]; +const UsrInt_1252 = [false,false,true,false,false,true,true,true,false,false,true]; +const UsrInt_1253 = [true,false,true,false,false,true,true,true,false,false,true]; +const UsrInt_1254 = [false,true,true,false,false,true,true,true,false,false,true]; +const UsrInt_1255 = [true,true,true,false,false,true,true,true,false,false,true]; +const UsrInt_1256 = [false,false,false,true,false,true,true,true,false,false,true]; +const UsrInt_1257 = [true,false,false,true,false,true,true,true,false,false,true]; +const UsrInt_1258 = [false,true,false,true,false,true,true,true,false,false,true]; +const UsrInt_1259 = [true,true,false,true,false,true,true,true,false,false,true]; +const UsrInt_1260 = [false,false,true,true,false,true,true,true,false,false,true]; +const UsrInt_1261 = [true,false,true,true,false,true,true,true,false,false,true]; +const UsrInt_1262 = [false,true,true,true,false,true,true,true,false,false,true]; +const UsrInt_1263 = [true,true,true,true,false,true,true,true,false,false,true]; +const UsrInt_1264 = [false,false,false,false,true,true,true,true,false,false,true]; +const UsrInt_1265 = [true,false,false,false,true,true,true,true,false,false,true]; +const UsrInt_1266 = [false,true,false,false,true,true,true,true,false,false,true]; +const UsrInt_1267 = [true,true,false,false,true,true,true,true,false,false,true]; +const UsrInt_1268 = [false,false,true,false,true,true,true,true,false,false,true]; +const UsrInt_1269 = [true,false,true,false,true,true,true,true,false,false,true]; +const UsrInt_1270 = [false,true,true,false,true,true,true,true,false,false,true]; +const UsrInt_1271 = [true,true,true,false,true,true,true,true,false,false,true]; +const UsrInt_1272 = [false,false,false,true,true,true,true,true,false,false,true]; +const UsrInt_1273 = [true,false,false,true,true,true,true,true,false,false,true]; +const UsrInt_1274 = [false,true,false,true,true,true,true,true,false,false,true]; +const UsrInt_1275 = [true,true,false,true,true,true,true,true,false,false,true]; +const UsrInt_1276 = [false,false,true,true,true,true,true,true,false,false,true]; +const UsrInt_1277 = [true,false,true,true,true,true,true,true,false,false,true]; +const UsrInt_1278 = [false,true,true,true,true,true,true,true,false,false,true]; +const UsrInt_1279 = [true,true,true,true,true,true,true,true,false,false,true]; +const UsrInt_1280 = [false,false,false,false,false,false,false,false,true,false,true]; +const UsrInt_1281 = [true,false,false,false,false,false,false,false,true,false,true]; +const UsrInt_1282 = [false,true,false,false,false,false,false,false,true,false,true]; +const UsrInt_1283 = [true,true,false,false,false,false,false,false,true,false,true]; +const UsrInt_1284 = [false,false,true,false,false,false,false,false,true,false,true]; +const UsrInt_1285 = [true,false,true,false,false,false,false,false,true,false,true]; +const UsrInt_1286 = [false,true,true,false,false,false,false,false,true,false,true]; +const UsrInt_1287 = [true,true,true,false,false,false,false,false,true,false,true]; +const UsrInt_1288 = [false,false,false,true,false,false,false,false,true,false,true]; +const UsrInt_1289 = [true,false,false,true,false,false,false,false,true,false,true]; +const UsrInt_1290 = [false,true,false,true,false,false,false,false,true,false,true]; +const UsrInt_1291 = [true,true,false,true,false,false,false,false,true,false,true]; +const UsrInt_1292 = [false,false,true,true,false,false,false,false,true,false,true]; +const UsrInt_1293 = [true,false,true,true,false,false,false,false,true,false,true]; +const UsrInt_1294 = [false,true,true,true,false,false,false,false,true,false,true]; +const UsrInt_1295 = [true,true,true,true,false,false,false,false,true,false,true]; +const UsrInt_1296 = [false,false,false,false,true,false,false,false,true,false,true]; +const UsrInt_1297 = [true,false,false,false,true,false,false,false,true,false,true]; +const UsrInt_1298 = [false,true,false,false,true,false,false,false,true,false,true]; +const UsrInt_1299 = [true,true,false,false,true,false,false,false,true,false,true]; +const UsrInt_1300 = [false,false,true,false,true,false,false,false,true,false,true]; +const UsrInt_1301 = [true,false,true,false,true,false,false,false,true,false,true]; +const UsrInt_1302 = [false,true,true,false,true,false,false,false,true,false,true]; +const UsrInt_1303 = [true,true,true,false,true,false,false,false,true,false,true]; +const UsrInt_1304 = [false,false,false,true,true,false,false,false,true,false,true]; +const UsrInt_1305 = [true,false,false,true,true,false,false,false,true,false,true]; +const UsrInt_1306 = [false,true,false,true,true,false,false,false,true,false,true]; +const UsrInt_1307 = [true,true,false,true,true,false,false,false,true,false,true]; +const UsrInt_1308 = [false,false,true,true,true,false,false,false,true,false,true]; +const UsrInt_1309 = [true,false,true,true,true,false,false,false,true,false,true]; +const UsrInt_1310 = [false,true,true,true,true,false,false,false,true,false,true]; +const UsrInt_1311 = [true,true,true,true,true,false,false,false,true,false,true]; +const UsrInt_1312 = [false,false,false,false,false,true,false,false,true,false,true]; +const UsrInt_1313 = [true,false,false,false,false,true,false,false,true,false,true]; +const UsrInt_1314 = [false,true,false,false,false,true,false,false,true,false,true]; +const UsrInt_1315 = [true,true,false,false,false,true,false,false,true,false,true]; +const UsrInt_1316 = [false,false,true,false,false,true,false,false,true,false,true]; +const UsrInt_1317 = [true,false,true,false,false,true,false,false,true,false,true]; +const UsrInt_1318 = [false,true,true,false,false,true,false,false,true,false,true]; +const UsrInt_1319 = [true,true,true,false,false,true,false,false,true,false,true]; +const UsrInt_1320 = [false,false,false,true,false,true,false,false,true,false,true]; +const UsrInt_1321 = [true,false,false,true,false,true,false,false,true,false,true]; +const UsrInt_1322 = [false,true,false,true,false,true,false,false,true,false,true]; +const UsrInt_1323 = [true,true,false,true,false,true,false,false,true,false,true]; +const UsrInt_1324 = [false,false,true,true,false,true,false,false,true,false,true]; +const UsrInt_1325 = [true,false,true,true,false,true,false,false,true,false,true]; +const UsrInt_1326 = [false,true,true,true,false,true,false,false,true,false,true]; +const UsrInt_1327 = [true,true,true,true,false,true,false,false,true,false,true]; +const UsrInt_1328 = [false,false,false,false,true,true,false,false,true,false,true]; +const UsrInt_1329 = [true,false,false,false,true,true,false,false,true,false,true]; +const UsrInt_1330 = [false,true,false,false,true,true,false,false,true,false,true]; +const UsrInt_1331 = [true,true,false,false,true,true,false,false,true,false,true]; +const UsrInt_1332 = [false,false,true,false,true,true,false,false,true,false,true]; +const UsrInt_1333 = [true,false,true,false,true,true,false,false,true,false,true]; +const UsrInt_1334 = [false,true,true,false,true,true,false,false,true,false,true]; +const UsrInt_1335 = [true,true,true,false,true,true,false,false,true,false,true]; +const UsrInt_1336 = [false,false,false,true,true,true,false,false,true,false,true]; +const UsrInt_1337 = [true,false,false,true,true,true,false,false,true,false,true]; +const UsrInt_1338 = [false,true,false,true,true,true,false,false,true,false,true]; +const UsrInt_1339 = [true,true,false,true,true,true,false,false,true,false,true]; +const UsrInt_1340 = [false,false,true,true,true,true,false,false,true,false,true]; +const UsrInt_1341 = [true,false,true,true,true,true,false,false,true,false,true]; +const UsrInt_1342 = [false,true,true,true,true,true,false,false,true,false,true]; +const UsrInt_1343 = [true,true,true,true,true,true,false,false,true,false,true]; +const UsrInt_1344 = [false,false,false,false,false,false,true,false,true,false,true]; +const UsrInt_1345 = [true,false,false,false,false,false,true,false,true,false,true]; +const UsrInt_1346 = [false,true,false,false,false,false,true,false,true,false,true]; +const UsrInt_1347 = [true,true,false,false,false,false,true,false,true,false,true]; +const UsrInt_1348 = [false,false,true,false,false,false,true,false,true,false,true]; +const UsrInt_1349 = [true,false,true,false,false,false,true,false,true,false,true]; +const UsrInt_1350 = [false,true,true,false,false,false,true,false,true,false,true]; +const UsrInt_1351 = [true,true,true,false,false,false,true,false,true,false,true]; +const UsrInt_1352 = [false,false,false,true,false,false,true,false,true,false,true]; +const UsrInt_1353 = [true,false,false,true,false,false,true,false,true,false,true]; +const UsrInt_1354 = [false,true,false,true,false,false,true,false,true,false,true]; +const UsrInt_1355 = [true,true,false,true,false,false,true,false,true,false,true]; +const UsrInt_1356 = [false,false,true,true,false,false,true,false,true,false,true]; +const UsrInt_1357 = [true,false,true,true,false,false,true,false,true,false,true]; +const UsrInt_1358 = [false,true,true,true,false,false,true,false,true,false,true]; +const UsrInt_1359 = [true,true,true,true,false,false,true,false,true,false,true]; +const UsrInt_1360 = [false,false,false,false,true,false,true,false,true,false,true]; +const UsrInt_1361 = [true,false,false,false,true,false,true,false,true,false,true]; +const UsrInt_1362 = [false,true,false,false,true,false,true,false,true,false,true]; +const UsrInt_1363 = [true,true,false,false,true,false,true,false,true,false,true]; +const UsrInt_1364 = [false,false,true,false,true,false,true,false,true,false,true]; +const UsrInt_1365 = [true,false,true,false,true,false,true,false,true,false,true]; +const UsrInt_1366 = [false,true,true,false,true,false,true,false,true,false,true]; +const UsrInt_1367 = [true,true,true,false,true,false,true,false,true,false,true]; +const UsrInt_1368 = [false,false,false,true,true,false,true,false,true,false,true]; +const UsrInt_1369 = [true,false,false,true,true,false,true,false,true,false,true]; +const UsrInt_1370 = [false,true,false,true,true,false,true,false,true,false,true]; +const UsrInt_1371 = [true,true,false,true,true,false,true,false,true,false,true]; +const UsrInt_1372 = [false,false,true,true,true,false,true,false,true,false,true]; +const UsrInt_1373 = [true,false,true,true,true,false,true,false,true,false,true]; +const UsrInt_1374 = [false,true,true,true,true,false,true,false,true,false,true]; +const UsrInt_1375 = [true,true,true,true,true,false,true,false,true,false,true]; +const UsrInt_1376 = [false,false,false,false,false,true,true,false,true,false,true]; +const UsrInt_1377 = [true,false,false,false,false,true,true,false,true,false,true]; +const UsrInt_1378 = [false,true,false,false,false,true,true,false,true,false,true]; +const UsrInt_1379 = [true,true,false,false,false,true,true,false,true,false,true]; +const UsrInt_1380 = [false,false,true,false,false,true,true,false,true,false,true]; +const UsrInt_1381 = [true,false,true,false,false,true,true,false,true,false,true]; +const UsrInt_1382 = [false,true,true,false,false,true,true,false,true,false,true]; +const UsrInt_1383 = [true,true,true,false,false,true,true,false,true,false,true]; +const UsrInt_1384 = [false,false,false,true,false,true,true,false,true,false,true]; +const UsrInt_1385 = [true,false,false,true,false,true,true,false,true,false,true]; +const UsrInt_1386 = [false,true,false,true,false,true,true,false,true,false,true]; +const UsrInt_1387 = [true,true,false,true,false,true,true,false,true,false,true]; +const UsrInt_1388 = [false,false,true,true,false,true,true,false,true,false,true]; +const UsrInt_1389 = [true,false,true,true,false,true,true,false,true,false,true]; +const UsrInt_1390 = [false,true,true,true,false,true,true,false,true,false,true]; +const UsrInt_1391 = [true,true,true,true,false,true,true,false,true,false,true]; +const UsrInt_1392 = [false,false,false,false,true,true,true,false,true,false,true]; +const UsrInt_1393 = [true,false,false,false,true,true,true,false,true,false,true]; +const UsrInt_1394 = [false,true,false,false,true,true,true,false,true,false,true]; +const UsrInt_1395 = [true,true,false,false,true,true,true,false,true,false,true]; +const UsrInt_1396 = [false,false,true,false,true,true,true,false,true,false,true]; +const UsrInt_1397 = [true,false,true,false,true,true,true,false,true,false,true]; +const UsrInt_1398 = [false,true,true,false,true,true,true,false,true,false,true]; +const UsrInt_1399 = [true,true,true,false,true,true,true,false,true,false,true]; +const UsrInt_1400 = [false,false,false,true,true,true,true,false,true,false,true]; +const UsrInt_1401 = [true,false,false,true,true,true,true,false,true,false,true]; +const UsrInt_1402 = [false,true,false,true,true,true,true,false,true,false,true]; +const UsrInt_1403 = [true,true,false,true,true,true,true,false,true,false,true]; +const UsrInt_1404 = [false,false,true,true,true,true,true,false,true,false,true]; +const UsrInt_1405 = [true,false,true,true,true,true,true,false,true,false,true]; +const UsrInt_1406 = [false,true,true,true,true,true,true,false,true,false,true]; +const UsrInt_1407 = [true,true,true,true,true,true,true,false,true,false,true]; +const UsrInt_1408 = [false,false,false,false,false,false,false,true,true,false,true]; +const UsrInt_1409 = [true,false,false,false,false,false,false,true,true,false,true]; +const UsrInt_1410 = [false,true,false,false,false,false,false,true,true,false,true]; +const UsrInt_1411 = [true,true,false,false,false,false,false,true,true,false,true]; +const UsrInt_1412 = [false,false,true,false,false,false,false,true,true,false,true]; +const UsrInt_1413 = [true,false,true,false,false,false,false,true,true,false,true]; +const UsrInt_1414 = [false,true,true,false,false,false,false,true,true,false,true]; +const UsrInt_1415 = [true,true,true,false,false,false,false,true,true,false,true]; +const UsrInt_1416 = [false,false,false,true,false,false,false,true,true,false,true]; +const UsrInt_1417 = [true,false,false,true,false,false,false,true,true,false,true]; +const UsrInt_1418 = [false,true,false,true,false,false,false,true,true,false,true]; +const UsrInt_1419 = [true,true,false,true,false,false,false,true,true,false,true]; +const UsrInt_1420 = [false,false,true,true,false,false,false,true,true,false,true]; +const UsrInt_1421 = [true,false,true,true,false,false,false,true,true,false,true]; +const UsrInt_1422 = [false,true,true,true,false,false,false,true,true,false,true]; +const UsrInt_1423 = [true,true,true,true,false,false,false,true,true,false,true]; +const UsrInt_1424 = [false,false,false,false,true,false,false,true,true,false,true]; +const UsrInt_1425 = [true,false,false,false,true,false,false,true,true,false,true]; +const UsrInt_1426 = [false,true,false,false,true,false,false,true,true,false,true]; +const UsrInt_1427 = [true,true,false,false,true,false,false,true,true,false,true]; +const UsrInt_1428 = [false,false,true,false,true,false,false,true,true,false,true]; +const UsrInt_1429 = [true,false,true,false,true,false,false,true,true,false,true]; +const UsrInt_1430 = [false,true,true,false,true,false,false,true,true,false,true]; +const UsrInt_1431 = [true,true,true,false,true,false,false,true,true,false,true]; +const UsrInt_1432 = [false,false,false,true,true,false,false,true,true,false,true]; +const UsrInt_1433 = [true,false,false,true,true,false,false,true,true,false,true]; +const UsrInt_1434 = [false,true,false,true,true,false,false,true,true,false,true]; +const UsrInt_1435 = [true,true,false,true,true,false,false,true,true,false,true]; +const UsrInt_1436 = [false,false,true,true,true,false,false,true,true,false,true]; +const UsrInt_1437 = [true,false,true,true,true,false,false,true,true,false,true]; +const UsrInt_1438 = [false,true,true,true,true,false,false,true,true,false,true]; +const UsrInt_1439 = [true,true,true,true,true,false,false,true,true,false,true]; +const UsrInt_1440 = [false,false,false,false,false,true,false,true,true,false,true]; +const UsrInt_1441 = [true,false,false,false,false,true,false,true,true,false,true]; +const UsrInt_1442 = [false,true,false,false,false,true,false,true,true,false,true]; +const UsrInt_1443 = [true,true,false,false,false,true,false,true,true,false,true]; +const UsrInt_1444 = [false,false,true,false,false,true,false,true,true,false,true]; +const UsrInt_1445 = [true,false,true,false,false,true,false,true,true,false,true]; +const UsrInt_1446 = [false,true,true,false,false,true,false,true,true,false,true]; +const UsrInt_1447 = [true,true,true,false,false,true,false,true,true,false,true]; +const UsrInt_1448 = [false,false,false,true,false,true,false,true,true,false,true]; +const UsrInt_1449 = [true,false,false,true,false,true,false,true,true,false,true]; +const UsrInt_1450 = [false,true,false,true,false,true,false,true,true,false,true]; +const UsrInt_1451 = [true,true,false,true,false,true,false,true,true,false,true]; +const UsrInt_1452 = [false,false,true,true,false,true,false,true,true,false,true]; +const UsrInt_1453 = [true,false,true,true,false,true,false,true,true,false,true]; +const UsrInt_1454 = [false,true,true,true,false,true,false,true,true,false,true]; +const UsrInt_1455 = [true,true,true,true,false,true,false,true,true,false,true]; +const UsrInt_1456 = [false,false,false,false,true,true,false,true,true,false,true]; +const UsrInt_1457 = [true,false,false,false,true,true,false,true,true,false,true]; +const UsrInt_1458 = [false,true,false,false,true,true,false,true,true,false,true]; +const UsrInt_1459 = [true,true,false,false,true,true,false,true,true,false,true]; +const UsrInt_1460 = [false,false,true,false,true,true,false,true,true,false,true]; +const UsrInt_1461 = [true,false,true,false,true,true,false,true,true,false,true]; +const UsrInt_1462 = [false,true,true,false,true,true,false,true,true,false,true]; +const UsrInt_1463 = [true,true,true,false,true,true,false,true,true,false,true]; +const UsrInt_1464 = [false,false,false,true,true,true,false,true,true,false,true]; +const UsrInt_1465 = [true,false,false,true,true,true,false,true,true,false,true]; +const UsrInt_1466 = [false,true,false,true,true,true,false,true,true,false,true]; +const UsrInt_1467 = [true,true,false,true,true,true,false,true,true,false,true]; +const UsrInt_1468 = [false,false,true,true,true,true,false,true,true,false,true]; +const UsrInt_1469 = [true,false,true,true,true,true,false,true,true,false,true]; +const UsrInt_1470 = [false,true,true,true,true,true,false,true,true,false,true]; +const UsrInt_1471 = [true,true,true,true,true,true,false,true,true,false,true]; +const UsrInt_1472 = [false,false,false,false,false,false,true,true,true,false,true]; +const UsrInt_1473 = [true,false,false,false,false,false,true,true,true,false,true]; +const UsrInt_1474 = [false,true,false,false,false,false,true,true,true,false,true]; +const UsrInt_1475 = [true,true,false,false,false,false,true,true,true,false,true]; +const UsrInt_1476 = [false,false,true,false,false,false,true,true,true,false,true]; +const UsrInt_1477 = [true,false,true,false,false,false,true,true,true,false,true]; +const UsrInt_1478 = [false,true,true,false,false,false,true,true,true,false,true]; +const UsrInt_1479 = [true,true,true,false,false,false,true,true,true,false,true]; +const UsrInt_1480 = [false,false,false,true,false,false,true,true,true,false,true]; +const UsrInt_1481 = [true,false,false,true,false,false,true,true,true,false,true]; +const UsrInt_1482 = [false,true,false,true,false,false,true,true,true,false,true]; +const UsrInt_1483 = [true,true,false,true,false,false,true,true,true,false,true]; +const UsrInt_1484 = [false,false,true,true,false,false,true,true,true,false,true]; +const UsrInt_1485 = [true,false,true,true,false,false,true,true,true,false,true]; +const UsrInt_1486 = [false,true,true,true,false,false,true,true,true,false,true]; +const UsrInt_1487 = [true,true,true,true,false,false,true,true,true,false,true]; +const UsrInt_1488 = [false,false,false,false,true,false,true,true,true,false,true]; +const UsrInt_1489 = [true,false,false,false,true,false,true,true,true,false,true]; +const UsrInt_1490 = [false,true,false,false,true,false,true,true,true,false,true]; +const UsrInt_1491 = [true,true,false,false,true,false,true,true,true,false,true]; +const UsrInt_1492 = [false,false,true,false,true,false,true,true,true,false,true]; +const UsrInt_1493 = [true,false,true,false,true,false,true,true,true,false,true]; +const UsrInt_1494 = [false,true,true,false,true,false,true,true,true,false,true]; +const UsrInt_1495 = [true,true,true,false,true,false,true,true,true,false,true]; +const UsrInt_1496 = [false,false,false,true,true,false,true,true,true,false,true]; +const UsrInt_1497 = [true,false,false,true,true,false,true,true,true,false,true]; +const UsrInt_1498 = [false,true,false,true,true,false,true,true,true,false,true]; +const UsrInt_1499 = [true,true,false,true,true,false,true,true,true,false,true]; +const UsrInt_1500 = [false,false,true,true,true,false,true,true,true,false,true]; +const UsrInt_1501 = [true,false,true,true,true,false,true,true,true,false,true]; +const UsrInt_1502 = [false,true,true,true,true,false,true,true,true,false,true]; +const UsrInt_1503 = [true,true,true,true,true,false,true,true,true,false,true]; +const UsrInt_1504 = [false,false,false,false,false,true,true,true,true,false,true]; +const UsrInt_1505 = [true,false,false,false,false,true,true,true,true,false,true]; +const UsrInt_1506 = [false,true,false,false,false,true,true,true,true,false,true]; +const UsrInt_1507 = [true,true,false,false,false,true,true,true,true,false,true]; +const UsrInt_1508 = [false,false,true,false,false,true,true,true,true,false,true]; +const UsrInt_1509 = [true,false,true,false,false,true,true,true,true,false,true]; +const UsrInt_1510 = [false,true,true,false,false,true,true,true,true,false,true]; +const UsrInt_1511 = [true,true,true,false,false,true,true,true,true,false,true]; +const UsrInt_1512 = [false,false,false,true,false,true,true,true,true,false,true]; +const UsrInt_1513 = [true,false,false,true,false,true,true,true,true,false,true]; +const UsrInt_1514 = [false,true,false,true,false,true,true,true,true,false,true]; +const UsrInt_1515 = [true,true,false,true,false,true,true,true,true,false,true]; +const UsrInt_1516 = [false,false,true,true,false,true,true,true,true,false,true]; +const UsrInt_1517 = [true,false,true,true,false,true,true,true,true,false,true]; +const UsrInt_1518 = [false,true,true,true,false,true,true,true,true,false,true]; +const UsrInt_1519 = [true,true,true,true,false,true,true,true,true,false,true]; +const UsrInt_1520 = [false,false,false,false,true,true,true,true,true,false,true]; +const UsrInt_1521 = [true,false,false,false,true,true,true,true,true,false,true]; +const UsrInt_1522 = [false,true,false,false,true,true,true,true,true,false,true]; +const UsrInt_1523 = [true,true,false,false,true,true,true,true,true,false,true]; +const UsrInt_1524 = [false,false,true,false,true,true,true,true,true,false,true]; +const UsrInt_1525 = [true,false,true,false,true,true,true,true,true,false,true]; +const UsrInt_1526 = [false,true,true,false,true,true,true,true,true,false,true]; +const UsrInt_1527 = [true,true,true,false,true,true,true,true,true,false,true]; +const UsrInt_1528 = [false,false,false,true,true,true,true,true,true,false,true]; +const UsrInt_1529 = [true,false,false,true,true,true,true,true,true,false,true]; +const UsrInt_1530 = [false,true,false,true,true,true,true,true,true,false,true]; +const UsrInt_1531 = [true,true,false,true,true,true,true,true,true,false,true]; +const UsrInt_1532 = [false,false,true,true,true,true,true,true,true,false,true]; +const UsrInt_1533 = [true,false,true,true,true,true,true,true,true,false,true]; +const UsrInt_1534 = [false,true,true,true,true,true,true,true,true,false,true]; +const UsrInt_1535 = [true,true,true,true,true,true,true,true,true,false,true]; +const UsrInt_1536 = [false,false,false,false,false,false,false,false,false,true,true]; +const UsrInt_1537 = [true,false,false,false,false,false,false,false,false,true,true]; +const UsrInt_1538 = [false,true,false,false,false,false,false,false,false,true,true]; +const UsrInt_1539 = [true,true,false,false,false,false,false,false,false,true,true]; +const UsrInt_1540 = [false,false,true,false,false,false,false,false,false,true,true]; +const UsrInt_1541 = [true,false,true,false,false,false,false,false,false,true,true]; +const UsrInt_1542 = [false,true,true,false,false,false,false,false,false,true,true]; +const UsrInt_1543 = [true,true,true,false,false,false,false,false,false,true,true]; +const UsrInt_1544 = [false,false,false,true,false,false,false,false,false,true,true]; +const UsrInt_1545 = [true,false,false,true,false,false,false,false,false,true,true]; +const UsrInt_1546 = [false,true,false,true,false,false,false,false,false,true,true]; +const UsrInt_1547 = [true,true,false,true,false,false,false,false,false,true,true]; +const UsrInt_1548 = [false,false,true,true,false,false,false,false,false,true,true]; +const UsrInt_1549 = [true,false,true,true,false,false,false,false,false,true,true]; +const UsrInt_1550 = [false,true,true,true,false,false,false,false,false,true,true]; +const UsrInt_1551 = [true,true,true,true,false,false,false,false,false,true,true]; +const UsrInt_1552 = [false,false,false,false,true,false,false,false,false,true,true]; +const UsrInt_1553 = [true,false,false,false,true,false,false,false,false,true,true]; +const UsrInt_1554 = [false,true,false,false,true,false,false,false,false,true,true]; +const UsrInt_1555 = [true,true,false,false,true,false,false,false,false,true,true]; +const UsrInt_1556 = [false,false,true,false,true,false,false,false,false,true,true]; +const UsrInt_1557 = [true,false,true,false,true,false,false,false,false,true,true]; +const UsrInt_1558 = [false,true,true,false,true,false,false,false,false,true,true]; +const UsrInt_1559 = [true,true,true,false,true,false,false,false,false,true,true]; +const UsrInt_1560 = [false,false,false,true,true,false,false,false,false,true,true]; +const UsrInt_1561 = [true,false,false,true,true,false,false,false,false,true,true]; +const UsrInt_1562 = [false,true,false,true,true,false,false,false,false,true,true]; +const UsrInt_1563 = [true,true,false,true,true,false,false,false,false,true,true]; +const UsrInt_1564 = [false,false,true,true,true,false,false,false,false,true,true]; +const UsrInt_1565 = [true,false,true,true,true,false,false,false,false,true,true]; +const UsrInt_1566 = [false,true,true,true,true,false,false,false,false,true,true]; +const UsrInt_1567 = [true,true,true,true,true,false,false,false,false,true,true]; +const UsrInt_1568 = [false,false,false,false,false,true,false,false,false,true,true]; +const UsrInt_1569 = [true,false,false,false,false,true,false,false,false,true,true]; +const UsrInt_1570 = [false,true,false,false,false,true,false,false,false,true,true]; +const UsrInt_1571 = [true,true,false,false,false,true,false,false,false,true,true]; +const UsrInt_1572 = [false,false,true,false,false,true,false,false,false,true,true]; +const UsrInt_1573 = [true,false,true,false,false,true,false,false,false,true,true]; +const UsrInt_1574 = [false,true,true,false,false,true,false,false,false,true,true]; +const UsrInt_1575 = [true,true,true,false,false,true,false,false,false,true,true]; +const UsrInt_1576 = [false,false,false,true,false,true,false,false,false,true,true]; +const UsrInt_1577 = [true,false,false,true,false,true,false,false,false,true,true]; +const UsrInt_1578 = [false,true,false,true,false,true,false,false,false,true,true]; +const UsrInt_1579 = [true,true,false,true,false,true,false,false,false,true,true]; +const UsrInt_1580 = [false,false,true,true,false,true,false,false,false,true,true]; +const UsrInt_1581 = [true,false,true,true,false,true,false,false,false,true,true]; +const UsrInt_1582 = [false,true,true,true,false,true,false,false,false,true,true]; +const UsrInt_1583 = [true,true,true,true,false,true,false,false,false,true,true]; +const UsrInt_1584 = [false,false,false,false,true,true,false,false,false,true,true]; +const UsrInt_1585 = [true,false,false,false,true,true,false,false,false,true,true]; +const UsrInt_1586 = [false,true,false,false,true,true,false,false,false,true,true]; +const UsrInt_1587 = [true,true,false,false,true,true,false,false,false,true,true]; +const UsrInt_1588 = [false,false,true,false,true,true,false,false,false,true,true]; +const UsrInt_1589 = [true,false,true,false,true,true,false,false,false,true,true]; +const UsrInt_1590 = [false,true,true,false,true,true,false,false,false,true,true]; +const UsrInt_1591 = [true,true,true,false,true,true,false,false,false,true,true]; +const UsrInt_1592 = [false,false,false,true,true,true,false,false,false,true,true]; +const UsrInt_1593 = [true,false,false,true,true,true,false,false,false,true,true]; +const UsrInt_1594 = [false,true,false,true,true,true,false,false,false,true,true]; +const UsrInt_1595 = [true,true,false,true,true,true,false,false,false,true,true]; +const UsrInt_1596 = [false,false,true,true,true,true,false,false,false,true,true]; +const UsrInt_1597 = [true,false,true,true,true,true,false,false,false,true,true]; +const UsrInt_1598 = [false,true,true,true,true,true,false,false,false,true,true]; +const UsrInt_1599 = [true,true,true,true,true,true,false,false,false,true,true]; +const UsrInt_1600 = [false,false,false,false,false,false,true,false,false,true,true]; +const UsrInt_1601 = [true,false,false,false,false,false,true,false,false,true,true]; +const UsrInt_1602 = [false,true,false,false,false,false,true,false,false,true,true]; +const UsrInt_1603 = [true,true,false,false,false,false,true,false,false,true,true]; +const UsrInt_1604 = [false,false,true,false,false,false,true,false,false,true,true]; +const UsrInt_1605 = [true,false,true,false,false,false,true,false,false,true,true]; +const UsrInt_1606 = [false,true,true,false,false,false,true,false,false,true,true]; +const UsrInt_1607 = [true,true,true,false,false,false,true,false,false,true,true]; +const UsrInt_1608 = [false,false,false,true,false,false,true,false,false,true,true]; +const UsrInt_1609 = [true,false,false,true,false,false,true,false,false,true,true]; +const UsrInt_1610 = [false,true,false,true,false,false,true,false,false,true,true]; +const UsrInt_1611 = [true,true,false,true,false,false,true,false,false,true,true]; +const UsrInt_1612 = [false,false,true,true,false,false,true,false,false,true,true]; +const UsrInt_1613 = [true,false,true,true,false,false,true,false,false,true,true]; +const UsrInt_1614 = [false,true,true,true,false,false,true,false,false,true,true]; +const UsrInt_1615 = [true,true,true,true,false,false,true,false,false,true,true]; +const UsrInt_1616 = [false,false,false,false,true,false,true,false,false,true,true]; +const UsrInt_1617 = [true,false,false,false,true,false,true,false,false,true,true]; +const UsrInt_1618 = [false,true,false,false,true,false,true,false,false,true,true]; +const UsrInt_1619 = [true,true,false,false,true,false,true,false,false,true,true]; +const UsrInt_1620 = [false,false,true,false,true,false,true,false,false,true,true]; +const UsrInt_1621 = [true,false,true,false,true,false,true,false,false,true,true]; +const UsrInt_1622 = [false,true,true,false,true,false,true,false,false,true,true]; +const UsrInt_1623 = [true,true,true,false,true,false,true,false,false,true,true]; +const UsrInt_1624 = [false,false,false,true,true,false,true,false,false,true,true]; +const UsrInt_1625 = [true,false,false,true,true,false,true,false,false,true,true]; +const UsrInt_1626 = [false,true,false,true,true,false,true,false,false,true,true]; +const UsrInt_1627 = [true,true,false,true,true,false,true,false,false,true,true]; +const UsrInt_1628 = [false,false,true,true,true,false,true,false,false,true,true]; +const UsrInt_1629 = [true,false,true,true,true,false,true,false,false,true,true]; +const UsrInt_1630 = [false,true,true,true,true,false,true,false,false,true,true]; +const UsrInt_1631 = [true,true,true,true,true,false,true,false,false,true,true]; +const UsrInt_1632 = [false,false,false,false,false,true,true,false,false,true,true]; +const UsrInt_1633 = [true,false,false,false,false,true,true,false,false,true,true]; +const UsrInt_1634 = [false,true,false,false,false,true,true,false,false,true,true]; +const UsrInt_1635 = [true,true,false,false,false,true,true,false,false,true,true]; +const UsrInt_1636 = [false,false,true,false,false,true,true,false,false,true,true]; +const UsrInt_1637 = [true,false,true,false,false,true,true,false,false,true,true]; +const UsrInt_1638 = [false,true,true,false,false,true,true,false,false,true,true]; +const UsrInt_1639 = [true,true,true,false,false,true,true,false,false,true,true]; +const UsrInt_1640 = [false,false,false,true,false,true,true,false,false,true,true]; +const UsrInt_1641 = [true,false,false,true,false,true,true,false,false,true,true]; +const UsrInt_1642 = [false,true,false,true,false,true,true,false,false,true,true]; +const UsrInt_1643 = [true,true,false,true,false,true,true,false,false,true,true]; +const UsrInt_1644 = [false,false,true,true,false,true,true,false,false,true,true]; +const UsrInt_1645 = [true,false,true,true,false,true,true,false,false,true,true]; +const UsrInt_1646 = [false,true,true,true,false,true,true,false,false,true,true]; +const UsrInt_1647 = [true,true,true,true,false,true,true,false,false,true,true]; +const UsrInt_1648 = [false,false,false,false,true,true,true,false,false,true,true]; +const UsrInt_1649 = [true,false,false,false,true,true,true,false,false,true,true]; +const UsrInt_1650 = [false,true,false,false,true,true,true,false,false,true,true]; +const UsrInt_1651 = [true,true,false,false,true,true,true,false,false,true,true]; +const UsrInt_1652 = [false,false,true,false,true,true,true,false,false,true,true]; +const UsrInt_1653 = [true,false,true,false,true,true,true,false,false,true,true]; +const UsrInt_1654 = [false,true,true,false,true,true,true,false,false,true,true]; +const UsrInt_1655 = [true,true,true,false,true,true,true,false,false,true,true]; +const UsrInt_1656 = [false,false,false,true,true,true,true,false,false,true,true]; +const UsrInt_1657 = [true,false,false,true,true,true,true,false,false,true,true]; +const UsrInt_1658 = [false,true,false,true,true,true,true,false,false,true,true]; +const UsrInt_1659 = [true,true,false,true,true,true,true,false,false,true,true]; +const UsrInt_1660 = [false,false,true,true,true,true,true,false,false,true,true]; +const UsrInt_1661 = [true,false,true,true,true,true,true,false,false,true,true]; +const UsrInt_1662 = [false,true,true,true,true,true,true,false,false,true,true]; +const UsrInt_1663 = [true,true,true,true,true,true,true,false,false,true,true]; +const UsrInt_1664 = [false,false,false,false,false,false,false,true,false,true,true]; +const UsrInt_1665 = [true,false,false,false,false,false,false,true,false,true,true]; +const UsrInt_1666 = [false,true,false,false,false,false,false,true,false,true,true]; +const UsrInt_1667 = [true,true,false,false,false,false,false,true,false,true,true]; +const UsrInt_1668 = [false,false,true,false,false,false,false,true,false,true,true]; +const UsrInt_1669 = [true,false,true,false,false,false,false,true,false,true,true]; +const UsrInt_1670 = [false,true,true,false,false,false,false,true,false,true,true]; +const UsrInt_1671 = [true,true,true,false,false,false,false,true,false,true,true]; +const UsrInt_1672 = [false,false,false,true,false,false,false,true,false,true,true]; +const UsrInt_1673 = [true,false,false,true,false,false,false,true,false,true,true]; +const UsrInt_1674 = [false,true,false,true,false,false,false,true,false,true,true]; +const UsrInt_1675 = [true,true,false,true,false,false,false,true,false,true,true]; +const UsrInt_1676 = [false,false,true,true,false,false,false,true,false,true,true]; +const UsrInt_1677 = [true,false,true,true,false,false,false,true,false,true,true]; +const UsrInt_1678 = [false,true,true,true,false,false,false,true,false,true,true]; +const UsrInt_1679 = [true,true,true,true,false,false,false,true,false,true,true]; +const UsrInt_1680 = [false,false,false,false,true,false,false,true,false,true,true]; +const UsrInt_1681 = [true,false,false,false,true,false,false,true,false,true,true]; +const UsrInt_1682 = [false,true,false,false,true,false,false,true,false,true,true]; +const UsrInt_1683 = [true,true,false,false,true,false,false,true,false,true,true]; +const UsrInt_1684 = [false,false,true,false,true,false,false,true,false,true,true]; +const UsrInt_1685 = [true,false,true,false,true,false,false,true,false,true,true]; +const UsrInt_1686 = [false,true,true,false,true,false,false,true,false,true,true]; +const UsrInt_1687 = [true,true,true,false,true,false,false,true,false,true,true]; +const UsrInt_1688 = [false,false,false,true,true,false,false,true,false,true,true]; +const UsrInt_1689 = [true,false,false,true,true,false,false,true,false,true,true]; +const UsrInt_1690 = [false,true,false,true,true,false,false,true,false,true,true]; +const UsrInt_1691 = [true,true,false,true,true,false,false,true,false,true,true]; +const UsrInt_1692 = [false,false,true,true,true,false,false,true,false,true,true]; +const UsrInt_1693 = [true,false,true,true,true,false,false,true,false,true,true]; +const UsrInt_1694 = [false,true,true,true,true,false,false,true,false,true,true]; +const UsrInt_1695 = [true,true,true,true,true,false,false,true,false,true,true]; +const UsrInt_1696 = [false,false,false,false,false,true,false,true,false,true,true]; +const UsrInt_1697 = [true,false,false,false,false,true,false,true,false,true,true]; +const UsrInt_1698 = [false,true,false,false,false,true,false,true,false,true,true]; +const UsrInt_1699 = [true,true,false,false,false,true,false,true,false,true,true]; +const UsrInt_1700 = [false,false,true,false,false,true,false,true,false,true,true]; +const UsrInt_1701 = [true,false,true,false,false,true,false,true,false,true,true]; +const UsrInt_1702 = [false,true,true,false,false,true,false,true,false,true,true]; +const UsrInt_1703 = [true,true,true,false,false,true,false,true,false,true,true]; +const UsrInt_1704 = [false,false,false,true,false,true,false,true,false,true,true]; +const UsrInt_1705 = [true,false,false,true,false,true,false,true,false,true,true]; +const UsrInt_1706 = [false,true,false,true,false,true,false,true,false,true,true]; +const UsrInt_1707 = [true,true,false,true,false,true,false,true,false,true,true]; +const UsrInt_1708 = [false,false,true,true,false,true,false,true,false,true,true]; +const UsrInt_1709 = [true,false,true,true,false,true,false,true,false,true,true]; +const UsrInt_1710 = [false,true,true,true,false,true,false,true,false,true,true]; +const UsrInt_1711 = [true,true,true,true,false,true,false,true,false,true,true]; +const UsrInt_1712 = [false,false,false,false,true,true,false,true,false,true,true]; +const UsrInt_1713 = [true,false,false,false,true,true,false,true,false,true,true]; +const UsrInt_1714 = [false,true,false,false,true,true,false,true,false,true,true]; +const UsrInt_1715 = [true,true,false,false,true,true,false,true,false,true,true]; +const UsrInt_1716 = [false,false,true,false,true,true,false,true,false,true,true]; +const UsrInt_1717 = [true,false,true,false,true,true,false,true,false,true,true]; +const UsrInt_1718 = [false,true,true,false,true,true,false,true,false,true,true]; +const UsrInt_1719 = [true,true,true,false,true,true,false,true,false,true,true]; +const UsrInt_1720 = [false,false,false,true,true,true,false,true,false,true,true]; +const UsrInt_1721 = [true,false,false,true,true,true,false,true,false,true,true]; +const UsrInt_1722 = [false,true,false,true,true,true,false,true,false,true,true]; +const UsrInt_1723 = [true,true,false,true,true,true,false,true,false,true,true]; +const UsrInt_1724 = [false,false,true,true,true,true,false,true,false,true,true]; +const UsrInt_1725 = [true,false,true,true,true,true,false,true,false,true,true]; +const UsrInt_1726 = [false,true,true,true,true,true,false,true,false,true,true]; +const UsrInt_1727 = [true,true,true,true,true,true,false,true,false,true,true]; +const UsrInt_1728 = [false,false,false,false,false,false,true,true,false,true,true]; +const UsrInt_1729 = [true,false,false,false,false,false,true,true,false,true,true]; +const UsrInt_1730 = [false,true,false,false,false,false,true,true,false,true,true]; +const UsrInt_1731 = [true,true,false,false,false,false,true,true,false,true,true]; +const UsrInt_1732 = [false,false,true,false,false,false,true,true,false,true,true]; +const UsrInt_1733 = [true,false,true,false,false,false,true,true,false,true,true]; +const UsrInt_1734 = [false,true,true,false,false,false,true,true,false,true,true]; +const UsrInt_1735 = [true,true,true,false,false,false,true,true,false,true,true]; +const UsrInt_1736 = [false,false,false,true,false,false,true,true,false,true,true]; +const UsrInt_1737 = [true,false,false,true,false,false,true,true,false,true,true]; +const UsrInt_1738 = [false,true,false,true,false,false,true,true,false,true,true]; +const UsrInt_1739 = [true,true,false,true,false,false,true,true,false,true,true]; +const UsrInt_1740 = [false,false,true,true,false,false,true,true,false,true,true]; +const UsrInt_1741 = [true,false,true,true,false,false,true,true,false,true,true]; +const UsrInt_1742 = [false,true,true,true,false,false,true,true,false,true,true]; +const UsrInt_1743 = [true,true,true,true,false,false,true,true,false,true,true]; +const UsrInt_1744 = [false,false,false,false,true,false,true,true,false,true,true]; +const UsrInt_1745 = [true,false,false,false,true,false,true,true,false,true,true]; +const UsrInt_1746 = [false,true,false,false,true,false,true,true,false,true,true]; +const UsrInt_1747 = [true,true,false,false,true,false,true,true,false,true,true]; +const UsrInt_1748 = [false,false,true,false,true,false,true,true,false,true,true]; +const UsrInt_1749 = [true,false,true,false,true,false,true,true,false,true,true]; +const UsrInt_1750 = [false,true,true,false,true,false,true,true,false,true,true]; +const UsrInt_1751 = [true,true,true,false,true,false,true,true,false,true,true]; +const UsrInt_1752 = [false,false,false,true,true,false,true,true,false,true,true]; +const UsrInt_1753 = [true,false,false,true,true,false,true,true,false,true,true]; +const UsrInt_1754 = [false,true,false,true,true,false,true,true,false,true,true]; +const UsrInt_1755 = [true,true,false,true,true,false,true,true,false,true,true]; +const UsrInt_1756 = [false,false,true,true,true,false,true,true,false,true,true]; +const UsrInt_1757 = [true,false,true,true,true,false,true,true,false,true,true]; +const UsrInt_1758 = [false,true,true,true,true,false,true,true,false,true,true]; +const UsrInt_1759 = [true,true,true,true,true,false,true,true,false,true,true]; +const UsrInt_1760 = [false,false,false,false,false,true,true,true,false,true,true]; +const UsrInt_1761 = [true,false,false,false,false,true,true,true,false,true,true]; +const UsrInt_1762 = [false,true,false,false,false,true,true,true,false,true,true]; +const UsrInt_1763 = [true,true,false,false,false,true,true,true,false,true,true]; +const UsrInt_1764 = [false,false,true,false,false,true,true,true,false,true,true]; +const UsrInt_1765 = [true,false,true,false,false,true,true,true,false,true,true]; +const UsrInt_1766 = [false,true,true,false,false,true,true,true,false,true,true]; +const UsrInt_1767 = [true,true,true,false,false,true,true,true,false,true,true]; +const UsrInt_1768 = [false,false,false,true,false,true,true,true,false,true,true]; +const UsrInt_1769 = [true,false,false,true,false,true,true,true,false,true,true]; +const UsrInt_1770 = [false,true,false,true,false,true,true,true,false,true,true]; +const UsrInt_1771 = [true,true,false,true,false,true,true,true,false,true,true]; +const UsrInt_1772 = [false,false,true,true,false,true,true,true,false,true,true]; +const UsrInt_1773 = [true,false,true,true,false,true,true,true,false,true,true]; +const UsrInt_1774 = [false,true,true,true,false,true,true,true,false,true,true]; +const UsrInt_1775 = [true,true,true,true,false,true,true,true,false,true,true]; +const UsrInt_1776 = [false,false,false,false,true,true,true,true,false,true,true]; +const UsrInt_1777 = [true,false,false,false,true,true,true,true,false,true,true]; +const UsrInt_1778 = [false,true,false,false,true,true,true,true,false,true,true]; +const UsrInt_1779 = [true,true,false,false,true,true,true,true,false,true,true]; +const UsrInt_1780 = [false,false,true,false,true,true,true,true,false,true,true]; +const UsrInt_1781 = [true,false,true,false,true,true,true,true,false,true,true]; +const UsrInt_1782 = [false,true,true,false,true,true,true,true,false,true,true]; +const UsrInt_1783 = [true,true,true,false,true,true,true,true,false,true,true]; +const UsrInt_1784 = [false,false,false,true,true,true,true,true,false,true,true]; +const UsrInt_1785 = [true,false,false,true,true,true,true,true,false,true,true]; +const UsrInt_1786 = [false,true,false,true,true,true,true,true,false,true,true]; +const UsrInt_1787 = [true,true,false,true,true,true,true,true,false,true,true]; +const UsrInt_1788 = [false,false,true,true,true,true,true,true,false,true,true]; +const UsrInt_1789 = [true,false,true,true,true,true,true,true,false,true,true]; +const UsrInt_1790 = [false,true,true,true,true,true,true,true,false,true,true]; +const UsrInt_1791 = [true,true,true,true,true,true,true,true,false,true,true]; +const UsrInt_1792 = [false,false,false,false,false,false,false,false,true,true,true]; +const UsrInt_1793 = [true,false,false,false,false,false,false,false,true,true,true]; +const UsrInt_1794 = [false,true,false,false,false,false,false,false,true,true,true]; +const UsrInt_1795 = [true,true,false,false,false,false,false,false,true,true,true]; +const UsrInt_1796 = [false,false,true,false,false,false,false,false,true,true,true]; +const UsrInt_1797 = [true,false,true,false,false,false,false,false,true,true,true]; +const UsrInt_1798 = [false,true,true,false,false,false,false,false,true,true,true]; +const UsrInt_1799 = [true,true,true,false,false,false,false,false,true,true,true]; +const UsrInt_1800 = [false,false,false,true,false,false,false,false,true,true,true]; +const UsrInt_1801 = [true,false,false,true,false,false,false,false,true,true,true]; +const UsrInt_1802 = [false,true,false,true,false,false,false,false,true,true,true]; +const UsrInt_1803 = [true,true,false,true,false,false,false,false,true,true,true]; +const UsrInt_1804 = [false,false,true,true,false,false,false,false,true,true,true]; +const UsrInt_1805 = [true,false,true,true,false,false,false,false,true,true,true]; +const UsrInt_1806 = [false,true,true,true,false,false,false,false,true,true,true]; +const UsrInt_1807 = [true,true,true,true,false,false,false,false,true,true,true]; +const UsrInt_1808 = [false,false,false,false,true,false,false,false,true,true,true]; +const UsrInt_1809 = [true,false,false,false,true,false,false,false,true,true,true]; +const UsrInt_1810 = [false,true,false,false,true,false,false,false,true,true,true]; +const UsrInt_1811 = [true,true,false,false,true,false,false,false,true,true,true]; +const UsrInt_1812 = [false,false,true,false,true,false,false,false,true,true,true]; +const UsrInt_1813 = [true,false,true,false,true,false,false,false,true,true,true]; +const UsrInt_1814 = [false,true,true,false,true,false,false,false,true,true,true]; +const UsrInt_1815 = [true,true,true,false,true,false,false,false,true,true,true]; +const UsrInt_1816 = [false,false,false,true,true,false,false,false,true,true,true]; +const UsrInt_1817 = [true,false,false,true,true,false,false,false,true,true,true]; +const UsrInt_1818 = [false,true,false,true,true,false,false,false,true,true,true]; +const UsrInt_1819 = [true,true,false,true,true,false,false,false,true,true,true]; +const UsrInt_1820 = [false,false,true,true,true,false,false,false,true,true,true]; +const UsrInt_1821 = [true,false,true,true,true,false,false,false,true,true,true]; +const UsrInt_1822 = [false,true,true,true,true,false,false,false,true,true,true]; +const UsrInt_1823 = [true,true,true,true,true,false,false,false,true,true,true]; +const UsrInt_1824 = [false,false,false,false,false,true,false,false,true,true,true]; +const UsrInt_1825 = [true,false,false,false,false,true,false,false,true,true,true]; +const UsrInt_1826 = [false,true,false,false,false,true,false,false,true,true,true]; +const UsrInt_1827 = [true,true,false,false,false,true,false,false,true,true,true]; +const UsrInt_1828 = [false,false,true,false,false,true,false,false,true,true,true]; +const UsrInt_1829 = [true,false,true,false,false,true,false,false,true,true,true]; +const UsrInt_1830 = [false,true,true,false,false,true,false,false,true,true,true]; +const UsrInt_1831 = [true,true,true,false,false,true,false,false,true,true,true]; +const UsrInt_1832 = [false,false,false,true,false,true,false,false,true,true,true]; +const UsrInt_1833 = [true,false,false,true,false,true,false,false,true,true,true]; +const UsrInt_1834 = [false,true,false,true,false,true,false,false,true,true,true]; +const UsrInt_1835 = [true,true,false,true,false,true,false,false,true,true,true]; +const UsrInt_1836 = [false,false,true,true,false,true,false,false,true,true,true]; +const UsrInt_1837 = [true,false,true,true,false,true,false,false,true,true,true]; +const UsrInt_1838 = [false,true,true,true,false,true,false,false,true,true,true]; +const UsrInt_1839 = [true,true,true,true,false,true,false,false,true,true,true]; +const UsrInt_1840 = [false,false,false,false,true,true,false,false,true,true,true]; +const UsrInt_1841 = [true,false,false,false,true,true,false,false,true,true,true]; +const UsrInt_1842 = [false,true,false,false,true,true,false,false,true,true,true]; +const UsrInt_1843 = [true,true,false,false,true,true,false,false,true,true,true]; +const UsrInt_1844 = [false,false,true,false,true,true,false,false,true,true,true]; +const UsrInt_1845 = [true,false,true,false,true,true,false,false,true,true,true]; +const UsrInt_1846 = [false,true,true,false,true,true,false,false,true,true,true]; +const UsrInt_1847 = [true,true,true,false,true,true,false,false,true,true,true]; +const UsrInt_1848 = [false,false,false,true,true,true,false,false,true,true,true]; +const UsrInt_1849 = [true,false,false,true,true,true,false,false,true,true,true]; +const UsrInt_1850 = [false,true,false,true,true,true,false,false,true,true,true]; +const UsrInt_1851 = [true,true,false,true,true,true,false,false,true,true,true]; +const UsrInt_1852 = [false,false,true,true,true,true,false,false,true,true,true]; +const UsrInt_1853 = [true,false,true,true,true,true,false,false,true,true,true]; +const UsrInt_1854 = [false,true,true,true,true,true,false,false,true,true,true]; +const UsrInt_1855 = [true,true,true,true,true,true,false,false,true,true,true]; +const UsrInt_1856 = [false,false,false,false,false,false,true,false,true,true,true]; +const UsrInt_1857 = [true,false,false,false,false,false,true,false,true,true,true]; +const UsrInt_1858 = [false,true,false,false,false,false,true,false,true,true,true]; +const UsrInt_1859 = [true,true,false,false,false,false,true,false,true,true,true]; +const UsrInt_1860 = [false,false,true,false,false,false,true,false,true,true,true]; +const UsrInt_1861 = [true,false,true,false,false,false,true,false,true,true,true]; +const UsrInt_1862 = [false,true,true,false,false,false,true,false,true,true,true]; +const UsrInt_1863 = [true,true,true,false,false,false,true,false,true,true,true]; +const UsrInt_1864 = [false,false,false,true,false,false,true,false,true,true,true]; +const UsrInt_1865 = [true,false,false,true,false,false,true,false,true,true,true]; +const UsrInt_1866 = [false,true,false,true,false,false,true,false,true,true,true]; +const UsrInt_1867 = [true,true,false,true,false,false,true,false,true,true,true]; +const UsrInt_1868 = [false,false,true,true,false,false,true,false,true,true,true]; +const UsrInt_1869 = [true,false,true,true,false,false,true,false,true,true,true]; +const UsrInt_1870 = [false,true,true,true,false,false,true,false,true,true,true]; +const UsrInt_1871 = [true,true,true,true,false,false,true,false,true,true,true]; +const UsrInt_1872 = [false,false,false,false,true,false,true,false,true,true,true]; +const UsrInt_1873 = [true,false,false,false,true,false,true,false,true,true,true]; +const UsrInt_1874 = [false,true,false,false,true,false,true,false,true,true,true]; +const UsrInt_1875 = [true,true,false,false,true,false,true,false,true,true,true]; +const UsrInt_1876 = [false,false,true,false,true,false,true,false,true,true,true]; +const UsrInt_1877 = [true,false,true,false,true,false,true,false,true,true,true]; +const UsrInt_1878 = [false,true,true,false,true,false,true,false,true,true,true]; +const UsrInt_1879 = [true,true,true,false,true,false,true,false,true,true,true]; +const UsrInt_1880 = [false,false,false,true,true,false,true,false,true,true,true]; +const UsrInt_1881 = [true,false,false,true,true,false,true,false,true,true,true]; +const UsrInt_1882 = [false,true,false,true,true,false,true,false,true,true,true]; +const UsrInt_1883 = [true,true,false,true,true,false,true,false,true,true,true]; +const UsrInt_1884 = [false,false,true,true,true,false,true,false,true,true,true]; +const UsrInt_1885 = [true,false,true,true,true,false,true,false,true,true,true]; +const UsrInt_1886 = [false,true,true,true,true,false,true,false,true,true,true]; +const UsrInt_1887 = [true,true,true,true,true,false,true,false,true,true,true]; +const UsrInt_1888 = [false,false,false,false,false,true,true,false,true,true,true]; +const UsrInt_1889 = [true,false,false,false,false,true,true,false,true,true,true]; +const UsrInt_1890 = [false,true,false,false,false,true,true,false,true,true,true]; +const UsrInt_1891 = [true,true,false,false,false,true,true,false,true,true,true]; +const UsrInt_1892 = [false,false,true,false,false,true,true,false,true,true,true]; +const UsrInt_1893 = [true,false,true,false,false,true,true,false,true,true,true]; +const UsrInt_1894 = [false,true,true,false,false,true,true,false,true,true,true]; +const UsrInt_1895 = [true,true,true,false,false,true,true,false,true,true,true]; +const UsrInt_1896 = [false,false,false,true,false,true,true,false,true,true,true]; +const UsrInt_1897 = [true,false,false,true,false,true,true,false,true,true,true]; +const UsrInt_1898 = [false,true,false,true,false,true,true,false,true,true,true]; +const UsrInt_1899 = [true,true,false,true,false,true,true,false,true,true,true]; +const UsrInt_1900 = [false,false,true,true,false,true,true,false,true,true,true]; +const UsrInt_1901 = [true,false,true,true,false,true,true,false,true,true,true]; +const UsrInt_1902 = [false,true,true,true,false,true,true,false,true,true,true]; +const UsrInt_1903 = [true,true,true,true,false,true,true,false,true,true,true]; +const UsrInt_1904 = [false,false,false,false,true,true,true,false,true,true,true]; +const UsrInt_1905 = [true,false,false,false,true,true,true,false,true,true,true]; +const UsrInt_1906 = [false,true,false,false,true,true,true,false,true,true,true]; +const UsrInt_1907 = [true,true,false,false,true,true,true,false,true,true,true]; +const UsrInt_1908 = [false,false,true,false,true,true,true,false,true,true,true]; +const UsrInt_1909 = [true,false,true,false,true,true,true,false,true,true,true]; +const UsrInt_1910 = [false,true,true,false,true,true,true,false,true,true,true]; +const UsrInt_1911 = [true,true,true,false,true,true,true,false,true,true,true]; +const UsrInt_1912 = [false,false,false,true,true,true,true,false,true,true,true]; +const UsrInt_1913 = [true,false,false,true,true,true,true,false,true,true,true]; +const UsrInt_1914 = [false,true,false,true,true,true,true,false,true,true,true]; +const UsrInt_1915 = [true,true,false,true,true,true,true,false,true,true,true]; +const UsrInt_1916 = [false,false,true,true,true,true,true,false,true,true,true]; +const UsrInt_1917 = [true,false,true,true,true,true,true,false,true,true,true]; +const UsrInt_1918 = [false,true,true,true,true,true,true,false,true,true,true]; +const UsrInt_1919 = [true,true,true,true,true,true,true,false,true,true,true]; +const UsrInt_1920 = [false,false,false,false,false,false,false,true,true,true,true]; +const UsrInt_1921 = [true,false,false,false,false,false,false,true,true,true,true]; +const UsrInt_1922 = [false,true,false,false,false,false,false,true,true,true,true]; +const UsrInt_1923 = [true,true,false,false,false,false,false,true,true,true,true]; +const UsrInt_1924 = [false,false,true,false,false,false,false,true,true,true,true]; +const UsrInt_1925 = [true,false,true,false,false,false,false,true,true,true,true]; +const UsrInt_1926 = [false,true,true,false,false,false,false,true,true,true,true]; +const UsrInt_1927 = [true,true,true,false,false,false,false,true,true,true,true]; +const UsrInt_1928 = [false,false,false,true,false,false,false,true,true,true,true]; +const UsrInt_1929 = [true,false,false,true,false,false,false,true,true,true,true]; +const UsrInt_1930 = [false,true,false,true,false,false,false,true,true,true,true]; +const UsrInt_1931 = [true,true,false,true,false,false,false,true,true,true,true]; +const UsrInt_1932 = [false,false,true,true,false,false,false,true,true,true,true]; +const UsrInt_1933 = [true,false,true,true,false,false,false,true,true,true,true]; +const UsrInt_1934 = [false,true,true,true,false,false,false,true,true,true,true]; +const UsrInt_1935 = [true,true,true,true,false,false,false,true,true,true,true]; +const UsrInt_1936 = [false,false,false,false,true,false,false,true,true,true,true]; +const UsrInt_1937 = [true,false,false,false,true,false,false,true,true,true,true]; +const UsrInt_1938 = [false,true,false,false,true,false,false,true,true,true,true]; +const UsrInt_1939 = [true,true,false,false,true,false,false,true,true,true,true]; +const UsrInt_1940 = [false,false,true,false,true,false,false,true,true,true,true]; +const UsrInt_1941 = [true,false,true,false,true,false,false,true,true,true,true]; +const UsrInt_1942 = [false,true,true,false,true,false,false,true,true,true,true]; +const UsrInt_1943 = [true,true,true,false,true,false,false,true,true,true,true]; +const UsrInt_1944 = [false,false,false,true,true,false,false,true,true,true,true]; +const UsrInt_1945 = [true,false,false,true,true,false,false,true,true,true,true]; +const UsrInt_1946 = [false,true,false,true,true,false,false,true,true,true,true]; +const UsrInt_1947 = [true,true,false,true,true,false,false,true,true,true,true]; +const UsrInt_1948 = [false,false,true,true,true,false,false,true,true,true,true]; +const UsrInt_1949 = [true,false,true,true,true,false,false,true,true,true,true]; +const UsrInt_1950 = [false,true,true,true,true,false,false,true,true,true,true]; +const UsrInt_1951 = [true,true,true,true,true,false,false,true,true,true,true]; +const UsrInt_1952 = [false,false,false,false,false,true,false,true,true,true,true]; +const UsrInt_1953 = [true,false,false,false,false,true,false,true,true,true,true]; +const UsrInt_1954 = [false,true,false,false,false,true,false,true,true,true,true]; +const UsrInt_1955 = [true,true,false,false,false,true,false,true,true,true,true]; +const UsrInt_1956 = [false,false,true,false,false,true,false,true,true,true,true]; +const UsrInt_1957 = [true,false,true,false,false,true,false,true,true,true,true]; +const UsrInt_1958 = [false,true,true,false,false,true,false,true,true,true,true]; +const UsrInt_1959 = [true,true,true,false,false,true,false,true,true,true,true]; +const UsrInt_1960 = [false,false,false,true,false,true,false,true,true,true,true]; +const UsrInt_1961 = [true,false,false,true,false,true,false,true,true,true,true]; +const UsrInt_1962 = [false,true,false,true,false,true,false,true,true,true,true]; +const UsrInt_1963 = [true,true,false,true,false,true,false,true,true,true,true]; +const UsrInt_1964 = [false,false,true,true,false,true,false,true,true,true,true]; +const UsrInt_1965 = [true,false,true,true,false,true,false,true,true,true,true]; +const UsrInt_1966 = [false,true,true,true,false,true,false,true,true,true,true]; +const UsrInt_1967 = [true,true,true,true,false,true,false,true,true,true,true]; +const UsrInt_1968 = [false,false,false,false,true,true,false,true,true,true,true]; +const UsrInt_1969 = [true,false,false,false,true,true,false,true,true,true,true]; +const UsrInt_1970 = [false,true,false,false,true,true,false,true,true,true,true]; +const UsrInt_1971 = [true,true,false,false,true,true,false,true,true,true,true]; +const UsrInt_1972 = [false,false,true,false,true,true,false,true,true,true,true]; +const UsrInt_1973 = [true,false,true,false,true,true,false,true,true,true,true]; +const UsrInt_1974 = [false,true,true,false,true,true,false,true,true,true,true]; +const UsrInt_1975 = [true,true,true,false,true,true,false,true,true,true,true]; +const UsrInt_1976 = [false,false,false,true,true,true,false,true,true,true,true]; +const UsrInt_1977 = [true,false,false,true,true,true,false,true,true,true,true]; +const UsrInt_1978 = [false,true,false,true,true,true,false,true,true,true,true]; +const UsrInt_1979 = [true,true,false,true,true,true,false,true,true,true,true]; +const UsrInt_1980 = [false,false,true,true,true,true,false,true,true,true,true]; +const UsrInt_1981 = [true,false,true,true,true,true,false,true,true,true,true]; +const UsrInt_1982 = [false,true,true,true,true,true,false,true,true,true,true]; +const UsrInt_1983 = [true,true,true,true,true,true,false,true,true,true,true]; +const UsrInt_1984 = [false,false,false,false,false,false,true,true,true,true,true]; +const UsrInt_1985 = [true,false,false,false,false,false,true,true,true,true,true]; +const UsrInt_1986 = [false,true,false,false,false,false,true,true,true,true,true]; +const UsrInt_1987 = [true,true,false,false,false,false,true,true,true,true,true]; +const UsrInt_1988 = [false,false,true,false,false,false,true,true,true,true,true]; +const UsrInt_1989 = [true,false,true,false,false,false,true,true,true,true,true]; +const UsrInt_1990 = [false,true,true,false,false,false,true,true,true,true,true]; +const UsrInt_1991 = [true,true,true,false,false,false,true,true,true,true,true]; +const UsrInt_1992 = [false,false,false,true,false,false,true,true,true,true,true]; +const UsrInt_1993 = [true,false,false,true,false,false,true,true,true,true,true]; +const UsrInt_1994 = [false,true,false,true,false,false,true,true,true,true,true]; +const UsrInt_1995 = [true,true,false,true,false,false,true,true,true,true,true]; +const UsrInt_1996 = [false,false,true,true,false,false,true,true,true,true,true]; +const UsrInt_1997 = [true,false,true,true,false,false,true,true,true,true,true]; +const UsrInt_1998 = [false,true,true,true,false,false,true,true,true,true,true]; +const UsrInt_1999 = [true,true,true,true,false,false,true,true,true,true,true]; +const UsrInt_2000 = [false,false,false,false,true,false,true,true,true,true,true]; +const UsrInt_2001 = [true,false,false,false,true,false,true,true,true,true,true]; +const UsrInt_2002 = [false,true,false,false,true,false,true,true,true,true,true]; +const UsrInt_2003 = [true,true,false,false,true,false,true,true,true,true,true]; +const UsrInt_2004 = [false,false,true,false,true,false,true,true,true,true,true]; +const UsrInt_2005 = [true,false,true,false,true,false,true,true,true,true,true]; +const UsrInt_2006 = [false,true,true,false,true,false,true,true,true,true,true]; +const UsrInt_2007 = [true,true,true,false,true,false,true,true,true,true,true]; +const UsrInt_2008 = [false,false,false,true,true,false,true,true,true,true,true]; +const UsrInt_2009 = [true,false,false,true,true,false,true,true,true,true,true]; +const UsrInt_2010 = [false,true,false,true,true,false,true,true,true,true,true]; +const UsrInt_2011 = [true,true,false,true,true,false,true,true,true,true,true]; +const UsrInt_2012 = [false,false,true,true,true,false,true,true,true,true,true]; +const UsrInt_2013 = [true,false,true,true,true,false,true,true,true,true,true]; +const UsrInt_2014 = [false,true,true,true,true,false,true,true,true,true,true]; +const UsrInt_2015 = [true,true,true,true,true,false,true,true,true,true,true]; +const UsrInt_2016 = [false,false,false,false,false,true,true,true,true,true,true]; +const UsrInt_2017 = [true,false,false,false,false,true,true,true,true,true,true]; +const UsrInt_2018 = [false,true,false,false,false,true,true,true,true,true,true]; +const UsrInt_2019 = [true,true,false,false,false,true,true,true,true,true,true]; +const UsrInt_2020 = [false,false,true,false,false,true,true,true,true,true,true]; +const UsrInt_2021 = [true,false,true,false,false,true,true,true,true,true,true]; +const UsrInt_2022 = [false,true,true,false,false,true,true,true,true,true,true]; +const UsrInt_2023 = [true,true,true,false,false,true,true,true,true,true,true]; +const UsrInt_2024 = [false,false,false,true,false,true,true,true,true,true,true]; +const UsrInt_2025 = [true,false,false,true,false,true,true,true,true,true,true]; +const UsrInt_2026 = [false,true,false,true,false,true,true,true,true,true,true]; +const UsrInt_2027 = [true,true,false,true,false,true,true,true,true,true,true]; +const UsrInt_2028 = [false,false,true,true,false,true,true,true,true,true,true]; +const UsrInt_2029 = [true,false,true,true,false,true,true,true,true,true,true]; +const UsrInt_2030 = [false,true,true,true,false,true,true,true,true,true,true]; +const UsrInt_2031 = [true,true,true,true,false,true,true,true,true,true,true]; +const UsrInt_2032 = [false,false,false,false,true,true,true,true,true,true,true]; +const UsrInt_2033 = [true,false,false,false,true,true,true,true,true,true,true]; +const UsrInt_2034 = [false,true,false,false,true,true,true,true,true,true,true]; +const UsrInt_2035 = [true,true,false,false,true,true,true,true,true,true,true]; +const UsrInt_2036 = [false,false,true,false,true,true,true,true,true,true,true]; +const UsrInt_2037 = [true,false,true,false,true,true,true,true,true,true,true]; +const UsrInt_2038 = [false,true,true,false,true,true,true,true,true,true,true]; +const UsrInt_2039 = [true,true,true,false,true,true,true,true,true,true,true]; +const UsrInt_2040 = [false,false,false,true,true,true,true,true,true,true,true]; +const UsrInt_2041 = [true,false,false,true,true,true,true,true,true,true,true]; +const UsrInt_2042 = [false,true,false,true,true,true,true,true,true,true,true]; +const UsrInt_2043 = [true,true,false,true,true,true,true,true,true,true,true]; +const UsrInt_2044 = [false,false,true,true,true,true,true,true,true,true,true]; +const UsrInt_2045 = [true,false,true,true,true,true,true,true,true,true,true]; +const UsrInt_2046 = [false,true,true,true,true,true,true,true,true,true,true]; +const UsrInt_2047 = [true,true,true,true,true,true,true,true,true,true,true]; diff --git a/salut/lib/bit-blast/binary12.lus b/salut/lib/bit-blast/binary12.lus new file mode 100644 index 0000000000000000000000000000000000000000..d06556a3c3227e628e5b6f22679cb1ee660c9f17 --- /dev/null +++ b/salut/lib/bit-blast/binary12.lus @@ -0,0 +1,4098 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=12; +const UsrInt_0 = [false,false,false,false,false,false,false,false,false,false,false,false]; +const UsrInt_1 = [true,false,false,false,false,false,false,false,false,false,false,false]; +const UsrInt_2 = [false,true,false,false,false,false,false,false,false,false,false,false]; +const UsrInt_3 = [true,true,false,false,false,false,false,false,false,false,false,false]; +const UsrInt_4 = [false,false,true,false,false,false,false,false,false,false,false,false]; +const UsrInt_5 = [true,false,true,false,false,false,false,false,false,false,false,false]; +const UsrInt_6 = [false,true,true,false,false,false,false,false,false,false,false,false]; +const UsrInt_7 = [true,true,true,false,false,false,false,false,false,false,false,false]; +const UsrInt_8 = [false,false,false,true,false,false,false,false,false,false,false,false]; +const UsrInt_9 = [true,false,false,true,false,false,false,false,false,false,false,false]; +const UsrInt_10 = [false,true,false,true,false,false,false,false,false,false,false,false]; +const UsrInt_11 = [true,true,false,true,false,false,false,false,false,false,false,false]; +const UsrInt_12 = [false,false,true,true,false,false,false,false,false,false,false,false]; +const UsrInt_13 = [true,false,true,true,false,false,false,false,false,false,false,false]; +const UsrInt_14 = [false,true,true,true,false,false,false,false,false,false,false,false]; +const UsrInt_15 = [true,true,true,true,false,false,false,false,false,false,false,false]; +const UsrInt_16 = [false,false,false,false,true,false,false,false,false,false,false,false]; +const UsrInt_17 = [true,false,false,false,true,false,false,false,false,false,false,false]; +const UsrInt_18 = [false,true,false,false,true,false,false,false,false,false,false,false]; +const UsrInt_19 = [true,true,false,false,true,false,false,false,false,false,false,false]; +const UsrInt_20 = [false,false,true,false,true,false,false,false,false,false,false,false]; +const UsrInt_21 = [true,false,true,false,true,false,false,false,false,false,false,false]; +const UsrInt_22 = [false,true,true,false,true,false,false,false,false,false,false,false]; +const UsrInt_23 = [true,true,true,false,true,false,false,false,false,false,false,false]; +const UsrInt_24 = [false,false,false,true,true,false,false,false,false,false,false,false]; +const UsrInt_25 = [true,false,false,true,true,false,false,false,false,false,false,false]; +const UsrInt_26 = [false,true,false,true,true,false,false,false,false,false,false,false]; +const UsrInt_27 = [true,true,false,true,true,false,false,false,false,false,false,false]; +const UsrInt_28 = [false,false,true,true,true,false,false,false,false,false,false,false]; +const UsrInt_29 = [true,false,true,true,true,false,false,false,false,false,false,false]; +const UsrInt_30 = [false,true,true,true,true,false,false,false,false,false,false,false]; +const UsrInt_31 = [true,true,true,true,true,false,false,false,false,false,false,false]; +const UsrInt_32 = [false,false,false,false,false,true,false,false,false,false,false,false]; +const UsrInt_33 = [true,false,false,false,false,true,false,false,false,false,false,false]; +const UsrInt_34 = [false,true,false,false,false,true,false,false,false,false,false,false]; +const UsrInt_35 = [true,true,false,false,false,true,false,false,false,false,false,false]; +const UsrInt_36 = [false,false,true,false,false,true,false,false,false,false,false,false]; +const UsrInt_37 = [true,false,true,false,false,true,false,false,false,false,false,false]; +const UsrInt_38 = [false,true,true,false,false,true,false,false,false,false,false,false]; +const UsrInt_39 = [true,true,true,false,false,true,false,false,false,false,false,false]; +const UsrInt_40 = [false,false,false,true,false,true,false,false,false,false,false,false]; +const UsrInt_41 = [true,false,false,true,false,true,false,false,false,false,false,false]; +const UsrInt_42 = [false,true,false,true,false,true,false,false,false,false,false,false]; +const UsrInt_43 = [true,true,false,true,false,true,false,false,false,false,false,false]; +const UsrInt_44 = [false,false,true,true,false,true,false,false,false,false,false,false]; +const UsrInt_45 = [true,false,true,true,false,true,false,false,false,false,false,false]; +const UsrInt_46 = [false,true,true,true,false,true,false,false,false,false,false,false]; +const UsrInt_47 = [true,true,true,true,false,true,false,false,false,false,false,false]; +const UsrInt_48 = [false,false,false,false,true,true,false,false,false,false,false,false]; +const UsrInt_49 = [true,false,false,false,true,true,false,false,false,false,false,false]; +const UsrInt_50 = [false,true,false,false,true,true,false,false,false,false,false,false]; +const UsrInt_51 = [true,true,false,false,true,true,false,false,false,false,false,false]; +const UsrInt_52 = [false,false,true,false,true,true,false,false,false,false,false,false]; +const UsrInt_53 = [true,false,true,false,true,true,false,false,false,false,false,false]; +const UsrInt_54 = [false,true,true,false,true,true,false,false,false,false,false,false]; +const UsrInt_55 = [true,true,true,false,true,true,false,false,false,false,false,false]; +const UsrInt_56 = [false,false,false,true,true,true,false,false,false,false,false,false]; +const UsrInt_57 = [true,false,false,true,true,true,false,false,false,false,false,false]; +const UsrInt_58 = [false,true,false,true,true,true,false,false,false,false,false,false]; +const UsrInt_59 = [true,true,false,true,true,true,false,false,false,false,false,false]; +const UsrInt_60 = [false,false,true,true,true,true,false,false,false,false,false,false]; +const UsrInt_61 = [true,false,true,true,true,true,false,false,false,false,false,false]; +const UsrInt_62 = [false,true,true,true,true,true,false,false,false,false,false,false]; +const UsrInt_63 = [true,true,true,true,true,true,false,false,false,false,false,false]; +const UsrInt_64 = [false,false,false,false,false,false,true,false,false,false,false,false]; +const UsrInt_65 = [true,false,false,false,false,false,true,false,false,false,false,false]; +const UsrInt_66 = [false,true,false,false,false,false,true,false,false,false,false,false]; +const UsrInt_67 = [true,true,false,false,false,false,true,false,false,false,false,false]; +const UsrInt_68 = [false,false,true,false,false,false,true,false,false,false,false,false]; +const UsrInt_69 = [true,false,true,false,false,false,true,false,false,false,false,false]; +const UsrInt_70 = [false,true,true,false,false,false,true,false,false,false,false,false]; +const UsrInt_71 = [true,true,true,false,false,false,true,false,false,false,false,false]; +const UsrInt_72 = [false,false,false,true,false,false,true,false,false,false,false,false]; +const UsrInt_73 = [true,false,false,true,false,false,true,false,false,false,false,false]; +const UsrInt_74 = [false,true,false,true,false,false,true,false,false,false,false,false]; +const UsrInt_75 = [true,true,false,true,false,false,true,false,false,false,false,false]; +const UsrInt_76 = [false,false,true,true,false,false,true,false,false,false,false,false]; +const UsrInt_77 = [true,false,true,true,false,false,true,false,false,false,false,false]; +const UsrInt_78 = [false,true,true,true,false,false,true,false,false,false,false,false]; +const UsrInt_79 = [true,true,true,true,false,false,true,false,false,false,false,false]; +const UsrInt_80 = [false,false,false,false,true,false,true,false,false,false,false,false]; +const UsrInt_81 = [true,false,false,false,true,false,true,false,false,false,false,false]; +const UsrInt_82 = [false,true,false,false,true,false,true,false,false,false,false,false]; +const UsrInt_83 = [true,true,false,false,true,false,true,false,false,false,false,false]; +const UsrInt_84 = [false,false,true,false,true,false,true,false,false,false,false,false]; +const UsrInt_85 = [true,false,true,false,true,false,true,false,false,false,false,false]; +const UsrInt_86 = [false,true,true,false,true,false,true,false,false,false,false,false]; +const UsrInt_87 = [true,true,true,false,true,false,true,false,false,false,false,false]; +const UsrInt_88 = [false,false,false,true,true,false,true,false,false,false,false,false]; +const UsrInt_89 = [true,false,false,true,true,false,true,false,false,false,false,false]; +const UsrInt_90 = [false,true,false,true,true,false,true,false,false,false,false,false]; +const UsrInt_91 = [true,true,false,true,true,false,true,false,false,false,false,false]; +const UsrInt_92 = [false,false,true,true,true,false,true,false,false,false,false,false]; +const UsrInt_93 = [true,false,true,true,true,false,true,false,false,false,false,false]; +const UsrInt_94 = [false,true,true,true,true,false,true,false,false,false,false,false]; +const UsrInt_95 = [true,true,true,true,true,false,true,false,false,false,false,false]; +const UsrInt_96 = [false,false,false,false,false,true,true,false,false,false,false,false]; +const UsrInt_97 = [true,false,false,false,false,true,true,false,false,false,false,false]; +const UsrInt_98 = [false,true,false,false,false,true,true,false,false,false,false,false]; +const UsrInt_99 = [true,true,false,false,false,true,true,false,false,false,false,false]; +const UsrInt_100 = [false,false,true,false,false,true,true,false,false,false,false,false]; +const UsrInt_101 = [true,false,true,false,false,true,true,false,false,false,false,false]; +const UsrInt_102 = [false,true,true,false,false,true,true,false,false,false,false,false]; +const UsrInt_103 = [true,true,true,false,false,true,true,false,false,false,false,false]; +const UsrInt_104 = [false,false,false,true,false,true,true,false,false,false,false,false]; +const UsrInt_105 = [true,false,false,true,false,true,true,false,false,false,false,false]; +const UsrInt_106 = [false,true,false,true,false,true,true,false,false,false,false,false]; +const UsrInt_107 = [true,true,false,true,false,true,true,false,false,false,false,false]; +const UsrInt_108 = [false,false,true,true,false,true,true,false,false,false,false,false]; +const UsrInt_109 = [true,false,true,true,false,true,true,false,false,false,false,false]; +const UsrInt_110 = [false,true,true,true,false,true,true,false,false,false,false,false]; +const UsrInt_111 = [true,true,true,true,false,true,true,false,false,false,false,false]; +const UsrInt_112 = [false,false,false,false,true,true,true,false,false,false,false,false]; +const UsrInt_113 = [true,false,false,false,true,true,true,false,false,false,false,false]; +const UsrInt_114 = [false,true,false,false,true,true,true,false,false,false,false,false]; +const UsrInt_115 = [true,true,false,false,true,true,true,false,false,false,false,false]; +const UsrInt_116 = [false,false,true,false,true,true,true,false,false,false,false,false]; +const UsrInt_117 = [true,false,true,false,true,true,true,false,false,false,false,false]; +const UsrInt_118 = [false,true,true,false,true,true,true,false,false,false,false,false]; +const UsrInt_119 = [true,true,true,false,true,true,true,false,false,false,false,false]; +const UsrInt_120 = [false,false,false,true,true,true,true,false,false,false,false,false]; +const UsrInt_121 = [true,false,false,true,true,true,true,false,false,false,false,false]; +const UsrInt_122 = [false,true,false,true,true,true,true,false,false,false,false,false]; +const UsrInt_123 = [true,true,false,true,true,true,true,false,false,false,false,false]; +const UsrInt_124 = [false,false,true,true,true,true,true,false,false,false,false,false]; +const UsrInt_125 = [true,false,true,true,true,true,true,false,false,false,false,false]; +const UsrInt_126 = [false,true,true,true,true,true,true,false,false,false,false,false]; +const UsrInt_127 = [true,true,true,true,true,true,true,false,false,false,false,false]; +const UsrInt_128 = [false,false,false,false,false,false,false,true,false,false,false,false]; +const UsrInt_129 = [true,false,false,false,false,false,false,true,false,false,false,false]; +const UsrInt_130 = [false,true,false,false,false,false,false,true,false,false,false,false]; +const UsrInt_131 = [true,true,false,false,false,false,false,true,false,false,false,false]; +const UsrInt_132 = [false,false,true,false,false,false,false,true,false,false,false,false]; +const UsrInt_133 = [true,false,true,false,false,false,false,true,false,false,false,false]; +const UsrInt_134 = [false,true,true,false,false,false,false,true,false,false,false,false]; +const UsrInt_135 = [true,true,true,false,false,false,false,true,false,false,false,false]; +const UsrInt_136 = [false,false,false,true,false,false,false,true,false,false,false,false]; +const UsrInt_137 = [true,false,false,true,false,false,false,true,false,false,false,false]; +const UsrInt_138 = [false,true,false,true,false,false,false,true,false,false,false,false]; +const UsrInt_139 = [true,true,false,true,false,false,false,true,false,false,false,false]; +const UsrInt_140 = [false,false,true,true,false,false,false,true,false,false,false,false]; +const UsrInt_141 = [true,false,true,true,false,false,false,true,false,false,false,false]; +const UsrInt_142 = [false,true,true,true,false,false,false,true,false,false,false,false]; +const UsrInt_143 = [true,true,true,true,false,false,false,true,false,false,false,false]; +const UsrInt_144 = [false,false,false,false,true,false,false,true,false,false,false,false]; +const UsrInt_145 = [true,false,false,false,true,false,false,true,false,false,false,false]; +const UsrInt_146 = [false,true,false,false,true,false,false,true,false,false,false,false]; +const UsrInt_147 = [true,true,false,false,true,false,false,true,false,false,false,false]; +const UsrInt_148 = [false,false,true,false,true,false,false,true,false,false,false,false]; +const UsrInt_149 = [true,false,true,false,true,false,false,true,false,false,false,false]; +const UsrInt_150 = [false,true,true,false,true,false,false,true,false,false,false,false]; +const UsrInt_151 = [true,true,true,false,true,false,false,true,false,false,false,false]; +const UsrInt_152 = [false,false,false,true,true,false,false,true,false,false,false,false]; +const UsrInt_153 = [true,false,false,true,true,false,false,true,false,false,false,false]; +const UsrInt_154 = [false,true,false,true,true,false,false,true,false,false,false,false]; +const UsrInt_155 = [true,true,false,true,true,false,false,true,false,false,false,false]; +const UsrInt_156 = [false,false,true,true,true,false,false,true,false,false,false,false]; +const UsrInt_157 = [true,false,true,true,true,false,false,true,false,false,false,false]; +const UsrInt_158 = [false,true,true,true,true,false,false,true,false,false,false,false]; +const UsrInt_159 = [true,true,true,true,true,false,false,true,false,false,false,false]; +const UsrInt_160 = [false,false,false,false,false,true,false,true,false,false,false,false]; +const UsrInt_161 = [true,false,false,false,false,true,false,true,false,false,false,false]; +const UsrInt_162 = [false,true,false,false,false,true,false,true,false,false,false,false]; +const UsrInt_163 = [true,true,false,false,false,true,false,true,false,false,false,false]; +const UsrInt_164 = [false,false,true,false,false,true,false,true,false,false,false,false]; +const UsrInt_165 = [true,false,true,false,false,true,false,true,false,false,false,false]; +const UsrInt_166 = [false,true,true,false,false,true,false,true,false,false,false,false]; +const UsrInt_167 = [true,true,true,false,false,true,false,true,false,false,false,false]; +const UsrInt_168 = [false,false,false,true,false,true,false,true,false,false,false,false]; +const UsrInt_169 = [true,false,false,true,false,true,false,true,false,false,false,false]; +const UsrInt_170 = [false,true,false,true,false,true,false,true,false,false,false,false]; +const UsrInt_171 = [true,true,false,true,false,true,false,true,false,false,false,false]; +const UsrInt_172 = [false,false,true,true,false,true,false,true,false,false,false,false]; +const UsrInt_173 = [true,false,true,true,false,true,false,true,false,false,false,false]; +const UsrInt_174 = [false,true,true,true,false,true,false,true,false,false,false,false]; +const UsrInt_175 = [true,true,true,true,false,true,false,true,false,false,false,false]; +const UsrInt_176 = [false,false,false,false,true,true,false,true,false,false,false,false]; +const UsrInt_177 = [true,false,false,false,true,true,false,true,false,false,false,false]; +const UsrInt_178 = [false,true,false,false,true,true,false,true,false,false,false,false]; +const UsrInt_179 = [true,true,false,false,true,true,false,true,false,false,false,false]; +const UsrInt_180 = [false,false,true,false,true,true,false,true,false,false,false,false]; +const UsrInt_181 = [true,false,true,false,true,true,false,true,false,false,false,false]; +const UsrInt_182 = [false,true,true,false,true,true,false,true,false,false,false,false]; +const UsrInt_183 = [true,true,true,false,true,true,false,true,false,false,false,false]; +const UsrInt_184 = [false,false,false,true,true,true,false,true,false,false,false,false]; +const UsrInt_185 = [true,false,false,true,true,true,false,true,false,false,false,false]; +const UsrInt_186 = [false,true,false,true,true,true,false,true,false,false,false,false]; +const UsrInt_187 = [true,true,false,true,true,true,false,true,false,false,false,false]; +const UsrInt_188 = [false,false,true,true,true,true,false,true,false,false,false,false]; +const UsrInt_189 = [true,false,true,true,true,true,false,true,false,false,false,false]; +const UsrInt_190 = [false,true,true,true,true,true,false,true,false,false,false,false]; +const UsrInt_191 = [true,true,true,true,true,true,false,true,false,false,false,false]; +const UsrInt_192 = [false,false,false,false,false,false,true,true,false,false,false,false]; +const UsrInt_193 = [true,false,false,false,false,false,true,true,false,false,false,false]; +const UsrInt_194 = [false,true,false,false,false,false,true,true,false,false,false,false]; +const UsrInt_195 = [true,true,false,false,false,false,true,true,false,false,false,false]; +const UsrInt_196 = [false,false,true,false,false,false,true,true,false,false,false,false]; +const UsrInt_197 = [true,false,true,false,false,false,true,true,false,false,false,false]; +const UsrInt_198 = [false,true,true,false,false,false,true,true,false,false,false,false]; +const UsrInt_199 = [true,true,true,false,false,false,true,true,false,false,false,false]; +const UsrInt_200 = [false,false,false,true,false,false,true,true,false,false,false,false]; +const UsrInt_201 = [true,false,false,true,false,false,true,true,false,false,false,false]; +const UsrInt_202 = [false,true,false,true,false,false,true,true,false,false,false,false]; +const UsrInt_203 = [true,true,false,true,false,false,true,true,false,false,false,false]; +const UsrInt_204 = [false,false,true,true,false,false,true,true,false,false,false,false]; +const UsrInt_205 = [true,false,true,true,false,false,true,true,false,false,false,false]; +const UsrInt_206 = [false,true,true,true,false,false,true,true,false,false,false,false]; +const UsrInt_207 = [true,true,true,true,false,false,true,true,false,false,false,false]; +const UsrInt_208 = [false,false,false,false,true,false,true,true,false,false,false,false]; +const UsrInt_209 = [true,false,false,false,true,false,true,true,false,false,false,false]; +const UsrInt_210 = [false,true,false,false,true,false,true,true,false,false,false,false]; +const UsrInt_211 = [true,true,false,false,true,false,true,true,false,false,false,false]; +const UsrInt_212 = [false,false,true,false,true,false,true,true,false,false,false,false]; +const UsrInt_213 = [true,false,true,false,true,false,true,true,false,false,false,false]; +const UsrInt_214 = [false,true,true,false,true,false,true,true,false,false,false,false]; +const UsrInt_215 = [true,true,true,false,true,false,true,true,false,false,false,false]; +const UsrInt_216 = [false,false,false,true,true,false,true,true,false,false,false,false]; +const UsrInt_217 = [true,false,false,true,true,false,true,true,false,false,false,false]; +const UsrInt_218 = [false,true,false,true,true,false,true,true,false,false,false,false]; +const UsrInt_219 = [true,true,false,true,true,false,true,true,false,false,false,false]; +const UsrInt_220 = [false,false,true,true,true,false,true,true,false,false,false,false]; +const UsrInt_221 = [true,false,true,true,true,false,true,true,false,false,false,false]; +const UsrInt_222 = [false,true,true,true,true,false,true,true,false,false,false,false]; +const UsrInt_223 = [true,true,true,true,true,false,true,true,false,false,false,false]; +const UsrInt_224 = [false,false,false,false,false,true,true,true,false,false,false,false]; +const UsrInt_225 = [true,false,false,false,false,true,true,true,false,false,false,false]; +const UsrInt_226 = [false,true,false,false,false,true,true,true,false,false,false,false]; +const UsrInt_227 = [true,true,false,false,false,true,true,true,false,false,false,false]; +const UsrInt_228 = [false,false,true,false,false,true,true,true,false,false,false,false]; +const UsrInt_229 = [true,false,true,false,false,true,true,true,false,false,false,false]; +const UsrInt_230 = [false,true,true,false,false,true,true,true,false,false,false,false]; +const UsrInt_231 = [true,true,true,false,false,true,true,true,false,false,false,false]; +const UsrInt_232 = [false,false,false,true,false,true,true,true,false,false,false,false]; +const UsrInt_233 = [true,false,false,true,false,true,true,true,false,false,false,false]; +const UsrInt_234 = [false,true,false,true,false,true,true,true,false,false,false,false]; +const UsrInt_235 = [true,true,false,true,false,true,true,true,false,false,false,false]; +const UsrInt_236 = [false,false,true,true,false,true,true,true,false,false,false,false]; +const UsrInt_237 = [true,false,true,true,false,true,true,true,false,false,false,false]; +const UsrInt_238 = [false,true,true,true,false,true,true,true,false,false,false,false]; +const UsrInt_239 = [true,true,true,true,false,true,true,true,false,false,false,false]; +const UsrInt_240 = [false,false,false,false,true,true,true,true,false,false,false,false]; +const UsrInt_241 = [true,false,false,false,true,true,true,true,false,false,false,false]; +const UsrInt_242 = [false,true,false,false,true,true,true,true,false,false,false,false]; +const UsrInt_243 = [true,true,false,false,true,true,true,true,false,false,false,false]; +const UsrInt_244 = [false,false,true,false,true,true,true,true,false,false,false,false]; +const UsrInt_245 = [true,false,true,false,true,true,true,true,false,false,false,false]; +const UsrInt_246 = [false,true,true,false,true,true,true,true,false,false,false,false]; +const UsrInt_247 = [true,true,true,false,true,true,true,true,false,false,false,false]; +const UsrInt_248 = [false,false,false,true,true,true,true,true,false,false,false,false]; +const UsrInt_249 = [true,false,false,true,true,true,true,true,false,false,false,false]; +const UsrInt_250 = [false,true,false,true,true,true,true,true,false,false,false,false]; +const UsrInt_251 = [true,true,false,true,true,true,true,true,false,false,false,false]; +const UsrInt_252 = [false,false,true,true,true,true,true,true,false,false,false,false]; +const UsrInt_253 = [true,false,true,true,true,true,true,true,false,false,false,false]; +const UsrInt_254 = [false,true,true,true,true,true,true,true,false,false,false,false]; +const UsrInt_255 = [true,true,true,true,true,true,true,true,false,false,false,false]; +const UsrInt_256 = [false,false,false,false,false,false,false,false,true,false,false,false]; +const UsrInt_257 = [true,false,false,false,false,false,false,false,true,false,false,false]; +const UsrInt_258 = [false,true,false,false,false,false,false,false,true,false,false,false]; +const UsrInt_259 = [true,true,false,false,false,false,false,false,true,false,false,false]; +const UsrInt_260 = [false,false,true,false,false,false,false,false,true,false,false,false]; +const UsrInt_261 = [true,false,true,false,false,false,false,false,true,false,false,false]; +const UsrInt_262 = [false,true,true,false,false,false,false,false,true,false,false,false]; +const UsrInt_263 = [true,true,true,false,false,false,false,false,true,false,false,false]; +const UsrInt_264 = [false,false,false,true,false,false,false,false,true,false,false,false]; +const UsrInt_265 = [true,false,false,true,false,false,false,false,true,false,false,false]; +const UsrInt_266 = [false,true,false,true,false,false,false,false,true,false,false,false]; +const UsrInt_267 = [true,true,false,true,false,false,false,false,true,false,false,false]; +const UsrInt_268 = [false,false,true,true,false,false,false,false,true,false,false,false]; +const UsrInt_269 = [true,false,true,true,false,false,false,false,true,false,false,false]; +const UsrInt_270 = [false,true,true,true,false,false,false,false,true,false,false,false]; +const UsrInt_271 = [true,true,true,true,false,false,false,false,true,false,false,false]; +const UsrInt_272 = [false,false,false,false,true,false,false,false,true,false,false,false]; +const UsrInt_273 = [true,false,false,false,true,false,false,false,true,false,false,false]; +const UsrInt_274 = [false,true,false,false,true,false,false,false,true,false,false,false]; +const UsrInt_275 = [true,true,false,false,true,false,false,false,true,false,false,false]; +const UsrInt_276 = [false,false,true,false,true,false,false,false,true,false,false,false]; +const UsrInt_277 = [true,false,true,false,true,false,false,false,true,false,false,false]; +const UsrInt_278 = [false,true,true,false,true,false,false,false,true,false,false,false]; +const UsrInt_279 = [true,true,true,false,true,false,false,false,true,false,false,false]; +const UsrInt_280 = [false,false,false,true,true,false,false,false,true,false,false,false]; +const UsrInt_281 = [true,false,false,true,true,false,false,false,true,false,false,false]; +const UsrInt_282 = [false,true,false,true,true,false,false,false,true,false,false,false]; +const UsrInt_283 = [true,true,false,true,true,false,false,false,true,false,false,false]; +const UsrInt_284 = [false,false,true,true,true,false,false,false,true,false,false,false]; +const UsrInt_285 = [true,false,true,true,true,false,false,false,true,false,false,false]; +const UsrInt_286 = [false,true,true,true,true,false,false,false,true,false,false,false]; +const UsrInt_287 = [true,true,true,true,true,false,false,false,true,false,false,false]; +const UsrInt_288 = [false,false,false,false,false,true,false,false,true,false,false,false]; +const UsrInt_289 = [true,false,false,false,false,true,false,false,true,false,false,false]; +const UsrInt_290 = [false,true,false,false,false,true,false,false,true,false,false,false]; +const UsrInt_291 = [true,true,false,false,false,true,false,false,true,false,false,false]; +const UsrInt_292 = [false,false,true,false,false,true,false,false,true,false,false,false]; +const UsrInt_293 = [true,false,true,false,false,true,false,false,true,false,false,false]; +const UsrInt_294 = [false,true,true,false,false,true,false,false,true,false,false,false]; +const UsrInt_295 = [true,true,true,false,false,true,false,false,true,false,false,false]; +const UsrInt_296 = [false,false,false,true,false,true,false,false,true,false,false,false]; +const UsrInt_297 = [true,false,false,true,false,true,false,false,true,false,false,false]; +const UsrInt_298 = [false,true,false,true,false,true,false,false,true,false,false,false]; +const UsrInt_299 = [true,true,false,true,false,true,false,false,true,false,false,false]; +const UsrInt_300 = [false,false,true,true,false,true,false,false,true,false,false,false]; +const UsrInt_301 = [true,false,true,true,false,true,false,false,true,false,false,false]; +const UsrInt_302 = [false,true,true,true,false,true,false,false,true,false,false,false]; +const UsrInt_303 = [true,true,true,true,false,true,false,false,true,false,false,false]; +const UsrInt_304 = [false,false,false,false,true,true,false,false,true,false,false,false]; +const UsrInt_305 = [true,false,false,false,true,true,false,false,true,false,false,false]; +const UsrInt_306 = [false,true,false,false,true,true,false,false,true,false,false,false]; +const UsrInt_307 = [true,true,false,false,true,true,false,false,true,false,false,false]; +const UsrInt_308 = [false,false,true,false,true,true,false,false,true,false,false,false]; +const UsrInt_309 = [true,false,true,false,true,true,false,false,true,false,false,false]; +const UsrInt_310 = [false,true,true,false,true,true,false,false,true,false,false,false]; +const UsrInt_311 = [true,true,true,false,true,true,false,false,true,false,false,false]; +const UsrInt_312 = [false,false,false,true,true,true,false,false,true,false,false,false]; +const UsrInt_313 = [true,false,false,true,true,true,false,false,true,false,false,false]; +const UsrInt_314 = [false,true,false,true,true,true,false,false,true,false,false,false]; +const UsrInt_315 = [true,true,false,true,true,true,false,false,true,false,false,false]; +const UsrInt_316 = [false,false,true,true,true,true,false,false,true,false,false,false]; +const UsrInt_317 = [true,false,true,true,true,true,false,false,true,false,false,false]; +const UsrInt_318 = [false,true,true,true,true,true,false,false,true,false,false,false]; +const UsrInt_319 = [true,true,true,true,true,true,false,false,true,false,false,false]; +const UsrInt_320 = [false,false,false,false,false,false,true,false,true,false,false,false]; +const UsrInt_321 = [true,false,false,false,false,false,true,false,true,false,false,false]; +const UsrInt_322 = [false,true,false,false,false,false,true,false,true,false,false,false]; +const UsrInt_323 = [true,true,false,false,false,false,true,false,true,false,false,false]; +const UsrInt_324 = [false,false,true,false,false,false,true,false,true,false,false,false]; +const UsrInt_325 = [true,false,true,false,false,false,true,false,true,false,false,false]; +const UsrInt_326 = [false,true,true,false,false,false,true,false,true,false,false,false]; +const UsrInt_327 = [true,true,true,false,false,false,true,false,true,false,false,false]; +const UsrInt_328 = [false,false,false,true,false,false,true,false,true,false,false,false]; +const UsrInt_329 = [true,false,false,true,false,false,true,false,true,false,false,false]; +const UsrInt_330 = [false,true,false,true,false,false,true,false,true,false,false,false]; +const UsrInt_331 = [true,true,false,true,false,false,true,false,true,false,false,false]; +const UsrInt_332 = [false,false,true,true,false,false,true,false,true,false,false,false]; +const UsrInt_333 = [true,false,true,true,false,false,true,false,true,false,false,false]; +const UsrInt_334 = [false,true,true,true,false,false,true,false,true,false,false,false]; +const UsrInt_335 = [true,true,true,true,false,false,true,false,true,false,false,false]; +const UsrInt_336 = [false,false,false,false,true,false,true,false,true,false,false,false]; +const UsrInt_337 = [true,false,false,false,true,false,true,false,true,false,false,false]; +const UsrInt_338 = [false,true,false,false,true,false,true,false,true,false,false,false]; +const UsrInt_339 = [true,true,false,false,true,false,true,false,true,false,false,false]; +const UsrInt_340 = [false,false,true,false,true,false,true,false,true,false,false,false]; +const UsrInt_341 = [true,false,true,false,true,false,true,false,true,false,false,false]; +const UsrInt_342 = [false,true,true,false,true,false,true,false,true,false,false,false]; +const UsrInt_343 = [true,true,true,false,true,false,true,false,true,false,false,false]; +const UsrInt_344 = [false,false,false,true,true,false,true,false,true,false,false,false]; +const UsrInt_345 = [true,false,false,true,true,false,true,false,true,false,false,false]; +const UsrInt_346 = [false,true,false,true,true,false,true,false,true,false,false,false]; +const UsrInt_347 = [true,true,false,true,true,false,true,false,true,false,false,false]; +const UsrInt_348 = [false,false,true,true,true,false,true,false,true,false,false,false]; +const UsrInt_349 = [true,false,true,true,true,false,true,false,true,false,false,false]; +const UsrInt_350 = [false,true,true,true,true,false,true,false,true,false,false,false]; +const UsrInt_351 = [true,true,true,true,true,false,true,false,true,false,false,false]; +const UsrInt_352 = [false,false,false,false,false,true,true,false,true,false,false,false]; +const UsrInt_353 = [true,false,false,false,false,true,true,false,true,false,false,false]; +const UsrInt_354 = [false,true,false,false,false,true,true,false,true,false,false,false]; +const UsrInt_355 = [true,true,false,false,false,true,true,false,true,false,false,false]; +const UsrInt_356 = [false,false,true,false,false,true,true,false,true,false,false,false]; +const UsrInt_357 = [true,false,true,false,false,true,true,false,true,false,false,false]; +const UsrInt_358 = [false,true,true,false,false,true,true,false,true,false,false,false]; +const UsrInt_359 = [true,true,true,false,false,true,true,false,true,false,false,false]; +const UsrInt_360 = [false,false,false,true,false,true,true,false,true,false,false,false]; +const UsrInt_361 = [true,false,false,true,false,true,true,false,true,false,false,false]; +const UsrInt_362 = [false,true,false,true,false,true,true,false,true,false,false,false]; +const UsrInt_363 = [true,true,false,true,false,true,true,false,true,false,false,false]; +const UsrInt_364 = [false,false,true,true,false,true,true,false,true,false,false,false]; +const UsrInt_365 = [true,false,true,true,false,true,true,false,true,false,false,false]; +const UsrInt_366 = [false,true,true,true,false,true,true,false,true,false,false,false]; +const UsrInt_367 = [true,true,true,true,false,true,true,false,true,false,false,false]; +const UsrInt_368 = [false,false,false,false,true,true,true,false,true,false,false,false]; +const UsrInt_369 = [true,false,false,false,true,true,true,false,true,false,false,false]; +const UsrInt_370 = [false,true,false,false,true,true,true,false,true,false,false,false]; +const UsrInt_371 = [true,true,false,false,true,true,true,false,true,false,false,false]; +const UsrInt_372 = [false,false,true,false,true,true,true,false,true,false,false,false]; +const UsrInt_373 = [true,false,true,false,true,true,true,false,true,false,false,false]; +const UsrInt_374 = [false,true,true,false,true,true,true,false,true,false,false,false]; +const UsrInt_375 = [true,true,true,false,true,true,true,false,true,false,false,false]; +const UsrInt_376 = [false,false,false,true,true,true,true,false,true,false,false,false]; +const UsrInt_377 = [true,false,false,true,true,true,true,false,true,false,false,false]; +const UsrInt_378 = [false,true,false,true,true,true,true,false,true,false,false,false]; +const UsrInt_379 = [true,true,false,true,true,true,true,false,true,false,false,false]; +const UsrInt_380 = [false,false,true,true,true,true,true,false,true,false,false,false]; +const UsrInt_381 = [true,false,true,true,true,true,true,false,true,false,false,false]; +const UsrInt_382 = [false,true,true,true,true,true,true,false,true,false,false,false]; +const UsrInt_383 = [true,true,true,true,true,true,true,false,true,false,false,false]; +const UsrInt_384 = [false,false,false,false,false,false,false,true,true,false,false,false]; +const UsrInt_385 = [true,false,false,false,false,false,false,true,true,false,false,false]; +const UsrInt_386 = [false,true,false,false,false,false,false,true,true,false,false,false]; +const UsrInt_387 = [true,true,false,false,false,false,false,true,true,false,false,false]; +const UsrInt_388 = [false,false,true,false,false,false,false,true,true,false,false,false]; +const UsrInt_389 = [true,false,true,false,false,false,false,true,true,false,false,false]; +const UsrInt_390 = [false,true,true,false,false,false,false,true,true,false,false,false]; +const UsrInt_391 = [true,true,true,false,false,false,false,true,true,false,false,false]; +const UsrInt_392 = [false,false,false,true,false,false,false,true,true,false,false,false]; +const UsrInt_393 = [true,false,false,true,false,false,false,true,true,false,false,false]; +const UsrInt_394 = [false,true,false,true,false,false,false,true,true,false,false,false]; +const UsrInt_395 = [true,true,false,true,false,false,false,true,true,false,false,false]; +const UsrInt_396 = [false,false,true,true,false,false,false,true,true,false,false,false]; +const UsrInt_397 = [true,false,true,true,false,false,false,true,true,false,false,false]; +const UsrInt_398 = [false,true,true,true,false,false,false,true,true,false,false,false]; +const UsrInt_399 = [true,true,true,true,false,false,false,true,true,false,false,false]; +const UsrInt_400 = [false,false,false,false,true,false,false,true,true,false,false,false]; +const UsrInt_401 = [true,false,false,false,true,false,false,true,true,false,false,false]; +const UsrInt_402 = [false,true,false,false,true,false,false,true,true,false,false,false]; +const UsrInt_403 = [true,true,false,false,true,false,false,true,true,false,false,false]; +const UsrInt_404 = [false,false,true,false,true,false,false,true,true,false,false,false]; +const UsrInt_405 = [true,false,true,false,true,false,false,true,true,false,false,false]; +const UsrInt_406 = [false,true,true,false,true,false,false,true,true,false,false,false]; +const UsrInt_407 = [true,true,true,false,true,false,false,true,true,false,false,false]; +const UsrInt_408 = [false,false,false,true,true,false,false,true,true,false,false,false]; +const UsrInt_409 = [true,false,false,true,true,false,false,true,true,false,false,false]; +const UsrInt_410 = [false,true,false,true,true,false,false,true,true,false,false,false]; +const UsrInt_411 = [true,true,false,true,true,false,false,true,true,false,false,false]; +const UsrInt_412 = [false,false,true,true,true,false,false,true,true,false,false,false]; +const UsrInt_413 = [true,false,true,true,true,false,false,true,true,false,false,false]; +const UsrInt_414 = [false,true,true,true,true,false,false,true,true,false,false,false]; +const UsrInt_415 = [true,true,true,true,true,false,false,true,true,false,false,false]; +const UsrInt_416 = [false,false,false,false,false,true,false,true,true,false,false,false]; +const UsrInt_417 = [true,false,false,false,false,true,false,true,true,false,false,false]; +const UsrInt_418 = [false,true,false,false,false,true,false,true,true,false,false,false]; +const UsrInt_419 = [true,true,false,false,false,true,false,true,true,false,false,false]; +const UsrInt_420 = [false,false,true,false,false,true,false,true,true,false,false,false]; +const UsrInt_421 = [true,false,true,false,false,true,false,true,true,false,false,false]; +const UsrInt_422 = [false,true,true,false,false,true,false,true,true,false,false,false]; +const UsrInt_423 = [true,true,true,false,false,true,false,true,true,false,false,false]; +const UsrInt_424 = [false,false,false,true,false,true,false,true,true,false,false,false]; +const UsrInt_425 = [true,false,false,true,false,true,false,true,true,false,false,false]; +const UsrInt_426 = [false,true,false,true,false,true,false,true,true,false,false,false]; +const UsrInt_427 = [true,true,false,true,false,true,false,true,true,false,false,false]; +const UsrInt_428 = [false,false,true,true,false,true,false,true,true,false,false,false]; +const UsrInt_429 = [true,false,true,true,false,true,false,true,true,false,false,false]; +const UsrInt_430 = [false,true,true,true,false,true,false,true,true,false,false,false]; +const UsrInt_431 = [true,true,true,true,false,true,false,true,true,false,false,false]; +const UsrInt_432 = [false,false,false,false,true,true,false,true,true,false,false,false]; +const UsrInt_433 = [true,false,false,false,true,true,false,true,true,false,false,false]; +const UsrInt_434 = [false,true,false,false,true,true,false,true,true,false,false,false]; +const UsrInt_435 = [true,true,false,false,true,true,false,true,true,false,false,false]; +const UsrInt_436 = [false,false,true,false,true,true,false,true,true,false,false,false]; +const UsrInt_437 = [true,false,true,false,true,true,false,true,true,false,false,false]; +const UsrInt_438 = [false,true,true,false,true,true,false,true,true,false,false,false]; +const UsrInt_439 = [true,true,true,false,true,true,false,true,true,false,false,false]; +const UsrInt_440 = [false,false,false,true,true,true,false,true,true,false,false,false]; +const UsrInt_441 = [true,false,false,true,true,true,false,true,true,false,false,false]; +const UsrInt_442 = [false,true,false,true,true,true,false,true,true,false,false,false]; +const UsrInt_443 = [true,true,false,true,true,true,false,true,true,false,false,false]; +const UsrInt_444 = [false,false,true,true,true,true,false,true,true,false,false,false]; +const UsrInt_445 = [true,false,true,true,true,true,false,true,true,false,false,false]; +const UsrInt_446 = [false,true,true,true,true,true,false,true,true,false,false,false]; +const UsrInt_447 = [true,true,true,true,true,true,false,true,true,false,false,false]; +const UsrInt_448 = [false,false,false,false,false,false,true,true,true,false,false,false]; +const UsrInt_449 = [true,false,false,false,false,false,true,true,true,false,false,false]; +const UsrInt_450 = [false,true,false,false,false,false,true,true,true,false,false,false]; +const UsrInt_451 = [true,true,false,false,false,false,true,true,true,false,false,false]; +const UsrInt_452 = [false,false,true,false,false,false,true,true,true,false,false,false]; +const UsrInt_453 = [true,false,true,false,false,false,true,true,true,false,false,false]; +const UsrInt_454 = [false,true,true,false,false,false,true,true,true,false,false,false]; +const UsrInt_455 = [true,true,true,false,false,false,true,true,true,false,false,false]; +const UsrInt_456 = [false,false,false,true,false,false,true,true,true,false,false,false]; +const UsrInt_457 = [true,false,false,true,false,false,true,true,true,false,false,false]; +const UsrInt_458 = [false,true,false,true,false,false,true,true,true,false,false,false]; +const UsrInt_459 = [true,true,false,true,false,false,true,true,true,false,false,false]; +const UsrInt_460 = [false,false,true,true,false,false,true,true,true,false,false,false]; +const UsrInt_461 = [true,false,true,true,false,false,true,true,true,false,false,false]; +const UsrInt_462 = [false,true,true,true,false,false,true,true,true,false,false,false]; +const UsrInt_463 = [true,true,true,true,false,false,true,true,true,false,false,false]; +const UsrInt_464 = [false,false,false,false,true,false,true,true,true,false,false,false]; +const UsrInt_465 = [true,false,false,false,true,false,true,true,true,false,false,false]; +const UsrInt_466 = [false,true,false,false,true,false,true,true,true,false,false,false]; +const UsrInt_467 = [true,true,false,false,true,false,true,true,true,false,false,false]; +const UsrInt_468 = [false,false,true,false,true,false,true,true,true,false,false,false]; +const UsrInt_469 = [true,false,true,false,true,false,true,true,true,false,false,false]; +const UsrInt_470 = [false,true,true,false,true,false,true,true,true,false,false,false]; +const UsrInt_471 = [true,true,true,false,true,false,true,true,true,false,false,false]; +const UsrInt_472 = [false,false,false,true,true,false,true,true,true,false,false,false]; +const UsrInt_473 = [true,false,false,true,true,false,true,true,true,false,false,false]; +const UsrInt_474 = [false,true,false,true,true,false,true,true,true,false,false,false]; +const UsrInt_475 = [true,true,false,true,true,false,true,true,true,false,false,false]; +const UsrInt_476 = [false,false,true,true,true,false,true,true,true,false,false,false]; +const UsrInt_477 = [true,false,true,true,true,false,true,true,true,false,false,false]; +const UsrInt_478 = [false,true,true,true,true,false,true,true,true,false,false,false]; +const UsrInt_479 = [true,true,true,true,true,false,true,true,true,false,false,false]; +const UsrInt_480 = [false,false,false,false,false,true,true,true,true,false,false,false]; +const UsrInt_481 = [true,false,false,false,false,true,true,true,true,false,false,false]; +const UsrInt_482 = [false,true,false,false,false,true,true,true,true,false,false,false]; +const UsrInt_483 = [true,true,false,false,false,true,true,true,true,false,false,false]; +const UsrInt_484 = [false,false,true,false,false,true,true,true,true,false,false,false]; +const UsrInt_485 = [true,false,true,false,false,true,true,true,true,false,false,false]; +const UsrInt_486 = [false,true,true,false,false,true,true,true,true,false,false,false]; +const UsrInt_487 = [true,true,true,false,false,true,true,true,true,false,false,false]; +const UsrInt_488 = [false,false,false,true,false,true,true,true,true,false,false,false]; +const UsrInt_489 = [true,false,false,true,false,true,true,true,true,false,false,false]; +const UsrInt_490 = [false,true,false,true,false,true,true,true,true,false,false,false]; +const UsrInt_491 = [true,true,false,true,false,true,true,true,true,false,false,false]; +const UsrInt_492 = [false,false,true,true,false,true,true,true,true,false,false,false]; +const UsrInt_493 = [true,false,true,true,false,true,true,true,true,false,false,false]; +const UsrInt_494 = [false,true,true,true,false,true,true,true,true,false,false,false]; +const UsrInt_495 = [true,true,true,true,false,true,true,true,true,false,false,false]; +const UsrInt_496 = [false,false,false,false,true,true,true,true,true,false,false,false]; +const UsrInt_497 = [true,false,false,false,true,true,true,true,true,false,false,false]; +const UsrInt_498 = [false,true,false,false,true,true,true,true,true,false,false,false]; +const UsrInt_499 = [true,true,false,false,true,true,true,true,true,false,false,false]; +const UsrInt_500 = [false,false,true,false,true,true,true,true,true,false,false,false]; +const UsrInt_501 = [true,false,true,false,true,true,true,true,true,false,false,false]; +const UsrInt_502 = [false,true,true,false,true,true,true,true,true,false,false,false]; +const UsrInt_503 = [true,true,true,false,true,true,true,true,true,false,false,false]; +const UsrInt_504 = [false,false,false,true,true,true,true,true,true,false,false,false]; +const UsrInt_505 = [true,false,false,true,true,true,true,true,true,false,false,false]; +const UsrInt_506 = [false,true,false,true,true,true,true,true,true,false,false,false]; +const UsrInt_507 = [true,true,false,true,true,true,true,true,true,false,false,false]; +const UsrInt_508 = [false,false,true,true,true,true,true,true,true,false,false,false]; +const UsrInt_509 = [true,false,true,true,true,true,true,true,true,false,false,false]; +const UsrInt_510 = [false,true,true,true,true,true,true,true,true,false,false,false]; +const UsrInt_511 = [true,true,true,true,true,true,true,true,true,false,false,false]; +const UsrInt_512 = [false,false,false,false,false,false,false,false,false,true,false,false]; +const UsrInt_513 = [true,false,false,false,false,false,false,false,false,true,false,false]; +const UsrInt_514 = [false,true,false,false,false,false,false,false,false,true,false,false]; +const UsrInt_515 = [true,true,false,false,false,false,false,false,false,true,false,false]; +const UsrInt_516 = [false,false,true,false,false,false,false,false,false,true,false,false]; +const UsrInt_517 = [true,false,true,false,false,false,false,false,false,true,false,false]; +const UsrInt_518 = [false,true,true,false,false,false,false,false,false,true,false,false]; +const UsrInt_519 = [true,true,true,false,false,false,false,false,false,true,false,false]; +const UsrInt_520 = [false,false,false,true,false,false,false,false,false,true,false,false]; +const UsrInt_521 = [true,false,false,true,false,false,false,false,false,true,false,false]; +const UsrInt_522 = [false,true,false,true,false,false,false,false,false,true,false,false]; +const UsrInt_523 = [true,true,false,true,false,false,false,false,false,true,false,false]; +const UsrInt_524 = [false,false,true,true,false,false,false,false,false,true,false,false]; +const UsrInt_525 = [true,false,true,true,false,false,false,false,false,true,false,false]; +const UsrInt_526 = [false,true,true,true,false,false,false,false,false,true,false,false]; +const UsrInt_527 = [true,true,true,true,false,false,false,false,false,true,false,false]; +const UsrInt_528 = [false,false,false,false,true,false,false,false,false,true,false,false]; +const UsrInt_529 = [true,false,false,false,true,false,false,false,false,true,false,false]; +const UsrInt_530 = [false,true,false,false,true,false,false,false,false,true,false,false]; +const UsrInt_531 = [true,true,false,false,true,false,false,false,false,true,false,false]; +const UsrInt_532 = [false,false,true,false,true,false,false,false,false,true,false,false]; +const UsrInt_533 = [true,false,true,false,true,false,false,false,false,true,false,false]; +const UsrInt_534 = [false,true,true,false,true,false,false,false,false,true,false,false]; +const UsrInt_535 = [true,true,true,false,true,false,false,false,false,true,false,false]; +const UsrInt_536 = [false,false,false,true,true,false,false,false,false,true,false,false]; +const UsrInt_537 = [true,false,false,true,true,false,false,false,false,true,false,false]; +const UsrInt_538 = [false,true,false,true,true,false,false,false,false,true,false,false]; +const UsrInt_539 = [true,true,false,true,true,false,false,false,false,true,false,false]; +const UsrInt_540 = [false,false,true,true,true,false,false,false,false,true,false,false]; +const UsrInt_541 = [true,false,true,true,true,false,false,false,false,true,false,false]; +const UsrInt_542 = [false,true,true,true,true,false,false,false,false,true,false,false]; +const UsrInt_543 = [true,true,true,true,true,false,false,false,false,true,false,false]; +const UsrInt_544 = [false,false,false,false,false,true,false,false,false,true,false,false]; +const UsrInt_545 = [true,false,false,false,false,true,false,false,false,true,false,false]; +const UsrInt_546 = [false,true,false,false,false,true,false,false,false,true,false,false]; +const UsrInt_547 = [true,true,false,false,false,true,false,false,false,true,false,false]; +const UsrInt_548 = [false,false,true,false,false,true,false,false,false,true,false,false]; +const UsrInt_549 = [true,false,true,false,false,true,false,false,false,true,false,false]; +const UsrInt_550 = [false,true,true,false,false,true,false,false,false,true,false,false]; +const UsrInt_551 = [true,true,true,false,false,true,false,false,false,true,false,false]; +const UsrInt_552 = [false,false,false,true,false,true,false,false,false,true,false,false]; +const UsrInt_553 = [true,false,false,true,false,true,false,false,false,true,false,false]; +const UsrInt_554 = [false,true,false,true,false,true,false,false,false,true,false,false]; +const UsrInt_555 = [true,true,false,true,false,true,false,false,false,true,false,false]; +const UsrInt_556 = [false,false,true,true,false,true,false,false,false,true,false,false]; +const UsrInt_557 = [true,false,true,true,false,true,false,false,false,true,false,false]; +const UsrInt_558 = [false,true,true,true,false,true,false,false,false,true,false,false]; +const UsrInt_559 = [true,true,true,true,false,true,false,false,false,true,false,false]; +const UsrInt_560 = [false,false,false,false,true,true,false,false,false,true,false,false]; +const UsrInt_561 = [true,false,false,false,true,true,false,false,false,true,false,false]; +const UsrInt_562 = [false,true,false,false,true,true,false,false,false,true,false,false]; +const UsrInt_563 = [true,true,false,false,true,true,false,false,false,true,false,false]; +const UsrInt_564 = [false,false,true,false,true,true,false,false,false,true,false,false]; +const UsrInt_565 = [true,false,true,false,true,true,false,false,false,true,false,false]; +const UsrInt_566 = [false,true,true,false,true,true,false,false,false,true,false,false]; +const UsrInt_567 = [true,true,true,false,true,true,false,false,false,true,false,false]; +const UsrInt_568 = [false,false,false,true,true,true,false,false,false,true,false,false]; +const UsrInt_569 = [true,false,false,true,true,true,false,false,false,true,false,false]; +const UsrInt_570 = [false,true,false,true,true,true,false,false,false,true,false,false]; +const UsrInt_571 = [true,true,false,true,true,true,false,false,false,true,false,false]; +const UsrInt_572 = [false,false,true,true,true,true,false,false,false,true,false,false]; +const UsrInt_573 = [true,false,true,true,true,true,false,false,false,true,false,false]; +const UsrInt_574 = [false,true,true,true,true,true,false,false,false,true,false,false]; +const UsrInt_575 = [true,true,true,true,true,true,false,false,false,true,false,false]; +const UsrInt_576 = [false,false,false,false,false,false,true,false,false,true,false,false]; +const UsrInt_577 = [true,false,false,false,false,false,true,false,false,true,false,false]; +const UsrInt_578 = [false,true,false,false,false,false,true,false,false,true,false,false]; +const UsrInt_579 = [true,true,false,false,false,false,true,false,false,true,false,false]; +const UsrInt_580 = [false,false,true,false,false,false,true,false,false,true,false,false]; +const UsrInt_581 = [true,false,true,false,false,false,true,false,false,true,false,false]; +const UsrInt_582 = [false,true,true,false,false,false,true,false,false,true,false,false]; +const UsrInt_583 = [true,true,true,false,false,false,true,false,false,true,false,false]; +const UsrInt_584 = [false,false,false,true,false,false,true,false,false,true,false,false]; +const UsrInt_585 = [true,false,false,true,false,false,true,false,false,true,false,false]; +const UsrInt_586 = [false,true,false,true,false,false,true,false,false,true,false,false]; +const UsrInt_587 = [true,true,false,true,false,false,true,false,false,true,false,false]; +const UsrInt_588 = [false,false,true,true,false,false,true,false,false,true,false,false]; +const UsrInt_589 = [true,false,true,true,false,false,true,false,false,true,false,false]; +const UsrInt_590 = [false,true,true,true,false,false,true,false,false,true,false,false]; +const UsrInt_591 = [true,true,true,true,false,false,true,false,false,true,false,false]; +const UsrInt_592 = [false,false,false,false,true,false,true,false,false,true,false,false]; +const UsrInt_593 = [true,false,false,false,true,false,true,false,false,true,false,false]; +const UsrInt_594 = [false,true,false,false,true,false,true,false,false,true,false,false]; +const UsrInt_595 = [true,true,false,false,true,false,true,false,false,true,false,false]; +const UsrInt_596 = [false,false,true,false,true,false,true,false,false,true,false,false]; +const UsrInt_597 = [true,false,true,false,true,false,true,false,false,true,false,false]; +const UsrInt_598 = [false,true,true,false,true,false,true,false,false,true,false,false]; +const UsrInt_599 = [true,true,true,false,true,false,true,false,false,true,false,false]; +const UsrInt_600 = [false,false,false,true,true,false,true,false,false,true,false,false]; +const UsrInt_601 = [true,false,false,true,true,false,true,false,false,true,false,false]; +const UsrInt_602 = [false,true,false,true,true,false,true,false,false,true,false,false]; +const UsrInt_603 = [true,true,false,true,true,false,true,false,false,true,false,false]; +const UsrInt_604 = [false,false,true,true,true,false,true,false,false,true,false,false]; +const UsrInt_605 = [true,false,true,true,true,false,true,false,false,true,false,false]; +const UsrInt_606 = [false,true,true,true,true,false,true,false,false,true,false,false]; +const UsrInt_607 = [true,true,true,true,true,false,true,false,false,true,false,false]; +const UsrInt_608 = [false,false,false,false,false,true,true,false,false,true,false,false]; +const UsrInt_609 = [true,false,false,false,false,true,true,false,false,true,false,false]; +const UsrInt_610 = [false,true,false,false,false,true,true,false,false,true,false,false]; +const UsrInt_611 = [true,true,false,false,false,true,true,false,false,true,false,false]; +const UsrInt_612 = [false,false,true,false,false,true,true,false,false,true,false,false]; +const UsrInt_613 = [true,false,true,false,false,true,true,false,false,true,false,false]; +const UsrInt_614 = [false,true,true,false,false,true,true,false,false,true,false,false]; +const UsrInt_615 = [true,true,true,false,false,true,true,false,false,true,false,false]; +const UsrInt_616 = [false,false,false,true,false,true,true,false,false,true,false,false]; +const UsrInt_617 = [true,false,false,true,false,true,true,false,false,true,false,false]; +const UsrInt_618 = [false,true,false,true,false,true,true,false,false,true,false,false]; +const UsrInt_619 = [true,true,false,true,false,true,true,false,false,true,false,false]; +const UsrInt_620 = [false,false,true,true,false,true,true,false,false,true,false,false]; +const UsrInt_621 = [true,false,true,true,false,true,true,false,false,true,false,false]; +const UsrInt_622 = [false,true,true,true,false,true,true,false,false,true,false,false]; +const UsrInt_623 = [true,true,true,true,false,true,true,false,false,true,false,false]; +const UsrInt_624 = [false,false,false,false,true,true,true,false,false,true,false,false]; +const UsrInt_625 = [true,false,false,false,true,true,true,false,false,true,false,false]; +const UsrInt_626 = [false,true,false,false,true,true,true,false,false,true,false,false]; +const UsrInt_627 = [true,true,false,false,true,true,true,false,false,true,false,false]; +const UsrInt_628 = [false,false,true,false,true,true,true,false,false,true,false,false]; +const UsrInt_629 = [true,false,true,false,true,true,true,false,false,true,false,false]; +const UsrInt_630 = [false,true,true,false,true,true,true,false,false,true,false,false]; +const UsrInt_631 = [true,true,true,false,true,true,true,false,false,true,false,false]; +const UsrInt_632 = [false,false,false,true,true,true,true,false,false,true,false,false]; +const UsrInt_633 = [true,false,false,true,true,true,true,false,false,true,false,false]; +const UsrInt_634 = [false,true,false,true,true,true,true,false,false,true,false,false]; +const UsrInt_635 = [true,true,false,true,true,true,true,false,false,true,false,false]; +const UsrInt_636 = [false,false,true,true,true,true,true,false,false,true,false,false]; +const UsrInt_637 = [true,false,true,true,true,true,true,false,false,true,false,false]; +const UsrInt_638 = [false,true,true,true,true,true,true,false,false,true,false,false]; +const UsrInt_639 = [true,true,true,true,true,true,true,false,false,true,false,false]; +const UsrInt_640 = [false,false,false,false,false,false,false,true,false,true,false,false]; +const UsrInt_641 = [true,false,false,false,false,false,false,true,false,true,false,false]; +const UsrInt_642 = [false,true,false,false,false,false,false,true,false,true,false,false]; +const UsrInt_643 = [true,true,false,false,false,false,false,true,false,true,false,false]; +const UsrInt_644 = [false,false,true,false,false,false,false,true,false,true,false,false]; +const UsrInt_645 = [true,false,true,false,false,false,false,true,false,true,false,false]; +const UsrInt_646 = [false,true,true,false,false,false,false,true,false,true,false,false]; +const UsrInt_647 = [true,true,true,false,false,false,false,true,false,true,false,false]; +const UsrInt_648 = [false,false,false,true,false,false,false,true,false,true,false,false]; +const UsrInt_649 = [true,false,false,true,false,false,false,true,false,true,false,false]; +const UsrInt_650 = [false,true,false,true,false,false,false,true,false,true,false,false]; +const UsrInt_651 = [true,true,false,true,false,false,false,true,false,true,false,false]; +const UsrInt_652 = [false,false,true,true,false,false,false,true,false,true,false,false]; +const UsrInt_653 = [true,false,true,true,false,false,false,true,false,true,false,false]; +const UsrInt_654 = [false,true,true,true,false,false,false,true,false,true,false,false]; +const UsrInt_655 = [true,true,true,true,false,false,false,true,false,true,false,false]; +const UsrInt_656 = [false,false,false,false,true,false,false,true,false,true,false,false]; +const UsrInt_657 = [true,false,false,false,true,false,false,true,false,true,false,false]; +const UsrInt_658 = [false,true,false,false,true,false,false,true,false,true,false,false]; +const UsrInt_659 = [true,true,false,false,true,false,false,true,false,true,false,false]; +const UsrInt_660 = [false,false,true,false,true,false,false,true,false,true,false,false]; +const UsrInt_661 = [true,false,true,false,true,false,false,true,false,true,false,false]; +const UsrInt_662 = [false,true,true,false,true,false,false,true,false,true,false,false]; +const UsrInt_663 = [true,true,true,false,true,false,false,true,false,true,false,false]; +const UsrInt_664 = [false,false,false,true,true,false,false,true,false,true,false,false]; +const UsrInt_665 = [true,false,false,true,true,false,false,true,false,true,false,false]; +const UsrInt_666 = [false,true,false,true,true,false,false,true,false,true,false,false]; +const UsrInt_667 = [true,true,false,true,true,false,false,true,false,true,false,false]; +const UsrInt_668 = [false,false,true,true,true,false,false,true,false,true,false,false]; +const UsrInt_669 = [true,false,true,true,true,false,false,true,false,true,false,false]; +const UsrInt_670 = [false,true,true,true,true,false,false,true,false,true,false,false]; +const UsrInt_671 = [true,true,true,true,true,false,false,true,false,true,false,false]; +const UsrInt_672 = [false,false,false,false,false,true,false,true,false,true,false,false]; +const UsrInt_673 = [true,false,false,false,false,true,false,true,false,true,false,false]; +const UsrInt_674 = [false,true,false,false,false,true,false,true,false,true,false,false]; +const UsrInt_675 = [true,true,false,false,false,true,false,true,false,true,false,false]; +const UsrInt_676 = [false,false,true,false,false,true,false,true,false,true,false,false]; +const UsrInt_677 = [true,false,true,false,false,true,false,true,false,true,false,false]; +const UsrInt_678 = [false,true,true,false,false,true,false,true,false,true,false,false]; +const UsrInt_679 = [true,true,true,false,false,true,false,true,false,true,false,false]; +const UsrInt_680 = [false,false,false,true,false,true,false,true,false,true,false,false]; +const UsrInt_681 = [true,false,false,true,false,true,false,true,false,true,false,false]; +const UsrInt_682 = [false,true,false,true,false,true,false,true,false,true,false,false]; +const UsrInt_683 = [true,true,false,true,false,true,false,true,false,true,false,false]; +const UsrInt_684 = [false,false,true,true,false,true,false,true,false,true,false,false]; +const UsrInt_685 = [true,false,true,true,false,true,false,true,false,true,false,false]; +const UsrInt_686 = [false,true,true,true,false,true,false,true,false,true,false,false]; +const UsrInt_687 = [true,true,true,true,false,true,false,true,false,true,false,false]; +const UsrInt_688 = [false,false,false,false,true,true,false,true,false,true,false,false]; +const UsrInt_689 = [true,false,false,false,true,true,false,true,false,true,false,false]; +const UsrInt_690 = [false,true,false,false,true,true,false,true,false,true,false,false]; +const UsrInt_691 = [true,true,false,false,true,true,false,true,false,true,false,false]; +const UsrInt_692 = [false,false,true,false,true,true,false,true,false,true,false,false]; +const UsrInt_693 = [true,false,true,false,true,true,false,true,false,true,false,false]; +const UsrInt_694 = [false,true,true,false,true,true,false,true,false,true,false,false]; +const UsrInt_695 = [true,true,true,false,true,true,false,true,false,true,false,false]; +const UsrInt_696 = [false,false,false,true,true,true,false,true,false,true,false,false]; +const UsrInt_697 = [true,false,false,true,true,true,false,true,false,true,false,false]; +const UsrInt_698 = [false,true,false,true,true,true,false,true,false,true,false,false]; +const UsrInt_699 = [true,true,false,true,true,true,false,true,false,true,false,false]; +const UsrInt_700 = [false,false,true,true,true,true,false,true,false,true,false,false]; +const UsrInt_701 = [true,false,true,true,true,true,false,true,false,true,false,false]; +const UsrInt_702 = [false,true,true,true,true,true,false,true,false,true,false,false]; +const UsrInt_703 = [true,true,true,true,true,true,false,true,false,true,false,false]; +const UsrInt_704 = [false,false,false,false,false,false,true,true,false,true,false,false]; +const UsrInt_705 = [true,false,false,false,false,false,true,true,false,true,false,false]; +const UsrInt_706 = [false,true,false,false,false,false,true,true,false,true,false,false]; +const UsrInt_707 = [true,true,false,false,false,false,true,true,false,true,false,false]; +const UsrInt_708 = [false,false,true,false,false,false,true,true,false,true,false,false]; +const UsrInt_709 = [true,false,true,false,false,false,true,true,false,true,false,false]; +const UsrInt_710 = [false,true,true,false,false,false,true,true,false,true,false,false]; +const UsrInt_711 = [true,true,true,false,false,false,true,true,false,true,false,false]; +const UsrInt_712 = [false,false,false,true,false,false,true,true,false,true,false,false]; +const UsrInt_713 = [true,false,false,true,false,false,true,true,false,true,false,false]; +const UsrInt_714 = [false,true,false,true,false,false,true,true,false,true,false,false]; +const UsrInt_715 = [true,true,false,true,false,false,true,true,false,true,false,false]; +const UsrInt_716 = [false,false,true,true,false,false,true,true,false,true,false,false]; +const UsrInt_717 = [true,false,true,true,false,false,true,true,false,true,false,false]; +const UsrInt_718 = [false,true,true,true,false,false,true,true,false,true,false,false]; +const UsrInt_719 = [true,true,true,true,false,false,true,true,false,true,false,false]; +const UsrInt_720 = [false,false,false,false,true,false,true,true,false,true,false,false]; +const UsrInt_721 = [true,false,false,false,true,false,true,true,false,true,false,false]; +const UsrInt_722 = [false,true,false,false,true,false,true,true,false,true,false,false]; +const UsrInt_723 = [true,true,false,false,true,false,true,true,false,true,false,false]; +const UsrInt_724 = [false,false,true,false,true,false,true,true,false,true,false,false]; +const UsrInt_725 = [true,false,true,false,true,false,true,true,false,true,false,false]; +const UsrInt_726 = [false,true,true,false,true,false,true,true,false,true,false,false]; +const UsrInt_727 = [true,true,true,false,true,false,true,true,false,true,false,false]; +const UsrInt_728 = [false,false,false,true,true,false,true,true,false,true,false,false]; +const UsrInt_729 = [true,false,false,true,true,false,true,true,false,true,false,false]; +const UsrInt_730 = [false,true,false,true,true,false,true,true,false,true,false,false]; +const UsrInt_731 = [true,true,false,true,true,false,true,true,false,true,false,false]; +const UsrInt_732 = [false,false,true,true,true,false,true,true,false,true,false,false]; +const UsrInt_733 = [true,false,true,true,true,false,true,true,false,true,false,false]; +const UsrInt_734 = [false,true,true,true,true,false,true,true,false,true,false,false]; +const UsrInt_735 = [true,true,true,true,true,false,true,true,false,true,false,false]; +const UsrInt_736 = [false,false,false,false,false,true,true,true,false,true,false,false]; +const UsrInt_737 = [true,false,false,false,false,true,true,true,false,true,false,false]; +const UsrInt_738 = [false,true,false,false,false,true,true,true,false,true,false,false]; +const UsrInt_739 = [true,true,false,false,false,true,true,true,false,true,false,false]; +const UsrInt_740 = [false,false,true,false,false,true,true,true,false,true,false,false]; +const UsrInt_741 = [true,false,true,false,false,true,true,true,false,true,false,false]; +const UsrInt_742 = [false,true,true,false,false,true,true,true,false,true,false,false]; +const UsrInt_743 = [true,true,true,false,false,true,true,true,false,true,false,false]; +const UsrInt_744 = [false,false,false,true,false,true,true,true,false,true,false,false]; +const UsrInt_745 = [true,false,false,true,false,true,true,true,false,true,false,false]; +const UsrInt_746 = [false,true,false,true,false,true,true,true,false,true,false,false]; +const UsrInt_747 = [true,true,false,true,false,true,true,true,false,true,false,false]; +const UsrInt_748 = [false,false,true,true,false,true,true,true,false,true,false,false]; +const UsrInt_749 = [true,false,true,true,false,true,true,true,false,true,false,false]; +const UsrInt_750 = [false,true,true,true,false,true,true,true,false,true,false,false]; +const UsrInt_751 = [true,true,true,true,false,true,true,true,false,true,false,false]; +const UsrInt_752 = [false,false,false,false,true,true,true,true,false,true,false,false]; +const UsrInt_753 = [true,false,false,false,true,true,true,true,false,true,false,false]; +const UsrInt_754 = [false,true,false,false,true,true,true,true,false,true,false,false]; +const UsrInt_755 = [true,true,false,false,true,true,true,true,false,true,false,false]; +const UsrInt_756 = [false,false,true,false,true,true,true,true,false,true,false,false]; +const UsrInt_757 = [true,false,true,false,true,true,true,true,false,true,false,false]; +const UsrInt_758 = [false,true,true,false,true,true,true,true,false,true,false,false]; +const UsrInt_759 = [true,true,true,false,true,true,true,true,false,true,false,false]; +const UsrInt_760 = [false,false,false,true,true,true,true,true,false,true,false,false]; +const UsrInt_761 = [true,false,false,true,true,true,true,true,false,true,false,false]; +const UsrInt_762 = [false,true,false,true,true,true,true,true,false,true,false,false]; +const UsrInt_763 = [true,true,false,true,true,true,true,true,false,true,false,false]; +const UsrInt_764 = [false,false,true,true,true,true,true,true,false,true,false,false]; +const UsrInt_765 = [true,false,true,true,true,true,true,true,false,true,false,false]; +const UsrInt_766 = [false,true,true,true,true,true,true,true,false,true,false,false]; +const UsrInt_767 = [true,true,true,true,true,true,true,true,false,true,false,false]; +const UsrInt_768 = [false,false,false,false,false,false,false,false,true,true,false,false]; +const UsrInt_769 = [true,false,false,false,false,false,false,false,true,true,false,false]; +const UsrInt_770 = [false,true,false,false,false,false,false,false,true,true,false,false]; +const UsrInt_771 = [true,true,false,false,false,false,false,false,true,true,false,false]; +const UsrInt_772 = [false,false,true,false,false,false,false,false,true,true,false,false]; +const UsrInt_773 = [true,false,true,false,false,false,false,false,true,true,false,false]; +const UsrInt_774 = [false,true,true,false,false,false,false,false,true,true,false,false]; +const UsrInt_775 = [true,true,true,false,false,false,false,false,true,true,false,false]; +const UsrInt_776 = [false,false,false,true,false,false,false,false,true,true,false,false]; +const UsrInt_777 = [true,false,false,true,false,false,false,false,true,true,false,false]; +const UsrInt_778 = [false,true,false,true,false,false,false,false,true,true,false,false]; +const UsrInt_779 = [true,true,false,true,false,false,false,false,true,true,false,false]; +const UsrInt_780 = [false,false,true,true,false,false,false,false,true,true,false,false]; +const UsrInt_781 = [true,false,true,true,false,false,false,false,true,true,false,false]; +const UsrInt_782 = [false,true,true,true,false,false,false,false,true,true,false,false]; +const UsrInt_783 = [true,true,true,true,false,false,false,false,true,true,false,false]; +const UsrInt_784 = [false,false,false,false,true,false,false,false,true,true,false,false]; +const UsrInt_785 = [true,false,false,false,true,false,false,false,true,true,false,false]; +const UsrInt_786 = [false,true,false,false,true,false,false,false,true,true,false,false]; +const UsrInt_787 = [true,true,false,false,true,false,false,false,true,true,false,false]; +const UsrInt_788 = [false,false,true,false,true,false,false,false,true,true,false,false]; +const UsrInt_789 = [true,false,true,false,true,false,false,false,true,true,false,false]; +const UsrInt_790 = [false,true,true,false,true,false,false,false,true,true,false,false]; +const UsrInt_791 = [true,true,true,false,true,false,false,false,true,true,false,false]; +const UsrInt_792 = [false,false,false,true,true,false,false,false,true,true,false,false]; +const UsrInt_793 = [true,false,false,true,true,false,false,false,true,true,false,false]; +const UsrInt_794 = [false,true,false,true,true,false,false,false,true,true,false,false]; +const UsrInt_795 = [true,true,false,true,true,false,false,false,true,true,false,false]; +const UsrInt_796 = [false,false,true,true,true,false,false,false,true,true,false,false]; +const UsrInt_797 = [true,false,true,true,true,false,false,false,true,true,false,false]; +const UsrInt_798 = [false,true,true,true,true,false,false,false,true,true,false,false]; +const UsrInt_799 = [true,true,true,true,true,false,false,false,true,true,false,false]; +const UsrInt_800 = [false,false,false,false,false,true,false,false,true,true,false,false]; +const UsrInt_801 = [true,false,false,false,false,true,false,false,true,true,false,false]; +const UsrInt_802 = [false,true,false,false,false,true,false,false,true,true,false,false]; +const UsrInt_803 = [true,true,false,false,false,true,false,false,true,true,false,false]; +const UsrInt_804 = [false,false,true,false,false,true,false,false,true,true,false,false]; +const UsrInt_805 = [true,false,true,false,false,true,false,false,true,true,false,false]; +const UsrInt_806 = [false,true,true,false,false,true,false,false,true,true,false,false]; +const UsrInt_807 = [true,true,true,false,false,true,false,false,true,true,false,false]; +const UsrInt_808 = [false,false,false,true,false,true,false,false,true,true,false,false]; +const UsrInt_809 = [true,false,false,true,false,true,false,false,true,true,false,false]; +const UsrInt_810 = [false,true,false,true,false,true,false,false,true,true,false,false]; +const UsrInt_811 = [true,true,false,true,false,true,false,false,true,true,false,false]; +const UsrInt_812 = [false,false,true,true,false,true,false,false,true,true,false,false]; +const UsrInt_813 = [true,false,true,true,false,true,false,false,true,true,false,false]; +const UsrInt_814 = [false,true,true,true,false,true,false,false,true,true,false,false]; +const UsrInt_815 = [true,true,true,true,false,true,false,false,true,true,false,false]; +const UsrInt_816 = [false,false,false,false,true,true,false,false,true,true,false,false]; +const UsrInt_817 = [true,false,false,false,true,true,false,false,true,true,false,false]; +const UsrInt_818 = [false,true,false,false,true,true,false,false,true,true,false,false]; +const UsrInt_819 = [true,true,false,false,true,true,false,false,true,true,false,false]; +const UsrInt_820 = [false,false,true,false,true,true,false,false,true,true,false,false]; +const UsrInt_821 = [true,false,true,false,true,true,false,false,true,true,false,false]; +const UsrInt_822 = [false,true,true,false,true,true,false,false,true,true,false,false]; +const UsrInt_823 = [true,true,true,false,true,true,false,false,true,true,false,false]; +const UsrInt_824 = [false,false,false,true,true,true,false,false,true,true,false,false]; +const UsrInt_825 = [true,false,false,true,true,true,false,false,true,true,false,false]; +const UsrInt_826 = [false,true,false,true,true,true,false,false,true,true,false,false]; +const UsrInt_827 = [true,true,false,true,true,true,false,false,true,true,false,false]; +const UsrInt_828 = [false,false,true,true,true,true,false,false,true,true,false,false]; +const UsrInt_829 = [true,false,true,true,true,true,false,false,true,true,false,false]; +const UsrInt_830 = [false,true,true,true,true,true,false,false,true,true,false,false]; +const UsrInt_831 = [true,true,true,true,true,true,false,false,true,true,false,false]; +const UsrInt_832 = [false,false,false,false,false,false,true,false,true,true,false,false]; +const UsrInt_833 = [true,false,false,false,false,false,true,false,true,true,false,false]; +const UsrInt_834 = [false,true,false,false,false,false,true,false,true,true,false,false]; +const UsrInt_835 = [true,true,false,false,false,false,true,false,true,true,false,false]; +const UsrInt_836 = [false,false,true,false,false,false,true,false,true,true,false,false]; +const UsrInt_837 = [true,false,true,false,false,false,true,false,true,true,false,false]; +const UsrInt_838 = [false,true,true,false,false,false,true,false,true,true,false,false]; +const UsrInt_839 = [true,true,true,false,false,false,true,false,true,true,false,false]; +const UsrInt_840 = [false,false,false,true,false,false,true,false,true,true,false,false]; +const UsrInt_841 = [true,false,false,true,false,false,true,false,true,true,false,false]; +const UsrInt_842 = [false,true,false,true,false,false,true,false,true,true,false,false]; +const UsrInt_843 = [true,true,false,true,false,false,true,false,true,true,false,false]; +const UsrInt_844 = [false,false,true,true,false,false,true,false,true,true,false,false]; +const UsrInt_845 = [true,false,true,true,false,false,true,false,true,true,false,false]; +const UsrInt_846 = [false,true,true,true,false,false,true,false,true,true,false,false]; +const UsrInt_847 = [true,true,true,true,false,false,true,false,true,true,false,false]; +const UsrInt_848 = [false,false,false,false,true,false,true,false,true,true,false,false]; +const UsrInt_849 = [true,false,false,false,true,false,true,false,true,true,false,false]; +const UsrInt_850 = [false,true,false,false,true,false,true,false,true,true,false,false]; +const UsrInt_851 = [true,true,false,false,true,false,true,false,true,true,false,false]; +const UsrInt_852 = [false,false,true,false,true,false,true,false,true,true,false,false]; +const UsrInt_853 = [true,false,true,false,true,false,true,false,true,true,false,false]; +const UsrInt_854 = [false,true,true,false,true,false,true,false,true,true,false,false]; +const UsrInt_855 = [true,true,true,false,true,false,true,false,true,true,false,false]; +const UsrInt_856 = [false,false,false,true,true,false,true,false,true,true,false,false]; +const UsrInt_857 = [true,false,false,true,true,false,true,false,true,true,false,false]; +const UsrInt_858 = [false,true,false,true,true,false,true,false,true,true,false,false]; +const UsrInt_859 = [true,true,false,true,true,false,true,false,true,true,false,false]; +const UsrInt_860 = [false,false,true,true,true,false,true,false,true,true,false,false]; +const UsrInt_861 = [true,false,true,true,true,false,true,false,true,true,false,false]; +const UsrInt_862 = [false,true,true,true,true,false,true,false,true,true,false,false]; +const UsrInt_863 = [true,true,true,true,true,false,true,false,true,true,false,false]; +const UsrInt_864 = [false,false,false,false,false,true,true,false,true,true,false,false]; +const UsrInt_865 = [true,false,false,false,false,true,true,false,true,true,false,false]; +const UsrInt_866 = [false,true,false,false,false,true,true,false,true,true,false,false]; +const UsrInt_867 = [true,true,false,false,false,true,true,false,true,true,false,false]; +const UsrInt_868 = [false,false,true,false,false,true,true,false,true,true,false,false]; +const UsrInt_869 = [true,false,true,false,false,true,true,false,true,true,false,false]; +const UsrInt_870 = [false,true,true,false,false,true,true,false,true,true,false,false]; +const UsrInt_871 = [true,true,true,false,false,true,true,false,true,true,false,false]; +const UsrInt_872 = [false,false,false,true,false,true,true,false,true,true,false,false]; +const UsrInt_873 = [true,false,false,true,false,true,true,false,true,true,false,false]; +const UsrInt_874 = [false,true,false,true,false,true,true,false,true,true,false,false]; +const UsrInt_875 = [true,true,false,true,false,true,true,false,true,true,false,false]; +const UsrInt_876 = [false,false,true,true,false,true,true,false,true,true,false,false]; +const UsrInt_877 = [true,false,true,true,false,true,true,false,true,true,false,false]; +const UsrInt_878 = [false,true,true,true,false,true,true,false,true,true,false,false]; +const UsrInt_879 = [true,true,true,true,false,true,true,false,true,true,false,false]; +const UsrInt_880 = [false,false,false,false,true,true,true,false,true,true,false,false]; +const UsrInt_881 = [true,false,false,false,true,true,true,false,true,true,false,false]; +const UsrInt_882 = [false,true,false,false,true,true,true,false,true,true,false,false]; +const UsrInt_883 = [true,true,false,false,true,true,true,false,true,true,false,false]; +const UsrInt_884 = [false,false,true,false,true,true,true,false,true,true,false,false]; +const UsrInt_885 = [true,false,true,false,true,true,true,false,true,true,false,false]; +const UsrInt_886 = [false,true,true,false,true,true,true,false,true,true,false,false]; +const UsrInt_887 = [true,true,true,false,true,true,true,false,true,true,false,false]; +const UsrInt_888 = [false,false,false,true,true,true,true,false,true,true,false,false]; +const UsrInt_889 = [true,false,false,true,true,true,true,false,true,true,false,false]; +const UsrInt_890 = [false,true,false,true,true,true,true,false,true,true,false,false]; +const UsrInt_891 = [true,true,false,true,true,true,true,false,true,true,false,false]; +const UsrInt_892 = [false,false,true,true,true,true,true,false,true,true,false,false]; +const UsrInt_893 = [true,false,true,true,true,true,true,false,true,true,false,false]; +const UsrInt_894 = [false,true,true,true,true,true,true,false,true,true,false,false]; +const UsrInt_895 = [true,true,true,true,true,true,true,false,true,true,false,false]; +const UsrInt_896 = [false,false,false,false,false,false,false,true,true,true,false,false]; +const UsrInt_897 = [true,false,false,false,false,false,false,true,true,true,false,false]; +const UsrInt_898 = [false,true,false,false,false,false,false,true,true,true,false,false]; +const UsrInt_899 = [true,true,false,false,false,false,false,true,true,true,false,false]; +const UsrInt_900 = [false,false,true,false,false,false,false,true,true,true,false,false]; +const UsrInt_901 = [true,false,true,false,false,false,false,true,true,true,false,false]; +const UsrInt_902 = [false,true,true,false,false,false,false,true,true,true,false,false]; +const UsrInt_903 = [true,true,true,false,false,false,false,true,true,true,false,false]; +const UsrInt_904 = [false,false,false,true,false,false,false,true,true,true,false,false]; +const UsrInt_905 = [true,false,false,true,false,false,false,true,true,true,false,false]; +const UsrInt_906 = [false,true,false,true,false,false,false,true,true,true,false,false]; +const UsrInt_907 = [true,true,false,true,false,false,false,true,true,true,false,false]; +const UsrInt_908 = [false,false,true,true,false,false,false,true,true,true,false,false]; +const UsrInt_909 = [true,false,true,true,false,false,false,true,true,true,false,false]; +const UsrInt_910 = [false,true,true,true,false,false,false,true,true,true,false,false]; +const UsrInt_911 = [true,true,true,true,false,false,false,true,true,true,false,false]; +const UsrInt_912 = [false,false,false,false,true,false,false,true,true,true,false,false]; +const UsrInt_913 = [true,false,false,false,true,false,false,true,true,true,false,false]; +const UsrInt_914 = [false,true,false,false,true,false,false,true,true,true,false,false]; +const UsrInt_915 = [true,true,false,false,true,false,false,true,true,true,false,false]; +const UsrInt_916 = [false,false,true,false,true,false,false,true,true,true,false,false]; +const UsrInt_917 = [true,false,true,false,true,false,false,true,true,true,false,false]; +const UsrInt_918 = [false,true,true,false,true,false,false,true,true,true,false,false]; +const UsrInt_919 = [true,true,true,false,true,false,false,true,true,true,false,false]; +const UsrInt_920 = [false,false,false,true,true,false,false,true,true,true,false,false]; +const UsrInt_921 = [true,false,false,true,true,false,false,true,true,true,false,false]; +const UsrInt_922 = [false,true,false,true,true,false,false,true,true,true,false,false]; +const UsrInt_923 = [true,true,false,true,true,false,false,true,true,true,false,false]; +const UsrInt_924 = [false,false,true,true,true,false,false,true,true,true,false,false]; +const UsrInt_925 = [true,false,true,true,true,false,false,true,true,true,false,false]; +const UsrInt_926 = [false,true,true,true,true,false,false,true,true,true,false,false]; +const UsrInt_927 = [true,true,true,true,true,false,false,true,true,true,false,false]; +const UsrInt_928 = [false,false,false,false,false,true,false,true,true,true,false,false]; +const UsrInt_929 = [true,false,false,false,false,true,false,true,true,true,false,false]; +const UsrInt_930 = [false,true,false,false,false,true,false,true,true,true,false,false]; +const UsrInt_931 = [true,true,false,false,false,true,false,true,true,true,false,false]; +const UsrInt_932 = [false,false,true,false,false,true,false,true,true,true,false,false]; +const UsrInt_933 = [true,false,true,false,false,true,false,true,true,true,false,false]; +const UsrInt_934 = [false,true,true,false,false,true,false,true,true,true,false,false]; +const UsrInt_935 = [true,true,true,false,false,true,false,true,true,true,false,false]; +const UsrInt_936 = [false,false,false,true,false,true,false,true,true,true,false,false]; +const UsrInt_937 = [true,false,false,true,false,true,false,true,true,true,false,false]; +const UsrInt_938 = [false,true,false,true,false,true,false,true,true,true,false,false]; +const UsrInt_939 = [true,true,false,true,false,true,false,true,true,true,false,false]; +const UsrInt_940 = [false,false,true,true,false,true,false,true,true,true,false,false]; +const UsrInt_941 = [true,false,true,true,false,true,false,true,true,true,false,false]; +const UsrInt_942 = [false,true,true,true,false,true,false,true,true,true,false,false]; +const UsrInt_943 = [true,true,true,true,false,true,false,true,true,true,false,false]; +const UsrInt_944 = [false,false,false,false,true,true,false,true,true,true,false,false]; +const UsrInt_945 = [true,false,false,false,true,true,false,true,true,true,false,false]; +const UsrInt_946 = [false,true,false,false,true,true,false,true,true,true,false,false]; +const UsrInt_947 = [true,true,false,false,true,true,false,true,true,true,false,false]; +const UsrInt_948 = [false,false,true,false,true,true,false,true,true,true,false,false]; +const UsrInt_949 = [true,false,true,false,true,true,false,true,true,true,false,false]; +const UsrInt_950 = [false,true,true,false,true,true,false,true,true,true,false,false]; +const UsrInt_951 = [true,true,true,false,true,true,false,true,true,true,false,false]; +const UsrInt_952 = [false,false,false,true,true,true,false,true,true,true,false,false]; +const UsrInt_953 = [true,false,false,true,true,true,false,true,true,true,false,false]; +const UsrInt_954 = [false,true,false,true,true,true,false,true,true,true,false,false]; +const UsrInt_955 = [true,true,false,true,true,true,false,true,true,true,false,false]; +const UsrInt_956 = [false,false,true,true,true,true,false,true,true,true,false,false]; +const UsrInt_957 = [true,false,true,true,true,true,false,true,true,true,false,false]; +const UsrInt_958 = [false,true,true,true,true,true,false,true,true,true,false,false]; +const UsrInt_959 = [true,true,true,true,true,true,false,true,true,true,false,false]; +const UsrInt_960 = [false,false,false,false,false,false,true,true,true,true,false,false]; +const UsrInt_961 = [true,false,false,false,false,false,true,true,true,true,false,false]; +const UsrInt_962 = [false,true,false,false,false,false,true,true,true,true,false,false]; +const UsrInt_963 = [true,true,false,false,false,false,true,true,true,true,false,false]; +const UsrInt_964 = [false,false,true,false,false,false,true,true,true,true,false,false]; +const UsrInt_965 = [true,false,true,false,false,false,true,true,true,true,false,false]; +const UsrInt_966 = [false,true,true,false,false,false,true,true,true,true,false,false]; +const UsrInt_967 = [true,true,true,false,false,false,true,true,true,true,false,false]; +const UsrInt_968 = [false,false,false,true,false,false,true,true,true,true,false,false]; +const UsrInt_969 = [true,false,false,true,false,false,true,true,true,true,false,false]; +const UsrInt_970 = [false,true,false,true,false,false,true,true,true,true,false,false]; +const UsrInt_971 = [true,true,false,true,false,false,true,true,true,true,false,false]; +const UsrInt_972 = [false,false,true,true,false,false,true,true,true,true,false,false]; +const UsrInt_973 = [true,false,true,true,false,false,true,true,true,true,false,false]; +const UsrInt_974 = [false,true,true,true,false,false,true,true,true,true,false,false]; +const UsrInt_975 = [true,true,true,true,false,false,true,true,true,true,false,false]; +const UsrInt_976 = [false,false,false,false,true,false,true,true,true,true,false,false]; +const UsrInt_977 = [true,false,false,false,true,false,true,true,true,true,false,false]; +const UsrInt_978 = [false,true,false,false,true,false,true,true,true,true,false,false]; +const UsrInt_979 = [true,true,false,false,true,false,true,true,true,true,false,false]; +const UsrInt_980 = [false,false,true,false,true,false,true,true,true,true,false,false]; +const UsrInt_981 = [true,false,true,false,true,false,true,true,true,true,false,false]; +const UsrInt_982 = [false,true,true,false,true,false,true,true,true,true,false,false]; +const UsrInt_983 = [true,true,true,false,true,false,true,true,true,true,false,false]; +const UsrInt_984 = [false,false,false,true,true,false,true,true,true,true,false,false]; +const UsrInt_985 = [true,false,false,true,true,false,true,true,true,true,false,false]; +const UsrInt_986 = [false,true,false,true,true,false,true,true,true,true,false,false]; +const UsrInt_987 = [true,true,false,true,true,false,true,true,true,true,false,false]; +const UsrInt_988 = [false,false,true,true,true,false,true,true,true,true,false,false]; +const UsrInt_989 = [true,false,true,true,true,false,true,true,true,true,false,false]; +const UsrInt_990 = [false,true,true,true,true,false,true,true,true,true,false,false]; +const UsrInt_991 = [true,true,true,true,true,false,true,true,true,true,false,false]; +const UsrInt_992 = [false,false,false,false,false,true,true,true,true,true,false,false]; +const UsrInt_993 = [true,false,false,false,false,true,true,true,true,true,false,false]; +const UsrInt_994 = [false,true,false,false,false,true,true,true,true,true,false,false]; +const UsrInt_995 = [true,true,false,false,false,true,true,true,true,true,false,false]; +const UsrInt_996 = [false,false,true,false,false,true,true,true,true,true,false,false]; +const UsrInt_997 = [true,false,true,false,false,true,true,true,true,true,false,false]; +const UsrInt_998 = [false,true,true,false,false,true,true,true,true,true,false,false]; +const UsrInt_999 = [true,true,true,false,false,true,true,true,true,true,false,false]; +const UsrInt_1000 = [false,false,false,true,false,true,true,true,true,true,false,false]; +const UsrInt_1001 = [true,false,false,true,false,true,true,true,true,true,false,false]; +const UsrInt_1002 = [false,true,false,true,false,true,true,true,true,true,false,false]; +const UsrInt_1003 = [true,true,false,true,false,true,true,true,true,true,false,false]; +const UsrInt_1004 = [false,false,true,true,false,true,true,true,true,true,false,false]; +const UsrInt_1005 = [true,false,true,true,false,true,true,true,true,true,false,false]; +const UsrInt_1006 = [false,true,true,true,false,true,true,true,true,true,false,false]; +const UsrInt_1007 = [true,true,true,true,false,true,true,true,true,true,false,false]; +const UsrInt_1008 = [false,false,false,false,true,true,true,true,true,true,false,false]; +const UsrInt_1009 = [true,false,false,false,true,true,true,true,true,true,false,false]; +const UsrInt_1010 = [false,true,false,false,true,true,true,true,true,true,false,false]; +const UsrInt_1011 = [true,true,false,false,true,true,true,true,true,true,false,false]; +const UsrInt_1012 = [false,false,true,false,true,true,true,true,true,true,false,false]; +const UsrInt_1013 = [true,false,true,false,true,true,true,true,true,true,false,false]; +const UsrInt_1014 = [false,true,true,false,true,true,true,true,true,true,false,false]; +const UsrInt_1015 = [true,true,true,false,true,true,true,true,true,true,false,false]; +const UsrInt_1016 = [false,false,false,true,true,true,true,true,true,true,false,false]; +const UsrInt_1017 = [true,false,false,true,true,true,true,true,true,true,false,false]; +const UsrInt_1018 = [false,true,false,true,true,true,true,true,true,true,false,false]; +const UsrInt_1019 = [true,true,false,true,true,true,true,true,true,true,false,false]; +const UsrInt_1020 = [false,false,true,true,true,true,true,true,true,true,false,false]; +const UsrInt_1021 = [true,false,true,true,true,true,true,true,true,true,false,false]; +const UsrInt_1022 = [false,true,true,true,true,true,true,true,true,true,false,false]; +const UsrInt_1023 = [true,true,true,true,true,true,true,true,true,true,false,false]; +const UsrInt_1024 = [false,false,false,false,false,false,false,false,false,false,true,false]; +const UsrInt_1025 = [true,false,false,false,false,false,false,false,false,false,true,false]; +const UsrInt_1026 = [false,true,false,false,false,false,false,false,false,false,true,false]; +const UsrInt_1027 = [true,true,false,false,false,false,false,false,false,false,true,false]; +const UsrInt_1028 = [false,false,true,false,false,false,false,false,false,false,true,false]; +const UsrInt_1029 = [true,false,true,false,false,false,false,false,false,false,true,false]; +const UsrInt_1030 = [false,true,true,false,false,false,false,false,false,false,true,false]; +const UsrInt_1031 = [true,true,true,false,false,false,false,false,false,false,true,false]; +const UsrInt_1032 = [false,false,false,true,false,false,false,false,false,false,true,false]; +const UsrInt_1033 = [true,false,false,true,false,false,false,false,false,false,true,false]; +const UsrInt_1034 = [false,true,false,true,false,false,false,false,false,false,true,false]; +const UsrInt_1035 = [true,true,false,true,false,false,false,false,false,false,true,false]; +const UsrInt_1036 = [false,false,true,true,false,false,false,false,false,false,true,false]; +const UsrInt_1037 = [true,false,true,true,false,false,false,false,false,false,true,false]; +const UsrInt_1038 = [false,true,true,true,false,false,false,false,false,false,true,false]; +const UsrInt_1039 = [true,true,true,true,false,false,false,false,false,false,true,false]; +const UsrInt_1040 = [false,false,false,false,true,false,false,false,false,false,true,false]; +const UsrInt_1041 = [true,false,false,false,true,false,false,false,false,false,true,false]; +const UsrInt_1042 = [false,true,false,false,true,false,false,false,false,false,true,false]; +const UsrInt_1043 = [true,true,false,false,true,false,false,false,false,false,true,false]; +const UsrInt_1044 = [false,false,true,false,true,false,false,false,false,false,true,false]; +const UsrInt_1045 = [true,false,true,false,true,false,false,false,false,false,true,false]; +const UsrInt_1046 = [false,true,true,false,true,false,false,false,false,false,true,false]; +const UsrInt_1047 = [true,true,true,false,true,false,false,false,false,false,true,false]; +const UsrInt_1048 = [false,false,false,true,true,false,false,false,false,false,true,false]; +const UsrInt_1049 = [true,false,false,true,true,false,false,false,false,false,true,false]; +const UsrInt_1050 = [false,true,false,true,true,false,false,false,false,false,true,false]; +const UsrInt_1051 = [true,true,false,true,true,false,false,false,false,false,true,false]; +const UsrInt_1052 = [false,false,true,true,true,false,false,false,false,false,true,false]; +const UsrInt_1053 = [true,false,true,true,true,false,false,false,false,false,true,false]; +const UsrInt_1054 = [false,true,true,true,true,false,false,false,false,false,true,false]; +const UsrInt_1055 = [true,true,true,true,true,false,false,false,false,false,true,false]; +const UsrInt_1056 = [false,false,false,false,false,true,false,false,false,false,true,false]; +const UsrInt_1057 = [true,false,false,false,false,true,false,false,false,false,true,false]; +const UsrInt_1058 = [false,true,false,false,false,true,false,false,false,false,true,false]; +const UsrInt_1059 = [true,true,false,false,false,true,false,false,false,false,true,false]; +const UsrInt_1060 = [false,false,true,false,false,true,false,false,false,false,true,false]; +const UsrInt_1061 = [true,false,true,false,false,true,false,false,false,false,true,false]; +const UsrInt_1062 = [false,true,true,false,false,true,false,false,false,false,true,false]; +const UsrInt_1063 = [true,true,true,false,false,true,false,false,false,false,true,false]; +const UsrInt_1064 = [false,false,false,true,false,true,false,false,false,false,true,false]; +const UsrInt_1065 = [true,false,false,true,false,true,false,false,false,false,true,false]; +const UsrInt_1066 = [false,true,false,true,false,true,false,false,false,false,true,false]; +const UsrInt_1067 = [true,true,false,true,false,true,false,false,false,false,true,false]; +const UsrInt_1068 = [false,false,true,true,false,true,false,false,false,false,true,false]; +const UsrInt_1069 = [true,false,true,true,false,true,false,false,false,false,true,false]; +const UsrInt_1070 = [false,true,true,true,false,true,false,false,false,false,true,false]; +const UsrInt_1071 = [true,true,true,true,false,true,false,false,false,false,true,false]; +const UsrInt_1072 = [false,false,false,false,true,true,false,false,false,false,true,false]; +const UsrInt_1073 = [true,false,false,false,true,true,false,false,false,false,true,false]; +const UsrInt_1074 = [false,true,false,false,true,true,false,false,false,false,true,false]; +const UsrInt_1075 = [true,true,false,false,true,true,false,false,false,false,true,false]; +const UsrInt_1076 = [false,false,true,false,true,true,false,false,false,false,true,false]; +const UsrInt_1077 = [true,false,true,false,true,true,false,false,false,false,true,false]; +const UsrInt_1078 = [false,true,true,false,true,true,false,false,false,false,true,false]; +const UsrInt_1079 = [true,true,true,false,true,true,false,false,false,false,true,false]; +const UsrInt_1080 = [false,false,false,true,true,true,false,false,false,false,true,false]; +const UsrInt_1081 = [true,false,false,true,true,true,false,false,false,false,true,false]; +const UsrInt_1082 = [false,true,false,true,true,true,false,false,false,false,true,false]; +const UsrInt_1083 = [true,true,false,true,true,true,false,false,false,false,true,false]; +const UsrInt_1084 = [false,false,true,true,true,true,false,false,false,false,true,false]; +const UsrInt_1085 = [true,false,true,true,true,true,false,false,false,false,true,false]; +const UsrInt_1086 = [false,true,true,true,true,true,false,false,false,false,true,false]; +const UsrInt_1087 = [true,true,true,true,true,true,false,false,false,false,true,false]; +const UsrInt_1088 = [false,false,false,false,false,false,true,false,false,false,true,false]; +const UsrInt_1089 = [true,false,false,false,false,false,true,false,false,false,true,false]; +const UsrInt_1090 = [false,true,false,false,false,false,true,false,false,false,true,false]; +const UsrInt_1091 = [true,true,false,false,false,false,true,false,false,false,true,false]; +const UsrInt_1092 = [false,false,true,false,false,false,true,false,false,false,true,false]; +const UsrInt_1093 = [true,false,true,false,false,false,true,false,false,false,true,false]; +const UsrInt_1094 = [false,true,true,false,false,false,true,false,false,false,true,false]; +const UsrInt_1095 = [true,true,true,false,false,false,true,false,false,false,true,false]; +const UsrInt_1096 = [false,false,false,true,false,false,true,false,false,false,true,false]; +const UsrInt_1097 = [true,false,false,true,false,false,true,false,false,false,true,false]; +const UsrInt_1098 = [false,true,false,true,false,false,true,false,false,false,true,false]; +const UsrInt_1099 = [true,true,false,true,false,false,true,false,false,false,true,false]; +const UsrInt_1100 = [false,false,true,true,false,false,true,false,false,false,true,false]; +const UsrInt_1101 = [true,false,true,true,false,false,true,false,false,false,true,false]; +const UsrInt_1102 = [false,true,true,true,false,false,true,false,false,false,true,false]; +const UsrInt_1103 = [true,true,true,true,false,false,true,false,false,false,true,false]; +const UsrInt_1104 = [false,false,false,false,true,false,true,false,false,false,true,false]; +const UsrInt_1105 = [true,false,false,false,true,false,true,false,false,false,true,false]; +const UsrInt_1106 = [false,true,false,false,true,false,true,false,false,false,true,false]; +const UsrInt_1107 = [true,true,false,false,true,false,true,false,false,false,true,false]; +const UsrInt_1108 = [false,false,true,false,true,false,true,false,false,false,true,false]; +const UsrInt_1109 = [true,false,true,false,true,false,true,false,false,false,true,false]; +const UsrInt_1110 = [false,true,true,false,true,false,true,false,false,false,true,false]; +const UsrInt_1111 = [true,true,true,false,true,false,true,false,false,false,true,false]; +const UsrInt_1112 = [false,false,false,true,true,false,true,false,false,false,true,false]; +const UsrInt_1113 = [true,false,false,true,true,false,true,false,false,false,true,false]; +const UsrInt_1114 = [false,true,false,true,true,false,true,false,false,false,true,false]; +const UsrInt_1115 = [true,true,false,true,true,false,true,false,false,false,true,false]; +const UsrInt_1116 = [false,false,true,true,true,false,true,false,false,false,true,false]; +const UsrInt_1117 = [true,false,true,true,true,false,true,false,false,false,true,false]; +const UsrInt_1118 = [false,true,true,true,true,false,true,false,false,false,true,false]; +const UsrInt_1119 = [true,true,true,true,true,false,true,false,false,false,true,false]; +const UsrInt_1120 = [false,false,false,false,false,true,true,false,false,false,true,false]; +const UsrInt_1121 = [true,false,false,false,false,true,true,false,false,false,true,false]; +const UsrInt_1122 = [false,true,false,false,false,true,true,false,false,false,true,false]; +const UsrInt_1123 = [true,true,false,false,false,true,true,false,false,false,true,false]; +const UsrInt_1124 = [false,false,true,false,false,true,true,false,false,false,true,false]; +const UsrInt_1125 = [true,false,true,false,false,true,true,false,false,false,true,false]; +const UsrInt_1126 = [false,true,true,false,false,true,true,false,false,false,true,false]; +const UsrInt_1127 = [true,true,true,false,false,true,true,false,false,false,true,false]; +const UsrInt_1128 = [false,false,false,true,false,true,true,false,false,false,true,false]; +const UsrInt_1129 = [true,false,false,true,false,true,true,false,false,false,true,false]; +const UsrInt_1130 = [false,true,false,true,false,true,true,false,false,false,true,false]; +const UsrInt_1131 = [true,true,false,true,false,true,true,false,false,false,true,false]; +const UsrInt_1132 = [false,false,true,true,false,true,true,false,false,false,true,false]; +const UsrInt_1133 = [true,false,true,true,false,true,true,false,false,false,true,false]; +const UsrInt_1134 = [false,true,true,true,false,true,true,false,false,false,true,false]; +const UsrInt_1135 = [true,true,true,true,false,true,true,false,false,false,true,false]; +const UsrInt_1136 = [false,false,false,false,true,true,true,false,false,false,true,false]; +const UsrInt_1137 = [true,false,false,false,true,true,true,false,false,false,true,false]; +const UsrInt_1138 = [false,true,false,false,true,true,true,false,false,false,true,false]; +const UsrInt_1139 = [true,true,false,false,true,true,true,false,false,false,true,false]; +const UsrInt_1140 = [false,false,true,false,true,true,true,false,false,false,true,false]; +const UsrInt_1141 = [true,false,true,false,true,true,true,false,false,false,true,false]; +const UsrInt_1142 = [false,true,true,false,true,true,true,false,false,false,true,false]; +const UsrInt_1143 = [true,true,true,false,true,true,true,false,false,false,true,false]; +const UsrInt_1144 = [false,false,false,true,true,true,true,false,false,false,true,false]; +const UsrInt_1145 = [true,false,false,true,true,true,true,false,false,false,true,false]; +const UsrInt_1146 = [false,true,false,true,true,true,true,false,false,false,true,false]; +const UsrInt_1147 = [true,true,false,true,true,true,true,false,false,false,true,false]; +const UsrInt_1148 = [false,false,true,true,true,true,true,false,false,false,true,false]; +const UsrInt_1149 = [true,false,true,true,true,true,true,false,false,false,true,false]; +const UsrInt_1150 = [false,true,true,true,true,true,true,false,false,false,true,false]; +const UsrInt_1151 = [true,true,true,true,true,true,true,false,false,false,true,false]; +const UsrInt_1152 = [false,false,false,false,false,false,false,true,false,false,true,false]; +const UsrInt_1153 = [true,false,false,false,false,false,false,true,false,false,true,false]; +const UsrInt_1154 = [false,true,false,false,false,false,false,true,false,false,true,false]; +const UsrInt_1155 = [true,true,false,false,false,false,false,true,false,false,true,false]; +const UsrInt_1156 = [false,false,true,false,false,false,false,true,false,false,true,false]; +const UsrInt_1157 = [true,false,true,false,false,false,false,true,false,false,true,false]; +const UsrInt_1158 = [false,true,true,false,false,false,false,true,false,false,true,false]; +const UsrInt_1159 = [true,true,true,false,false,false,false,true,false,false,true,false]; +const UsrInt_1160 = [false,false,false,true,false,false,false,true,false,false,true,false]; +const UsrInt_1161 = [true,false,false,true,false,false,false,true,false,false,true,false]; +const UsrInt_1162 = [false,true,false,true,false,false,false,true,false,false,true,false]; +const UsrInt_1163 = [true,true,false,true,false,false,false,true,false,false,true,false]; +const UsrInt_1164 = [false,false,true,true,false,false,false,true,false,false,true,false]; +const UsrInt_1165 = [true,false,true,true,false,false,false,true,false,false,true,false]; +const UsrInt_1166 = [false,true,true,true,false,false,false,true,false,false,true,false]; +const UsrInt_1167 = [true,true,true,true,false,false,false,true,false,false,true,false]; +const UsrInt_1168 = [false,false,false,false,true,false,false,true,false,false,true,false]; +const UsrInt_1169 = [true,false,false,false,true,false,false,true,false,false,true,false]; +const UsrInt_1170 = [false,true,false,false,true,false,false,true,false,false,true,false]; +const UsrInt_1171 = [true,true,false,false,true,false,false,true,false,false,true,false]; +const UsrInt_1172 = [false,false,true,false,true,false,false,true,false,false,true,false]; +const UsrInt_1173 = [true,false,true,false,true,false,false,true,false,false,true,false]; +const UsrInt_1174 = [false,true,true,false,true,false,false,true,false,false,true,false]; +const UsrInt_1175 = [true,true,true,false,true,false,false,true,false,false,true,false]; +const UsrInt_1176 = [false,false,false,true,true,false,false,true,false,false,true,false]; +const UsrInt_1177 = [true,false,false,true,true,false,false,true,false,false,true,false]; +const UsrInt_1178 = [false,true,false,true,true,false,false,true,false,false,true,false]; +const UsrInt_1179 = [true,true,false,true,true,false,false,true,false,false,true,false]; +const UsrInt_1180 = [false,false,true,true,true,false,false,true,false,false,true,false]; +const UsrInt_1181 = [true,false,true,true,true,false,false,true,false,false,true,false]; +const UsrInt_1182 = [false,true,true,true,true,false,false,true,false,false,true,false]; +const UsrInt_1183 = [true,true,true,true,true,false,false,true,false,false,true,false]; +const UsrInt_1184 = [false,false,false,false,false,true,false,true,false,false,true,false]; +const UsrInt_1185 = [true,false,false,false,false,true,false,true,false,false,true,false]; +const UsrInt_1186 = [false,true,false,false,false,true,false,true,false,false,true,false]; +const UsrInt_1187 = [true,true,false,false,false,true,false,true,false,false,true,false]; +const UsrInt_1188 = [false,false,true,false,false,true,false,true,false,false,true,false]; +const UsrInt_1189 = [true,false,true,false,false,true,false,true,false,false,true,false]; +const UsrInt_1190 = [false,true,true,false,false,true,false,true,false,false,true,false]; +const UsrInt_1191 = [true,true,true,false,false,true,false,true,false,false,true,false]; +const UsrInt_1192 = [false,false,false,true,false,true,false,true,false,false,true,false]; +const UsrInt_1193 = [true,false,false,true,false,true,false,true,false,false,true,false]; +const UsrInt_1194 = [false,true,false,true,false,true,false,true,false,false,true,false]; +const UsrInt_1195 = [true,true,false,true,false,true,false,true,false,false,true,false]; +const UsrInt_1196 = [false,false,true,true,false,true,false,true,false,false,true,false]; +const UsrInt_1197 = [true,false,true,true,false,true,false,true,false,false,true,false]; +const UsrInt_1198 = [false,true,true,true,false,true,false,true,false,false,true,false]; +const UsrInt_1199 = [true,true,true,true,false,true,false,true,false,false,true,false]; +const UsrInt_1200 = [false,false,false,false,true,true,false,true,false,false,true,false]; +const UsrInt_1201 = [true,false,false,false,true,true,false,true,false,false,true,false]; +const UsrInt_1202 = [false,true,false,false,true,true,false,true,false,false,true,false]; +const UsrInt_1203 = [true,true,false,false,true,true,false,true,false,false,true,false]; +const UsrInt_1204 = [false,false,true,false,true,true,false,true,false,false,true,false]; +const UsrInt_1205 = [true,false,true,false,true,true,false,true,false,false,true,false]; +const UsrInt_1206 = [false,true,true,false,true,true,false,true,false,false,true,false]; +const UsrInt_1207 = [true,true,true,false,true,true,false,true,false,false,true,false]; +const UsrInt_1208 = [false,false,false,true,true,true,false,true,false,false,true,false]; +const UsrInt_1209 = [true,false,false,true,true,true,false,true,false,false,true,false]; +const UsrInt_1210 = [false,true,false,true,true,true,false,true,false,false,true,false]; +const UsrInt_1211 = [true,true,false,true,true,true,false,true,false,false,true,false]; +const UsrInt_1212 = [false,false,true,true,true,true,false,true,false,false,true,false]; +const UsrInt_1213 = [true,false,true,true,true,true,false,true,false,false,true,false]; +const UsrInt_1214 = [false,true,true,true,true,true,false,true,false,false,true,false]; +const UsrInt_1215 = [true,true,true,true,true,true,false,true,false,false,true,false]; +const UsrInt_1216 = [false,false,false,false,false,false,true,true,false,false,true,false]; +const UsrInt_1217 = [true,false,false,false,false,false,true,true,false,false,true,false]; +const UsrInt_1218 = [false,true,false,false,false,false,true,true,false,false,true,false]; +const UsrInt_1219 = [true,true,false,false,false,false,true,true,false,false,true,false]; +const UsrInt_1220 = [false,false,true,false,false,false,true,true,false,false,true,false]; +const UsrInt_1221 = [true,false,true,false,false,false,true,true,false,false,true,false]; +const UsrInt_1222 = [false,true,true,false,false,false,true,true,false,false,true,false]; +const UsrInt_1223 = [true,true,true,false,false,false,true,true,false,false,true,false]; +const UsrInt_1224 = [false,false,false,true,false,false,true,true,false,false,true,false]; +const UsrInt_1225 = [true,false,false,true,false,false,true,true,false,false,true,false]; +const UsrInt_1226 = [false,true,false,true,false,false,true,true,false,false,true,false]; +const UsrInt_1227 = [true,true,false,true,false,false,true,true,false,false,true,false]; +const UsrInt_1228 = [false,false,true,true,false,false,true,true,false,false,true,false]; +const UsrInt_1229 = [true,false,true,true,false,false,true,true,false,false,true,false]; +const UsrInt_1230 = [false,true,true,true,false,false,true,true,false,false,true,false]; +const UsrInt_1231 = [true,true,true,true,false,false,true,true,false,false,true,false]; +const UsrInt_1232 = [false,false,false,false,true,false,true,true,false,false,true,false]; +const UsrInt_1233 = [true,false,false,false,true,false,true,true,false,false,true,false]; +const UsrInt_1234 = [false,true,false,false,true,false,true,true,false,false,true,false]; +const UsrInt_1235 = [true,true,false,false,true,false,true,true,false,false,true,false]; +const UsrInt_1236 = [false,false,true,false,true,false,true,true,false,false,true,false]; +const UsrInt_1237 = [true,false,true,false,true,false,true,true,false,false,true,false]; +const UsrInt_1238 = [false,true,true,false,true,false,true,true,false,false,true,false]; +const UsrInt_1239 = [true,true,true,false,true,false,true,true,false,false,true,false]; +const UsrInt_1240 = [false,false,false,true,true,false,true,true,false,false,true,false]; +const UsrInt_1241 = [true,false,false,true,true,false,true,true,false,false,true,false]; +const UsrInt_1242 = [false,true,false,true,true,false,true,true,false,false,true,false]; +const UsrInt_1243 = [true,true,false,true,true,false,true,true,false,false,true,false]; +const UsrInt_1244 = [false,false,true,true,true,false,true,true,false,false,true,false]; +const UsrInt_1245 = [true,false,true,true,true,false,true,true,false,false,true,false]; +const UsrInt_1246 = [false,true,true,true,true,false,true,true,false,false,true,false]; +const UsrInt_1247 = [true,true,true,true,true,false,true,true,false,false,true,false]; +const UsrInt_1248 = [false,false,false,false,false,true,true,true,false,false,true,false]; +const UsrInt_1249 = [true,false,false,false,false,true,true,true,false,false,true,false]; +const UsrInt_1250 = [false,true,false,false,false,true,true,true,false,false,true,false]; +const UsrInt_1251 = [true,true,false,false,false,true,true,true,false,false,true,false]; +const UsrInt_1252 = [false,false,true,false,false,true,true,true,false,false,true,false]; +const UsrInt_1253 = [true,false,true,false,false,true,true,true,false,false,true,false]; +const UsrInt_1254 = [false,true,true,false,false,true,true,true,false,false,true,false]; +const UsrInt_1255 = [true,true,true,false,false,true,true,true,false,false,true,false]; +const UsrInt_1256 = [false,false,false,true,false,true,true,true,false,false,true,false]; +const UsrInt_1257 = [true,false,false,true,false,true,true,true,false,false,true,false]; +const UsrInt_1258 = [false,true,false,true,false,true,true,true,false,false,true,false]; +const UsrInt_1259 = [true,true,false,true,false,true,true,true,false,false,true,false]; +const UsrInt_1260 = [false,false,true,true,false,true,true,true,false,false,true,false]; +const UsrInt_1261 = [true,false,true,true,false,true,true,true,false,false,true,false]; +const UsrInt_1262 = [false,true,true,true,false,true,true,true,false,false,true,false]; +const UsrInt_1263 = [true,true,true,true,false,true,true,true,false,false,true,false]; +const UsrInt_1264 = [false,false,false,false,true,true,true,true,false,false,true,false]; +const UsrInt_1265 = [true,false,false,false,true,true,true,true,false,false,true,false]; +const UsrInt_1266 = [false,true,false,false,true,true,true,true,false,false,true,false]; +const UsrInt_1267 = [true,true,false,false,true,true,true,true,false,false,true,false]; +const UsrInt_1268 = [false,false,true,false,true,true,true,true,false,false,true,false]; +const UsrInt_1269 = [true,false,true,false,true,true,true,true,false,false,true,false]; +const UsrInt_1270 = [false,true,true,false,true,true,true,true,false,false,true,false]; +const UsrInt_1271 = [true,true,true,false,true,true,true,true,false,false,true,false]; +const UsrInt_1272 = [false,false,false,true,true,true,true,true,false,false,true,false]; +const UsrInt_1273 = [true,false,false,true,true,true,true,true,false,false,true,false]; +const UsrInt_1274 = [false,true,false,true,true,true,true,true,false,false,true,false]; +const UsrInt_1275 = [true,true,false,true,true,true,true,true,false,false,true,false]; +const UsrInt_1276 = [false,false,true,true,true,true,true,true,false,false,true,false]; +const UsrInt_1277 = [true,false,true,true,true,true,true,true,false,false,true,false]; +const UsrInt_1278 = [false,true,true,true,true,true,true,true,false,false,true,false]; +const UsrInt_1279 = [true,true,true,true,true,true,true,true,false,false,true,false]; +const UsrInt_1280 = [false,false,false,false,false,false,false,false,true,false,true,false]; +const UsrInt_1281 = [true,false,false,false,false,false,false,false,true,false,true,false]; +const UsrInt_1282 = [false,true,false,false,false,false,false,false,true,false,true,false]; +const UsrInt_1283 = [true,true,false,false,false,false,false,false,true,false,true,false]; +const UsrInt_1284 = [false,false,true,false,false,false,false,false,true,false,true,false]; +const UsrInt_1285 = [true,false,true,false,false,false,false,false,true,false,true,false]; +const UsrInt_1286 = [false,true,true,false,false,false,false,false,true,false,true,false]; +const UsrInt_1287 = [true,true,true,false,false,false,false,false,true,false,true,false]; +const UsrInt_1288 = [false,false,false,true,false,false,false,false,true,false,true,false]; +const UsrInt_1289 = [true,false,false,true,false,false,false,false,true,false,true,false]; +const UsrInt_1290 = [false,true,false,true,false,false,false,false,true,false,true,false]; +const UsrInt_1291 = [true,true,false,true,false,false,false,false,true,false,true,false]; +const UsrInt_1292 = [false,false,true,true,false,false,false,false,true,false,true,false]; +const UsrInt_1293 = [true,false,true,true,false,false,false,false,true,false,true,false]; +const UsrInt_1294 = [false,true,true,true,false,false,false,false,true,false,true,false]; +const UsrInt_1295 = [true,true,true,true,false,false,false,false,true,false,true,false]; +const UsrInt_1296 = [false,false,false,false,true,false,false,false,true,false,true,false]; +const UsrInt_1297 = [true,false,false,false,true,false,false,false,true,false,true,false]; +const UsrInt_1298 = [false,true,false,false,true,false,false,false,true,false,true,false]; +const UsrInt_1299 = [true,true,false,false,true,false,false,false,true,false,true,false]; +const UsrInt_1300 = [false,false,true,false,true,false,false,false,true,false,true,false]; +const UsrInt_1301 = [true,false,true,false,true,false,false,false,true,false,true,false]; +const UsrInt_1302 = [false,true,true,false,true,false,false,false,true,false,true,false]; +const UsrInt_1303 = [true,true,true,false,true,false,false,false,true,false,true,false]; +const UsrInt_1304 = [false,false,false,true,true,false,false,false,true,false,true,false]; +const UsrInt_1305 = [true,false,false,true,true,false,false,false,true,false,true,false]; +const UsrInt_1306 = [false,true,false,true,true,false,false,false,true,false,true,false]; +const UsrInt_1307 = [true,true,false,true,true,false,false,false,true,false,true,false]; +const UsrInt_1308 = [false,false,true,true,true,false,false,false,true,false,true,false]; +const UsrInt_1309 = [true,false,true,true,true,false,false,false,true,false,true,false]; +const UsrInt_1310 = [false,true,true,true,true,false,false,false,true,false,true,false]; +const UsrInt_1311 = [true,true,true,true,true,false,false,false,true,false,true,false]; +const UsrInt_1312 = [false,false,false,false,false,true,false,false,true,false,true,false]; +const UsrInt_1313 = [true,false,false,false,false,true,false,false,true,false,true,false]; +const UsrInt_1314 = [false,true,false,false,false,true,false,false,true,false,true,false]; +const UsrInt_1315 = [true,true,false,false,false,true,false,false,true,false,true,false]; +const UsrInt_1316 = [false,false,true,false,false,true,false,false,true,false,true,false]; +const UsrInt_1317 = [true,false,true,false,false,true,false,false,true,false,true,false]; +const UsrInt_1318 = [false,true,true,false,false,true,false,false,true,false,true,false]; +const UsrInt_1319 = [true,true,true,false,false,true,false,false,true,false,true,false]; +const UsrInt_1320 = [false,false,false,true,false,true,false,false,true,false,true,false]; +const UsrInt_1321 = [true,false,false,true,false,true,false,false,true,false,true,false]; +const UsrInt_1322 = [false,true,false,true,false,true,false,false,true,false,true,false]; +const UsrInt_1323 = [true,true,false,true,false,true,false,false,true,false,true,false]; +const UsrInt_1324 = [false,false,true,true,false,true,false,false,true,false,true,false]; +const UsrInt_1325 = [true,false,true,true,false,true,false,false,true,false,true,false]; +const UsrInt_1326 = [false,true,true,true,false,true,false,false,true,false,true,false]; +const UsrInt_1327 = [true,true,true,true,false,true,false,false,true,false,true,false]; +const UsrInt_1328 = [false,false,false,false,true,true,false,false,true,false,true,false]; +const UsrInt_1329 = [true,false,false,false,true,true,false,false,true,false,true,false]; +const UsrInt_1330 = [false,true,false,false,true,true,false,false,true,false,true,false]; +const UsrInt_1331 = [true,true,false,false,true,true,false,false,true,false,true,false]; +const UsrInt_1332 = [false,false,true,false,true,true,false,false,true,false,true,false]; +const UsrInt_1333 = [true,false,true,false,true,true,false,false,true,false,true,false]; +const UsrInt_1334 = [false,true,true,false,true,true,false,false,true,false,true,false]; +const UsrInt_1335 = [true,true,true,false,true,true,false,false,true,false,true,false]; +const UsrInt_1336 = [false,false,false,true,true,true,false,false,true,false,true,false]; +const UsrInt_1337 = [true,false,false,true,true,true,false,false,true,false,true,false]; +const UsrInt_1338 = [false,true,false,true,true,true,false,false,true,false,true,false]; +const UsrInt_1339 = [true,true,false,true,true,true,false,false,true,false,true,false]; +const UsrInt_1340 = [false,false,true,true,true,true,false,false,true,false,true,false]; +const UsrInt_1341 = [true,false,true,true,true,true,false,false,true,false,true,false]; +const UsrInt_1342 = [false,true,true,true,true,true,false,false,true,false,true,false]; +const UsrInt_1343 = [true,true,true,true,true,true,false,false,true,false,true,false]; +const UsrInt_1344 = [false,false,false,false,false,false,true,false,true,false,true,false]; +const UsrInt_1345 = [true,false,false,false,false,false,true,false,true,false,true,false]; +const UsrInt_1346 = [false,true,false,false,false,false,true,false,true,false,true,false]; +const UsrInt_1347 = [true,true,false,false,false,false,true,false,true,false,true,false]; +const UsrInt_1348 = [false,false,true,false,false,false,true,false,true,false,true,false]; +const UsrInt_1349 = [true,false,true,false,false,false,true,false,true,false,true,false]; +const UsrInt_1350 = [false,true,true,false,false,false,true,false,true,false,true,false]; +const UsrInt_1351 = [true,true,true,false,false,false,true,false,true,false,true,false]; +const UsrInt_1352 = [false,false,false,true,false,false,true,false,true,false,true,false]; +const UsrInt_1353 = [true,false,false,true,false,false,true,false,true,false,true,false]; +const UsrInt_1354 = [false,true,false,true,false,false,true,false,true,false,true,false]; +const UsrInt_1355 = [true,true,false,true,false,false,true,false,true,false,true,false]; +const UsrInt_1356 = [false,false,true,true,false,false,true,false,true,false,true,false]; +const UsrInt_1357 = [true,false,true,true,false,false,true,false,true,false,true,false]; +const UsrInt_1358 = [false,true,true,true,false,false,true,false,true,false,true,false]; +const UsrInt_1359 = [true,true,true,true,false,false,true,false,true,false,true,false]; +const UsrInt_1360 = [false,false,false,false,true,false,true,false,true,false,true,false]; +const UsrInt_1361 = [true,false,false,false,true,false,true,false,true,false,true,false]; +const UsrInt_1362 = [false,true,false,false,true,false,true,false,true,false,true,false]; +const UsrInt_1363 = [true,true,false,false,true,false,true,false,true,false,true,false]; +const UsrInt_1364 = [false,false,true,false,true,false,true,false,true,false,true,false]; +const UsrInt_1365 = [true,false,true,false,true,false,true,false,true,false,true,false]; +const UsrInt_1366 = [false,true,true,false,true,false,true,false,true,false,true,false]; +const UsrInt_1367 = [true,true,true,false,true,false,true,false,true,false,true,false]; +const UsrInt_1368 = [false,false,false,true,true,false,true,false,true,false,true,false]; +const UsrInt_1369 = [true,false,false,true,true,false,true,false,true,false,true,false]; +const UsrInt_1370 = [false,true,false,true,true,false,true,false,true,false,true,false]; +const UsrInt_1371 = [true,true,false,true,true,false,true,false,true,false,true,false]; +const UsrInt_1372 = [false,false,true,true,true,false,true,false,true,false,true,false]; +const UsrInt_1373 = [true,false,true,true,true,false,true,false,true,false,true,false]; +const UsrInt_1374 = [false,true,true,true,true,false,true,false,true,false,true,false]; +const UsrInt_1375 = [true,true,true,true,true,false,true,false,true,false,true,false]; +const UsrInt_1376 = [false,false,false,false,false,true,true,false,true,false,true,false]; +const UsrInt_1377 = [true,false,false,false,false,true,true,false,true,false,true,false]; +const UsrInt_1378 = [false,true,false,false,false,true,true,false,true,false,true,false]; +const UsrInt_1379 = [true,true,false,false,false,true,true,false,true,false,true,false]; +const UsrInt_1380 = [false,false,true,false,false,true,true,false,true,false,true,false]; +const UsrInt_1381 = [true,false,true,false,false,true,true,false,true,false,true,false]; +const UsrInt_1382 = [false,true,true,false,false,true,true,false,true,false,true,false]; +const UsrInt_1383 = [true,true,true,false,false,true,true,false,true,false,true,false]; +const UsrInt_1384 = [false,false,false,true,false,true,true,false,true,false,true,false]; +const UsrInt_1385 = [true,false,false,true,false,true,true,false,true,false,true,false]; +const UsrInt_1386 = [false,true,false,true,false,true,true,false,true,false,true,false]; +const UsrInt_1387 = [true,true,false,true,false,true,true,false,true,false,true,false]; +const UsrInt_1388 = [false,false,true,true,false,true,true,false,true,false,true,false]; +const UsrInt_1389 = [true,false,true,true,false,true,true,false,true,false,true,false]; +const UsrInt_1390 = [false,true,true,true,false,true,true,false,true,false,true,false]; +const UsrInt_1391 = [true,true,true,true,false,true,true,false,true,false,true,false]; +const UsrInt_1392 = [false,false,false,false,true,true,true,false,true,false,true,false]; +const UsrInt_1393 = [true,false,false,false,true,true,true,false,true,false,true,false]; +const UsrInt_1394 = [false,true,false,false,true,true,true,false,true,false,true,false]; +const UsrInt_1395 = [true,true,false,false,true,true,true,false,true,false,true,false]; +const UsrInt_1396 = [false,false,true,false,true,true,true,false,true,false,true,false]; +const UsrInt_1397 = [true,false,true,false,true,true,true,false,true,false,true,false]; +const UsrInt_1398 = [false,true,true,false,true,true,true,false,true,false,true,false]; +const UsrInt_1399 = [true,true,true,false,true,true,true,false,true,false,true,false]; +const UsrInt_1400 = [false,false,false,true,true,true,true,false,true,false,true,false]; +const UsrInt_1401 = [true,false,false,true,true,true,true,false,true,false,true,false]; +const UsrInt_1402 = [false,true,false,true,true,true,true,false,true,false,true,false]; +const UsrInt_1403 = [true,true,false,true,true,true,true,false,true,false,true,false]; +const UsrInt_1404 = [false,false,true,true,true,true,true,false,true,false,true,false]; +const UsrInt_1405 = [true,false,true,true,true,true,true,false,true,false,true,false]; +const UsrInt_1406 = [false,true,true,true,true,true,true,false,true,false,true,false]; +const UsrInt_1407 = [true,true,true,true,true,true,true,false,true,false,true,false]; +const UsrInt_1408 = [false,false,false,false,false,false,false,true,true,false,true,false]; +const UsrInt_1409 = [true,false,false,false,false,false,false,true,true,false,true,false]; +const UsrInt_1410 = [false,true,false,false,false,false,false,true,true,false,true,false]; +const UsrInt_1411 = [true,true,false,false,false,false,false,true,true,false,true,false]; +const UsrInt_1412 = [false,false,true,false,false,false,false,true,true,false,true,false]; +const UsrInt_1413 = [true,false,true,false,false,false,false,true,true,false,true,false]; +const UsrInt_1414 = [false,true,true,false,false,false,false,true,true,false,true,false]; +const UsrInt_1415 = [true,true,true,false,false,false,false,true,true,false,true,false]; +const UsrInt_1416 = [false,false,false,true,false,false,false,true,true,false,true,false]; +const UsrInt_1417 = [true,false,false,true,false,false,false,true,true,false,true,false]; +const UsrInt_1418 = [false,true,false,true,false,false,false,true,true,false,true,false]; +const UsrInt_1419 = [true,true,false,true,false,false,false,true,true,false,true,false]; +const UsrInt_1420 = [false,false,true,true,false,false,false,true,true,false,true,false]; +const UsrInt_1421 = [true,false,true,true,false,false,false,true,true,false,true,false]; +const UsrInt_1422 = [false,true,true,true,false,false,false,true,true,false,true,false]; +const UsrInt_1423 = [true,true,true,true,false,false,false,true,true,false,true,false]; +const UsrInt_1424 = [false,false,false,false,true,false,false,true,true,false,true,false]; +const UsrInt_1425 = [true,false,false,false,true,false,false,true,true,false,true,false]; +const UsrInt_1426 = [false,true,false,false,true,false,false,true,true,false,true,false]; +const UsrInt_1427 = [true,true,false,false,true,false,false,true,true,false,true,false]; +const UsrInt_1428 = [false,false,true,false,true,false,false,true,true,false,true,false]; +const UsrInt_1429 = [true,false,true,false,true,false,false,true,true,false,true,false]; +const UsrInt_1430 = [false,true,true,false,true,false,false,true,true,false,true,false]; +const UsrInt_1431 = [true,true,true,false,true,false,false,true,true,false,true,false]; +const UsrInt_1432 = [false,false,false,true,true,false,false,true,true,false,true,false]; +const UsrInt_1433 = [true,false,false,true,true,false,false,true,true,false,true,false]; +const UsrInt_1434 = [false,true,false,true,true,false,false,true,true,false,true,false]; +const UsrInt_1435 = [true,true,false,true,true,false,false,true,true,false,true,false]; +const UsrInt_1436 = [false,false,true,true,true,false,false,true,true,false,true,false]; +const UsrInt_1437 = [true,false,true,true,true,false,false,true,true,false,true,false]; +const UsrInt_1438 = [false,true,true,true,true,false,false,true,true,false,true,false]; +const UsrInt_1439 = [true,true,true,true,true,false,false,true,true,false,true,false]; +const UsrInt_1440 = [false,false,false,false,false,true,false,true,true,false,true,false]; +const UsrInt_1441 = [true,false,false,false,false,true,false,true,true,false,true,false]; +const UsrInt_1442 = [false,true,false,false,false,true,false,true,true,false,true,false]; +const UsrInt_1443 = [true,true,false,false,false,true,false,true,true,false,true,false]; +const UsrInt_1444 = [false,false,true,false,false,true,false,true,true,false,true,false]; +const UsrInt_1445 = [true,false,true,false,false,true,false,true,true,false,true,false]; +const UsrInt_1446 = [false,true,true,false,false,true,false,true,true,false,true,false]; +const UsrInt_1447 = [true,true,true,false,false,true,false,true,true,false,true,false]; +const UsrInt_1448 = [false,false,false,true,false,true,false,true,true,false,true,false]; +const UsrInt_1449 = [true,false,false,true,false,true,false,true,true,false,true,false]; +const UsrInt_1450 = [false,true,false,true,false,true,false,true,true,false,true,false]; +const UsrInt_1451 = [true,true,false,true,false,true,false,true,true,false,true,false]; +const UsrInt_1452 = [false,false,true,true,false,true,false,true,true,false,true,false]; +const UsrInt_1453 = [true,false,true,true,false,true,false,true,true,false,true,false]; +const UsrInt_1454 = [false,true,true,true,false,true,false,true,true,false,true,false]; +const UsrInt_1455 = [true,true,true,true,false,true,false,true,true,false,true,false]; +const UsrInt_1456 = [false,false,false,false,true,true,false,true,true,false,true,false]; +const UsrInt_1457 = [true,false,false,false,true,true,false,true,true,false,true,false]; +const UsrInt_1458 = [false,true,false,false,true,true,false,true,true,false,true,false]; +const UsrInt_1459 = [true,true,false,false,true,true,false,true,true,false,true,false]; +const UsrInt_1460 = [false,false,true,false,true,true,false,true,true,false,true,false]; +const UsrInt_1461 = [true,false,true,false,true,true,false,true,true,false,true,false]; +const UsrInt_1462 = [false,true,true,false,true,true,false,true,true,false,true,false]; +const UsrInt_1463 = [true,true,true,false,true,true,false,true,true,false,true,false]; +const UsrInt_1464 = [false,false,false,true,true,true,false,true,true,false,true,false]; +const UsrInt_1465 = [true,false,false,true,true,true,false,true,true,false,true,false]; +const UsrInt_1466 = [false,true,false,true,true,true,false,true,true,false,true,false]; +const UsrInt_1467 = [true,true,false,true,true,true,false,true,true,false,true,false]; +const UsrInt_1468 = [false,false,true,true,true,true,false,true,true,false,true,false]; +const UsrInt_1469 = [true,false,true,true,true,true,false,true,true,false,true,false]; +const UsrInt_1470 = [false,true,true,true,true,true,false,true,true,false,true,false]; +const UsrInt_1471 = [true,true,true,true,true,true,false,true,true,false,true,false]; +const UsrInt_1472 = [false,false,false,false,false,false,true,true,true,false,true,false]; +const UsrInt_1473 = [true,false,false,false,false,false,true,true,true,false,true,false]; +const UsrInt_1474 = [false,true,false,false,false,false,true,true,true,false,true,false]; +const UsrInt_1475 = [true,true,false,false,false,false,true,true,true,false,true,false]; +const UsrInt_1476 = [false,false,true,false,false,false,true,true,true,false,true,false]; +const UsrInt_1477 = [true,false,true,false,false,false,true,true,true,false,true,false]; +const UsrInt_1478 = [false,true,true,false,false,false,true,true,true,false,true,false]; +const UsrInt_1479 = [true,true,true,false,false,false,true,true,true,false,true,false]; +const UsrInt_1480 = [false,false,false,true,false,false,true,true,true,false,true,false]; +const UsrInt_1481 = [true,false,false,true,false,false,true,true,true,false,true,false]; +const UsrInt_1482 = [false,true,false,true,false,false,true,true,true,false,true,false]; +const UsrInt_1483 = [true,true,false,true,false,false,true,true,true,false,true,false]; +const UsrInt_1484 = [false,false,true,true,false,false,true,true,true,false,true,false]; +const UsrInt_1485 = [true,false,true,true,false,false,true,true,true,false,true,false]; +const UsrInt_1486 = [false,true,true,true,false,false,true,true,true,false,true,false]; +const UsrInt_1487 = [true,true,true,true,false,false,true,true,true,false,true,false]; +const UsrInt_1488 = [false,false,false,false,true,false,true,true,true,false,true,false]; +const UsrInt_1489 = [true,false,false,false,true,false,true,true,true,false,true,false]; +const UsrInt_1490 = [false,true,false,false,true,false,true,true,true,false,true,false]; +const UsrInt_1491 = [true,true,false,false,true,false,true,true,true,false,true,false]; +const UsrInt_1492 = [false,false,true,false,true,false,true,true,true,false,true,false]; +const UsrInt_1493 = [true,false,true,false,true,false,true,true,true,false,true,false]; +const UsrInt_1494 = [false,true,true,false,true,false,true,true,true,false,true,false]; +const UsrInt_1495 = [true,true,true,false,true,false,true,true,true,false,true,false]; +const UsrInt_1496 = [false,false,false,true,true,false,true,true,true,false,true,false]; +const UsrInt_1497 = [true,false,false,true,true,false,true,true,true,false,true,false]; +const UsrInt_1498 = [false,true,false,true,true,false,true,true,true,false,true,false]; +const UsrInt_1499 = [true,true,false,true,true,false,true,true,true,false,true,false]; +const UsrInt_1500 = [false,false,true,true,true,false,true,true,true,false,true,false]; +const UsrInt_1501 = [true,false,true,true,true,false,true,true,true,false,true,false]; +const UsrInt_1502 = [false,true,true,true,true,false,true,true,true,false,true,false]; +const UsrInt_1503 = [true,true,true,true,true,false,true,true,true,false,true,false]; +const UsrInt_1504 = [false,false,false,false,false,true,true,true,true,false,true,false]; +const UsrInt_1505 = [true,false,false,false,false,true,true,true,true,false,true,false]; +const UsrInt_1506 = [false,true,false,false,false,true,true,true,true,false,true,false]; +const UsrInt_1507 = [true,true,false,false,false,true,true,true,true,false,true,false]; +const UsrInt_1508 = [false,false,true,false,false,true,true,true,true,false,true,false]; +const UsrInt_1509 = [true,false,true,false,false,true,true,true,true,false,true,false]; +const UsrInt_1510 = [false,true,true,false,false,true,true,true,true,false,true,false]; +const UsrInt_1511 = [true,true,true,false,false,true,true,true,true,false,true,false]; +const UsrInt_1512 = [false,false,false,true,false,true,true,true,true,false,true,false]; +const UsrInt_1513 = [true,false,false,true,false,true,true,true,true,false,true,false]; +const UsrInt_1514 = [false,true,false,true,false,true,true,true,true,false,true,false]; +const UsrInt_1515 = [true,true,false,true,false,true,true,true,true,false,true,false]; +const UsrInt_1516 = [false,false,true,true,false,true,true,true,true,false,true,false]; +const UsrInt_1517 = [true,false,true,true,false,true,true,true,true,false,true,false]; +const UsrInt_1518 = [false,true,true,true,false,true,true,true,true,false,true,false]; +const UsrInt_1519 = [true,true,true,true,false,true,true,true,true,false,true,false]; +const UsrInt_1520 = [false,false,false,false,true,true,true,true,true,false,true,false]; +const UsrInt_1521 = [true,false,false,false,true,true,true,true,true,false,true,false]; +const UsrInt_1522 = [false,true,false,false,true,true,true,true,true,false,true,false]; +const UsrInt_1523 = [true,true,false,false,true,true,true,true,true,false,true,false]; +const UsrInt_1524 = [false,false,true,false,true,true,true,true,true,false,true,false]; +const UsrInt_1525 = [true,false,true,false,true,true,true,true,true,false,true,false]; +const UsrInt_1526 = [false,true,true,false,true,true,true,true,true,false,true,false]; +const UsrInt_1527 = [true,true,true,false,true,true,true,true,true,false,true,false]; +const UsrInt_1528 = [false,false,false,true,true,true,true,true,true,false,true,false]; +const UsrInt_1529 = [true,false,false,true,true,true,true,true,true,false,true,false]; +const UsrInt_1530 = [false,true,false,true,true,true,true,true,true,false,true,false]; +const UsrInt_1531 = [true,true,false,true,true,true,true,true,true,false,true,false]; +const UsrInt_1532 = [false,false,true,true,true,true,true,true,true,false,true,false]; +const UsrInt_1533 = [true,false,true,true,true,true,true,true,true,false,true,false]; +const UsrInt_1534 = [false,true,true,true,true,true,true,true,true,false,true,false]; +const UsrInt_1535 = [true,true,true,true,true,true,true,true,true,false,true,false]; +const UsrInt_1536 = [false,false,false,false,false,false,false,false,false,true,true,false]; +const UsrInt_1537 = [true,false,false,false,false,false,false,false,false,true,true,false]; +const UsrInt_1538 = [false,true,false,false,false,false,false,false,false,true,true,false]; +const UsrInt_1539 = [true,true,false,false,false,false,false,false,false,true,true,false]; +const UsrInt_1540 = [false,false,true,false,false,false,false,false,false,true,true,false]; +const UsrInt_1541 = [true,false,true,false,false,false,false,false,false,true,true,false]; +const UsrInt_1542 = [false,true,true,false,false,false,false,false,false,true,true,false]; +const UsrInt_1543 = [true,true,true,false,false,false,false,false,false,true,true,false]; +const UsrInt_1544 = [false,false,false,true,false,false,false,false,false,true,true,false]; +const UsrInt_1545 = [true,false,false,true,false,false,false,false,false,true,true,false]; +const UsrInt_1546 = [false,true,false,true,false,false,false,false,false,true,true,false]; +const UsrInt_1547 = [true,true,false,true,false,false,false,false,false,true,true,false]; +const UsrInt_1548 = [false,false,true,true,false,false,false,false,false,true,true,false]; +const UsrInt_1549 = [true,false,true,true,false,false,false,false,false,true,true,false]; +const UsrInt_1550 = [false,true,true,true,false,false,false,false,false,true,true,false]; +const UsrInt_1551 = [true,true,true,true,false,false,false,false,false,true,true,false]; +const UsrInt_1552 = [false,false,false,false,true,false,false,false,false,true,true,false]; +const UsrInt_1553 = [true,false,false,false,true,false,false,false,false,true,true,false]; +const UsrInt_1554 = [false,true,false,false,true,false,false,false,false,true,true,false]; +const UsrInt_1555 = [true,true,false,false,true,false,false,false,false,true,true,false]; +const UsrInt_1556 = [false,false,true,false,true,false,false,false,false,true,true,false]; +const UsrInt_1557 = [true,false,true,false,true,false,false,false,false,true,true,false]; +const UsrInt_1558 = [false,true,true,false,true,false,false,false,false,true,true,false]; +const UsrInt_1559 = [true,true,true,false,true,false,false,false,false,true,true,false]; +const UsrInt_1560 = [false,false,false,true,true,false,false,false,false,true,true,false]; +const UsrInt_1561 = [true,false,false,true,true,false,false,false,false,true,true,false]; +const UsrInt_1562 = [false,true,false,true,true,false,false,false,false,true,true,false]; +const UsrInt_1563 = [true,true,false,true,true,false,false,false,false,true,true,false]; +const UsrInt_1564 = [false,false,true,true,true,false,false,false,false,true,true,false]; +const UsrInt_1565 = [true,false,true,true,true,false,false,false,false,true,true,false]; +const UsrInt_1566 = [false,true,true,true,true,false,false,false,false,true,true,false]; +const UsrInt_1567 = [true,true,true,true,true,false,false,false,false,true,true,false]; +const UsrInt_1568 = [false,false,false,false,false,true,false,false,false,true,true,false]; +const UsrInt_1569 = [true,false,false,false,false,true,false,false,false,true,true,false]; +const UsrInt_1570 = [false,true,false,false,false,true,false,false,false,true,true,false]; +const UsrInt_1571 = [true,true,false,false,false,true,false,false,false,true,true,false]; +const UsrInt_1572 = [false,false,true,false,false,true,false,false,false,true,true,false]; +const UsrInt_1573 = [true,false,true,false,false,true,false,false,false,true,true,false]; +const UsrInt_1574 = [false,true,true,false,false,true,false,false,false,true,true,false]; +const UsrInt_1575 = [true,true,true,false,false,true,false,false,false,true,true,false]; +const UsrInt_1576 = [false,false,false,true,false,true,false,false,false,true,true,false]; +const UsrInt_1577 = [true,false,false,true,false,true,false,false,false,true,true,false]; +const UsrInt_1578 = [false,true,false,true,false,true,false,false,false,true,true,false]; +const UsrInt_1579 = [true,true,false,true,false,true,false,false,false,true,true,false]; +const UsrInt_1580 = [false,false,true,true,false,true,false,false,false,true,true,false]; +const UsrInt_1581 = [true,false,true,true,false,true,false,false,false,true,true,false]; +const UsrInt_1582 = [false,true,true,true,false,true,false,false,false,true,true,false]; +const UsrInt_1583 = [true,true,true,true,false,true,false,false,false,true,true,false]; +const UsrInt_1584 = [false,false,false,false,true,true,false,false,false,true,true,false]; +const UsrInt_1585 = [true,false,false,false,true,true,false,false,false,true,true,false]; +const UsrInt_1586 = [false,true,false,false,true,true,false,false,false,true,true,false]; +const UsrInt_1587 = [true,true,false,false,true,true,false,false,false,true,true,false]; +const UsrInt_1588 = [false,false,true,false,true,true,false,false,false,true,true,false]; +const UsrInt_1589 = [true,false,true,false,true,true,false,false,false,true,true,false]; +const UsrInt_1590 = [false,true,true,false,true,true,false,false,false,true,true,false]; +const UsrInt_1591 = [true,true,true,false,true,true,false,false,false,true,true,false]; +const UsrInt_1592 = [false,false,false,true,true,true,false,false,false,true,true,false]; +const UsrInt_1593 = [true,false,false,true,true,true,false,false,false,true,true,false]; +const UsrInt_1594 = [false,true,false,true,true,true,false,false,false,true,true,false]; +const UsrInt_1595 = [true,true,false,true,true,true,false,false,false,true,true,false]; +const UsrInt_1596 = [false,false,true,true,true,true,false,false,false,true,true,false]; +const UsrInt_1597 = [true,false,true,true,true,true,false,false,false,true,true,false]; +const UsrInt_1598 = [false,true,true,true,true,true,false,false,false,true,true,false]; +const UsrInt_1599 = [true,true,true,true,true,true,false,false,false,true,true,false]; +const UsrInt_1600 = [false,false,false,false,false,false,true,false,false,true,true,false]; +const UsrInt_1601 = [true,false,false,false,false,false,true,false,false,true,true,false]; +const UsrInt_1602 = [false,true,false,false,false,false,true,false,false,true,true,false]; +const UsrInt_1603 = [true,true,false,false,false,false,true,false,false,true,true,false]; +const UsrInt_1604 = [false,false,true,false,false,false,true,false,false,true,true,false]; +const UsrInt_1605 = [true,false,true,false,false,false,true,false,false,true,true,false]; +const UsrInt_1606 = [false,true,true,false,false,false,true,false,false,true,true,false]; +const UsrInt_1607 = [true,true,true,false,false,false,true,false,false,true,true,false]; +const UsrInt_1608 = [false,false,false,true,false,false,true,false,false,true,true,false]; +const UsrInt_1609 = [true,false,false,true,false,false,true,false,false,true,true,false]; +const UsrInt_1610 = [false,true,false,true,false,false,true,false,false,true,true,false]; +const UsrInt_1611 = [true,true,false,true,false,false,true,false,false,true,true,false]; +const UsrInt_1612 = [false,false,true,true,false,false,true,false,false,true,true,false]; +const UsrInt_1613 = [true,false,true,true,false,false,true,false,false,true,true,false]; +const UsrInt_1614 = [false,true,true,true,false,false,true,false,false,true,true,false]; +const UsrInt_1615 = [true,true,true,true,false,false,true,false,false,true,true,false]; +const UsrInt_1616 = [false,false,false,false,true,false,true,false,false,true,true,false]; +const UsrInt_1617 = [true,false,false,false,true,false,true,false,false,true,true,false]; +const UsrInt_1618 = [false,true,false,false,true,false,true,false,false,true,true,false]; +const UsrInt_1619 = [true,true,false,false,true,false,true,false,false,true,true,false]; +const UsrInt_1620 = [false,false,true,false,true,false,true,false,false,true,true,false]; +const UsrInt_1621 = [true,false,true,false,true,false,true,false,false,true,true,false]; +const UsrInt_1622 = [false,true,true,false,true,false,true,false,false,true,true,false]; +const UsrInt_1623 = [true,true,true,false,true,false,true,false,false,true,true,false]; +const UsrInt_1624 = [false,false,false,true,true,false,true,false,false,true,true,false]; +const UsrInt_1625 = [true,false,false,true,true,false,true,false,false,true,true,false]; +const UsrInt_1626 = [false,true,false,true,true,false,true,false,false,true,true,false]; +const UsrInt_1627 = [true,true,false,true,true,false,true,false,false,true,true,false]; +const UsrInt_1628 = [false,false,true,true,true,false,true,false,false,true,true,false]; +const UsrInt_1629 = [true,false,true,true,true,false,true,false,false,true,true,false]; +const UsrInt_1630 = [false,true,true,true,true,false,true,false,false,true,true,false]; +const UsrInt_1631 = [true,true,true,true,true,false,true,false,false,true,true,false]; +const UsrInt_1632 = [false,false,false,false,false,true,true,false,false,true,true,false]; +const UsrInt_1633 = [true,false,false,false,false,true,true,false,false,true,true,false]; +const UsrInt_1634 = [false,true,false,false,false,true,true,false,false,true,true,false]; +const UsrInt_1635 = [true,true,false,false,false,true,true,false,false,true,true,false]; +const UsrInt_1636 = [false,false,true,false,false,true,true,false,false,true,true,false]; +const UsrInt_1637 = [true,false,true,false,false,true,true,false,false,true,true,false]; +const UsrInt_1638 = [false,true,true,false,false,true,true,false,false,true,true,false]; +const UsrInt_1639 = [true,true,true,false,false,true,true,false,false,true,true,false]; +const UsrInt_1640 = [false,false,false,true,false,true,true,false,false,true,true,false]; +const UsrInt_1641 = [true,false,false,true,false,true,true,false,false,true,true,false]; +const UsrInt_1642 = [false,true,false,true,false,true,true,false,false,true,true,false]; +const UsrInt_1643 = [true,true,false,true,false,true,true,false,false,true,true,false]; +const UsrInt_1644 = [false,false,true,true,false,true,true,false,false,true,true,false]; +const UsrInt_1645 = [true,false,true,true,false,true,true,false,false,true,true,false]; +const UsrInt_1646 = [false,true,true,true,false,true,true,false,false,true,true,false]; +const UsrInt_1647 = [true,true,true,true,false,true,true,false,false,true,true,false]; +const UsrInt_1648 = [false,false,false,false,true,true,true,false,false,true,true,false]; +const UsrInt_1649 = [true,false,false,false,true,true,true,false,false,true,true,false]; +const UsrInt_1650 = [false,true,false,false,true,true,true,false,false,true,true,false]; +const UsrInt_1651 = [true,true,false,false,true,true,true,false,false,true,true,false]; +const UsrInt_1652 = [false,false,true,false,true,true,true,false,false,true,true,false]; +const UsrInt_1653 = [true,false,true,false,true,true,true,false,false,true,true,false]; +const UsrInt_1654 = [false,true,true,false,true,true,true,false,false,true,true,false]; +const UsrInt_1655 = [true,true,true,false,true,true,true,false,false,true,true,false]; +const UsrInt_1656 = [false,false,false,true,true,true,true,false,false,true,true,false]; +const UsrInt_1657 = [true,false,false,true,true,true,true,false,false,true,true,false]; +const UsrInt_1658 = [false,true,false,true,true,true,true,false,false,true,true,false]; +const UsrInt_1659 = [true,true,false,true,true,true,true,false,false,true,true,false]; +const UsrInt_1660 = [false,false,true,true,true,true,true,false,false,true,true,false]; +const UsrInt_1661 = [true,false,true,true,true,true,true,false,false,true,true,false]; +const UsrInt_1662 = [false,true,true,true,true,true,true,false,false,true,true,false]; +const UsrInt_1663 = [true,true,true,true,true,true,true,false,false,true,true,false]; +const UsrInt_1664 = [false,false,false,false,false,false,false,true,false,true,true,false]; +const UsrInt_1665 = [true,false,false,false,false,false,false,true,false,true,true,false]; +const UsrInt_1666 = [false,true,false,false,false,false,false,true,false,true,true,false]; +const UsrInt_1667 = [true,true,false,false,false,false,false,true,false,true,true,false]; +const UsrInt_1668 = [false,false,true,false,false,false,false,true,false,true,true,false]; +const UsrInt_1669 = [true,false,true,false,false,false,false,true,false,true,true,false]; +const UsrInt_1670 = [false,true,true,false,false,false,false,true,false,true,true,false]; +const UsrInt_1671 = [true,true,true,false,false,false,false,true,false,true,true,false]; +const UsrInt_1672 = [false,false,false,true,false,false,false,true,false,true,true,false]; +const UsrInt_1673 = [true,false,false,true,false,false,false,true,false,true,true,false]; +const UsrInt_1674 = [false,true,false,true,false,false,false,true,false,true,true,false]; +const UsrInt_1675 = [true,true,false,true,false,false,false,true,false,true,true,false]; +const UsrInt_1676 = [false,false,true,true,false,false,false,true,false,true,true,false]; +const UsrInt_1677 = [true,false,true,true,false,false,false,true,false,true,true,false]; +const UsrInt_1678 = [false,true,true,true,false,false,false,true,false,true,true,false]; +const UsrInt_1679 = [true,true,true,true,false,false,false,true,false,true,true,false]; +const UsrInt_1680 = [false,false,false,false,true,false,false,true,false,true,true,false]; +const UsrInt_1681 = [true,false,false,false,true,false,false,true,false,true,true,false]; +const UsrInt_1682 = [false,true,false,false,true,false,false,true,false,true,true,false]; +const UsrInt_1683 = [true,true,false,false,true,false,false,true,false,true,true,false]; +const UsrInt_1684 = [false,false,true,false,true,false,false,true,false,true,true,false]; +const UsrInt_1685 = [true,false,true,false,true,false,false,true,false,true,true,false]; +const UsrInt_1686 = [false,true,true,false,true,false,false,true,false,true,true,false]; +const UsrInt_1687 = [true,true,true,false,true,false,false,true,false,true,true,false]; +const UsrInt_1688 = [false,false,false,true,true,false,false,true,false,true,true,false]; +const UsrInt_1689 = [true,false,false,true,true,false,false,true,false,true,true,false]; +const UsrInt_1690 = [false,true,false,true,true,false,false,true,false,true,true,false]; +const UsrInt_1691 = [true,true,false,true,true,false,false,true,false,true,true,false]; +const UsrInt_1692 = [false,false,true,true,true,false,false,true,false,true,true,false]; +const UsrInt_1693 = [true,false,true,true,true,false,false,true,false,true,true,false]; +const UsrInt_1694 = [false,true,true,true,true,false,false,true,false,true,true,false]; +const UsrInt_1695 = [true,true,true,true,true,false,false,true,false,true,true,false]; +const UsrInt_1696 = [false,false,false,false,false,true,false,true,false,true,true,false]; +const UsrInt_1697 = [true,false,false,false,false,true,false,true,false,true,true,false]; +const UsrInt_1698 = [false,true,false,false,false,true,false,true,false,true,true,false]; +const UsrInt_1699 = [true,true,false,false,false,true,false,true,false,true,true,false]; +const UsrInt_1700 = [false,false,true,false,false,true,false,true,false,true,true,false]; +const UsrInt_1701 = [true,false,true,false,false,true,false,true,false,true,true,false]; +const UsrInt_1702 = [false,true,true,false,false,true,false,true,false,true,true,false]; +const UsrInt_1703 = [true,true,true,false,false,true,false,true,false,true,true,false]; +const UsrInt_1704 = [false,false,false,true,false,true,false,true,false,true,true,false]; +const UsrInt_1705 = [true,false,false,true,false,true,false,true,false,true,true,false]; +const UsrInt_1706 = [false,true,false,true,false,true,false,true,false,true,true,false]; +const UsrInt_1707 = [true,true,false,true,false,true,false,true,false,true,true,false]; +const UsrInt_1708 = [false,false,true,true,false,true,false,true,false,true,true,false]; +const UsrInt_1709 = [true,false,true,true,false,true,false,true,false,true,true,false]; +const UsrInt_1710 = [false,true,true,true,false,true,false,true,false,true,true,false]; +const UsrInt_1711 = [true,true,true,true,false,true,false,true,false,true,true,false]; +const UsrInt_1712 = [false,false,false,false,true,true,false,true,false,true,true,false]; +const UsrInt_1713 = [true,false,false,false,true,true,false,true,false,true,true,false]; +const UsrInt_1714 = [false,true,false,false,true,true,false,true,false,true,true,false]; +const UsrInt_1715 = [true,true,false,false,true,true,false,true,false,true,true,false]; +const UsrInt_1716 = [false,false,true,false,true,true,false,true,false,true,true,false]; +const UsrInt_1717 = [true,false,true,false,true,true,false,true,false,true,true,false]; +const UsrInt_1718 = [false,true,true,false,true,true,false,true,false,true,true,false]; +const UsrInt_1719 = [true,true,true,false,true,true,false,true,false,true,true,false]; +const UsrInt_1720 = [false,false,false,true,true,true,false,true,false,true,true,false]; +const UsrInt_1721 = [true,false,false,true,true,true,false,true,false,true,true,false]; +const UsrInt_1722 = [false,true,false,true,true,true,false,true,false,true,true,false]; +const UsrInt_1723 = [true,true,false,true,true,true,false,true,false,true,true,false]; +const UsrInt_1724 = [false,false,true,true,true,true,false,true,false,true,true,false]; +const UsrInt_1725 = [true,false,true,true,true,true,false,true,false,true,true,false]; +const UsrInt_1726 = [false,true,true,true,true,true,false,true,false,true,true,false]; +const UsrInt_1727 = [true,true,true,true,true,true,false,true,false,true,true,false]; +const UsrInt_1728 = [false,false,false,false,false,false,true,true,false,true,true,false]; +const UsrInt_1729 = [true,false,false,false,false,false,true,true,false,true,true,false]; +const UsrInt_1730 = [false,true,false,false,false,false,true,true,false,true,true,false]; +const UsrInt_1731 = [true,true,false,false,false,false,true,true,false,true,true,false]; +const UsrInt_1732 = [false,false,true,false,false,false,true,true,false,true,true,false]; +const UsrInt_1733 = [true,false,true,false,false,false,true,true,false,true,true,false]; +const UsrInt_1734 = [false,true,true,false,false,false,true,true,false,true,true,false]; +const UsrInt_1735 = [true,true,true,false,false,false,true,true,false,true,true,false]; +const UsrInt_1736 = [false,false,false,true,false,false,true,true,false,true,true,false]; +const UsrInt_1737 = [true,false,false,true,false,false,true,true,false,true,true,false]; +const UsrInt_1738 = [false,true,false,true,false,false,true,true,false,true,true,false]; +const UsrInt_1739 = [true,true,false,true,false,false,true,true,false,true,true,false]; +const UsrInt_1740 = [false,false,true,true,false,false,true,true,false,true,true,false]; +const UsrInt_1741 = [true,false,true,true,false,false,true,true,false,true,true,false]; +const UsrInt_1742 = [false,true,true,true,false,false,true,true,false,true,true,false]; +const UsrInt_1743 = [true,true,true,true,false,false,true,true,false,true,true,false]; +const UsrInt_1744 = [false,false,false,false,true,false,true,true,false,true,true,false]; +const UsrInt_1745 = [true,false,false,false,true,false,true,true,false,true,true,false]; +const UsrInt_1746 = [false,true,false,false,true,false,true,true,false,true,true,false]; +const UsrInt_1747 = [true,true,false,false,true,false,true,true,false,true,true,false]; +const UsrInt_1748 = [false,false,true,false,true,false,true,true,false,true,true,false]; +const UsrInt_1749 = [true,false,true,false,true,false,true,true,false,true,true,false]; +const UsrInt_1750 = [false,true,true,false,true,false,true,true,false,true,true,false]; +const UsrInt_1751 = [true,true,true,false,true,false,true,true,false,true,true,false]; +const UsrInt_1752 = [false,false,false,true,true,false,true,true,false,true,true,false]; +const UsrInt_1753 = [true,false,false,true,true,false,true,true,false,true,true,false]; +const UsrInt_1754 = [false,true,false,true,true,false,true,true,false,true,true,false]; +const UsrInt_1755 = [true,true,false,true,true,false,true,true,false,true,true,false]; +const UsrInt_1756 = [false,false,true,true,true,false,true,true,false,true,true,false]; +const UsrInt_1757 = [true,false,true,true,true,false,true,true,false,true,true,false]; +const UsrInt_1758 = [false,true,true,true,true,false,true,true,false,true,true,false]; +const UsrInt_1759 = [true,true,true,true,true,false,true,true,false,true,true,false]; +const UsrInt_1760 = [false,false,false,false,false,true,true,true,false,true,true,false]; +const UsrInt_1761 = [true,false,false,false,false,true,true,true,false,true,true,false]; +const UsrInt_1762 = [false,true,false,false,false,true,true,true,false,true,true,false]; +const UsrInt_1763 = [true,true,false,false,false,true,true,true,false,true,true,false]; +const UsrInt_1764 = [false,false,true,false,false,true,true,true,false,true,true,false]; +const UsrInt_1765 = [true,false,true,false,false,true,true,true,false,true,true,false]; +const UsrInt_1766 = [false,true,true,false,false,true,true,true,false,true,true,false]; +const UsrInt_1767 = [true,true,true,false,false,true,true,true,false,true,true,false]; +const UsrInt_1768 = [false,false,false,true,false,true,true,true,false,true,true,false]; +const UsrInt_1769 = [true,false,false,true,false,true,true,true,false,true,true,false]; +const UsrInt_1770 = [false,true,false,true,false,true,true,true,false,true,true,false]; +const UsrInt_1771 = [true,true,false,true,false,true,true,true,false,true,true,false]; +const UsrInt_1772 = [false,false,true,true,false,true,true,true,false,true,true,false]; +const UsrInt_1773 = [true,false,true,true,false,true,true,true,false,true,true,false]; +const UsrInt_1774 = [false,true,true,true,false,true,true,true,false,true,true,false]; +const UsrInt_1775 = [true,true,true,true,false,true,true,true,false,true,true,false]; +const UsrInt_1776 = [false,false,false,false,true,true,true,true,false,true,true,false]; +const UsrInt_1777 = [true,false,false,false,true,true,true,true,false,true,true,false]; +const UsrInt_1778 = [false,true,false,false,true,true,true,true,false,true,true,false]; +const UsrInt_1779 = [true,true,false,false,true,true,true,true,false,true,true,false]; +const UsrInt_1780 = [false,false,true,false,true,true,true,true,false,true,true,false]; +const UsrInt_1781 = [true,false,true,false,true,true,true,true,false,true,true,false]; +const UsrInt_1782 = [false,true,true,false,true,true,true,true,false,true,true,false]; +const UsrInt_1783 = [true,true,true,false,true,true,true,true,false,true,true,false]; +const UsrInt_1784 = [false,false,false,true,true,true,true,true,false,true,true,false]; +const UsrInt_1785 = [true,false,false,true,true,true,true,true,false,true,true,false]; +const UsrInt_1786 = [false,true,false,true,true,true,true,true,false,true,true,false]; +const UsrInt_1787 = [true,true,false,true,true,true,true,true,false,true,true,false]; +const UsrInt_1788 = [false,false,true,true,true,true,true,true,false,true,true,false]; +const UsrInt_1789 = [true,false,true,true,true,true,true,true,false,true,true,false]; +const UsrInt_1790 = [false,true,true,true,true,true,true,true,false,true,true,false]; +const UsrInt_1791 = [true,true,true,true,true,true,true,true,false,true,true,false]; +const UsrInt_1792 = [false,false,false,false,false,false,false,false,true,true,true,false]; +const UsrInt_1793 = [true,false,false,false,false,false,false,false,true,true,true,false]; +const UsrInt_1794 = [false,true,false,false,false,false,false,false,true,true,true,false]; +const UsrInt_1795 = [true,true,false,false,false,false,false,false,true,true,true,false]; +const UsrInt_1796 = [false,false,true,false,false,false,false,false,true,true,true,false]; +const UsrInt_1797 = [true,false,true,false,false,false,false,false,true,true,true,false]; +const UsrInt_1798 = [false,true,true,false,false,false,false,false,true,true,true,false]; +const UsrInt_1799 = [true,true,true,false,false,false,false,false,true,true,true,false]; +const UsrInt_1800 = [false,false,false,true,false,false,false,false,true,true,true,false]; +const UsrInt_1801 = [true,false,false,true,false,false,false,false,true,true,true,false]; +const UsrInt_1802 = [false,true,false,true,false,false,false,false,true,true,true,false]; +const UsrInt_1803 = [true,true,false,true,false,false,false,false,true,true,true,false]; +const UsrInt_1804 = [false,false,true,true,false,false,false,false,true,true,true,false]; +const UsrInt_1805 = [true,false,true,true,false,false,false,false,true,true,true,false]; +const UsrInt_1806 = [false,true,true,true,false,false,false,false,true,true,true,false]; +const UsrInt_1807 = [true,true,true,true,false,false,false,false,true,true,true,false]; +const UsrInt_1808 = [false,false,false,false,true,false,false,false,true,true,true,false]; +const UsrInt_1809 = [true,false,false,false,true,false,false,false,true,true,true,false]; +const UsrInt_1810 = [false,true,false,false,true,false,false,false,true,true,true,false]; +const UsrInt_1811 = [true,true,false,false,true,false,false,false,true,true,true,false]; +const UsrInt_1812 = [false,false,true,false,true,false,false,false,true,true,true,false]; +const UsrInt_1813 = [true,false,true,false,true,false,false,false,true,true,true,false]; +const UsrInt_1814 = [false,true,true,false,true,false,false,false,true,true,true,false]; +const UsrInt_1815 = [true,true,true,false,true,false,false,false,true,true,true,false]; +const UsrInt_1816 = [false,false,false,true,true,false,false,false,true,true,true,false]; +const UsrInt_1817 = [true,false,false,true,true,false,false,false,true,true,true,false]; +const UsrInt_1818 = [false,true,false,true,true,false,false,false,true,true,true,false]; +const UsrInt_1819 = [true,true,false,true,true,false,false,false,true,true,true,false]; +const UsrInt_1820 = [false,false,true,true,true,false,false,false,true,true,true,false]; +const UsrInt_1821 = [true,false,true,true,true,false,false,false,true,true,true,false]; +const UsrInt_1822 = [false,true,true,true,true,false,false,false,true,true,true,false]; +const UsrInt_1823 = [true,true,true,true,true,false,false,false,true,true,true,false]; +const UsrInt_1824 = [false,false,false,false,false,true,false,false,true,true,true,false]; +const UsrInt_1825 = [true,false,false,false,false,true,false,false,true,true,true,false]; +const UsrInt_1826 = [false,true,false,false,false,true,false,false,true,true,true,false]; +const UsrInt_1827 = [true,true,false,false,false,true,false,false,true,true,true,false]; +const UsrInt_1828 = [false,false,true,false,false,true,false,false,true,true,true,false]; +const UsrInt_1829 = [true,false,true,false,false,true,false,false,true,true,true,false]; +const UsrInt_1830 = [false,true,true,false,false,true,false,false,true,true,true,false]; +const UsrInt_1831 = [true,true,true,false,false,true,false,false,true,true,true,false]; +const UsrInt_1832 = [false,false,false,true,false,true,false,false,true,true,true,false]; +const UsrInt_1833 = [true,false,false,true,false,true,false,false,true,true,true,false]; +const UsrInt_1834 = [false,true,false,true,false,true,false,false,true,true,true,false]; +const UsrInt_1835 = [true,true,false,true,false,true,false,false,true,true,true,false]; +const UsrInt_1836 = [false,false,true,true,false,true,false,false,true,true,true,false]; +const UsrInt_1837 = [true,false,true,true,false,true,false,false,true,true,true,false]; +const UsrInt_1838 = [false,true,true,true,false,true,false,false,true,true,true,false]; +const UsrInt_1839 = [true,true,true,true,false,true,false,false,true,true,true,false]; +const UsrInt_1840 = [false,false,false,false,true,true,false,false,true,true,true,false]; +const UsrInt_1841 = [true,false,false,false,true,true,false,false,true,true,true,false]; +const UsrInt_1842 = [false,true,false,false,true,true,false,false,true,true,true,false]; +const UsrInt_1843 = [true,true,false,false,true,true,false,false,true,true,true,false]; +const UsrInt_1844 = [false,false,true,false,true,true,false,false,true,true,true,false]; +const UsrInt_1845 = [true,false,true,false,true,true,false,false,true,true,true,false]; +const UsrInt_1846 = [false,true,true,false,true,true,false,false,true,true,true,false]; +const UsrInt_1847 = [true,true,true,false,true,true,false,false,true,true,true,false]; +const UsrInt_1848 = [false,false,false,true,true,true,false,false,true,true,true,false]; +const UsrInt_1849 = [true,false,false,true,true,true,false,false,true,true,true,false]; +const UsrInt_1850 = [false,true,false,true,true,true,false,false,true,true,true,false]; +const UsrInt_1851 = [true,true,false,true,true,true,false,false,true,true,true,false]; +const UsrInt_1852 = [false,false,true,true,true,true,false,false,true,true,true,false]; +const UsrInt_1853 = [true,false,true,true,true,true,false,false,true,true,true,false]; +const UsrInt_1854 = [false,true,true,true,true,true,false,false,true,true,true,false]; +const UsrInt_1855 = [true,true,true,true,true,true,false,false,true,true,true,false]; +const UsrInt_1856 = [false,false,false,false,false,false,true,false,true,true,true,false]; +const UsrInt_1857 = [true,false,false,false,false,false,true,false,true,true,true,false]; +const UsrInt_1858 = [false,true,false,false,false,false,true,false,true,true,true,false]; +const UsrInt_1859 = [true,true,false,false,false,false,true,false,true,true,true,false]; +const UsrInt_1860 = [false,false,true,false,false,false,true,false,true,true,true,false]; +const UsrInt_1861 = [true,false,true,false,false,false,true,false,true,true,true,false]; +const UsrInt_1862 = [false,true,true,false,false,false,true,false,true,true,true,false]; +const UsrInt_1863 = [true,true,true,false,false,false,true,false,true,true,true,false]; +const UsrInt_1864 = [false,false,false,true,false,false,true,false,true,true,true,false]; +const UsrInt_1865 = [true,false,false,true,false,false,true,false,true,true,true,false]; +const UsrInt_1866 = [false,true,false,true,false,false,true,false,true,true,true,false]; +const UsrInt_1867 = [true,true,false,true,false,false,true,false,true,true,true,false]; +const UsrInt_1868 = [false,false,true,true,false,false,true,false,true,true,true,false]; +const UsrInt_1869 = [true,false,true,true,false,false,true,false,true,true,true,false]; +const UsrInt_1870 = [false,true,true,true,false,false,true,false,true,true,true,false]; +const UsrInt_1871 = [true,true,true,true,false,false,true,false,true,true,true,false]; +const UsrInt_1872 = [false,false,false,false,true,false,true,false,true,true,true,false]; +const UsrInt_1873 = [true,false,false,false,true,false,true,false,true,true,true,false]; +const UsrInt_1874 = [false,true,false,false,true,false,true,false,true,true,true,false]; +const UsrInt_1875 = [true,true,false,false,true,false,true,false,true,true,true,false]; +const UsrInt_1876 = [false,false,true,false,true,false,true,false,true,true,true,false]; +const UsrInt_1877 = [true,false,true,false,true,false,true,false,true,true,true,false]; +const UsrInt_1878 = [false,true,true,false,true,false,true,false,true,true,true,false]; +const UsrInt_1879 = [true,true,true,false,true,false,true,false,true,true,true,false]; +const UsrInt_1880 = [false,false,false,true,true,false,true,false,true,true,true,false]; +const UsrInt_1881 = [true,false,false,true,true,false,true,false,true,true,true,false]; +const UsrInt_1882 = [false,true,false,true,true,false,true,false,true,true,true,false]; +const UsrInt_1883 = [true,true,false,true,true,false,true,false,true,true,true,false]; +const UsrInt_1884 = [false,false,true,true,true,false,true,false,true,true,true,false]; +const UsrInt_1885 = [true,false,true,true,true,false,true,false,true,true,true,false]; +const UsrInt_1886 = [false,true,true,true,true,false,true,false,true,true,true,false]; +const UsrInt_1887 = [true,true,true,true,true,false,true,false,true,true,true,false]; +const UsrInt_1888 = [false,false,false,false,false,true,true,false,true,true,true,false]; +const UsrInt_1889 = [true,false,false,false,false,true,true,false,true,true,true,false]; +const UsrInt_1890 = [false,true,false,false,false,true,true,false,true,true,true,false]; +const UsrInt_1891 = [true,true,false,false,false,true,true,false,true,true,true,false]; +const UsrInt_1892 = [false,false,true,false,false,true,true,false,true,true,true,false]; +const UsrInt_1893 = [true,false,true,false,false,true,true,false,true,true,true,false]; +const UsrInt_1894 = [false,true,true,false,false,true,true,false,true,true,true,false]; +const UsrInt_1895 = [true,true,true,false,false,true,true,false,true,true,true,false]; +const UsrInt_1896 = [false,false,false,true,false,true,true,false,true,true,true,false]; +const UsrInt_1897 = [true,false,false,true,false,true,true,false,true,true,true,false]; +const UsrInt_1898 = [false,true,false,true,false,true,true,false,true,true,true,false]; +const UsrInt_1899 = [true,true,false,true,false,true,true,false,true,true,true,false]; +const UsrInt_1900 = [false,false,true,true,false,true,true,false,true,true,true,false]; +const UsrInt_1901 = [true,false,true,true,false,true,true,false,true,true,true,false]; +const UsrInt_1902 = [false,true,true,true,false,true,true,false,true,true,true,false]; +const UsrInt_1903 = [true,true,true,true,false,true,true,false,true,true,true,false]; +const UsrInt_1904 = [false,false,false,false,true,true,true,false,true,true,true,false]; +const UsrInt_1905 = [true,false,false,false,true,true,true,false,true,true,true,false]; +const UsrInt_1906 = [false,true,false,false,true,true,true,false,true,true,true,false]; +const UsrInt_1907 = [true,true,false,false,true,true,true,false,true,true,true,false]; +const UsrInt_1908 = [false,false,true,false,true,true,true,false,true,true,true,false]; +const UsrInt_1909 = [true,false,true,false,true,true,true,false,true,true,true,false]; +const UsrInt_1910 = [false,true,true,false,true,true,true,false,true,true,true,false]; +const UsrInt_1911 = [true,true,true,false,true,true,true,false,true,true,true,false]; +const UsrInt_1912 = [false,false,false,true,true,true,true,false,true,true,true,false]; +const UsrInt_1913 = [true,false,false,true,true,true,true,false,true,true,true,false]; +const UsrInt_1914 = [false,true,false,true,true,true,true,false,true,true,true,false]; +const UsrInt_1915 = [true,true,false,true,true,true,true,false,true,true,true,false]; +const UsrInt_1916 = [false,false,true,true,true,true,true,false,true,true,true,false]; +const UsrInt_1917 = [true,false,true,true,true,true,true,false,true,true,true,false]; +const UsrInt_1918 = [false,true,true,true,true,true,true,false,true,true,true,false]; +const UsrInt_1919 = [true,true,true,true,true,true,true,false,true,true,true,false]; +const UsrInt_1920 = [false,false,false,false,false,false,false,true,true,true,true,false]; +const UsrInt_1921 = [true,false,false,false,false,false,false,true,true,true,true,false]; +const UsrInt_1922 = [false,true,false,false,false,false,false,true,true,true,true,false]; +const UsrInt_1923 = [true,true,false,false,false,false,false,true,true,true,true,false]; +const UsrInt_1924 = [false,false,true,false,false,false,false,true,true,true,true,false]; +const UsrInt_1925 = [true,false,true,false,false,false,false,true,true,true,true,false]; +const UsrInt_1926 = [false,true,true,false,false,false,false,true,true,true,true,false]; +const UsrInt_1927 = [true,true,true,false,false,false,false,true,true,true,true,false]; +const UsrInt_1928 = [false,false,false,true,false,false,false,true,true,true,true,false]; +const UsrInt_1929 = [true,false,false,true,false,false,false,true,true,true,true,false]; +const UsrInt_1930 = [false,true,false,true,false,false,false,true,true,true,true,false]; +const UsrInt_1931 = [true,true,false,true,false,false,false,true,true,true,true,false]; +const UsrInt_1932 = [false,false,true,true,false,false,false,true,true,true,true,false]; +const UsrInt_1933 = [true,false,true,true,false,false,false,true,true,true,true,false]; +const UsrInt_1934 = [false,true,true,true,false,false,false,true,true,true,true,false]; +const UsrInt_1935 = [true,true,true,true,false,false,false,true,true,true,true,false]; +const UsrInt_1936 = [false,false,false,false,true,false,false,true,true,true,true,false]; +const UsrInt_1937 = [true,false,false,false,true,false,false,true,true,true,true,false]; +const UsrInt_1938 = [false,true,false,false,true,false,false,true,true,true,true,false]; +const UsrInt_1939 = [true,true,false,false,true,false,false,true,true,true,true,false]; +const UsrInt_1940 = [false,false,true,false,true,false,false,true,true,true,true,false]; +const UsrInt_1941 = [true,false,true,false,true,false,false,true,true,true,true,false]; +const UsrInt_1942 = [false,true,true,false,true,false,false,true,true,true,true,false]; +const UsrInt_1943 = [true,true,true,false,true,false,false,true,true,true,true,false]; +const UsrInt_1944 = [false,false,false,true,true,false,false,true,true,true,true,false]; +const UsrInt_1945 = [true,false,false,true,true,false,false,true,true,true,true,false]; +const UsrInt_1946 = [false,true,false,true,true,false,false,true,true,true,true,false]; +const UsrInt_1947 = [true,true,false,true,true,false,false,true,true,true,true,false]; +const UsrInt_1948 = [false,false,true,true,true,false,false,true,true,true,true,false]; +const UsrInt_1949 = [true,false,true,true,true,false,false,true,true,true,true,false]; +const UsrInt_1950 = [false,true,true,true,true,false,false,true,true,true,true,false]; +const UsrInt_1951 = [true,true,true,true,true,false,false,true,true,true,true,false]; +const UsrInt_1952 = [false,false,false,false,false,true,false,true,true,true,true,false]; +const UsrInt_1953 = [true,false,false,false,false,true,false,true,true,true,true,false]; +const UsrInt_1954 = [false,true,false,false,false,true,false,true,true,true,true,false]; +const UsrInt_1955 = [true,true,false,false,false,true,false,true,true,true,true,false]; +const UsrInt_1956 = [false,false,true,false,false,true,false,true,true,true,true,false]; +const UsrInt_1957 = [true,false,true,false,false,true,false,true,true,true,true,false]; +const UsrInt_1958 = [false,true,true,false,false,true,false,true,true,true,true,false]; +const UsrInt_1959 = [true,true,true,false,false,true,false,true,true,true,true,false]; +const UsrInt_1960 = [false,false,false,true,false,true,false,true,true,true,true,false]; +const UsrInt_1961 = [true,false,false,true,false,true,false,true,true,true,true,false]; +const UsrInt_1962 = [false,true,false,true,false,true,false,true,true,true,true,false]; +const UsrInt_1963 = [true,true,false,true,false,true,false,true,true,true,true,false]; +const UsrInt_1964 = [false,false,true,true,false,true,false,true,true,true,true,false]; +const UsrInt_1965 = [true,false,true,true,false,true,false,true,true,true,true,false]; +const UsrInt_1966 = [false,true,true,true,false,true,false,true,true,true,true,false]; +const UsrInt_1967 = [true,true,true,true,false,true,false,true,true,true,true,false]; +const UsrInt_1968 = [false,false,false,false,true,true,false,true,true,true,true,false]; +const UsrInt_1969 = [true,false,false,false,true,true,false,true,true,true,true,false]; +const UsrInt_1970 = [false,true,false,false,true,true,false,true,true,true,true,false]; +const UsrInt_1971 = [true,true,false,false,true,true,false,true,true,true,true,false]; +const UsrInt_1972 = [false,false,true,false,true,true,false,true,true,true,true,false]; +const UsrInt_1973 = [true,false,true,false,true,true,false,true,true,true,true,false]; +const UsrInt_1974 = [false,true,true,false,true,true,false,true,true,true,true,false]; +const UsrInt_1975 = [true,true,true,false,true,true,false,true,true,true,true,false]; +const UsrInt_1976 = [false,false,false,true,true,true,false,true,true,true,true,false]; +const UsrInt_1977 = [true,false,false,true,true,true,false,true,true,true,true,false]; +const UsrInt_1978 = [false,true,false,true,true,true,false,true,true,true,true,false]; +const UsrInt_1979 = [true,true,false,true,true,true,false,true,true,true,true,false]; +const UsrInt_1980 = [false,false,true,true,true,true,false,true,true,true,true,false]; +const UsrInt_1981 = [true,false,true,true,true,true,false,true,true,true,true,false]; +const UsrInt_1982 = [false,true,true,true,true,true,false,true,true,true,true,false]; +const UsrInt_1983 = [true,true,true,true,true,true,false,true,true,true,true,false]; +const UsrInt_1984 = [false,false,false,false,false,false,true,true,true,true,true,false]; +const UsrInt_1985 = [true,false,false,false,false,false,true,true,true,true,true,false]; +const UsrInt_1986 = [false,true,false,false,false,false,true,true,true,true,true,false]; +const UsrInt_1987 = [true,true,false,false,false,false,true,true,true,true,true,false]; +const UsrInt_1988 = [false,false,true,false,false,false,true,true,true,true,true,false]; +const UsrInt_1989 = [true,false,true,false,false,false,true,true,true,true,true,false]; +const UsrInt_1990 = [false,true,true,false,false,false,true,true,true,true,true,false]; +const UsrInt_1991 = [true,true,true,false,false,false,true,true,true,true,true,false]; +const UsrInt_1992 = [false,false,false,true,false,false,true,true,true,true,true,false]; +const UsrInt_1993 = [true,false,false,true,false,false,true,true,true,true,true,false]; +const UsrInt_1994 = [false,true,false,true,false,false,true,true,true,true,true,false]; +const UsrInt_1995 = [true,true,false,true,false,false,true,true,true,true,true,false]; +const UsrInt_1996 = [false,false,true,true,false,false,true,true,true,true,true,false]; +const UsrInt_1997 = [true,false,true,true,false,false,true,true,true,true,true,false]; +const UsrInt_1998 = [false,true,true,true,false,false,true,true,true,true,true,false]; +const UsrInt_1999 = [true,true,true,true,false,false,true,true,true,true,true,false]; +const UsrInt_2000 = [false,false,false,false,true,false,true,true,true,true,true,false]; +const UsrInt_2001 = [true,false,false,false,true,false,true,true,true,true,true,false]; +const UsrInt_2002 = [false,true,false,false,true,false,true,true,true,true,true,false]; +const UsrInt_2003 = [true,true,false,false,true,false,true,true,true,true,true,false]; +const UsrInt_2004 = [false,false,true,false,true,false,true,true,true,true,true,false]; +const UsrInt_2005 = [true,false,true,false,true,false,true,true,true,true,true,false]; +const UsrInt_2006 = [false,true,true,false,true,false,true,true,true,true,true,false]; +const UsrInt_2007 = [true,true,true,false,true,false,true,true,true,true,true,false]; +const UsrInt_2008 = [false,false,false,true,true,false,true,true,true,true,true,false]; +const UsrInt_2009 = [true,false,false,true,true,false,true,true,true,true,true,false]; +const UsrInt_2010 = [false,true,false,true,true,false,true,true,true,true,true,false]; +const UsrInt_2011 = [true,true,false,true,true,false,true,true,true,true,true,false]; +const UsrInt_2012 = [false,false,true,true,true,false,true,true,true,true,true,false]; +const UsrInt_2013 = [true,false,true,true,true,false,true,true,true,true,true,false]; +const UsrInt_2014 = [false,true,true,true,true,false,true,true,true,true,true,false]; +const UsrInt_2015 = [true,true,true,true,true,false,true,true,true,true,true,false]; +const UsrInt_2016 = [false,false,false,false,false,true,true,true,true,true,true,false]; +const UsrInt_2017 = [true,false,false,false,false,true,true,true,true,true,true,false]; +const UsrInt_2018 = [false,true,false,false,false,true,true,true,true,true,true,false]; +const UsrInt_2019 = [true,true,false,false,false,true,true,true,true,true,true,false]; +const UsrInt_2020 = [false,false,true,false,false,true,true,true,true,true,true,false]; +const UsrInt_2021 = [true,false,true,false,false,true,true,true,true,true,true,false]; +const UsrInt_2022 = [false,true,true,false,false,true,true,true,true,true,true,false]; +const UsrInt_2023 = [true,true,true,false,false,true,true,true,true,true,true,false]; +const UsrInt_2024 = [false,false,false,true,false,true,true,true,true,true,true,false]; +const UsrInt_2025 = [true,false,false,true,false,true,true,true,true,true,true,false]; +const UsrInt_2026 = [false,true,false,true,false,true,true,true,true,true,true,false]; +const UsrInt_2027 = [true,true,false,true,false,true,true,true,true,true,true,false]; +const UsrInt_2028 = [false,false,true,true,false,true,true,true,true,true,true,false]; +const UsrInt_2029 = [true,false,true,true,false,true,true,true,true,true,true,false]; +const UsrInt_2030 = [false,true,true,true,false,true,true,true,true,true,true,false]; +const UsrInt_2031 = [true,true,true,true,false,true,true,true,true,true,true,false]; +const UsrInt_2032 = [false,false,false,false,true,true,true,true,true,true,true,false]; +const UsrInt_2033 = [true,false,false,false,true,true,true,true,true,true,true,false]; +const UsrInt_2034 = [false,true,false,false,true,true,true,true,true,true,true,false]; +const UsrInt_2035 = [true,true,false,false,true,true,true,true,true,true,true,false]; +const UsrInt_2036 = [false,false,true,false,true,true,true,true,true,true,true,false]; +const UsrInt_2037 = [true,false,true,false,true,true,true,true,true,true,true,false]; +const UsrInt_2038 = [false,true,true,false,true,true,true,true,true,true,true,false]; +const UsrInt_2039 = [true,true,true,false,true,true,true,true,true,true,true,false]; +const UsrInt_2040 = [false,false,false,true,true,true,true,true,true,true,true,false]; +const UsrInt_2041 = [true,false,false,true,true,true,true,true,true,true,true,false]; +const UsrInt_2042 = [false,true,false,true,true,true,true,true,true,true,true,false]; +const UsrInt_2043 = [true,true,false,true,true,true,true,true,true,true,true,false]; +const UsrInt_2044 = [false,false,true,true,true,true,true,true,true,true,true,false]; +const UsrInt_2045 = [true,false,true,true,true,true,true,true,true,true,true,false]; +const UsrInt_2046 = [false,true,true,true,true,true,true,true,true,true,true,false]; +const UsrInt_2047 = [true,true,true,true,true,true,true,true,true,true,true,false]; +const UsrInt_2048 = [false,false,false,false,false,false,false,false,false,false,false,true]; +const UsrInt_2049 = [true,false,false,false,false,false,false,false,false,false,false,true]; +const UsrInt_2050 = [false,true,false,false,false,false,false,false,false,false,false,true]; +const UsrInt_2051 = [true,true,false,false,false,false,false,false,false,false,false,true]; +const UsrInt_2052 = [false,false,true,false,false,false,false,false,false,false,false,true]; +const UsrInt_2053 = [true,false,true,false,false,false,false,false,false,false,false,true]; +const UsrInt_2054 = [false,true,true,false,false,false,false,false,false,false,false,true]; +const UsrInt_2055 = [true,true,true,false,false,false,false,false,false,false,false,true]; +const UsrInt_2056 = [false,false,false,true,false,false,false,false,false,false,false,true]; +const UsrInt_2057 = [true,false,false,true,false,false,false,false,false,false,false,true]; +const UsrInt_2058 = [false,true,false,true,false,false,false,false,false,false,false,true]; +const UsrInt_2059 = [true,true,false,true,false,false,false,false,false,false,false,true]; +const UsrInt_2060 = [false,false,true,true,false,false,false,false,false,false,false,true]; +const UsrInt_2061 = [true,false,true,true,false,false,false,false,false,false,false,true]; +const UsrInt_2062 = [false,true,true,true,false,false,false,false,false,false,false,true]; +const UsrInt_2063 = [true,true,true,true,false,false,false,false,false,false,false,true]; +const UsrInt_2064 = [false,false,false,false,true,false,false,false,false,false,false,true]; +const UsrInt_2065 = [true,false,false,false,true,false,false,false,false,false,false,true]; +const UsrInt_2066 = [false,true,false,false,true,false,false,false,false,false,false,true]; +const UsrInt_2067 = [true,true,false,false,true,false,false,false,false,false,false,true]; +const UsrInt_2068 = [false,false,true,false,true,false,false,false,false,false,false,true]; +const UsrInt_2069 = [true,false,true,false,true,false,false,false,false,false,false,true]; +const UsrInt_2070 = [false,true,true,false,true,false,false,false,false,false,false,true]; +const UsrInt_2071 = [true,true,true,false,true,false,false,false,false,false,false,true]; +const UsrInt_2072 = [false,false,false,true,true,false,false,false,false,false,false,true]; +const UsrInt_2073 = [true,false,false,true,true,false,false,false,false,false,false,true]; +const UsrInt_2074 = [false,true,false,true,true,false,false,false,false,false,false,true]; +const UsrInt_2075 = [true,true,false,true,true,false,false,false,false,false,false,true]; +const UsrInt_2076 = [false,false,true,true,true,false,false,false,false,false,false,true]; +const UsrInt_2077 = [true,false,true,true,true,false,false,false,false,false,false,true]; +const UsrInt_2078 = [false,true,true,true,true,false,false,false,false,false,false,true]; +const UsrInt_2079 = [true,true,true,true,true,false,false,false,false,false,false,true]; +const UsrInt_2080 = [false,false,false,false,false,true,false,false,false,false,false,true]; +const UsrInt_2081 = [true,false,false,false,false,true,false,false,false,false,false,true]; +const UsrInt_2082 = [false,true,false,false,false,true,false,false,false,false,false,true]; +const UsrInt_2083 = [true,true,false,false,false,true,false,false,false,false,false,true]; +const UsrInt_2084 = [false,false,true,false,false,true,false,false,false,false,false,true]; +const UsrInt_2085 = [true,false,true,false,false,true,false,false,false,false,false,true]; +const UsrInt_2086 = [false,true,true,false,false,true,false,false,false,false,false,true]; +const UsrInt_2087 = [true,true,true,false,false,true,false,false,false,false,false,true]; +const UsrInt_2088 = [false,false,false,true,false,true,false,false,false,false,false,true]; +const UsrInt_2089 = [true,false,false,true,false,true,false,false,false,false,false,true]; +const UsrInt_2090 = [false,true,false,true,false,true,false,false,false,false,false,true]; +const UsrInt_2091 = [true,true,false,true,false,true,false,false,false,false,false,true]; +const UsrInt_2092 = [false,false,true,true,false,true,false,false,false,false,false,true]; +const UsrInt_2093 = [true,false,true,true,false,true,false,false,false,false,false,true]; +const UsrInt_2094 = [false,true,true,true,false,true,false,false,false,false,false,true]; +const UsrInt_2095 = [true,true,true,true,false,true,false,false,false,false,false,true]; +const UsrInt_2096 = [false,false,false,false,true,true,false,false,false,false,false,true]; +const UsrInt_2097 = [true,false,false,false,true,true,false,false,false,false,false,true]; +const UsrInt_2098 = [false,true,false,false,true,true,false,false,false,false,false,true]; +const UsrInt_2099 = [true,true,false,false,true,true,false,false,false,false,false,true]; +const UsrInt_2100 = [false,false,true,false,true,true,false,false,false,false,false,true]; +const UsrInt_2101 = [true,false,true,false,true,true,false,false,false,false,false,true]; +const UsrInt_2102 = [false,true,true,false,true,true,false,false,false,false,false,true]; +const UsrInt_2103 = [true,true,true,false,true,true,false,false,false,false,false,true]; +const UsrInt_2104 = [false,false,false,true,true,true,false,false,false,false,false,true]; +const UsrInt_2105 = [true,false,false,true,true,true,false,false,false,false,false,true]; +const UsrInt_2106 = [false,true,false,true,true,true,false,false,false,false,false,true]; +const UsrInt_2107 = [true,true,false,true,true,true,false,false,false,false,false,true]; +const UsrInt_2108 = [false,false,true,true,true,true,false,false,false,false,false,true]; +const UsrInt_2109 = [true,false,true,true,true,true,false,false,false,false,false,true]; +const UsrInt_2110 = [false,true,true,true,true,true,false,false,false,false,false,true]; +const UsrInt_2111 = [true,true,true,true,true,true,false,false,false,false,false,true]; +const UsrInt_2112 = [false,false,false,false,false,false,true,false,false,false,false,true]; +const UsrInt_2113 = [true,false,false,false,false,false,true,false,false,false,false,true]; +const UsrInt_2114 = [false,true,false,false,false,false,true,false,false,false,false,true]; +const UsrInt_2115 = [true,true,false,false,false,false,true,false,false,false,false,true]; +const UsrInt_2116 = [false,false,true,false,false,false,true,false,false,false,false,true]; +const UsrInt_2117 = [true,false,true,false,false,false,true,false,false,false,false,true]; +const UsrInt_2118 = [false,true,true,false,false,false,true,false,false,false,false,true]; +const UsrInt_2119 = [true,true,true,false,false,false,true,false,false,false,false,true]; +const UsrInt_2120 = [false,false,false,true,false,false,true,false,false,false,false,true]; +const UsrInt_2121 = [true,false,false,true,false,false,true,false,false,false,false,true]; +const UsrInt_2122 = [false,true,false,true,false,false,true,false,false,false,false,true]; +const UsrInt_2123 = [true,true,false,true,false,false,true,false,false,false,false,true]; +const UsrInt_2124 = [false,false,true,true,false,false,true,false,false,false,false,true]; +const UsrInt_2125 = [true,false,true,true,false,false,true,false,false,false,false,true]; +const UsrInt_2126 = [false,true,true,true,false,false,true,false,false,false,false,true]; +const UsrInt_2127 = [true,true,true,true,false,false,true,false,false,false,false,true]; +const UsrInt_2128 = [false,false,false,false,true,false,true,false,false,false,false,true]; +const UsrInt_2129 = [true,false,false,false,true,false,true,false,false,false,false,true]; +const UsrInt_2130 = [false,true,false,false,true,false,true,false,false,false,false,true]; +const UsrInt_2131 = [true,true,false,false,true,false,true,false,false,false,false,true]; +const UsrInt_2132 = [false,false,true,false,true,false,true,false,false,false,false,true]; +const UsrInt_2133 = [true,false,true,false,true,false,true,false,false,false,false,true]; +const UsrInt_2134 = [false,true,true,false,true,false,true,false,false,false,false,true]; +const UsrInt_2135 = [true,true,true,false,true,false,true,false,false,false,false,true]; +const UsrInt_2136 = [false,false,false,true,true,false,true,false,false,false,false,true]; +const UsrInt_2137 = [true,false,false,true,true,false,true,false,false,false,false,true]; +const UsrInt_2138 = [false,true,false,true,true,false,true,false,false,false,false,true]; +const UsrInt_2139 = [true,true,false,true,true,false,true,false,false,false,false,true]; +const UsrInt_2140 = [false,false,true,true,true,false,true,false,false,false,false,true]; +const UsrInt_2141 = [true,false,true,true,true,false,true,false,false,false,false,true]; +const UsrInt_2142 = [false,true,true,true,true,false,true,false,false,false,false,true]; +const UsrInt_2143 = [true,true,true,true,true,false,true,false,false,false,false,true]; +const UsrInt_2144 = [false,false,false,false,false,true,true,false,false,false,false,true]; +const UsrInt_2145 = [true,false,false,false,false,true,true,false,false,false,false,true]; +const UsrInt_2146 = [false,true,false,false,false,true,true,false,false,false,false,true]; +const UsrInt_2147 = [true,true,false,false,false,true,true,false,false,false,false,true]; +const UsrInt_2148 = [false,false,true,false,false,true,true,false,false,false,false,true]; +const UsrInt_2149 = [true,false,true,false,false,true,true,false,false,false,false,true]; +const UsrInt_2150 = [false,true,true,false,false,true,true,false,false,false,false,true]; +const UsrInt_2151 = [true,true,true,false,false,true,true,false,false,false,false,true]; +const UsrInt_2152 = [false,false,false,true,false,true,true,false,false,false,false,true]; +const UsrInt_2153 = [true,false,false,true,false,true,true,false,false,false,false,true]; +const UsrInt_2154 = [false,true,false,true,false,true,true,false,false,false,false,true]; +const UsrInt_2155 = [true,true,false,true,false,true,true,false,false,false,false,true]; +const UsrInt_2156 = [false,false,true,true,false,true,true,false,false,false,false,true]; +const UsrInt_2157 = [true,false,true,true,false,true,true,false,false,false,false,true]; +const UsrInt_2158 = [false,true,true,true,false,true,true,false,false,false,false,true]; +const UsrInt_2159 = [true,true,true,true,false,true,true,false,false,false,false,true]; +const UsrInt_2160 = [false,false,false,false,true,true,true,false,false,false,false,true]; +const UsrInt_2161 = [true,false,false,false,true,true,true,false,false,false,false,true]; +const UsrInt_2162 = [false,true,false,false,true,true,true,false,false,false,false,true]; +const UsrInt_2163 = [true,true,false,false,true,true,true,false,false,false,false,true]; +const UsrInt_2164 = [false,false,true,false,true,true,true,false,false,false,false,true]; +const UsrInt_2165 = [true,false,true,false,true,true,true,false,false,false,false,true]; +const UsrInt_2166 = [false,true,true,false,true,true,true,false,false,false,false,true]; +const UsrInt_2167 = [true,true,true,false,true,true,true,false,false,false,false,true]; +const UsrInt_2168 = [false,false,false,true,true,true,true,false,false,false,false,true]; +const UsrInt_2169 = [true,false,false,true,true,true,true,false,false,false,false,true]; +const UsrInt_2170 = [false,true,false,true,true,true,true,false,false,false,false,true]; +const UsrInt_2171 = [true,true,false,true,true,true,true,false,false,false,false,true]; +const UsrInt_2172 = [false,false,true,true,true,true,true,false,false,false,false,true]; +const UsrInt_2173 = [true,false,true,true,true,true,true,false,false,false,false,true]; +const UsrInt_2174 = [false,true,true,true,true,true,true,false,false,false,false,true]; +const UsrInt_2175 = [true,true,true,true,true,true,true,false,false,false,false,true]; +const UsrInt_2176 = [false,false,false,false,false,false,false,true,false,false,false,true]; +const UsrInt_2177 = [true,false,false,false,false,false,false,true,false,false,false,true]; +const UsrInt_2178 = [false,true,false,false,false,false,false,true,false,false,false,true]; +const UsrInt_2179 = [true,true,false,false,false,false,false,true,false,false,false,true]; +const UsrInt_2180 = [false,false,true,false,false,false,false,true,false,false,false,true]; +const UsrInt_2181 = [true,false,true,false,false,false,false,true,false,false,false,true]; +const UsrInt_2182 = [false,true,true,false,false,false,false,true,false,false,false,true]; +const UsrInt_2183 = [true,true,true,false,false,false,false,true,false,false,false,true]; +const UsrInt_2184 = [false,false,false,true,false,false,false,true,false,false,false,true]; +const UsrInt_2185 = [true,false,false,true,false,false,false,true,false,false,false,true]; +const UsrInt_2186 = [false,true,false,true,false,false,false,true,false,false,false,true]; +const UsrInt_2187 = [true,true,false,true,false,false,false,true,false,false,false,true]; +const UsrInt_2188 = [false,false,true,true,false,false,false,true,false,false,false,true]; +const UsrInt_2189 = [true,false,true,true,false,false,false,true,false,false,false,true]; +const UsrInt_2190 = [false,true,true,true,false,false,false,true,false,false,false,true]; +const UsrInt_2191 = [true,true,true,true,false,false,false,true,false,false,false,true]; +const UsrInt_2192 = [false,false,false,false,true,false,false,true,false,false,false,true]; +const UsrInt_2193 = [true,false,false,false,true,false,false,true,false,false,false,true]; +const UsrInt_2194 = [false,true,false,false,true,false,false,true,false,false,false,true]; +const UsrInt_2195 = [true,true,false,false,true,false,false,true,false,false,false,true]; +const UsrInt_2196 = [false,false,true,false,true,false,false,true,false,false,false,true]; +const UsrInt_2197 = [true,false,true,false,true,false,false,true,false,false,false,true]; +const UsrInt_2198 = [false,true,true,false,true,false,false,true,false,false,false,true]; +const UsrInt_2199 = [true,true,true,false,true,false,false,true,false,false,false,true]; +const UsrInt_2200 = [false,false,false,true,true,false,false,true,false,false,false,true]; +const UsrInt_2201 = [true,false,false,true,true,false,false,true,false,false,false,true]; +const UsrInt_2202 = [false,true,false,true,true,false,false,true,false,false,false,true]; +const UsrInt_2203 = [true,true,false,true,true,false,false,true,false,false,false,true]; +const UsrInt_2204 = [false,false,true,true,true,false,false,true,false,false,false,true]; +const UsrInt_2205 = [true,false,true,true,true,false,false,true,false,false,false,true]; +const UsrInt_2206 = [false,true,true,true,true,false,false,true,false,false,false,true]; +const UsrInt_2207 = [true,true,true,true,true,false,false,true,false,false,false,true]; +const UsrInt_2208 = [false,false,false,false,false,true,false,true,false,false,false,true]; +const UsrInt_2209 = [true,false,false,false,false,true,false,true,false,false,false,true]; +const UsrInt_2210 = [false,true,false,false,false,true,false,true,false,false,false,true]; +const UsrInt_2211 = [true,true,false,false,false,true,false,true,false,false,false,true]; +const UsrInt_2212 = [false,false,true,false,false,true,false,true,false,false,false,true]; +const UsrInt_2213 = [true,false,true,false,false,true,false,true,false,false,false,true]; +const UsrInt_2214 = [false,true,true,false,false,true,false,true,false,false,false,true]; +const UsrInt_2215 = [true,true,true,false,false,true,false,true,false,false,false,true]; +const UsrInt_2216 = [false,false,false,true,false,true,false,true,false,false,false,true]; +const UsrInt_2217 = [true,false,false,true,false,true,false,true,false,false,false,true]; +const UsrInt_2218 = [false,true,false,true,false,true,false,true,false,false,false,true]; +const UsrInt_2219 = [true,true,false,true,false,true,false,true,false,false,false,true]; +const UsrInt_2220 = [false,false,true,true,false,true,false,true,false,false,false,true]; +const UsrInt_2221 = [true,false,true,true,false,true,false,true,false,false,false,true]; +const UsrInt_2222 = [false,true,true,true,false,true,false,true,false,false,false,true]; +const UsrInt_2223 = [true,true,true,true,false,true,false,true,false,false,false,true]; +const UsrInt_2224 = [false,false,false,false,true,true,false,true,false,false,false,true]; +const UsrInt_2225 = [true,false,false,false,true,true,false,true,false,false,false,true]; +const UsrInt_2226 = [false,true,false,false,true,true,false,true,false,false,false,true]; +const UsrInt_2227 = [true,true,false,false,true,true,false,true,false,false,false,true]; +const UsrInt_2228 = [false,false,true,false,true,true,false,true,false,false,false,true]; +const UsrInt_2229 = [true,false,true,false,true,true,false,true,false,false,false,true]; +const UsrInt_2230 = [false,true,true,false,true,true,false,true,false,false,false,true]; +const UsrInt_2231 = [true,true,true,false,true,true,false,true,false,false,false,true]; +const UsrInt_2232 = [false,false,false,true,true,true,false,true,false,false,false,true]; +const UsrInt_2233 = [true,false,false,true,true,true,false,true,false,false,false,true]; +const UsrInt_2234 = [false,true,false,true,true,true,false,true,false,false,false,true]; +const UsrInt_2235 = [true,true,false,true,true,true,false,true,false,false,false,true]; +const UsrInt_2236 = [false,false,true,true,true,true,false,true,false,false,false,true]; +const UsrInt_2237 = [true,false,true,true,true,true,false,true,false,false,false,true]; +const UsrInt_2238 = [false,true,true,true,true,true,false,true,false,false,false,true]; +const UsrInt_2239 = [true,true,true,true,true,true,false,true,false,false,false,true]; +const UsrInt_2240 = [false,false,false,false,false,false,true,true,false,false,false,true]; +const UsrInt_2241 = [true,false,false,false,false,false,true,true,false,false,false,true]; +const UsrInt_2242 = [false,true,false,false,false,false,true,true,false,false,false,true]; +const UsrInt_2243 = [true,true,false,false,false,false,true,true,false,false,false,true]; +const UsrInt_2244 = [false,false,true,false,false,false,true,true,false,false,false,true]; +const UsrInt_2245 = [true,false,true,false,false,false,true,true,false,false,false,true]; +const UsrInt_2246 = [false,true,true,false,false,false,true,true,false,false,false,true]; +const UsrInt_2247 = [true,true,true,false,false,false,true,true,false,false,false,true]; +const UsrInt_2248 = [false,false,false,true,false,false,true,true,false,false,false,true]; +const UsrInt_2249 = [true,false,false,true,false,false,true,true,false,false,false,true]; +const UsrInt_2250 = [false,true,false,true,false,false,true,true,false,false,false,true]; +const UsrInt_2251 = [true,true,false,true,false,false,true,true,false,false,false,true]; +const UsrInt_2252 = [false,false,true,true,false,false,true,true,false,false,false,true]; +const UsrInt_2253 = [true,false,true,true,false,false,true,true,false,false,false,true]; +const UsrInt_2254 = [false,true,true,true,false,false,true,true,false,false,false,true]; +const UsrInt_2255 = [true,true,true,true,false,false,true,true,false,false,false,true]; +const UsrInt_2256 = [false,false,false,false,true,false,true,true,false,false,false,true]; +const UsrInt_2257 = [true,false,false,false,true,false,true,true,false,false,false,true]; +const UsrInt_2258 = [false,true,false,false,true,false,true,true,false,false,false,true]; +const UsrInt_2259 = [true,true,false,false,true,false,true,true,false,false,false,true]; +const UsrInt_2260 = [false,false,true,false,true,false,true,true,false,false,false,true]; +const UsrInt_2261 = [true,false,true,false,true,false,true,true,false,false,false,true]; +const UsrInt_2262 = [false,true,true,false,true,false,true,true,false,false,false,true]; +const UsrInt_2263 = [true,true,true,false,true,false,true,true,false,false,false,true]; +const UsrInt_2264 = [false,false,false,true,true,false,true,true,false,false,false,true]; +const UsrInt_2265 = [true,false,false,true,true,false,true,true,false,false,false,true]; +const UsrInt_2266 = [false,true,false,true,true,false,true,true,false,false,false,true]; +const UsrInt_2267 = [true,true,false,true,true,false,true,true,false,false,false,true]; +const UsrInt_2268 = [false,false,true,true,true,false,true,true,false,false,false,true]; +const UsrInt_2269 = [true,false,true,true,true,false,true,true,false,false,false,true]; +const UsrInt_2270 = [false,true,true,true,true,false,true,true,false,false,false,true]; +const UsrInt_2271 = [true,true,true,true,true,false,true,true,false,false,false,true]; +const UsrInt_2272 = [false,false,false,false,false,true,true,true,false,false,false,true]; +const UsrInt_2273 = [true,false,false,false,false,true,true,true,false,false,false,true]; +const UsrInt_2274 = [false,true,false,false,false,true,true,true,false,false,false,true]; +const UsrInt_2275 = [true,true,false,false,false,true,true,true,false,false,false,true]; +const UsrInt_2276 = [false,false,true,false,false,true,true,true,false,false,false,true]; +const UsrInt_2277 = [true,false,true,false,false,true,true,true,false,false,false,true]; +const UsrInt_2278 = [false,true,true,false,false,true,true,true,false,false,false,true]; +const UsrInt_2279 = [true,true,true,false,false,true,true,true,false,false,false,true]; +const UsrInt_2280 = [false,false,false,true,false,true,true,true,false,false,false,true]; +const UsrInt_2281 = [true,false,false,true,false,true,true,true,false,false,false,true]; +const UsrInt_2282 = [false,true,false,true,false,true,true,true,false,false,false,true]; +const UsrInt_2283 = [true,true,false,true,false,true,true,true,false,false,false,true]; +const UsrInt_2284 = [false,false,true,true,false,true,true,true,false,false,false,true]; +const UsrInt_2285 = [true,false,true,true,false,true,true,true,false,false,false,true]; +const UsrInt_2286 = [false,true,true,true,false,true,true,true,false,false,false,true]; +const UsrInt_2287 = [true,true,true,true,false,true,true,true,false,false,false,true]; +const UsrInt_2288 = [false,false,false,false,true,true,true,true,false,false,false,true]; +const UsrInt_2289 = [true,false,false,false,true,true,true,true,false,false,false,true]; +const UsrInt_2290 = [false,true,false,false,true,true,true,true,false,false,false,true]; +const UsrInt_2291 = [true,true,false,false,true,true,true,true,false,false,false,true]; +const UsrInt_2292 = [false,false,true,false,true,true,true,true,false,false,false,true]; +const UsrInt_2293 = [true,false,true,false,true,true,true,true,false,false,false,true]; +const UsrInt_2294 = [false,true,true,false,true,true,true,true,false,false,false,true]; +const UsrInt_2295 = [true,true,true,false,true,true,true,true,false,false,false,true]; +const UsrInt_2296 = [false,false,false,true,true,true,true,true,false,false,false,true]; +const UsrInt_2297 = [true,false,false,true,true,true,true,true,false,false,false,true]; +const UsrInt_2298 = [false,true,false,true,true,true,true,true,false,false,false,true]; +const UsrInt_2299 = [true,true,false,true,true,true,true,true,false,false,false,true]; +const UsrInt_2300 = [false,false,true,true,true,true,true,true,false,false,false,true]; +const UsrInt_2301 = [true,false,true,true,true,true,true,true,false,false,false,true]; +const UsrInt_2302 = [false,true,true,true,true,true,true,true,false,false,false,true]; +const UsrInt_2303 = [true,true,true,true,true,true,true,true,false,false,false,true]; +const UsrInt_2304 = [false,false,false,false,false,false,false,false,true,false,false,true]; +const UsrInt_2305 = [true,false,false,false,false,false,false,false,true,false,false,true]; +const UsrInt_2306 = [false,true,false,false,false,false,false,false,true,false,false,true]; +const UsrInt_2307 = [true,true,false,false,false,false,false,false,true,false,false,true]; +const UsrInt_2308 = [false,false,true,false,false,false,false,false,true,false,false,true]; +const UsrInt_2309 = [true,false,true,false,false,false,false,false,true,false,false,true]; +const UsrInt_2310 = [false,true,true,false,false,false,false,false,true,false,false,true]; +const UsrInt_2311 = [true,true,true,false,false,false,false,false,true,false,false,true]; +const UsrInt_2312 = [false,false,false,true,false,false,false,false,true,false,false,true]; +const UsrInt_2313 = [true,false,false,true,false,false,false,false,true,false,false,true]; +const UsrInt_2314 = [false,true,false,true,false,false,false,false,true,false,false,true]; +const UsrInt_2315 = [true,true,false,true,false,false,false,false,true,false,false,true]; +const UsrInt_2316 = [false,false,true,true,false,false,false,false,true,false,false,true]; +const UsrInt_2317 = [true,false,true,true,false,false,false,false,true,false,false,true]; +const UsrInt_2318 = [false,true,true,true,false,false,false,false,true,false,false,true]; +const UsrInt_2319 = [true,true,true,true,false,false,false,false,true,false,false,true]; +const UsrInt_2320 = [false,false,false,false,true,false,false,false,true,false,false,true]; +const UsrInt_2321 = [true,false,false,false,true,false,false,false,true,false,false,true]; +const UsrInt_2322 = [false,true,false,false,true,false,false,false,true,false,false,true]; +const UsrInt_2323 = [true,true,false,false,true,false,false,false,true,false,false,true]; +const UsrInt_2324 = [false,false,true,false,true,false,false,false,true,false,false,true]; +const UsrInt_2325 = [true,false,true,false,true,false,false,false,true,false,false,true]; +const UsrInt_2326 = [false,true,true,false,true,false,false,false,true,false,false,true]; +const UsrInt_2327 = [true,true,true,false,true,false,false,false,true,false,false,true]; +const UsrInt_2328 = [false,false,false,true,true,false,false,false,true,false,false,true]; +const UsrInt_2329 = [true,false,false,true,true,false,false,false,true,false,false,true]; +const UsrInt_2330 = [false,true,false,true,true,false,false,false,true,false,false,true]; +const UsrInt_2331 = [true,true,false,true,true,false,false,false,true,false,false,true]; +const UsrInt_2332 = [false,false,true,true,true,false,false,false,true,false,false,true]; +const UsrInt_2333 = [true,false,true,true,true,false,false,false,true,false,false,true]; +const UsrInt_2334 = [false,true,true,true,true,false,false,false,true,false,false,true]; +const UsrInt_2335 = [true,true,true,true,true,false,false,false,true,false,false,true]; +const UsrInt_2336 = [false,false,false,false,false,true,false,false,true,false,false,true]; +const UsrInt_2337 = [true,false,false,false,false,true,false,false,true,false,false,true]; +const UsrInt_2338 = [false,true,false,false,false,true,false,false,true,false,false,true]; +const UsrInt_2339 = [true,true,false,false,false,true,false,false,true,false,false,true]; +const UsrInt_2340 = [false,false,true,false,false,true,false,false,true,false,false,true]; +const UsrInt_2341 = [true,false,true,false,false,true,false,false,true,false,false,true]; +const UsrInt_2342 = [false,true,true,false,false,true,false,false,true,false,false,true]; +const UsrInt_2343 = [true,true,true,false,false,true,false,false,true,false,false,true]; +const UsrInt_2344 = [false,false,false,true,false,true,false,false,true,false,false,true]; +const UsrInt_2345 = [true,false,false,true,false,true,false,false,true,false,false,true]; +const UsrInt_2346 = [false,true,false,true,false,true,false,false,true,false,false,true]; +const UsrInt_2347 = [true,true,false,true,false,true,false,false,true,false,false,true]; +const UsrInt_2348 = [false,false,true,true,false,true,false,false,true,false,false,true]; +const UsrInt_2349 = [true,false,true,true,false,true,false,false,true,false,false,true]; +const UsrInt_2350 = [false,true,true,true,false,true,false,false,true,false,false,true]; +const UsrInt_2351 = [true,true,true,true,false,true,false,false,true,false,false,true]; +const UsrInt_2352 = [false,false,false,false,true,true,false,false,true,false,false,true]; +const UsrInt_2353 = [true,false,false,false,true,true,false,false,true,false,false,true]; +const UsrInt_2354 = [false,true,false,false,true,true,false,false,true,false,false,true]; +const UsrInt_2355 = [true,true,false,false,true,true,false,false,true,false,false,true]; +const UsrInt_2356 = [false,false,true,false,true,true,false,false,true,false,false,true]; +const UsrInt_2357 = [true,false,true,false,true,true,false,false,true,false,false,true]; +const UsrInt_2358 = [false,true,true,false,true,true,false,false,true,false,false,true]; +const UsrInt_2359 = [true,true,true,false,true,true,false,false,true,false,false,true]; +const UsrInt_2360 = [false,false,false,true,true,true,false,false,true,false,false,true]; +const UsrInt_2361 = [true,false,false,true,true,true,false,false,true,false,false,true]; +const UsrInt_2362 = [false,true,false,true,true,true,false,false,true,false,false,true]; +const UsrInt_2363 = [true,true,false,true,true,true,false,false,true,false,false,true]; +const UsrInt_2364 = [false,false,true,true,true,true,false,false,true,false,false,true]; +const UsrInt_2365 = [true,false,true,true,true,true,false,false,true,false,false,true]; +const UsrInt_2366 = [false,true,true,true,true,true,false,false,true,false,false,true]; +const UsrInt_2367 = [true,true,true,true,true,true,false,false,true,false,false,true]; +const UsrInt_2368 = [false,false,false,false,false,false,true,false,true,false,false,true]; +const UsrInt_2369 = [true,false,false,false,false,false,true,false,true,false,false,true]; +const UsrInt_2370 = [false,true,false,false,false,false,true,false,true,false,false,true]; +const UsrInt_2371 = [true,true,false,false,false,false,true,false,true,false,false,true]; +const UsrInt_2372 = [false,false,true,false,false,false,true,false,true,false,false,true]; +const UsrInt_2373 = [true,false,true,false,false,false,true,false,true,false,false,true]; +const UsrInt_2374 = [false,true,true,false,false,false,true,false,true,false,false,true]; +const UsrInt_2375 = [true,true,true,false,false,false,true,false,true,false,false,true]; +const UsrInt_2376 = [false,false,false,true,false,false,true,false,true,false,false,true]; +const UsrInt_2377 = [true,false,false,true,false,false,true,false,true,false,false,true]; +const UsrInt_2378 = [false,true,false,true,false,false,true,false,true,false,false,true]; +const UsrInt_2379 = [true,true,false,true,false,false,true,false,true,false,false,true]; +const UsrInt_2380 = [false,false,true,true,false,false,true,false,true,false,false,true]; +const UsrInt_2381 = [true,false,true,true,false,false,true,false,true,false,false,true]; +const UsrInt_2382 = [false,true,true,true,false,false,true,false,true,false,false,true]; +const UsrInt_2383 = [true,true,true,true,false,false,true,false,true,false,false,true]; +const UsrInt_2384 = [false,false,false,false,true,false,true,false,true,false,false,true]; +const UsrInt_2385 = [true,false,false,false,true,false,true,false,true,false,false,true]; +const UsrInt_2386 = [false,true,false,false,true,false,true,false,true,false,false,true]; +const UsrInt_2387 = [true,true,false,false,true,false,true,false,true,false,false,true]; +const UsrInt_2388 = [false,false,true,false,true,false,true,false,true,false,false,true]; +const UsrInt_2389 = [true,false,true,false,true,false,true,false,true,false,false,true]; +const UsrInt_2390 = [false,true,true,false,true,false,true,false,true,false,false,true]; +const UsrInt_2391 = [true,true,true,false,true,false,true,false,true,false,false,true]; +const UsrInt_2392 = [false,false,false,true,true,false,true,false,true,false,false,true]; +const UsrInt_2393 = [true,false,false,true,true,false,true,false,true,false,false,true]; +const UsrInt_2394 = [false,true,false,true,true,false,true,false,true,false,false,true]; +const UsrInt_2395 = [true,true,false,true,true,false,true,false,true,false,false,true]; +const UsrInt_2396 = [false,false,true,true,true,false,true,false,true,false,false,true]; +const UsrInt_2397 = [true,false,true,true,true,false,true,false,true,false,false,true]; +const UsrInt_2398 = [false,true,true,true,true,false,true,false,true,false,false,true]; +const UsrInt_2399 = [true,true,true,true,true,false,true,false,true,false,false,true]; +const UsrInt_2400 = [false,false,false,false,false,true,true,false,true,false,false,true]; +const UsrInt_2401 = [true,false,false,false,false,true,true,false,true,false,false,true]; +const UsrInt_2402 = [false,true,false,false,false,true,true,false,true,false,false,true]; +const UsrInt_2403 = [true,true,false,false,false,true,true,false,true,false,false,true]; +const UsrInt_2404 = [false,false,true,false,false,true,true,false,true,false,false,true]; +const UsrInt_2405 = [true,false,true,false,false,true,true,false,true,false,false,true]; +const UsrInt_2406 = [false,true,true,false,false,true,true,false,true,false,false,true]; +const UsrInt_2407 = [true,true,true,false,false,true,true,false,true,false,false,true]; +const UsrInt_2408 = [false,false,false,true,false,true,true,false,true,false,false,true]; +const UsrInt_2409 = [true,false,false,true,false,true,true,false,true,false,false,true]; +const UsrInt_2410 = [false,true,false,true,false,true,true,false,true,false,false,true]; +const UsrInt_2411 = [true,true,false,true,false,true,true,false,true,false,false,true]; +const UsrInt_2412 = [false,false,true,true,false,true,true,false,true,false,false,true]; +const UsrInt_2413 = [true,false,true,true,false,true,true,false,true,false,false,true]; +const UsrInt_2414 = [false,true,true,true,false,true,true,false,true,false,false,true]; +const UsrInt_2415 = [true,true,true,true,false,true,true,false,true,false,false,true]; +const UsrInt_2416 = [false,false,false,false,true,true,true,false,true,false,false,true]; +const UsrInt_2417 = [true,false,false,false,true,true,true,false,true,false,false,true]; +const UsrInt_2418 = [false,true,false,false,true,true,true,false,true,false,false,true]; +const UsrInt_2419 = [true,true,false,false,true,true,true,false,true,false,false,true]; +const UsrInt_2420 = [false,false,true,false,true,true,true,false,true,false,false,true]; +const UsrInt_2421 = [true,false,true,false,true,true,true,false,true,false,false,true]; +const UsrInt_2422 = [false,true,true,false,true,true,true,false,true,false,false,true]; +const UsrInt_2423 = [true,true,true,false,true,true,true,false,true,false,false,true]; +const UsrInt_2424 = [false,false,false,true,true,true,true,false,true,false,false,true]; +const UsrInt_2425 = [true,false,false,true,true,true,true,false,true,false,false,true]; +const UsrInt_2426 = [false,true,false,true,true,true,true,false,true,false,false,true]; +const UsrInt_2427 = [true,true,false,true,true,true,true,false,true,false,false,true]; +const UsrInt_2428 = [false,false,true,true,true,true,true,false,true,false,false,true]; +const UsrInt_2429 = [true,false,true,true,true,true,true,false,true,false,false,true]; +const UsrInt_2430 = [false,true,true,true,true,true,true,false,true,false,false,true]; +const UsrInt_2431 = [true,true,true,true,true,true,true,false,true,false,false,true]; +const UsrInt_2432 = [false,false,false,false,false,false,false,true,true,false,false,true]; +const UsrInt_2433 = [true,false,false,false,false,false,false,true,true,false,false,true]; +const UsrInt_2434 = [false,true,false,false,false,false,false,true,true,false,false,true]; +const UsrInt_2435 = [true,true,false,false,false,false,false,true,true,false,false,true]; +const UsrInt_2436 = [false,false,true,false,false,false,false,true,true,false,false,true]; +const UsrInt_2437 = [true,false,true,false,false,false,false,true,true,false,false,true]; +const UsrInt_2438 = [false,true,true,false,false,false,false,true,true,false,false,true]; +const UsrInt_2439 = [true,true,true,false,false,false,false,true,true,false,false,true]; +const UsrInt_2440 = [false,false,false,true,false,false,false,true,true,false,false,true]; +const UsrInt_2441 = [true,false,false,true,false,false,false,true,true,false,false,true]; +const UsrInt_2442 = [false,true,false,true,false,false,false,true,true,false,false,true]; +const UsrInt_2443 = [true,true,false,true,false,false,false,true,true,false,false,true]; +const UsrInt_2444 = [false,false,true,true,false,false,false,true,true,false,false,true]; +const UsrInt_2445 = [true,false,true,true,false,false,false,true,true,false,false,true]; +const UsrInt_2446 = [false,true,true,true,false,false,false,true,true,false,false,true]; +const UsrInt_2447 = [true,true,true,true,false,false,false,true,true,false,false,true]; +const UsrInt_2448 = [false,false,false,false,true,false,false,true,true,false,false,true]; +const UsrInt_2449 = [true,false,false,false,true,false,false,true,true,false,false,true]; +const UsrInt_2450 = [false,true,false,false,true,false,false,true,true,false,false,true]; +const UsrInt_2451 = [true,true,false,false,true,false,false,true,true,false,false,true]; +const UsrInt_2452 = [false,false,true,false,true,false,false,true,true,false,false,true]; +const UsrInt_2453 = [true,false,true,false,true,false,false,true,true,false,false,true]; +const UsrInt_2454 = [false,true,true,false,true,false,false,true,true,false,false,true]; +const UsrInt_2455 = [true,true,true,false,true,false,false,true,true,false,false,true]; +const UsrInt_2456 = [false,false,false,true,true,false,false,true,true,false,false,true]; +const UsrInt_2457 = [true,false,false,true,true,false,false,true,true,false,false,true]; +const UsrInt_2458 = [false,true,false,true,true,false,false,true,true,false,false,true]; +const UsrInt_2459 = [true,true,false,true,true,false,false,true,true,false,false,true]; +const UsrInt_2460 = [false,false,true,true,true,false,false,true,true,false,false,true]; +const UsrInt_2461 = [true,false,true,true,true,false,false,true,true,false,false,true]; +const UsrInt_2462 = [false,true,true,true,true,false,false,true,true,false,false,true]; +const UsrInt_2463 = [true,true,true,true,true,false,false,true,true,false,false,true]; +const UsrInt_2464 = [false,false,false,false,false,true,false,true,true,false,false,true]; +const UsrInt_2465 = [true,false,false,false,false,true,false,true,true,false,false,true]; +const UsrInt_2466 = [false,true,false,false,false,true,false,true,true,false,false,true]; +const UsrInt_2467 = [true,true,false,false,false,true,false,true,true,false,false,true]; +const UsrInt_2468 = [false,false,true,false,false,true,false,true,true,false,false,true]; +const UsrInt_2469 = [true,false,true,false,false,true,false,true,true,false,false,true]; +const UsrInt_2470 = [false,true,true,false,false,true,false,true,true,false,false,true]; +const UsrInt_2471 = [true,true,true,false,false,true,false,true,true,false,false,true]; +const UsrInt_2472 = [false,false,false,true,false,true,false,true,true,false,false,true]; +const UsrInt_2473 = [true,false,false,true,false,true,false,true,true,false,false,true]; +const UsrInt_2474 = [false,true,false,true,false,true,false,true,true,false,false,true]; +const UsrInt_2475 = [true,true,false,true,false,true,false,true,true,false,false,true]; +const UsrInt_2476 = [false,false,true,true,false,true,false,true,true,false,false,true]; +const UsrInt_2477 = [true,false,true,true,false,true,false,true,true,false,false,true]; +const UsrInt_2478 = [false,true,true,true,false,true,false,true,true,false,false,true]; +const UsrInt_2479 = [true,true,true,true,false,true,false,true,true,false,false,true]; +const UsrInt_2480 = [false,false,false,false,true,true,false,true,true,false,false,true]; +const UsrInt_2481 = [true,false,false,false,true,true,false,true,true,false,false,true]; +const UsrInt_2482 = [false,true,false,false,true,true,false,true,true,false,false,true]; +const UsrInt_2483 = [true,true,false,false,true,true,false,true,true,false,false,true]; +const UsrInt_2484 = [false,false,true,false,true,true,false,true,true,false,false,true]; +const UsrInt_2485 = [true,false,true,false,true,true,false,true,true,false,false,true]; +const UsrInt_2486 = [false,true,true,false,true,true,false,true,true,false,false,true]; +const UsrInt_2487 = [true,true,true,false,true,true,false,true,true,false,false,true]; +const UsrInt_2488 = [false,false,false,true,true,true,false,true,true,false,false,true]; +const UsrInt_2489 = [true,false,false,true,true,true,false,true,true,false,false,true]; +const UsrInt_2490 = [false,true,false,true,true,true,false,true,true,false,false,true]; +const UsrInt_2491 = [true,true,false,true,true,true,false,true,true,false,false,true]; +const UsrInt_2492 = [false,false,true,true,true,true,false,true,true,false,false,true]; +const UsrInt_2493 = [true,false,true,true,true,true,false,true,true,false,false,true]; +const UsrInt_2494 = [false,true,true,true,true,true,false,true,true,false,false,true]; +const UsrInt_2495 = [true,true,true,true,true,true,false,true,true,false,false,true]; +const UsrInt_2496 = [false,false,false,false,false,false,true,true,true,false,false,true]; +const UsrInt_2497 = [true,false,false,false,false,false,true,true,true,false,false,true]; +const UsrInt_2498 = [false,true,false,false,false,false,true,true,true,false,false,true]; +const UsrInt_2499 = [true,true,false,false,false,false,true,true,true,false,false,true]; +const UsrInt_2500 = [false,false,true,false,false,false,true,true,true,false,false,true]; +const UsrInt_2501 = [true,false,true,false,false,false,true,true,true,false,false,true]; +const UsrInt_2502 = [false,true,true,false,false,false,true,true,true,false,false,true]; +const UsrInt_2503 = [true,true,true,false,false,false,true,true,true,false,false,true]; +const UsrInt_2504 = [false,false,false,true,false,false,true,true,true,false,false,true]; +const UsrInt_2505 = [true,false,false,true,false,false,true,true,true,false,false,true]; +const UsrInt_2506 = [false,true,false,true,false,false,true,true,true,false,false,true]; +const UsrInt_2507 = [true,true,false,true,false,false,true,true,true,false,false,true]; +const UsrInt_2508 = [false,false,true,true,false,false,true,true,true,false,false,true]; +const UsrInt_2509 = [true,false,true,true,false,false,true,true,true,false,false,true]; +const UsrInt_2510 = [false,true,true,true,false,false,true,true,true,false,false,true]; +const UsrInt_2511 = [true,true,true,true,false,false,true,true,true,false,false,true]; +const UsrInt_2512 = [false,false,false,false,true,false,true,true,true,false,false,true]; +const UsrInt_2513 = [true,false,false,false,true,false,true,true,true,false,false,true]; +const UsrInt_2514 = [false,true,false,false,true,false,true,true,true,false,false,true]; +const UsrInt_2515 = [true,true,false,false,true,false,true,true,true,false,false,true]; +const UsrInt_2516 = [false,false,true,false,true,false,true,true,true,false,false,true]; +const UsrInt_2517 = [true,false,true,false,true,false,true,true,true,false,false,true]; +const UsrInt_2518 = [false,true,true,false,true,false,true,true,true,false,false,true]; +const UsrInt_2519 = [true,true,true,false,true,false,true,true,true,false,false,true]; +const UsrInt_2520 = [false,false,false,true,true,false,true,true,true,false,false,true]; +const UsrInt_2521 = [true,false,false,true,true,false,true,true,true,false,false,true]; +const UsrInt_2522 = [false,true,false,true,true,false,true,true,true,false,false,true]; +const UsrInt_2523 = [true,true,false,true,true,false,true,true,true,false,false,true]; +const UsrInt_2524 = [false,false,true,true,true,false,true,true,true,false,false,true]; +const UsrInt_2525 = [true,false,true,true,true,false,true,true,true,false,false,true]; +const UsrInt_2526 = [false,true,true,true,true,false,true,true,true,false,false,true]; +const UsrInt_2527 = [true,true,true,true,true,false,true,true,true,false,false,true]; +const UsrInt_2528 = [false,false,false,false,false,true,true,true,true,false,false,true]; +const UsrInt_2529 = [true,false,false,false,false,true,true,true,true,false,false,true]; +const UsrInt_2530 = [false,true,false,false,false,true,true,true,true,false,false,true]; +const UsrInt_2531 = [true,true,false,false,false,true,true,true,true,false,false,true]; +const UsrInt_2532 = [false,false,true,false,false,true,true,true,true,false,false,true]; +const UsrInt_2533 = [true,false,true,false,false,true,true,true,true,false,false,true]; +const UsrInt_2534 = [false,true,true,false,false,true,true,true,true,false,false,true]; +const UsrInt_2535 = [true,true,true,false,false,true,true,true,true,false,false,true]; +const UsrInt_2536 = [false,false,false,true,false,true,true,true,true,false,false,true]; +const UsrInt_2537 = [true,false,false,true,false,true,true,true,true,false,false,true]; +const UsrInt_2538 = [false,true,false,true,false,true,true,true,true,false,false,true]; +const UsrInt_2539 = [true,true,false,true,false,true,true,true,true,false,false,true]; +const UsrInt_2540 = [false,false,true,true,false,true,true,true,true,false,false,true]; +const UsrInt_2541 = [true,false,true,true,false,true,true,true,true,false,false,true]; +const UsrInt_2542 = [false,true,true,true,false,true,true,true,true,false,false,true]; +const UsrInt_2543 = [true,true,true,true,false,true,true,true,true,false,false,true]; +const UsrInt_2544 = [false,false,false,false,true,true,true,true,true,false,false,true]; +const UsrInt_2545 = [true,false,false,false,true,true,true,true,true,false,false,true]; +const UsrInt_2546 = [false,true,false,false,true,true,true,true,true,false,false,true]; +const UsrInt_2547 = [true,true,false,false,true,true,true,true,true,false,false,true]; +const UsrInt_2548 = [false,false,true,false,true,true,true,true,true,false,false,true]; +const UsrInt_2549 = [true,false,true,false,true,true,true,true,true,false,false,true]; +const UsrInt_2550 = [false,true,true,false,true,true,true,true,true,false,false,true]; +const UsrInt_2551 = [true,true,true,false,true,true,true,true,true,false,false,true]; +const UsrInt_2552 = [false,false,false,true,true,true,true,true,true,false,false,true]; +const UsrInt_2553 = [true,false,false,true,true,true,true,true,true,false,false,true]; +const UsrInt_2554 = [false,true,false,true,true,true,true,true,true,false,false,true]; +const UsrInt_2555 = [true,true,false,true,true,true,true,true,true,false,false,true]; +const UsrInt_2556 = [false,false,true,true,true,true,true,true,true,false,false,true]; +const UsrInt_2557 = [true,false,true,true,true,true,true,true,true,false,false,true]; +const UsrInt_2558 = [false,true,true,true,true,true,true,true,true,false,false,true]; +const UsrInt_2559 = [true,true,true,true,true,true,true,true,true,false,false,true]; +const UsrInt_2560 = [false,false,false,false,false,false,false,false,false,true,false,true]; +const UsrInt_2561 = [true,false,false,false,false,false,false,false,false,true,false,true]; +const UsrInt_2562 = [false,true,false,false,false,false,false,false,false,true,false,true]; +const UsrInt_2563 = [true,true,false,false,false,false,false,false,false,true,false,true]; +const UsrInt_2564 = [false,false,true,false,false,false,false,false,false,true,false,true]; +const UsrInt_2565 = [true,false,true,false,false,false,false,false,false,true,false,true]; +const UsrInt_2566 = [false,true,true,false,false,false,false,false,false,true,false,true]; +const UsrInt_2567 = [true,true,true,false,false,false,false,false,false,true,false,true]; +const UsrInt_2568 = [false,false,false,true,false,false,false,false,false,true,false,true]; +const UsrInt_2569 = [true,false,false,true,false,false,false,false,false,true,false,true]; +const UsrInt_2570 = [false,true,false,true,false,false,false,false,false,true,false,true]; +const UsrInt_2571 = [true,true,false,true,false,false,false,false,false,true,false,true]; +const UsrInt_2572 = [false,false,true,true,false,false,false,false,false,true,false,true]; +const UsrInt_2573 = [true,false,true,true,false,false,false,false,false,true,false,true]; +const UsrInt_2574 = [false,true,true,true,false,false,false,false,false,true,false,true]; +const UsrInt_2575 = [true,true,true,true,false,false,false,false,false,true,false,true]; +const UsrInt_2576 = [false,false,false,false,true,false,false,false,false,true,false,true]; +const UsrInt_2577 = [true,false,false,false,true,false,false,false,false,true,false,true]; +const UsrInt_2578 = [false,true,false,false,true,false,false,false,false,true,false,true]; +const UsrInt_2579 = [true,true,false,false,true,false,false,false,false,true,false,true]; +const UsrInt_2580 = [false,false,true,false,true,false,false,false,false,true,false,true]; +const UsrInt_2581 = [true,false,true,false,true,false,false,false,false,true,false,true]; +const UsrInt_2582 = [false,true,true,false,true,false,false,false,false,true,false,true]; +const UsrInt_2583 = [true,true,true,false,true,false,false,false,false,true,false,true]; +const UsrInt_2584 = [false,false,false,true,true,false,false,false,false,true,false,true]; +const UsrInt_2585 = [true,false,false,true,true,false,false,false,false,true,false,true]; +const UsrInt_2586 = [false,true,false,true,true,false,false,false,false,true,false,true]; +const UsrInt_2587 = [true,true,false,true,true,false,false,false,false,true,false,true]; +const UsrInt_2588 = [false,false,true,true,true,false,false,false,false,true,false,true]; +const UsrInt_2589 = [true,false,true,true,true,false,false,false,false,true,false,true]; +const UsrInt_2590 = [false,true,true,true,true,false,false,false,false,true,false,true]; +const UsrInt_2591 = [true,true,true,true,true,false,false,false,false,true,false,true]; +const UsrInt_2592 = [false,false,false,false,false,true,false,false,false,true,false,true]; +const UsrInt_2593 = [true,false,false,false,false,true,false,false,false,true,false,true]; +const UsrInt_2594 = [false,true,false,false,false,true,false,false,false,true,false,true]; +const UsrInt_2595 = [true,true,false,false,false,true,false,false,false,true,false,true]; +const UsrInt_2596 = [false,false,true,false,false,true,false,false,false,true,false,true]; +const UsrInt_2597 = [true,false,true,false,false,true,false,false,false,true,false,true]; +const UsrInt_2598 = [false,true,true,false,false,true,false,false,false,true,false,true]; +const UsrInt_2599 = [true,true,true,false,false,true,false,false,false,true,false,true]; +const UsrInt_2600 = [false,false,false,true,false,true,false,false,false,true,false,true]; +const UsrInt_2601 = [true,false,false,true,false,true,false,false,false,true,false,true]; +const UsrInt_2602 = [false,true,false,true,false,true,false,false,false,true,false,true]; +const UsrInt_2603 = [true,true,false,true,false,true,false,false,false,true,false,true]; +const UsrInt_2604 = [false,false,true,true,false,true,false,false,false,true,false,true]; +const UsrInt_2605 = [true,false,true,true,false,true,false,false,false,true,false,true]; +const UsrInt_2606 = [false,true,true,true,false,true,false,false,false,true,false,true]; +const UsrInt_2607 = [true,true,true,true,false,true,false,false,false,true,false,true]; +const UsrInt_2608 = [false,false,false,false,true,true,false,false,false,true,false,true]; +const UsrInt_2609 = [true,false,false,false,true,true,false,false,false,true,false,true]; +const UsrInt_2610 = [false,true,false,false,true,true,false,false,false,true,false,true]; +const UsrInt_2611 = [true,true,false,false,true,true,false,false,false,true,false,true]; +const UsrInt_2612 = [false,false,true,false,true,true,false,false,false,true,false,true]; +const UsrInt_2613 = [true,false,true,false,true,true,false,false,false,true,false,true]; +const UsrInt_2614 = [false,true,true,false,true,true,false,false,false,true,false,true]; +const UsrInt_2615 = [true,true,true,false,true,true,false,false,false,true,false,true]; +const UsrInt_2616 = [false,false,false,true,true,true,false,false,false,true,false,true]; +const UsrInt_2617 = [true,false,false,true,true,true,false,false,false,true,false,true]; +const UsrInt_2618 = [false,true,false,true,true,true,false,false,false,true,false,true]; +const UsrInt_2619 = [true,true,false,true,true,true,false,false,false,true,false,true]; +const UsrInt_2620 = [false,false,true,true,true,true,false,false,false,true,false,true]; +const UsrInt_2621 = [true,false,true,true,true,true,false,false,false,true,false,true]; +const UsrInt_2622 = [false,true,true,true,true,true,false,false,false,true,false,true]; +const UsrInt_2623 = [true,true,true,true,true,true,false,false,false,true,false,true]; +const UsrInt_2624 = [false,false,false,false,false,false,true,false,false,true,false,true]; +const UsrInt_2625 = [true,false,false,false,false,false,true,false,false,true,false,true]; +const UsrInt_2626 = [false,true,false,false,false,false,true,false,false,true,false,true]; +const UsrInt_2627 = [true,true,false,false,false,false,true,false,false,true,false,true]; +const UsrInt_2628 = [false,false,true,false,false,false,true,false,false,true,false,true]; +const UsrInt_2629 = [true,false,true,false,false,false,true,false,false,true,false,true]; +const UsrInt_2630 = [false,true,true,false,false,false,true,false,false,true,false,true]; +const UsrInt_2631 = [true,true,true,false,false,false,true,false,false,true,false,true]; +const UsrInt_2632 = [false,false,false,true,false,false,true,false,false,true,false,true]; +const UsrInt_2633 = [true,false,false,true,false,false,true,false,false,true,false,true]; +const UsrInt_2634 = [false,true,false,true,false,false,true,false,false,true,false,true]; +const UsrInt_2635 = [true,true,false,true,false,false,true,false,false,true,false,true]; +const UsrInt_2636 = [false,false,true,true,false,false,true,false,false,true,false,true]; +const UsrInt_2637 = [true,false,true,true,false,false,true,false,false,true,false,true]; +const UsrInt_2638 = [false,true,true,true,false,false,true,false,false,true,false,true]; +const UsrInt_2639 = [true,true,true,true,false,false,true,false,false,true,false,true]; +const UsrInt_2640 = [false,false,false,false,true,false,true,false,false,true,false,true]; +const UsrInt_2641 = [true,false,false,false,true,false,true,false,false,true,false,true]; +const UsrInt_2642 = [false,true,false,false,true,false,true,false,false,true,false,true]; +const UsrInt_2643 = [true,true,false,false,true,false,true,false,false,true,false,true]; +const UsrInt_2644 = [false,false,true,false,true,false,true,false,false,true,false,true]; +const UsrInt_2645 = [true,false,true,false,true,false,true,false,false,true,false,true]; +const UsrInt_2646 = [false,true,true,false,true,false,true,false,false,true,false,true]; +const UsrInt_2647 = [true,true,true,false,true,false,true,false,false,true,false,true]; +const UsrInt_2648 = [false,false,false,true,true,false,true,false,false,true,false,true]; +const UsrInt_2649 = [true,false,false,true,true,false,true,false,false,true,false,true]; +const UsrInt_2650 = [false,true,false,true,true,false,true,false,false,true,false,true]; +const UsrInt_2651 = [true,true,false,true,true,false,true,false,false,true,false,true]; +const UsrInt_2652 = [false,false,true,true,true,false,true,false,false,true,false,true]; +const UsrInt_2653 = [true,false,true,true,true,false,true,false,false,true,false,true]; +const UsrInt_2654 = [false,true,true,true,true,false,true,false,false,true,false,true]; +const UsrInt_2655 = [true,true,true,true,true,false,true,false,false,true,false,true]; +const UsrInt_2656 = [false,false,false,false,false,true,true,false,false,true,false,true]; +const UsrInt_2657 = [true,false,false,false,false,true,true,false,false,true,false,true]; +const UsrInt_2658 = [false,true,false,false,false,true,true,false,false,true,false,true]; +const UsrInt_2659 = [true,true,false,false,false,true,true,false,false,true,false,true]; +const UsrInt_2660 = [false,false,true,false,false,true,true,false,false,true,false,true]; +const UsrInt_2661 = [true,false,true,false,false,true,true,false,false,true,false,true]; +const UsrInt_2662 = [false,true,true,false,false,true,true,false,false,true,false,true]; +const UsrInt_2663 = [true,true,true,false,false,true,true,false,false,true,false,true]; +const UsrInt_2664 = [false,false,false,true,false,true,true,false,false,true,false,true]; +const UsrInt_2665 = [true,false,false,true,false,true,true,false,false,true,false,true]; +const UsrInt_2666 = [false,true,false,true,false,true,true,false,false,true,false,true]; +const UsrInt_2667 = [true,true,false,true,false,true,true,false,false,true,false,true]; +const UsrInt_2668 = [false,false,true,true,false,true,true,false,false,true,false,true]; +const UsrInt_2669 = [true,false,true,true,false,true,true,false,false,true,false,true]; +const UsrInt_2670 = [false,true,true,true,false,true,true,false,false,true,false,true]; +const UsrInt_2671 = [true,true,true,true,false,true,true,false,false,true,false,true]; +const UsrInt_2672 = [false,false,false,false,true,true,true,false,false,true,false,true]; +const UsrInt_2673 = [true,false,false,false,true,true,true,false,false,true,false,true]; +const UsrInt_2674 = [false,true,false,false,true,true,true,false,false,true,false,true]; +const UsrInt_2675 = [true,true,false,false,true,true,true,false,false,true,false,true]; +const UsrInt_2676 = [false,false,true,false,true,true,true,false,false,true,false,true]; +const UsrInt_2677 = [true,false,true,false,true,true,true,false,false,true,false,true]; +const UsrInt_2678 = [false,true,true,false,true,true,true,false,false,true,false,true]; +const UsrInt_2679 = [true,true,true,false,true,true,true,false,false,true,false,true]; +const UsrInt_2680 = [false,false,false,true,true,true,true,false,false,true,false,true]; +const UsrInt_2681 = [true,false,false,true,true,true,true,false,false,true,false,true]; +const UsrInt_2682 = [false,true,false,true,true,true,true,false,false,true,false,true]; +const UsrInt_2683 = [true,true,false,true,true,true,true,false,false,true,false,true]; +const UsrInt_2684 = [false,false,true,true,true,true,true,false,false,true,false,true]; +const UsrInt_2685 = [true,false,true,true,true,true,true,false,false,true,false,true]; +const UsrInt_2686 = [false,true,true,true,true,true,true,false,false,true,false,true]; +const UsrInt_2687 = [true,true,true,true,true,true,true,false,false,true,false,true]; +const UsrInt_2688 = [false,false,false,false,false,false,false,true,false,true,false,true]; +const UsrInt_2689 = [true,false,false,false,false,false,false,true,false,true,false,true]; +const UsrInt_2690 = [false,true,false,false,false,false,false,true,false,true,false,true]; +const UsrInt_2691 = [true,true,false,false,false,false,false,true,false,true,false,true]; +const UsrInt_2692 = [false,false,true,false,false,false,false,true,false,true,false,true]; +const UsrInt_2693 = [true,false,true,false,false,false,false,true,false,true,false,true]; +const UsrInt_2694 = [false,true,true,false,false,false,false,true,false,true,false,true]; +const UsrInt_2695 = [true,true,true,false,false,false,false,true,false,true,false,true]; +const UsrInt_2696 = [false,false,false,true,false,false,false,true,false,true,false,true]; +const UsrInt_2697 = [true,false,false,true,false,false,false,true,false,true,false,true]; +const UsrInt_2698 = [false,true,false,true,false,false,false,true,false,true,false,true]; +const UsrInt_2699 = [true,true,false,true,false,false,false,true,false,true,false,true]; +const UsrInt_2700 = [false,false,true,true,false,false,false,true,false,true,false,true]; +const UsrInt_2701 = [true,false,true,true,false,false,false,true,false,true,false,true]; +const UsrInt_2702 = [false,true,true,true,false,false,false,true,false,true,false,true]; +const UsrInt_2703 = [true,true,true,true,false,false,false,true,false,true,false,true]; +const UsrInt_2704 = [false,false,false,false,true,false,false,true,false,true,false,true]; +const UsrInt_2705 = [true,false,false,false,true,false,false,true,false,true,false,true]; +const UsrInt_2706 = [false,true,false,false,true,false,false,true,false,true,false,true]; +const UsrInt_2707 = [true,true,false,false,true,false,false,true,false,true,false,true]; +const UsrInt_2708 = [false,false,true,false,true,false,false,true,false,true,false,true]; +const UsrInt_2709 = [true,false,true,false,true,false,false,true,false,true,false,true]; +const UsrInt_2710 = [false,true,true,false,true,false,false,true,false,true,false,true]; +const UsrInt_2711 = [true,true,true,false,true,false,false,true,false,true,false,true]; +const UsrInt_2712 = [false,false,false,true,true,false,false,true,false,true,false,true]; +const UsrInt_2713 = [true,false,false,true,true,false,false,true,false,true,false,true]; +const UsrInt_2714 = [false,true,false,true,true,false,false,true,false,true,false,true]; +const UsrInt_2715 = [true,true,false,true,true,false,false,true,false,true,false,true]; +const UsrInt_2716 = [false,false,true,true,true,false,false,true,false,true,false,true]; +const UsrInt_2717 = [true,false,true,true,true,false,false,true,false,true,false,true]; +const UsrInt_2718 = [false,true,true,true,true,false,false,true,false,true,false,true]; +const UsrInt_2719 = [true,true,true,true,true,false,false,true,false,true,false,true]; +const UsrInt_2720 = [false,false,false,false,false,true,false,true,false,true,false,true]; +const UsrInt_2721 = [true,false,false,false,false,true,false,true,false,true,false,true]; +const UsrInt_2722 = [false,true,false,false,false,true,false,true,false,true,false,true]; +const UsrInt_2723 = [true,true,false,false,false,true,false,true,false,true,false,true]; +const UsrInt_2724 = [false,false,true,false,false,true,false,true,false,true,false,true]; +const UsrInt_2725 = [true,false,true,false,false,true,false,true,false,true,false,true]; +const UsrInt_2726 = [false,true,true,false,false,true,false,true,false,true,false,true]; +const UsrInt_2727 = [true,true,true,false,false,true,false,true,false,true,false,true]; +const UsrInt_2728 = [false,false,false,true,false,true,false,true,false,true,false,true]; +const UsrInt_2729 = [true,false,false,true,false,true,false,true,false,true,false,true]; +const UsrInt_2730 = [false,true,false,true,false,true,false,true,false,true,false,true]; +const UsrInt_2731 = [true,true,false,true,false,true,false,true,false,true,false,true]; +const UsrInt_2732 = [false,false,true,true,false,true,false,true,false,true,false,true]; +const UsrInt_2733 = [true,false,true,true,false,true,false,true,false,true,false,true]; +const UsrInt_2734 = [false,true,true,true,false,true,false,true,false,true,false,true]; +const UsrInt_2735 = [true,true,true,true,false,true,false,true,false,true,false,true]; +const UsrInt_2736 = [false,false,false,false,true,true,false,true,false,true,false,true]; +const UsrInt_2737 = [true,false,false,false,true,true,false,true,false,true,false,true]; +const UsrInt_2738 = [false,true,false,false,true,true,false,true,false,true,false,true]; +const UsrInt_2739 = [true,true,false,false,true,true,false,true,false,true,false,true]; +const UsrInt_2740 = [false,false,true,false,true,true,false,true,false,true,false,true]; +const UsrInt_2741 = [true,false,true,false,true,true,false,true,false,true,false,true]; +const UsrInt_2742 = [false,true,true,false,true,true,false,true,false,true,false,true]; +const UsrInt_2743 = [true,true,true,false,true,true,false,true,false,true,false,true]; +const UsrInt_2744 = [false,false,false,true,true,true,false,true,false,true,false,true]; +const UsrInt_2745 = [true,false,false,true,true,true,false,true,false,true,false,true]; +const UsrInt_2746 = [false,true,false,true,true,true,false,true,false,true,false,true]; +const UsrInt_2747 = [true,true,false,true,true,true,false,true,false,true,false,true]; +const UsrInt_2748 = [false,false,true,true,true,true,false,true,false,true,false,true]; +const UsrInt_2749 = [true,false,true,true,true,true,false,true,false,true,false,true]; +const UsrInt_2750 = [false,true,true,true,true,true,false,true,false,true,false,true]; +const UsrInt_2751 = [true,true,true,true,true,true,false,true,false,true,false,true]; +const UsrInt_2752 = [false,false,false,false,false,false,true,true,false,true,false,true]; +const UsrInt_2753 = [true,false,false,false,false,false,true,true,false,true,false,true]; +const UsrInt_2754 = [false,true,false,false,false,false,true,true,false,true,false,true]; +const UsrInt_2755 = [true,true,false,false,false,false,true,true,false,true,false,true]; +const UsrInt_2756 = [false,false,true,false,false,false,true,true,false,true,false,true]; +const UsrInt_2757 = [true,false,true,false,false,false,true,true,false,true,false,true]; +const UsrInt_2758 = [false,true,true,false,false,false,true,true,false,true,false,true]; +const UsrInt_2759 = [true,true,true,false,false,false,true,true,false,true,false,true]; +const UsrInt_2760 = [false,false,false,true,false,false,true,true,false,true,false,true]; +const UsrInt_2761 = [true,false,false,true,false,false,true,true,false,true,false,true]; +const UsrInt_2762 = [false,true,false,true,false,false,true,true,false,true,false,true]; +const UsrInt_2763 = [true,true,false,true,false,false,true,true,false,true,false,true]; +const UsrInt_2764 = [false,false,true,true,false,false,true,true,false,true,false,true]; +const UsrInt_2765 = [true,false,true,true,false,false,true,true,false,true,false,true]; +const UsrInt_2766 = [false,true,true,true,false,false,true,true,false,true,false,true]; +const UsrInt_2767 = [true,true,true,true,false,false,true,true,false,true,false,true]; +const UsrInt_2768 = [false,false,false,false,true,false,true,true,false,true,false,true]; +const UsrInt_2769 = [true,false,false,false,true,false,true,true,false,true,false,true]; +const UsrInt_2770 = [false,true,false,false,true,false,true,true,false,true,false,true]; +const UsrInt_2771 = [true,true,false,false,true,false,true,true,false,true,false,true]; +const UsrInt_2772 = [false,false,true,false,true,false,true,true,false,true,false,true]; +const UsrInt_2773 = [true,false,true,false,true,false,true,true,false,true,false,true]; +const UsrInt_2774 = [false,true,true,false,true,false,true,true,false,true,false,true]; +const UsrInt_2775 = [true,true,true,false,true,false,true,true,false,true,false,true]; +const UsrInt_2776 = [false,false,false,true,true,false,true,true,false,true,false,true]; +const UsrInt_2777 = [true,false,false,true,true,false,true,true,false,true,false,true]; +const UsrInt_2778 = [false,true,false,true,true,false,true,true,false,true,false,true]; +const UsrInt_2779 = [true,true,false,true,true,false,true,true,false,true,false,true]; +const UsrInt_2780 = [false,false,true,true,true,false,true,true,false,true,false,true]; +const UsrInt_2781 = [true,false,true,true,true,false,true,true,false,true,false,true]; +const UsrInt_2782 = [false,true,true,true,true,false,true,true,false,true,false,true]; +const UsrInt_2783 = [true,true,true,true,true,false,true,true,false,true,false,true]; +const UsrInt_2784 = [false,false,false,false,false,true,true,true,false,true,false,true]; +const UsrInt_2785 = [true,false,false,false,false,true,true,true,false,true,false,true]; +const UsrInt_2786 = [false,true,false,false,false,true,true,true,false,true,false,true]; +const UsrInt_2787 = [true,true,false,false,false,true,true,true,false,true,false,true]; +const UsrInt_2788 = [false,false,true,false,false,true,true,true,false,true,false,true]; +const UsrInt_2789 = [true,false,true,false,false,true,true,true,false,true,false,true]; +const UsrInt_2790 = [false,true,true,false,false,true,true,true,false,true,false,true]; +const UsrInt_2791 = [true,true,true,false,false,true,true,true,false,true,false,true]; +const UsrInt_2792 = [false,false,false,true,false,true,true,true,false,true,false,true]; +const UsrInt_2793 = [true,false,false,true,false,true,true,true,false,true,false,true]; +const UsrInt_2794 = [false,true,false,true,false,true,true,true,false,true,false,true]; +const UsrInt_2795 = [true,true,false,true,false,true,true,true,false,true,false,true]; +const UsrInt_2796 = [false,false,true,true,false,true,true,true,false,true,false,true]; +const UsrInt_2797 = [true,false,true,true,false,true,true,true,false,true,false,true]; +const UsrInt_2798 = [false,true,true,true,false,true,true,true,false,true,false,true]; +const UsrInt_2799 = [true,true,true,true,false,true,true,true,false,true,false,true]; +const UsrInt_2800 = [false,false,false,false,true,true,true,true,false,true,false,true]; +const UsrInt_2801 = [true,false,false,false,true,true,true,true,false,true,false,true]; +const UsrInt_2802 = [false,true,false,false,true,true,true,true,false,true,false,true]; +const UsrInt_2803 = [true,true,false,false,true,true,true,true,false,true,false,true]; +const UsrInt_2804 = [false,false,true,false,true,true,true,true,false,true,false,true]; +const UsrInt_2805 = [true,false,true,false,true,true,true,true,false,true,false,true]; +const UsrInt_2806 = [false,true,true,false,true,true,true,true,false,true,false,true]; +const UsrInt_2807 = [true,true,true,false,true,true,true,true,false,true,false,true]; +const UsrInt_2808 = [false,false,false,true,true,true,true,true,false,true,false,true]; +const UsrInt_2809 = [true,false,false,true,true,true,true,true,false,true,false,true]; +const UsrInt_2810 = [false,true,false,true,true,true,true,true,false,true,false,true]; +const UsrInt_2811 = [true,true,false,true,true,true,true,true,false,true,false,true]; +const UsrInt_2812 = [false,false,true,true,true,true,true,true,false,true,false,true]; +const UsrInt_2813 = [true,false,true,true,true,true,true,true,false,true,false,true]; +const UsrInt_2814 = [false,true,true,true,true,true,true,true,false,true,false,true]; +const UsrInt_2815 = [true,true,true,true,true,true,true,true,false,true,false,true]; +const UsrInt_2816 = [false,false,false,false,false,false,false,false,true,true,false,true]; +const UsrInt_2817 = [true,false,false,false,false,false,false,false,true,true,false,true]; +const UsrInt_2818 = [false,true,false,false,false,false,false,false,true,true,false,true]; +const UsrInt_2819 = [true,true,false,false,false,false,false,false,true,true,false,true]; +const UsrInt_2820 = [false,false,true,false,false,false,false,false,true,true,false,true]; +const UsrInt_2821 = [true,false,true,false,false,false,false,false,true,true,false,true]; +const UsrInt_2822 = [false,true,true,false,false,false,false,false,true,true,false,true]; +const UsrInt_2823 = [true,true,true,false,false,false,false,false,true,true,false,true]; +const UsrInt_2824 = [false,false,false,true,false,false,false,false,true,true,false,true]; +const UsrInt_2825 = [true,false,false,true,false,false,false,false,true,true,false,true]; +const UsrInt_2826 = [false,true,false,true,false,false,false,false,true,true,false,true]; +const UsrInt_2827 = [true,true,false,true,false,false,false,false,true,true,false,true]; +const UsrInt_2828 = [false,false,true,true,false,false,false,false,true,true,false,true]; +const UsrInt_2829 = [true,false,true,true,false,false,false,false,true,true,false,true]; +const UsrInt_2830 = [false,true,true,true,false,false,false,false,true,true,false,true]; +const UsrInt_2831 = [true,true,true,true,false,false,false,false,true,true,false,true]; +const UsrInt_2832 = [false,false,false,false,true,false,false,false,true,true,false,true]; +const UsrInt_2833 = [true,false,false,false,true,false,false,false,true,true,false,true]; +const UsrInt_2834 = [false,true,false,false,true,false,false,false,true,true,false,true]; +const UsrInt_2835 = [true,true,false,false,true,false,false,false,true,true,false,true]; +const UsrInt_2836 = [false,false,true,false,true,false,false,false,true,true,false,true]; +const UsrInt_2837 = [true,false,true,false,true,false,false,false,true,true,false,true]; +const UsrInt_2838 = [false,true,true,false,true,false,false,false,true,true,false,true]; +const UsrInt_2839 = [true,true,true,false,true,false,false,false,true,true,false,true]; +const UsrInt_2840 = [false,false,false,true,true,false,false,false,true,true,false,true]; +const UsrInt_2841 = [true,false,false,true,true,false,false,false,true,true,false,true]; +const UsrInt_2842 = [false,true,false,true,true,false,false,false,true,true,false,true]; +const UsrInt_2843 = [true,true,false,true,true,false,false,false,true,true,false,true]; +const UsrInt_2844 = [false,false,true,true,true,false,false,false,true,true,false,true]; +const UsrInt_2845 = [true,false,true,true,true,false,false,false,true,true,false,true]; +const UsrInt_2846 = [false,true,true,true,true,false,false,false,true,true,false,true]; +const UsrInt_2847 = [true,true,true,true,true,false,false,false,true,true,false,true]; +const UsrInt_2848 = [false,false,false,false,false,true,false,false,true,true,false,true]; +const UsrInt_2849 = [true,false,false,false,false,true,false,false,true,true,false,true]; +const UsrInt_2850 = [false,true,false,false,false,true,false,false,true,true,false,true]; +const UsrInt_2851 = [true,true,false,false,false,true,false,false,true,true,false,true]; +const UsrInt_2852 = [false,false,true,false,false,true,false,false,true,true,false,true]; +const UsrInt_2853 = [true,false,true,false,false,true,false,false,true,true,false,true]; +const UsrInt_2854 = [false,true,true,false,false,true,false,false,true,true,false,true]; +const UsrInt_2855 = [true,true,true,false,false,true,false,false,true,true,false,true]; +const UsrInt_2856 = [false,false,false,true,false,true,false,false,true,true,false,true]; +const UsrInt_2857 = [true,false,false,true,false,true,false,false,true,true,false,true]; +const UsrInt_2858 = [false,true,false,true,false,true,false,false,true,true,false,true]; +const UsrInt_2859 = [true,true,false,true,false,true,false,false,true,true,false,true]; +const UsrInt_2860 = [false,false,true,true,false,true,false,false,true,true,false,true]; +const UsrInt_2861 = [true,false,true,true,false,true,false,false,true,true,false,true]; +const UsrInt_2862 = [false,true,true,true,false,true,false,false,true,true,false,true]; +const UsrInt_2863 = [true,true,true,true,false,true,false,false,true,true,false,true]; +const UsrInt_2864 = [false,false,false,false,true,true,false,false,true,true,false,true]; +const UsrInt_2865 = [true,false,false,false,true,true,false,false,true,true,false,true]; +const UsrInt_2866 = [false,true,false,false,true,true,false,false,true,true,false,true]; +const UsrInt_2867 = [true,true,false,false,true,true,false,false,true,true,false,true]; +const UsrInt_2868 = [false,false,true,false,true,true,false,false,true,true,false,true]; +const UsrInt_2869 = [true,false,true,false,true,true,false,false,true,true,false,true]; +const UsrInt_2870 = [false,true,true,false,true,true,false,false,true,true,false,true]; +const UsrInt_2871 = [true,true,true,false,true,true,false,false,true,true,false,true]; +const UsrInt_2872 = [false,false,false,true,true,true,false,false,true,true,false,true]; +const UsrInt_2873 = [true,false,false,true,true,true,false,false,true,true,false,true]; +const UsrInt_2874 = [false,true,false,true,true,true,false,false,true,true,false,true]; +const UsrInt_2875 = [true,true,false,true,true,true,false,false,true,true,false,true]; +const UsrInt_2876 = [false,false,true,true,true,true,false,false,true,true,false,true]; +const UsrInt_2877 = [true,false,true,true,true,true,false,false,true,true,false,true]; +const UsrInt_2878 = [false,true,true,true,true,true,false,false,true,true,false,true]; +const UsrInt_2879 = [true,true,true,true,true,true,false,false,true,true,false,true]; +const UsrInt_2880 = [false,false,false,false,false,false,true,false,true,true,false,true]; +const UsrInt_2881 = [true,false,false,false,false,false,true,false,true,true,false,true]; +const UsrInt_2882 = [false,true,false,false,false,false,true,false,true,true,false,true]; +const UsrInt_2883 = [true,true,false,false,false,false,true,false,true,true,false,true]; +const UsrInt_2884 = [false,false,true,false,false,false,true,false,true,true,false,true]; +const UsrInt_2885 = [true,false,true,false,false,false,true,false,true,true,false,true]; +const UsrInt_2886 = [false,true,true,false,false,false,true,false,true,true,false,true]; +const UsrInt_2887 = [true,true,true,false,false,false,true,false,true,true,false,true]; +const UsrInt_2888 = [false,false,false,true,false,false,true,false,true,true,false,true]; +const UsrInt_2889 = [true,false,false,true,false,false,true,false,true,true,false,true]; +const UsrInt_2890 = [false,true,false,true,false,false,true,false,true,true,false,true]; +const UsrInt_2891 = [true,true,false,true,false,false,true,false,true,true,false,true]; +const UsrInt_2892 = [false,false,true,true,false,false,true,false,true,true,false,true]; +const UsrInt_2893 = [true,false,true,true,false,false,true,false,true,true,false,true]; +const UsrInt_2894 = [false,true,true,true,false,false,true,false,true,true,false,true]; +const UsrInt_2895 = [true,true,true,true,false,false,true,false,true,true,false,true]; +const UsrInt_2896 = [false,false,false,false,true,false,true,false,true,true,false,true]; +const UsrInt_2897 = [true,false,false,false,true,false,true,false,true,true,false,true]; +const UsrInt_2898 = [false,true,false,false,true,false,true,false,true,true,false,true]; +const UsrInt_2899 = [true,true,false,false,true,false,true,false,true,true,false,true]; +const UsrInt_2900 = [false,false,true,false,true,false,true,false,true,true,false,true]; +const UsrInt_2901 = [true,false,true,false,true,false,true,false,true,true,false,true]; +const UsrInt_2902 = [false,true,true,false,true,false,true,false,true,true,false,true]; +const UsrInt_2903 = [true,true,true,false,true,false,true,false,true,true,false,true]; +const UsrInt_2904 = [false,false,false,true,true,false,true,false,true,true,false,true]; +const UsrInt_2905 = [true,false,false,true,true,false,true,false,true,true,false,true]; +const UsrInt_2906 = [false,true,false,true,true,false,true,false,true,true,false,true]; +const UsrInt_2907 = [true,true,false,true,true,false,true,false,true,true,false,true]; +const UsrInt_2908 = [false,false,true,true,true,false,true,false,true,true,false,true]; +const UsrInt_2909 = [true,false,true,true,true,false,true,false,true,true,false,true]; +const UsrInt_2910 = [false,true,true,true,true,false,true,false,true,true,false,true]; +const UsrInt_2911 = [true,true,true,true,true,false,true,false,true,true,false,true]; +const UsrInt_2912 = [false,false,false,false,false,true,true,false,true,true,false,true]; +const UsrInt_2913 = [true,false,false,false,false,true,true,false,true,true,false,true]; +const UsrInt_2914 = [false,true,false,false,false,true,true,false,true,true,false,true]; +const UsrInt_2915 = [true,true,false,false,false,true,true,false,true,true,false,true]; +const UsrInt_2916 = [false,false,true,false,false,true,true,false,true,true,false,true]; +const UsrInt_2917 = [true,false,true,false,false,true,true,false,true,true,false,true]; +const UsrInt_2918 = [false,true,true,false,false,true,true,false,true,true,false,true]; +const UsrInt_2919 = [true,true,true,false,false,true,true,false,true,true,false,true]; +const UsrInt_2920 = [false,false,false,true,false,true,true,false,true,true,false,true]; +const UsrInt_2921 = [true,false,false,true,false,true,true,false,true,true,false,true]; +const UsrInt_2922 = [false,true,false,true,false,true,true,false,true,true,false,true]; +const UsrInt_2923 = [true,true,false,true,false,true,true,false,true,true,false,true]; +const UsrInt_2924 = [false,false,true,true,false,true,true,false,true,true,false,true]; +const UsrInt_2925 = [true,false,true,true,false,true,true,false,true,true,false,true]; +const UsrInt_2926 = [false,true,true,true,false,true,true,false,true,true,false,true]; +const UsrInt_2927 = [true,true,true,true,false,true,true,false,true,true,false,true]; +const UsrInt_2928 = [false,false,false,false,true,true,true,false,true,true,false,true]; +const UsrInt_2929 = [true,false,false,false,true,true,true,false,true,true,false,true]; +const UsrInt_2930 = [false,true,false,false,true,true,true,false,true,true,false,true]; +const UsrInt_2931 = [true,true,false,false,true,true,true,false,true,true,false,true]; +const UsrInt_2932 = [false,false,true,false,true,true,true,false,true,true,false,true]; +const UsrInt_2933 = [true,false,true,false,true,true,true,false,true,true,false,true]; +const UsrInt_2934 = [false,true,true,false,true,true,true,false,true,true,false,true]; +const UsrInt_2935 = [true,true,true,false,true,true,true,false,true,true,false,true]; +const UsrInt_2936 = [false,false,false,true,true,true,true,false,true,true,false,true]; +const UsrInt_2937 = [true,false,false,true,true,true,true,false,true,true,false,true]; +const UsrInt_2938 = [false,true,false,true,true,true,true,false,true,true,false,true]; +const UsrInt_2939 = [true,true,false,true,true,true,true,false,true,true,false,true]; +const UsrInt_2940 = [false,false,true,true,true,true,true,false,true,true,false,true]; +const UsrInt_2941 = [true,false,true,true,true,true,true,false,true,true,false,true]; +const UsrInt_2942 = [false,true,true,true,true,true,true,false,true,true,false,true]; +const UsrInt_2943 = [true,true,true,true,true,true,true,false,true,true,false,true]; +const UsrInt_2944 = [false,false,false,false,false,false,false,true,true,true,false,true]; +const UsrInt_2945 = [true,false,false,false,false,false,false,true,true,true,false,true]; +const UsrInt_2946 = [false,true,false,false,false,false,false,true,true,true,false,true]; +const UsrInt_2947 = [true,true,false,false,false,false,false,true,true,true,false,true]; +const UsrInt_2948 = [false,false,true,false,false,false,false,true,true,true,false,true]; +const UsrInt_2949 = [true,false,true,false,false,false,false,true,true,true,false,true]; +const UsrInt_2950 = [false,true,true,false,false,false,false,true,true,true,false,true]; +const UsrInt_2951 = [true,true,true,false,false,false,false,true,true,true,false,true]; +const UsrInt_2952 = [false,false,false,true,false,false,false,true,true,true,false,true]; +const UsrInt_2953 = [true,false,false,true,false,false,false,true,true,true,false,true]; +const UsrInt_2954 = [false,true,false,true,false,false,false,true,true,true,false,true]; +const UsrInt_2955 = [true,true,false,true,false,false,false,true,true,true,false,true]; +const UsrInt_2956 = [false,false,true,true,false,false,false,true,true,true,false,true]; +const UsrInt_2957 = [true,false,true,true,false,false,false,true,true,true,false,true]; +const UsrInt_2958 = [false,true,true,true,false,false,false,true,true,true,false,true]; +const UsrInt_2959 = [true,true,true,true,false,false,false,true,true,true,false,true]; +const UsrInt_2960 = [false,false,false,false,true,false,false,true,true,true,false,true]; +const UsrInt_2961 = [true,false,false,false,true,false,false,true,true,true,false,true]; +const UsrInt_2962 = [false,true,false,false,true,false,false,true,true,true,false,true]; +const UsrInt_2963 = [true,true,false,false,true,false,false,true,true,true,false,true]; +const UsrInt_2964 = [false,false,true,false,true,false,false,true,true,true,false,true]; +const UsrInt_2965 = [true,false,true,false,true,false,false,true,true,true,false,true]; +const UsrInt_2966 = [false,true,true,false,true,false,false,true,true,true,false,true]; +const UsrInt_2967 = [true,true,true,false,true,false,false,true,true,true,false,true]; +const UsrInt_2968 = [false,false,false,true,true,false,false,true,true,true,false,true]; +const UsrInt_2969 = [true,false,false,true,true,false,false,true,true,true,false,true]; +const UsrInt_2970 = [false,true,false,true,true,false,false,true,true,true,false,true]; +const UsrInt_2971 = [true,true,false,true,true,false,false,true,true,true,false,true]; +const UsrInt_2972 = [false,false,true,true,true,false,false,true,true,true,false,true]; +const UsrInt_2973 = [true,false,true,true,true,false,false,true,true,true,false,true]; +const UsrInt_2974 = [false,true,true,true,true,false,false,true,true,true,false,true]; +const UsrInt_2975 = [true,true,true,true,true,false,false,true,true,true,false,true]; +const UsrInt_2976 = [false,false,false,false,false,true,false,true,true,true,false,true]; +const UsrInt_2977 = [true,false,false,false,false,true,false,true,true,true,false,true]; +const UsrInt_2978 = [false,true,false,false,false,true,false,true,true,true,false,true]; +const UsrInt_2979 = [true,true,false,false,false,true,false,true,true,true,false,true]; +const UsrInt_2980 = [false,false,true,false,false,true,false,true,true,true,false,true]; +const UsrInt_2981 = [true,false,true,false,false,true,false,true,true,true,false,true]; +const UsrInt_2982 = [false,true,true,false,false,true,false,true,true,true,false,true]; +const UsrInt_2983 = [true,true,true,false,false,true,false,true,true,true,false,true]; +const UsrInt_2984 = [false,false,false,true,false,true,false,true,true,true,false,true]; +const UsrInt_2985 = [true,false,false,true,false,true,false,true,true,true,false,true]; +const UsrInt_2986 = [false,true,false,true,false,true,false,true,true,true,false,true]; +const UsrInt_2987 = [true,true,false,true,false,true,false,true,true,true,false,true]; +const UsrInt_2988 = [false,false,true,true,false,true,false,true,true,true,false,true]; +const UsrInt_2989 = [true,false,true,true,false,true,false,true,true,true,false,true]; +const UsrInt_2990 = [false,true,true,true,false,true,false,true,true,true,false,true]; +const UsrInt_2991 = [true,true,true,true,false,true,false,true,true,true,false,true]; +const UsrInt_2992 = [false,false,false,false,true,true,false,true,true,true,false,true]; +const UsrInt_2993 = [true,false,false,false,true,true,false,true,true,true,false,true]; +const UsrInt_2994 = [false,true,false,false,true,true,false,true,true,true,false,true]; +const UsrInt_2995 = [true,true,false,false,true,true,false,true,true,true,false,true]; +const UsrInt_2996 = [false,false,true,false,true,true,false,true,true,true,false,true]; +const UsrInt_2997 = [true,false,true,false,true,true,false,true,true,true,false,true]; +const UsrInt_2998 = [false,true,true,false,true,true,false,true,true,true,false,true]; +const UsrInt_2999 = [true,true,true,false,true,true,false,true,true,true,false,true]; +const UsrInt_3000 = [false,false,false,true,true,true,false,true,true,true,false,true]; +const UsrInt_3001 = [true,false,false,true,true,true,false,true,true,true,false,true]; +const UsrInt_3002 = [false,true,false,true,true,true,false,true,true,true,false,true]; +const UsrInt_3003 = [true,true,false,true,true,true,false,true,true,true,false,true]; +const UsrInt_3004 = [false,false,true,true,true,true,false,true,true,true,false,true]; +const UsrInt_3005 = [true,false,true,true,true,true,false,true,true,true,false,true]; +const UsrInt_3006 = [false,true,true,true,true,true,false,true,true,true,false,true]; +const UsrInt_3007 = [true,true,true,true,true,true,false,true,true,true,false,true]; +const UsrInt_3008 = [false,false,false,false,false,false,true,true,true,true,false,true]; +const UsrInt_3009 = [true,false,false,false,false,false,true,true,true,true,false,true]; +const UsrInt_3010 = [false,true,false,false,false,false,true,true,true,true,false,true]; +const UsrInt_3011 = [true,true,false,false,false,false,true,true,true,true,false,true]; +const UsrInt_3012 = [false,false,true,false,false,false,true,true,true,true,false,true]; +const UsrInt_3013 = [true,false,true,false,false,false,true,true,true,true,false,true]; +const UsrInt_3014 = [false,true,true,false,false,false,true,true,true,true,false,true]; +const UsrInt_3015 = [true,true,true,false,false,false,true,true,true,true,false,true]; +const UsrInt_3016 = [false,false,false,true,false,false,true,true,true,true,false,true]; +const UsrInt_3017 = [true,false,false,true,false,false,true,true,true,true,false,true]; +const UsrInt_3018 = [false,true,false,true,false,false,true,true,true,true,false,true]; +const UsrInt_3019 = [true,true,false,true,false,false,true,true,true,true,false,true]; +const UsrInt_3020 = [false,false,true,true,false,false,true,true,true,true,false,true]; +const UsrInt_3021 = [true,false,true,true,false,false,true,true,true,true,false,true]; +const UsrInt_3022 = [false,true,true,true,false,false,true,true,true,true,false,true]; +const UsrInt_3023 = [true,true,true,true,false,false,true,true,true,true,false,true]; +const UsrInt_3024 = [false,false,false,false,true,false,true,true,true,true,false,true]; +const UsrInt_3025 = [true,false,false,false,true,false,true,true,true,true,false,true]; +const UsrInt_3026 = [false,true,false,false,true,false,true,true,true,true,false,true]; +const UsrInt_3027 = [true,true,false,false,true,false,true,true,true,true,false,true]; +const UsrInt_3028 = [false,false,true,false,true,false,true,true,true,true,false,true]; +const UsrInt_3029 = [true,false,true,false,true,false,true,true,true,true,false,true]; +const UsrInt_3030 = [false,true,true,false,true,false,true,true,true,true,false,true]; +const UsrInt_3031 = [true,true,true,false,true,false,true,true,true,true,false,true]; +const UsrInt_3032 = [false,false,false,true,true,false,true,true,true,true,false,true]; +const UsrInt_3033 = [true,false,false,true,true,false,true,true,true,true,false,true]; +const UsrInt_3034 = [false,true,false,true,true,false,true,true,true,true,false,true]; +const UsrInt_3035 = [true,true,false,true,true,false,true,true,true,true,false,true]; +const UsrInt_3036 = [false,false,true,true,true,false,true,true,true,true,false,true]; +const UsrInt_3037 = [true,false,true,true,true,false,true,true,true,true,false,true]; +const UsrInt_3038 = [false,true,true,true,true,false,true,true,true,true,false,true]; +const UsrInt_3039 = [true,true,true,true,true,false,true,true,true,true,false,true]; +const UsrInt_3040 = [false,false,false,false,false,true,true,true,true,true,false,true]; +const UsrInt_3041 = [true,false,false,false,false,true,true,true,true,true,false,true]; +const UsrInt_3042 = [false,true,false,false,false,true,true,true,true,true,false,true]; +const UsrInt_3043 = [true,true,false,false,false,true,true,true,true,true,false,true]; +const UsrInt_3044 = [false,false,true,false,false,true,true,true,true,true,false,true]; +const UsrInt_3045 = [true,false,true,false,false,true,true,true,true,true,false,true]; +const UsrInt_3046 = [false,true,true,false,false,true,true,true,true,true,false,true]; +const UsrInt_3047 = [true,true,true,false,false,true,true,true,true,true,false,true]; +const UsrInt_3048 = [false,false,false,true,false,true,true,true,true,true,false,true]; +const UsrInt_3049 = [true,false,false,true,false,true,true,true,true,true,false,true]; +const UsrInt_3050 = [false,true,false,true,false,true,true,true,true,true,false,true]; +const UsrInt_3051 = [true,true,false,true,false,true,true,true,true,true,false,true]; +const UsrInt_3052 = [false,false,true,true,false,true,true,true,true,true,false,true]; +const UsrInt_3053 = [true,false,true,true,false,true,true,true,true,true,false,true]; +const UsrInt_3054 = [false,true,true,true,false,true,true,true,true,true,false,true]; +const UsrInt_3055 = [true,true,true,true,false,true,true,true,true,true,false,true]; +const UsrInt_3056 = [false,false,false,false,true,true,true,true,true,true,false,true]; +const UsrInt_3057 = [true,false,false,false,true,true,true,true,true,true,false,true]; +const UsrInt_3058 = [false,true,false,false,true,true,true,true,true,true,false,true]; +const UsrInt_3059 = [true,true,false,false,true,true,true,true,true,true,false,true]; +const UsrInt_3060 = [false,false,true,false,true,true,true,true,true,true,false,true]; +const UsrInt_3061 = [true,false,true,false,true,true,true,true,true,true,false,true]; +const UsrInt_3062 = [false,true,true,false,true,true,true,true,true,true,false,true]; +const UsrInt_3063 = [true,true,true,false,true,true,true,true,true,true,false,true]; +const UsrInt_3064 = [false,false,false,true,true,true,true,true,true,true,false,true]; +const UsrInt_3065 = [true,false,false,true,true,true,true,true,true,true,false,true]; +const UsrInt_3066 = [false,true,false,true,true,true,true,true,true,true,false,true]; +const UsrInt_3067 = [true,true,false,true,true,true,true,true,true,true,false,true]; +const UsrInt_3068 = [false,false,true,true,true,true,true,true,true,true,false,true]; +const UsrInt_3069 = [true,false,true,true,true,true,true,true,true,true,false,true]; +const UsrInt_3070 = [false,true,true,true,true,true,true,true,true,true,false,true]; +const UsrInt_3071 = [true,true,true,true,true,true,true,true,true,true,false,true]; +const UsrInt_3072 = [false,false,false,false,false,false,false,false,false,false,true,true]; +const UsrInt_3073 = [true,false,false,false,false,false,false,false,false,false,true,true]; +const UsrInt_3074 = [false,true,false,false,false,false,false,false,false,false,true,true]; +const UsrInt_3075 = [true,true,false,false,false,false,false,false,false,false,true,true]; +const UsrInt_3076 = [false,false,true,false,false,false,false,false,false,false,true,true]; +const UsrInt_3077 = [true,false,true,false,false,false,false,false,false,false,true,true]; +const UsrInt_3078 = [false,true,true,false,false,false,false,false,false,false,true,true]; +const UsrInt_3079 = [true,true,true,false,false,false,false,false,false,false,true,true]; +const UsrInt_3080 = [false,false,false,true,false,false,false,false,false,false,true,true]; +const UsrInt_3081 = [true,false,false,true,false,false,false,false,false,false,true,true]; +const UsrInt_3082 = [false,true,false,true,false,false,false,false,false,false,true,true]; +const UsrInt_3083 = [true,true,false,true,false,false,false,false,false,false,true,true]; +const UsrInt_3084 = [false,false,true,true,false,false,false,false,false,false,true,true]; +const UsrInt_3085 = [true,false,true,true,false,false,false,false,false,false,true,true]; +const UsrInt_3086 = [false,true,true,true,false,false,false,false,false,false,true,true]; +const UsrInt_3087 = [true,true,true,true,false,false,false,false,false,false,true,true]; +const UsrInt_3088 = [false,false,false,false,true,false,false,false,false,false,true,true]; +const UsrInt_3089 = [true,false,false,false,true,false,false,false,false,false,true,true]; +const UsrInt_3090 = [false,true,false,false,true,false,false,false,false,false,true,true]; +const UsrInt_3091 = [true,true,false,false,true,false,false,false,false,false,true,true]; +const UsrInt_3092 = [false,false,true,false,true,false,false,false,false,false,true,true]; +const UsrInt_3093 = [true,false,true,false,true,false,false,false,false,false,true,true]; +const UsrInt_3094 = [false,true,true,false,true,false,false,false,false,false,true,true]; +const UsrInt_3095 = [true,true,true,false,true,false,false,false,false,false,true,true]; +const UsrInt_3096 = [false,false,false,true,true,false,false,false,false,false,true,true]; +const UsrInt_3097 = [true,false,false,true,true,false,false,false,false,false,true,true]; +const UsrInt_3098 = [false,true,false,true,true,false,false,false,false,false,true,true]; +const UsrInt_3099 = [true,true,false,true,true,false,false,false,false,false,true,true]; +const UsrInt_3100 = [false,false,true,true,true,false,false,false,false,false,true,true]; +const UsrInt_3101 = [true,false,true,true,true,false,false,false,false,false,true,true]; +const UsrInt_3102 = [false,true,true,true,true,false,false,false,false,false,true,true]; +const UsrInt_3103 = [true,true,true,true,true,false,false,false,false,false,true,true]; +const UsrInt_3104 = [false,false,false,false,false,true,false,false,false,false,true,true]; +const UsrInt_3105 = [true,false,false,false,false,true,false,false,false,false,true,true]; +const UsrInt_3106 = [false,true,false,false,false,true,false,false,false,false,true,true]; +const UsrInt_3107 = [true,true,false,false,false,true,false,false,false,false,true,true]; +const UsrInt_3108 = [false,false,true,false,false,true,false,false,false,false,true,true]; +const UsrInt_3109 = [true,false,true,false,false,true,false,false,false,false,true,true]; +const UsrInt_3110 = [false,true,true,false,false,true,false,false,false,false,true,true]; +const UsrInt_3111 = [true,true,true,false,false,true,false,false,false,false,true,true]; +const UsrInt_3112 = [false,false,false,true,false,true,false,false,false,false,true,true]; +const UsrInt_3113 = [true,false,false,true,false,true,false,false,false,false,true,true]; +const UsrInt_3114 = [false,true,false,true,false,true,false,false,false,false,true,true]; +const UsrInt_3115 = [true,true,false,true,false,true,false,false,false,false,true,true]; +const UsrInt_3116 = [false,false,true,true,false,true,false,false,false,false,true,true]; +const UsrInt_3117 = [true,false,true,true,false,true,false,false,false,false,true,true]; +const UsrInt_3118 = [false,true,true,true,false,true,false,false,false,false,true,true]; +const UsrInt_3119 = [true,true,true,true,false,true,false,false,false,false,true,true]; +const UsrInt_3120 = [false,false,false,false,true,true,false,false,false,false,true,true]; +const UsrInt_3121 = [true,false,false,false,true,true,false,false,false,false,true,true]; +const UsrInt_3122 = [false,true,false,false,true,true,false,false,false,false,true,true]; +const UsrInt_3123 = [true,true,false,false,true,true,false,false,false,false,true,true]; +const UsrInt_3124 = [false,false,true,false,true,true,false,false,false,false,true,true]; +const UsrInt_3125 = [true,false,true,false,true,true,false,false,false,false,true,true]; +const UsrInt_3126 = [false,true,true,false,true,true,false,false,false,false,true,true]; +const UsrInt_3127 = [true,true,true,false,true,true,false,false,false,false,true,true]; +const UsrInt_3128 = [false,false,false,true,true,true,false,false,false,false,true,true]; +const UsrInt_3129 = [true,false,false,true,true,true,false,false,false,false,true,true]; +const UsrInt_3130 = [false,true,false,true,true,true,false,false,false,false,true,true]; +const UsrInt_3131 = [true,true,false,true,true,true,false,false,false,false,true,true]; +const UsrInt_3132 = [false,false,true,true,true,true,false,false,false,false,true,true]; +const UsrInt_3133 = [true,false,true,true,true,true,false,false,false,false,true,true]; +const UsrInt_3134 = [false,true,true,true,true,true,false,false,false,false,true,true]; +const UsrInt_3135 = [true,true,true,true,true,true,false,false,false,false,true,true]; +const UsrInt_3136 = [false,false,false,false,false,false,true,false,false,false,true,true]; +const UsrInt_3137 = [true,false,false,false,false,false,true,false,false,false,true,true]; +const UsrInt_3138 = [false,true,false,false,false,false,true,false,false,false,true,true]; +const UsrInt_3139 = [true,true,false,false,false,false,true,false,false,false,true,true]; +const UsrInt_3140 = [false,false,true,false,false,false,true,false,false,false,true,true]; +const UsrInt_3141 = [true,false,true,false,false,false,true,false,false,false,true,true]; +const UsrInt_3142 = [false,true,true,false,false,false,true,false,false,false,true,true]; +const UsrInt_3143 = [true,true,true,false,false,false,true,false,false,false,true,true]; +const UsrInt_3144 = [false,false,false,true,false,false,true,false,false,false,true,true]; +const UsrInt_3145 = [true,false,false,true,false,false,true,false,false,false,true,true]; +const UsrInt_3146 = [false,true,false,true,false,false,true,false,false,false,true,true]; +const UsrInt_3147 = [true,true,false,true,false,false,true,false,false,false,true,true]; +const UsrInt_3148 = [false,false,true,true,false,false,true,false,false,false,true,true]; +const UsrInt_3149 = [true,false,true,true,false,false,true,false,false,false,true,true]; +const UsrInt_3150 = [false,true,true,true,false,false,true,false,false,false,true,true]; +const UsrInt_3151 = [true,true,true,true,false,false,true,false,false,false,true,true]; +const UsrInt_3152 = [false,false,false,false,true,false,true,false,false,false,true,true]; +const UsrInt_3153 = [true,false,false,false,true,false,true,false,false,false,true,true]; +const UsrInt_3154 = [false,true,false,false,true,false,true,false,false,false,true,true]; +const UsrInt_3155 = [true,true,false,false,true,false,true,false,false,false,true,true]; +const UsrInt_3156 = [false,false,true,false,true,false,true,false,false,false,true,true]; +const UsrInt_3157 = [true,false,true,false,true,false,true,false,false,false,true,true]; +const UsrInt_3158 = [false,true,true,false,true,false,true,false,false,false,true,true]; +const UsrInt_3159 = [true,true,true,false,true,false,true,false,false,false,true,true]; +const UsrInt_3160 = [false,false,false,true,true,false,true,false,false,false,true,true]; +const UsrInt_3161 = [true,false,false,true,true,false,true,false,false,false,true,true]; +const UsrInt_3162 = [false,true,false,true,true,false,true,false,false,false,true,true]; +const UsrInt_3163 = [true,true,false,true,true,false,true,false,false,false,true,true]; +const UsrInt_3164 = [false,false,true,true,true,false,true,false,false,false,true,true]; +const UsrInt_3165 = [true,false,true,true,true,false,true,false,false,false,true,true]; +const UsrInt_3166 = [false,true,true,true,true,false,true,false,false,false,true,true]; +const UsrInt_3167 = [true,true,true,true,true,false,true,false,false,false,true,true]; +const UsrInt_3168 = [false,false,false,false,false,true,true,false,false,false,true,true]; +const UsrInt_3169 = [true,false,false,false,false,true,true,false,false,false,true,true]; +const UsrInt_3170 = [false,true,false,false,false,true,true,false,false,false,true,true]; +const UsrInt_3171 = [true,true,false,false,false,true,true,false,false,false,true,true]; +const UsrInt_3172 = [false,false,true,false,false,true,true,false,false,false,true,true]; +const UsrInt_3173 = [true,false,true,false,false,true,true,false,false,false,true,true]; +const UsrInt_3174 = [false,true,true,false,false,true,true,false,false,false,true,true]; +const UsrInt_3175 = [true,true,true,false,false,true,true,false,false,false,true,true]; +const UsrInt_3176 = [false,false,false,true,false,true,true,false,false,false,true,true]; +const UsrInt_3177 = [true,false,false,true,false,true,true,false,false,false,true,true]; +const UsrInt_3178 = [false,true,false,true,false,true,true,false,false,false,true,true]; +const UsrInt_3179 = [true,true,false,true,false,true,true,false,false,false,true,true]; +const UsrInt_3180 = [false,false,true,true,false,true,true,false,false,false,true,true]; +const UsrInt_3181 = [true,false,true,true,false,true,true,false,false,false,true,true]; +const UsrInt_3182 = [false,true,true,true,false,true,true,false,false,false,true,true]; +const UsrInt_3183 = [true,true,true,true,false,true,true,false,false,false,true,true]; +const UsrInt_3184 = [false,false,false,false,true,true,true,false,false,false,true,true]; +const UsrInt_3185 = [true,false,false,false,true,true,true,false,false,false,true,true]; +const UsrInt_3186 = [false,true,false,false,true,true,true,false,false,false,true,true]; +const UsrInt_3187 = [true,true,false,false,true,true,true,false,false,false,true,true]; +const UsrInt_3188 = [false,false,true,false,true,true,true,false,false,false,true,true]; +const UsrInt_3189 = [true,false,true,false,true,true,true,false,false,false,true,true]; +const UsrInt_3190 = [false,true,true,false,true,true,true,false,false,false,true,true]; +const UsrInt_3191 = [true,true,true,false,true,true,true,false,false,false,true,true]; +const UsrInt_3192 = [false,false,false,true,true,true,true,false,false,false,true,true]; +const UsrInt_3193 = [true,false,false,true,true,true,true,false,false,false,true,true]; +const UsrInt_3194 = [false,true,false,true,true,true,true,false,false,false,true,true]; +const UsrInt_3195 = [true,true,false,true,true,true,true,false,false,false,true,true]; +const UsrInt_3196 = [false,false,true,true,true,true,true,false,false,false,true,true]; +const UsrInt_3197 = [true,false,true,true,true,true,true,false,false,false,true,true]; +const UsrInt_3198 = [false,true,true,true,true,true,true,false,false,false,true,true]; +const UsrInt_3199 = [true,true,true,true,true,true,true,false,false,false,true,true]; +const UsrInt_3200 = [false,false,false,false,false,false,false,true,false,false,true,true]; +const UsrInt_3201 = [true,false,false,false,false,false,false,true,false,false,true,true]; +const UsrInt_3202 = [false,true,false,false,false,false,false,true,false,false,true,true]; +const UsrInt_3203 = [true,true,false,false,false,false,false,true,false,false,true,true]; +const UsrInt_3204 = [false,false,true,false,false,false,false,true,false,false,true,true]; +const UsrInt_3205 = [true,false,true,false,false,false,false,true,false,false,true,true]; +const UsrInt_3206 = [false,true,true,false,false,false,false,true,false,false,true,true]; +const UsrInt_3207 = [true,true,true,false,false,false,false,true,false,false,true,true]; +const UsrInt_3208 = [false,false,false,true,false,false,false,true,false,false,true,true]; +const UsrInt_3209 = [true,false,false,true,false,false,false,true,false,false,true,true]; +const UsrInt_3210 = [false,true,false,true,false,false,false,true,false,false,true,true]; +const UsrInt_3211 = [true,true,false,true,false,false,false,true,false,false,true,true]; +const UsrInt_3212 = [false,false,true,true,false,false,false,true,false,false,true,true]; +const UsrInt_3213 = [true,false,true,true,false,false,false,true,false,false,true,true]; +const UsrInt_3214 = [false,true,true,true,false,false,false,true,false,false,true,true]; +const UsrInt_3215 = [true,true,true,true,false,false,false,true,false,false,true,true]; +const UsrInt_3216 = [false,false,false,false,true,false,false,true,false,false,true,true]; +const UsrInt_3217 = [true,false,false,false,true,false,false,true,false,false,true,true]; +const UsrInt_3218 = [false,true,false,false,true,false,false,true,false,false,true,true]; +const UsrInt_3219 = [true,true,false,false,true,false,false,true,false,false,true,true]; +const UsrInt_3220 = [false,false,true,false,true,false,false,true,false,false,true,true]; +const UsrInt_3221 = [true,false,true,false,true,false,false,true,false,false,true,true]; +const UsrInt_3222 = [false,true,true,false,true,false,false,true,false,false,true,true]; +const UsrInt_3223 = [true,true,true,false,true,false,false,true,false,false,true,true]; +const UsrInt_3224 = [false,false,false,true,true,false,false,true,false,false,true,true]; +const UsrInt_3225 = [true,false,false,true,true,false,false,true,false,false,true,true]; +const UsrInt_3226 = [false,true,false,true,true,false,false,true,false,false,true,true]; +const UsrInt_3227 = [true,true,false,true,true,false,false,true,false,false,true,true]; +const UsrInt_3228 = [false,false,true,true,true,false,false,true,false,false,true,true]; +const UsrInt_3229 = [true,false,true,true,true,false,false,true,false,false,true,true]; +const UsrInt_3230 = [false,true,true,true,true,false,false,true,false,false,true,true]; +const UsrInt_3231 = [true,true,true,true,true,false,false,true,false,false,true,true]; +const UsrInt_3232 = [false,false,false,false,false,true,false,true,false,false,true,true]; +const UsrInt_3233 = [true,false,false,false,false,true,false,true,false,false,true,true]; +const UsrInt_3234 = [false,true,false,false,false,true,false,true,false,false,true,true]; +const UsrInt_3235 = [true,true,false,false,false,true,false,true,false,false,true,true]; +const UsrInt_3236 = [false,false,true,false,false,true,false,true,false,false,true,true]; +const UsrInt_3237 = [true,false,true,false,false,true,false,true,false,false,true,true]; +const UsrInt_3238 = [false,true,true,false,false,true,false,true,false,false,true,true]; +const UsrInt_3239 = [true,true,true,false,false,true,false,true,false,false,true,true]; +const UsrInt_3240 = [false,false,false,true,false,true,false,true,false,false,true,true]; +const UsrInt_3241 = [true,false,false,true,false,true,false,true,false,false,true,true]; +const UsrInt_3242 = [false,true,false,true,false,true,false,true,false,false,true,true]; +const UsrInt_3243 = [true,true,false,true,false,true,false,true,false,false,true,true]; +const UsrInt_3244 = [false,false,true,true,false,true,false,true,false,false,true,true]; +const UsrInt_3245 = [true,false,true,true,false,true,false,true,false,false,true,true]; +const UsrInt_3246 = [false,true,true,true,false,true,false,true,false,false,true,true]; +const UsrInt_3247 = [true,true,true,true,false,true,false,true,false,false,true,true]; +const UsrInt_3248 = [false,false,false,false,true,true,false,true,false,false,true,true]; +const UsrInt_3249 = [true,false,false,false,true,true,false,true,false,false,true,true]; +const UsrInt_3250 = [false,true,false,false,true,true,false,true,false,false,true,true]; +const UsrInt_3251 = [true,true,false,false,true,true,false,true,false,false,true,true]; +const UsrInt_3252 = [false,false,true,false,true,true,false,true,false,false,true,true]; +const UsrInt_3253 = [true,false,true,false,true,true,false,true,false,false,true,true]; +const UsrInt_3254 = [false,true,true,false,true,true,false,true,false,false,true,true]; +const UsrInt_3255 = [true,true,true,false,true,true,false,true,false,false,true,true]; +const UsrInt_3256 = [false,false,false,true,true,true,false,true,false,false,true,true]; +const UsrInt_3257 = [true,false,false,true,true,true,false,true,false,false,true,true]; +const UsrInt_3258 = [false,true,false,true,true,true,false,true,false,false,true,true]; +const UsrInt_3259 = [true,true,false,true,true,true,false,true,false,false,true,true]; +const UsrInt_3260 = [false,false,true,true,true,true,false,true,false,false,true,true]; +const UsrInt_3261 = [true,false,true,true,true,true,false,true,false,false,true,true]; +const UsrInt_3262 = [false,true,true,true,true,true,false,true,false,false,true,true]; +const UsrInt_3263 = [true,true,true,true,true,true,false,true,false,false,true,true]; +const UsrInt_3264 = [false,false,false,false,false,false,true,true,false,false,true,true]; +const UsrInt_3265 = [true,false,false,false,false,false,true,true,false,false,true,true]; +const UsrInt_3266 = [false,true,false,false,false,false,true,true,false,false,true,true]; +const UsrInt_3267 = [true,true,false,false,false,false,true,true,false,false,true,true]; +const UsrInt_3268 = [false,false,true,false,false,false,true,true,false,false,true,true]; +const UsrInt_3269 = [true,false,true,false,false,false,true,true,false,false,true,true]; +const UsrInt_3270 = [false,true,true,false,false,false,true,true,false,false,true,true]; +const UsrInt_3271 = [true,true,true,false,false,false,true,true,false,false,true,true]; +const UsrInt_3272 = [false,false,false,true,false,false,true,true,false,false,true,true]; +const UsrInt_3273 = [true,false,false,true,false,false,true,true,false,false,true,true]; +const UsrInt_3274 = [false,true,false,true,false,false,true,true,false,false,true,true]; +const UsrInt_3275 = [true,true,false,true,false,false,true,true,false,false,true,true]; +const UsrInt_3276 = [false,false,true,true,false,false,true,true,false,false,true,true]; +const UsrInt_3277 = [true,false,true,true,false,false,true,true,false,false,true,true]; +const UsrInt_3278 = [false,true,true,true,false,false,true,true,false,false,true,true]; +const UsrInt_3279 = [true,true,true,true,false,false,true,true,false,false,true,true]; +const UsrInt_3280 = [false,false,false,false,true,false,true,true,false,false,true,true]; +const UsrInt_3281 = [true,false,false,false,true,false,true,true,false,false,true,true]; +const UsrInt_3282 = [false,true,false,false,true,false,true,true,false,false,true,true]; +const UsrInt_3283 = [true,true,false,false,true,false,true,true,false,false,true,true]; +const UsrInt_3284 = [false,false,true,false,true,false,true,true,false,false,true,true]; +const UsrInt_3285 = [true,false,true,false,true,false,true,true,false,false,true,true]; +const UsrInt_3286 = [false,true,true,false,true,false,true,true,false,false,true,true]; +const UsrInt_3287 = [true,true,true,false,true,false,true,true,false,false,true,true]; +const UsrInt_3288 = [false,false,false,true,true,false,true,true,false,false,true,true]; +const UsrInt_3289 = [true,false,false,true,true,false,true,true,false,false,true,true]; +const UsrInt_3290 = [false,true,false,true,true,false,true,true,false,false,true,true]; +const UsrInt_3291 = [true,true,false,true,true,false,true,true,false,false,true,true]; +const UsrInt_3292 = [false,false,true,true,true,false,true,true,false,false,true,true]; +const UsrInt_3293 = [true,false,true,true,true,false,true,true,false,false,true,true]; +const UsrInt_3294 = [false,true,true,true,true,false,true,true,false,false,true,true]; +const UsrInt_3295 = [true,true,true,true,true,false,true,true,false,false,true,true]; +const UsrInt_3296 = [false,false,false,false,false,true,true,true,false,false,true,true]; +const UsrInt_3297 = [true,false,false,false,false,true,true,true,false,false,true,true]; +const UsrInt_3298 = [false,true,false,false,false,true,true,true,false,false,true,true]; +const UsrInt_3299 = [true,true,false,false,false,true,true,true,false,false,true,true]; +const UsrInt_3300 = [false,false,true,false,false,true,true,true,false,false,true,true]; +const UsrInt_3301 = [true,false,true,false,false,true,true,true,false,false,true,true]; +const UsrInt_3302 = [false,true,true,false,false,true,true,true,false,false,true,true]; +const UsrInt_3303 = [true,true,true,false,false,true,true,true,false,false,true,true]; +const UsrInt_3304 = [false,false,false,true,false,true,true,true,false,false,true,true]; +const UsrInt_3305 = [true,false,false,true,false,true,true,true,false,false,true,true]; +const UsrInt_3306 = [false,true,false,true,false,true,true,true,false,false,true,true]; +const UsrInt_3307 = [true,true,false,true,false,true,true,true,false,false,true,true]; +const UsrInt_3308 = [false,false,true,true,false,true,true,true,false,false,true,true]; +const UsrInt_3309 = [true,false,true,true,false,true,true,true,false,false,true,true]; +const UsrInt_3310 = [false,true,true,true,false,true,true,true,false,false,true,true]; +const UsrInt_3311 = [true,true,true,true,false,true,true,true,false,false,true,true]; +const UsrInt_3312 = [false,false,false,false,true,true,true,true,false,false,true,true]; +const UsrInt_3313 = [true,false,false,false,true,true,true,true,false,false,true,true]; +const UsrInt_3314 = [false,true,false,false,true,true,true,true,false,false,true,true]; +const UsrInt_3315 = [true,true,false,false,true,true,true,true,false,false,true,true]; +const UsrInt_3316 = [false,false,true,false,true,true,true,true,false,false,true,true]; +const UsrInt_3317 = [true,false,true,false,true,true,true,true,false,false,true,true]; +const UsrInt_3318 = [false,true,true,false,true,true,true,true,false,false,true,true]; +const UsrInt_3319 = [true,true,true,false,true,true,true,true,false,false,true,true]; +const UsrInt_3320 = [false,false,false,true,true,true,true,true,false,false,true,true]; +const UsrInt_3321 = [true,false,false,true,true,true,true,true,false,false,true,true]; +const UsrInt_3322 = [false,true,false,true,true,true,true,true,false,false,true,true]; +const UsrInt_3323 = [true,true,false,true,true,true,true,true,false,false,true,true]; +const UsrInt_3324 = [false,false,true,true,true,true,true,true,false,false,true,true]; +const UsrInt_3325 = [true,false,true,true,true,true,true,true,false,false,true,true]; +const UsrInt_3326 = [false,true,true,true,true,true,true,true,false,false,true,true]; +const UsrInt_3327 = [true,true,true,true,true,true,true,true,false,false,true,true]; +const UsrInt_3328 = [false,false,false,false,false,false,false,false,true,false,true,true]; +const UsrInt_3329 = [true,false,false,false,false,false,false,false,true,false,true,true]; +const UsrInt_3330 = [false,true,false,false,false,false,false,false,true,false,true,true]; +const UsrInt_3331 = [true,true,false,false,false,false,false,false,true,false,true,true]; +const UsrInt_3332 = [false,false,true,false,false,false,false,false,true,false,true,true]; +const UsrInt_3333 = [true,false,true,false,false,false,false,false,true,false,true,true]; +const UsrInt_3334 = [false,true,true,false,false,false,false,false,true,false,true,true]; +const UsrInt_3335 = [true,true,true,false,false,false,false,false,true,false,true,true]; +const UsrInt_3336 = [false,false,false,true,false,false,false,false,true,false,true,true]; +const UsrInt_3337 = [true,false,false,true,false,false,false,false,true,false,true,true]; +const UsrInt_3338 = [false,true,false,true,false,false,false,false,true,false,true,true]; +const UsrInt_3339 = [true,true,false,true,false,false,false,false,true,false,true,true]; +const UsrInt_3340 = [false,false,true,true,false,false,false,false,true,false,true,true]; +const UsrInt_3341 = [true,false,true,true,false,false,false,false,true,false,true,true]; +const UsrInt_3342 = [false,true,true,true,false,false,false,false,true,false,true,true]; +const UsrInt_3343 = [true,true,true,true,false,false,false,false,true,false,true,true]; +const UsrInt_3344 = [false,false,false,false,true,false,false,false,true,false,true,true]; +const UsrInt_3345 = [true,false,false,false,true,false,false,false,true,false,true,true]; +const UsrInt_3346 = [false,true,false,false,true,false,false,false,true,false,true,true]; +const UsrInt_3347 = [true,true,false,false,true,false,false,false,true,false,true,true]; +const UsrInt_3348 = [false,false,true,false,true,false,false,false,true,false,true,true]; +const UsrInt_3349 = [true,false,true,false,true,false,false,false,true,false,true,true]; +const UsrInt_3350 = [false,true,true,false,true,false,false,false,true,false,true,true]; +const UsrInt_3351 = [true,true,true,false,true,false,false,false,true,false,true,true]; +const UsrInt_3352 = [false,false,false,true,true,false,false,false,true,false,true,true]; +const UsrInt_3353 = [true,false,false,true,true,false,false,false,true,false,true,true]; +const UsrInt_3354 = [false,true,false,true,true,false,false,false,true,false,true,true]; +const UsrInt_3355 = [true,true,false,true,true,false,false,false,true,false,true,true]; +const UsrInt_3356 = [false,false,true,true,true,false,false,false,true,false,true,true]; +const UsrInt_3357 = [true,false,true,true,true,false,false,false,true,false,true,true]; +const UsrInt_3358 = [false,true,true,true,true,false,false,false,true,false,true,true]; +const UsrInt_3359 = [true,true,true,true,true,false,false,false,true,false,true,true]; +const UsrInt_3360 = [false,false,false,false,false,true,false,false,true,false,true,true]; +const UsrInt_3361 = [true,false,false,false,false,true,false,false,true,false,true,true]; +const UsrInt_3362 = [false,true,false,false,false,true,false,false,true,false,true,true]; +const UsrInt_3363 = [true,true,false,false,false,true,false,false,true,false,true,true]; +const UsrInt_3364 = [false,false,true,false,false,true,false,false,true,false,true,true]; +const UsrInt_3365 = [true,false,true,false,false,true,false,false,true,false,true,true]; +const UsrInt_3366 = [false,true,true,false,false,true,false,false,true,false,true,true]; +const UsrInt_3367 = [true,true,true,false,false,true,false,false,true,false,true,true]; +const UsrInt_3368 = [false,false,false,true,false,true,false,false,true,false,true,true]; +const UsrInt_3369 = [true,false,false,true,false,true,false,false,true,false,true,true]; +const UsrInt_3370 = [false,true,false,true,false,true,false,false,true,false,true,true]; +const UsrInt_3371 = [true,true,false,true,false,true,false,false,true,false,true,true]; +const UsrInt_3372 = [false,false,true,true,false,true,false,false,true,false,true,true]; +const UsrInt_3373 = [true,false,true,true,false,true,false,false,true,false,true,true]; +const UsrInt_3374 = [false,true,true,true,false,true,false,false,true,false,true,true]; +const UsrInt_3375 = [true,true,true,true,false,true,false,false,true,false,true,true]; +const UsrInt_3376 = [false,false,false,false,true,true,false,false,true,false,true,true]; +const UsrInt_3377 = [true,false,false,false,true,true,false,false,true,false,true,true]; +const UsrInt_3378 = [false,true,false,false,true,true,false,false,true,false,true,true]; +const UsrInt_3379 = [true,true,false,false,true,true,false,false,true,false,true,true]; +const UsrInt_3380 = [false,false,true,false,true,true,false,false,true,false,true,true]; +const UsrInt_3381 = [true,false,true,false,true,true,false,false,true,false,true,true]; +const UsrInt_3382 = [false,true,true,false,true,true,false,false,true,false,true,true]; +const UsrInt_3383 = [true,true,true,false,true,true,false,false,true,false,true,true]; +const UsrInt_3384 = [false,false,false,true,true,true,false,false,true,false,true,true]; +const UsrInt_3385 = [true,false,false,true,true,true,false,false,true,false,true,true]; +const UsrInt_3386 = [false,true,false,true,true,true,false,false,true,false,true,true]; +const UsrInt_3387 = [true,true,false,true,true,true,false,false,true,false,true,true]; +const UsrInt_3388 = [false,false,true,true,true,true,false,false,true,false,true,true]; +const UsrInt_3389 = [true,false,true,true,true,true,false,false,true,false,true,true]; +const UsrInt_3390 = [false,true,true,true,true,true,false,false,true,false,true,true]; +const UsrInt_3391 = [true,true,true,true,true,true,false,false,true,false,true,true]; +const UsrInt_3392 = [false,false,false,false,false,false,true,false,true,false,true,true]; +const UsrInt_3393 = [true,false,false,false,false,false,true,false,true,false,true,true]; +const UsrInt_3394 = [false,true,false,false,false,false,true,false,true,false,true,true]; +const UsrInt_3395 = [true,true,false,false,false,false,true,false,true,false,true,true]; +const UsrInt_3396 = [false,false,true,false,false,false,true,false,true,false,true,true]; +const UsrInt_3397 = [true,false,true,false,false,false,true,false,true,false,true,true]; +const UsrInt_3398 = [false,true,true,false,false,false,true,false,true,false,true,true]; +const UsrInt_3399 = [true,true,true,false,false,false,true,false,true,false,true,true]; +const UsrInt_3400 = [false,false,false,true,false,false,true,false,true,false,true,true]; +const UsrInt_3401 = [true,false,false,true,false,false,true,false,true,false,true,true]; +const UsrInt_3402 = [false,true,false,true,false,false,true,false,true,false,true,true]; +const UsrInt_3403 = [true,true,false,true,false,false,true,false,true,false,true,true]; +const UsrInt_3404 = [false,false,true,true,false,false,true,false,true,false,true,true]; +const UsrInt_3405 = [true,false,true,true,false,false,true,false,true,false,true,true]; +const UsrInt_3406 = [false,true,true,true,false,false,true,false,true,false,true,true]; +const UsrInt_3407 = [true,true,true,true,false,false,true,false,true,false,true,true]; +const UsrInt_3408 = [false,false,false,false,true,false,true,false,true,false,true,true]; +const UsrInt_3409 = [true,false,false,false,true,false,true,false,true,false,true,true]; +const UsrInt_3410 = [false,true,false,false,true,false,true,false,true,false,true,true]; +const UsrInt_3411 = [true,true,false,false,true,false,true,false,true,false,true,true]; +const UsrInt_3412 = [false,false,true,false,true,false,true,false,true,false,true,true]; +const UsrInt_3413 = [true,false,true,false,true,false,true,false,true,false,true,true]; +const UsrInt_3414 = [false,true,true,false,true,false,true,false,true,false,true,true]; +const UsrInt_3415 = [true,true,true,false,true,false,true,false,true,false,true,true]; +const UsrInt_3416 = [false,false,false,true,true,false,true,false,true,false,true,true]; +const UsrInt_3417 = [true,false,false,true,true,false,true,false,true,false,true,true]; +const UsrInt_3418 = [false,true,false,true,true,false,true,false,true,false,true,true]; +const UsrInt_3419 = [true,true,false,true,true,false,true,false,true,false,true,true]; +const UsrInt_3420 = [false,false,true,true,true,false,true,false,true,false,true,true]; +const UsrInt_3421 = [true,false,true,true,true,false,true,false,true,false,true,true]; +const UsrInt_3422 = [false,true,true,true,true,false,true,false,true,false,true,true]; +const UsrInt_3423 = [true,true,true,true,true,false,true,false,true,false,true,true]; +const UsrInt_3424 = [false,false,false,false,false,true,true,false,true,false,true,true]; +const UsrInt_3425 = [true,false,false,false,false,true,true,false,true,false,true,true]; +const UsrInt_3426 = [false,true,false,false,false,true,true,false,true,false,true,true]; +const UsrInt_3427 = [true,true,false,false,false,true,true,false,true,false,true,true]; +const UsrInt_3428 = [false,false,true,false,false,true,true,false,true,false,true,true]; +const UsrInt_3429 = [true,false,true,false,false,true,true,false,true,false,true,true]; +const UsrInt_3430 = [false,true,true,false,false,true,true,false,true,false,true,true]; +const UsrInt_3431 = [true,true,true,false,false,true,true,false,true,false,true,true]; +const UsrInt_3432 = [false,false,false,true,false,true,true,false,true,false,true,true]; +const UsrInt_3433 = [true,false,false,true,false,true,true,false,true,false,true,true]; +const UsrInt_3434 = [false,true,false,true,false,true,true,false,true,false,true,true]; +const UsrInt_3435 = [true,true,false,true,false,true,true,false,true,false,true,true]; +const UsrInt_3436 = [false,false,true,true,false,true,true,false,true,false,true,true]; +const UsrInt_3437 = [true,false,true,true,false,true,true,false,true,false,true,true]; +const UsrInt_3438 = [false,true,true,true,false,true,true,false,true,false,true,true]; +const UsrInt_3439 = [true,true,true,true,false,true,true,false,true,false,true,true]; +const UsrInt_3440 = [false,false,false,false,true,true,true,false,true,false,true,true]; +const UsrInt_3441 = [true,false,false,false,true,true,true,false,true,false,true,true]; +const UsrInt_3442 = [false,true,false,false,true,true,true,false,true,false,true,true]; +const UsrInt_3443 = [true,true,false,false,true,true,true,false,true,false,true,true]; +const UsrInt_3444 = [false,false,true,false,true,true,true,false,true,false,true,true]; +const UsrInt_3445 = [true,false,true,false,true,true,true,false,true,false,true,true]; +const UsrInt_3446 = [false,true,true,false,true,true,true,false,true,false,true,true]; +const UsrInt_3447 = [true,true,true,false,true,true,true,false,true,false,true,true]; +const UsrInt_3448 = [false,false,false,true,true,true,true,false,true,false,true,true]; +const UsrInt_3449 = [true,false,false,true,true,true,true,false,true,false,true,true]; +const UsrInt_3450 = [false,true,false,true,true,true,true,false,true,false,true,true]; +const UsrInt_3451 = [true,true,false,true,true,true,true,false,true,false,true,true]; +const UsrInt_3452 = [false,false,true,true,true,true,true,false,true,false,true,true]; +const UsrInt_3453 = [true,false,true,true,true,true,true,false,true,false,true,true]; +const UsrInt_3454 = [false,true,true,true,true,true,true,false,true,false,true,true]; +const UsrInt_3455 = [true,true,true,true,true,true,true,false,true,false,true,true]; +const UsrInt_3456 = [false,false,false,false,false,false,false,true,true,false,true,true]; +const UsrInt_3457 = [true,false,false,false,false,false,false,true,true,false,true,true]; +const UsrInt_3458 = [false,true,false,false,false,false,false,true,true,false,true,true]; +const UsrInt_3459 = [true,true,false,false,false,false,false,true,true,false,true,true]; +const UsrInt_3460 = [false,false,true,false,false,false,false,true,true,false,true,true]; +const UsrInt_3461 = [true,false,true,false,false,false,false,true,true,false,true,true]; +const UsrInt_3462 = [false,true,true,false,false,false,false,true,true,false,true,true]; +const UsrInt_3463 = [true,true,true,false,false,false,false,true,true,false,true,true]; +const UsrInt_3464 = [false,false,false,true,false,false,false,true,true,false,true,true]; +const UsrInt_3465 = [true,false,false,true,false,false,false,true,true,false,true,true]; +const UsrInt_3466 = [false,true,false,true,false,false,false,true,true,false,true,true]; +const UsrInt_3467 = [true,true,false,true,false,false,false,true,true,false,true,true]; +const UsrInt_3468 = [false,false,true,true,false,false,false,true,true,false,true,true]; +const UsrInt_3469 = [true,false,true,true,false,false,false,true,true,false,true,true]; +const UsrInt_3470 = [false,true,true,true,false,false,false,true,true,false,true,true]; +const UsrInt_3471 = [true,true,true,true,false,false,false,true,true,false,true,true]; +const UsrInt_3472 = [false,false,false,false,true,false,false,true,true,false,true,true]; +const UsrInt_3473 = [true,false,false,false,true,false,false,true,true,false,true,true]; +const UsrInt_3474 = [false,true,false,false,true,false,false,true,true,false,true,true]; +const UsrInt_3475 = [true,true,false,false,true,false,false,true,true,false,true,true]; +const UsrInt_3476 = [false,false,true,false,true,false,false,true,true,false,true,true]; +const UsrInt_3477 = [true,false,true,false,true,false,false,true,true,false,true,true]; +const UsrInt_3478 = [false,true,true,false,true,false,false,true,true,false,true,true]; +const UsrInt_3479 = [true,true,true,false,true,false,false,true,true,false,true,true]; +const UsrInt_3480 = [false,false,false,true,true,false,false,true,true,false,true,true]; +const UsrInt_3481 = [true,false,false,true,true,false,false,true,true,false,true,true]; +const UsrInt_3482 = [false,true,false,true,true,false,false,true,true,false,true,true]; +const UsrInt_3483 = [true,true,false,true,true,false,false,true,true,false,true,true]; +const UsrInt_3484 = [false,false,true,true,true,false,false,true,true,false,true,true]; +const UsrInt_3485 = [true,false,true,true,true,false,false,true,true,false,true,true]; +const UsrInt_3486 = [false,true,true,true,true,false,false,true,true,false,true,true]; +const UsrInt_3487 = [true,true,true,true,true,false,false,true,true,false,true,true]; +const UsrInt_3488 = [false,false,false,false,false,true,false,true,true,false,true,true]; +const UsrInt_3489 = [true,false,false,false,false,true,false,true,true,false,true,true]; +const UsrInt_3490 = [false,true,false,false,false,true,false,true,true,false,true,true]; +const UsrInt_3491 = [true,true,false,false,false,true,false,true,true,false,true,true]; +const UsrInt_3492 = [false,false,true,false,false,true,false,true,true,false,true,true]; +const UsrInt_3493 = [true,false,true,false,false,true,false,true,true,false,true,true]; +const UsrInt_3494 = [false,true,true,false,false,true,false,true,true,false,true,true]; +const UsrInt_3495 = [true,true,true,false,false,true,false,true,true,false,true,true]; +const UsrInt_3496 = [false,false,false,true,false,true,false,true,true,false,true,true]; +const UsrInt_3497 = [true,false,false,true,false,true,false,true,true,false,true,true]; +const UsrInt_3498 = [false,true,false,true,false,true,false,true,true,false,true,true]; +const UsrInt_3499 = [true,true,false,true,false,true,false,true,true,false,true,true]; +const UsrInt_3500 = [false,false,true,true,false,true,false,true,true,false,true,true]; +const UsrInt_3501 = [true,false,true,true,false,true,false,true,true,false,true,true]; +const UsrInt_3502 = [false,true,true,true,false,true,false,true,true,false,true,true]; +const UsrInt_3503 = [true,true,true,true,false,true,false,true,true,false,true,true]; +const UsrInt_3504 = [false,false,false,false,true,true,false,true,true,false,true,true]; +const UsrInt_3505 = [true,false,false,false,true,true,false,true,true,false,true,true]; +const UsrInt_3506 = [false,true,false,false,true,true,false,true,true,false,true,true]; +const UsrInt_3507 = [true,true,false,false,true,true,false,true,true,false,true,true]; +const UsrInt_3508 = [false,false,true,false,true,true,false,true,true,false,true,true]; +const UsrInt_3509 = [true,false,true,false,true,true,false,true,true,false,true,true]; +const UsrInt_3510 = [false,true,true,false,true,true,false,true,true,false,true,true]; +const UsrInt_3511 = [true,true,true,false,true,true,false,true,true,false,true,true]; +const UsrInt_3512 = [false,false,false,true,true,true,false,true,true,false,true,true]; +const UsrInt_3513 = [true,false,false,true,true,true,false,true,true,false,true,true]; +const UsrInt_3514 = [false,true,false,true,true,true,false,true,true,false,true,true]; +const UsrInt_3515 = [true,true,false,true,true,true,false,true,true,false,true,true]; +const UsrInt_3516 = [false,false,true,true,true,true,false,true,true,false,true,true]; +const UsrInt_3517 = [true,false,true,true,true,true,false,true,true,false,true,true]; +const UsrInt_3518 = [false,true,true,true,true,true,false,true,true,false,true,true]; +const UsrInt_3519 = [true,true,true,true,true,true,false,true,true,false,true,true]; +const UsrInt_3520 = [false,false,false,false,false,false,true,true,true,false,true,true]; +const UsrInt_3521 = [true,false,false,false,false,false,true,true,true,false,true,true]; +const UsrInt_3522 = [false,true,false,false,false,false,true,true,true,false,true,true]; +const UsrInt_3523 = [true,true,false,false,false,false,true,true,true,false,true,true]; +const UsrInt_3524 = [false,false,true,false,false,false,true,true,true,false,true,true]; +const UsrInt_3525 = [true,false,true,false,false,false,true,true,true,false,true,true]; +const UsrInt_3526 = [false,true,true,false,false,false,true,true,true,false,true,true]; +const UsrInt_3527 = [true,true,true,false,false,false,true,true,true,false,true,true]; +const UsrInt_3528 = [false,false,false,true,false,false,true,true,true,false,true,true]; +const UsrInt_3529 = [true,false,false,true,false,false,true,true,true,false,true,true]; +const UsrInt_3530 = [false,true,false,true,false,false,true,true,true,false,true,true]; +const UsrInt_3531 = [true,true,false,true,false,false,true,true,true,false,true,true]; +const UsrInt_3532 = [false,false,true,true,false,false,true,true,true,false,true,true]; +const UsrInt_3533 = [true,false,true,true,false,false,true,true,true,false,true,true]; +const UsrInt_3534 = [false,true,true,true,false,false,true,true,true,false,true,true]; +const UsrInt_3535 = [true,true,true,true,false,false,true,true,true,false,true,true]; +const UsrInt_3536 = [false,false,false,false,true,false,true,true,true,false,true,true]; +const UsrInt_3537 = [true,false,false,false,true,false,true,true,true,false,true,true]; +const UsrInt_3538 = [false,true,false,false,true,false,true,true,true,false,true,true]; +const UsrInt_3539 = [true,true,false,false,true,false,true,true,true,false,true,true]; +const UsrInt_3540 = [false,false,true,false,true,false,true,true,true,false,true,true]; +const UsrInt_3541 = [true,false,true,false,true,false,true,true,true,false,true,true]; +const UsrInt_3542 = [false,true,true,false,true,false,true,true,true,false,true,true]; +const UsrInt_3543 = [true,true,true,false,true,false,true,true,true,false,true,true]; +const UsrInt_3544 = [false,false,false,true,true,false,true,true,true,false,true,true]; +const UsrInt_3545 = [true,false,false,true,true,false,true,true,true,false,true,true]; +const UsrInt_3546 = [false,true,false,true,true,false,true,true,true,false,true,true]; +const UsrInt_3547 = [true,true,false,true,true,false,true,true,true,false,true,true]; +const UsrInt_3548 = [false,false,true,true,true,false,true,true,true,false,true,true]; +const UsrInt_3549 = [true,false,true,true,true,false,true,true,true,false,true,true]; +const UsrInt_3550 = [false,true,true,true,true,false,true,true,true,false,true,true]; +const UsrInt_3551 = [true,true,true,true,true,false,true,true,true,false,true,true]; +const UsrInt_3552 = [false,false,false,false,false,true,true,true,true,false,true,true]; +const UsrInt_3553 = [true,false,false,false,false,true,true,true,true,false,true,true]; +const UsrInt_3554 = [false,true,false,false,false,true,true,true,true,false,true,true]; +const UsrInt_3555 = [true,true,false,false,false,true,true,true,true,false,true,true]; +const UsrInt_3556 = [false,false,true,false,false,true,true,true,true,false,true,true]; +const UsrInt_3557 = [true,false,true,false,false,true,true,true,true,false,true,true]; +const UsrInt_3558 = [false,true,true,false,false,true,true,true,true,false,true,true]; +const UsrInt_3559 = [true,true,true,false,false,true,true,true,true,false,true,true]; +const UsrInt_3560 = [false,false,false,true,false,true,true,true,true,false,true,true]; +const UsrInt_3561 = [true,false,false,true,false,true,true,true,true,false,true,true]; +const UsrInt_3562 = [false,true,false,true,false,true,true,true,true,false,true,true]; +const UsrInt_3563 = [true,true,false,true,false,true,true,true,true,false,true,true]; +const UsrInt_3564 = [false,false,true,true,false,true,true,true,true,false,true,true]; +const UsrInt_3565 = [true,false,true,true,false,true,true,true,true,false,true,true]; +const UsrInt_3566 = [false,true,true,true,false,true,true,true,true,false,true,true]; +const UsrInt_3567 = [true,true,true,true,false,true,true,true,true,false,true,true]; +const UsrInt_3568 = [false,false,false,false,true,true,true,true,true,false,true,true]; +const UsrInt_3569 = [true,false,false,false,true,true,true,true,true,false,true,true]; +const UsrInt_3570 = [false,true,false,false,true,true,true,true,true,false,true,true]; +const UsrInt_3571 = [true,true,false,false,true,true,true,true,true,false,true,true]; +const UsrInt_3572 = [false,false,true,false,true,true,true,true,true,false,true,true]; +const UsrInt_3573 = [true,false,true,false,true,true,true,true,true,false,true,true]; +const UsrInt_3574 = [false,true,true,false,true,true,true,true,true,false,true,true]; +const UsrInt_3575 = [true,true,true,false,true,true,true,true,true,false,true,true]; +const UsrInt_3576 = [false,false,false,true,true,true,true,true,true,false,true,true]; +const UsrInt_3577 = [true,false,false,true,true,true,true,true,true,false,true,true]; +const UsrInt_3578 = [false,true,false,true,true,true,true,true,true,false,true,true]; +const UsrInt_3579 = [true,true,false,true,true,true,true,true,true,false,true,true]; +const UsrInt_3580 = [false,false,true,true,true,true,true,true,true,false,true,true]; +const UsrInt_3581 = [true,false,true,true,true,true,true,true,true,false,true,true]; +const UsrInt_3582 = [false,true,true,true,true,true,true,true,true,false,true,true]; +const UsrInt_3583 = [true,true,true,true,true,true,true,true,true,false,true,true]; +const UsrInt_3584 = [false,false,false,false,false,false,false,false,false,true,true,true]; +const UsrInt_3585 = [true,false,false,false,false,false,false,false,false,true,true,true]; +const UsrInt_3586 = [false,true,false,false,false,false,false,false,false,true,true,true]; +const UsrInt_3587 = [true,true,false,false,false,false,false,false,false,true,true,true]; +const UsrInt_3588 = [false,false,true,false,false,false,false,false,false,true,true,true]; +const UsrInt_3589 = [true,false,true,false,false,false,false,false,false,true,true,true]; +const UsrInt_3590 = [false,true,true,false,false,false,false,false,false,true,true,true]; +const UsrInt_3591 = [true,true,true,false,false,false,false,false,false,true,true,true]; +const UsrInt_3592 = [false,false,false,true,false,false,false,false,false,true,true,true]; +const UsrInt_3593 = [true,false,false,true,false,false,false,false,false,true,true,true]; +const UsrInt_3594 = [false,true,false,true,false,false,false,false,false,true,true,true]; +const UsrInt_3595 = [true,true,false,true,false,false,false,false,false,true,true,true]; +const UsrInt_3596 = [false,false,true,true,false,false,false,false,false,true,true,true]; +const UsrInt_3597 = [true,false,true,true,false,false,false,false,false,true,true,true]; +const UsrInt_3598 = [false,true,true,true,false,false,false,false,false,true,true,true]; +const UsrInt_3599 = [true,true,true,true,false,false,false,false,false,true,true,true]; +const UsrInt_3600 = [false,false,false,false,true,false,false,false,false,true,true,true]; +const UsrInt_3601 = [true,false,false,false,true,false,false,false,false,true,true,true]; +const UsrInt_3602 = [false,true,false,false,true,false,false,false,false,true,true,true]; +const UsrInt_3603 = [true,true,false,false,true,false,false,false,false,true,true,true]; +const UsrInt_3604 = [false,false,true,false,true,false,false,false,false,true,true,true]; +const UsrInt_3605 = [true,false,true,false,true,false,false,false,false,true,true,true]; +const UsrInt_3606 = [false,true,true,false,true,false,false,false,false,true,true,true]; +const UsrInt_3607 = [true,true,true,false,true,false,false,false,false,true,true,true]; +const UsrInt_3608 = [false,false,false,true,true,false,false,false,false,true,true,true]; +const UsrInt_3609 = [true,false,false,true,true,false,false,false,false,true,true,true]; +const UsrInt_3610 = [false,true,false,true,true,false,false,false,false,true,true,true]; +const UsrInt_3611 = [true,true,false,true,true,false,false,false,false,true,true,true]; +const UsrInt_3612 = [false,false,true,true,true,false,false,false,false,true,true,true]; +const UsrInt_3613 = [true,false,true,true,true,false,false,false,false,true,true,true]; +const UsrInt_3614 = [false,true,true,true,true,false,false,false,false,true,true,true]; +const UsrInt_3615 = [true,true,true,true,true,false,false,false,false,true,true,true]; +const UsrInt_3616 = [false,false,false,false,false,true,false,false,false,true,true,true]; +const UsrInt_3617 = [true,false,false,false,false,true,false,false,false,true,true,true]; +const UsrInt_3618 = [false,true,false,false,false,true,false,false,false,true,true,true]; +const UsrInt_3619 = [true,true,false,false,false,true,false,false,false,true,true,true]; +const UsrInt_3620 = [false,false,true,false,false,true,false,false,false,true,true,true]; +const UsrInt_3621 = [true,false,true,false,false,true,false,false,false,true,true,true]; +const UsrInt_3622 = [false,true,true,false,false,true,false,false,false,true,true,true]; +const UsrInt_3623 = [true,true,true,false,false,true,false,false,false,true,true,true]; +const UsrInt_3624 = [false,false,false,true,false,true,false,false,false,true,true,true]; +const UsrInt_3625 = [true,false,false,true,false,true,false,false,false,true,true,true]; +const UsrInt_3626 = [false,true,false,true,false,true,false,false,false,true,true,true]; +const UsrInt_3627 = [true,true,false,true,false,true,false,false,false,true,true,true]; +const UsrInt_3628 = [false,false,true,true,false,true,false,false,false,true,true,true]; +const UsrInt_3629 = [true,false,true,true,false,true,false,false,false,true,true,true]; +const UsrInt_3630 = [false,true,true,true,false,true,false,false,false,true,true,true]; +const UsrInt_3631 = [true,true,true,true,false,true,false,false,false,true,true,true]; +const UsrInt_3632 = [false,false,false,false,true,true,false,false,false,true,true,true]; +const UsrInt_3633 = [true,false,false,false,true,true,false,false,false,true,true,true]; +const UsrInt_3634 = [false,true,false,false,true,true,false,false,false,true,true,true]; +const UsrInt_3635 = [true,true,false,false,true,true,false,false,false,true,true,true]; +const UsrInt_3636 = [false,false,true,false,true,true,false,false,false,true,true,true]; +const UsrInt_3637 = [true,false,true,false,true,true,false,false,false,true,true,true]; +const UsrInt_3638 = [false,true,true,false,true,true,false,false,false,true,true,true]; +const UsrInt_3639 = [true,true,true,false,true,true,false,false,false,true,true,true]; +const UsrInt_3640 = [false,false,false,true,true,true,false,false,false,true,true,true]; +const UsrInt_3641 = [true,false,false,true,true,true,false,false,false,true,true,true]; +const UsrInt_3642 = [false,true,false,true,true,true,false,false,false,true,true,true]; +const UsrInt_3643 = [true,true,false,true,true,true,false,false,false,true,true,true]; +const UsrInt_3644 = [false,false,true,true,true,true,false,false,false,true,true,true]; +const UsrInt_3645 = [true,false,true,true,true,true,false,false,false,true,true,true]; +const UsrInt_3646 = [false,true,true,true,true,true,false,false,false,true,true,true]; +const UsrInt_3647 = [true,true,true,true,true,true,false,false,false,true,true,true]; +const UsrInt_3648 = [false,false,false,false,false,false,true,false,false,true,true,true]; +const UsrInt_3649 = [true,false,false,false,false,false,true,false,false,true,true,true]; +const UsrInt_3650 = [false,true,false,false,false,false,true,false,false,true,true,true]; +const UsrInt_3651 = [true,true,false,false,false,false,true,false,false,true,true,true]; +const UsrInt_3652 = [false,false,true,false,false,false,true,false,false,true,true,true]; +const UsrInt_3653 = [true,false,true,false,false,false,true,false,false,true,true,true]; +const UsrInt_3654 = [false,true,true,false,false,false,true,false,false,true,true,true]; +const UsrInt_3655 = [true,true,true,false,false,false,true,false,false,true,true,true]; +const UsrInt_3656 = [false,false,false,true,false,false,true,false,false,true,true,true]; +const UsrInt_3657 = [true,false,false,true,false,false,true,false,false,true,true,true]; +const UsrInt_3658 = [false,true,false,true,false,false,true,false,false,true,true,true]; +const UsrInt_3659 = [true,true,false,true,false,false,true,false,false,true,true,true]; +const UsrInt_3660 = [false,false,true,true,false,false,true,false,false,true,true,true]; +const UsrInt_3661 = [true,false,true,true,false,false,true,false,false,true,true,true]; +const UsrInt_3662 = [false,true,true,true,false,false,true,false,false,true,true,true]; +const UsrInt_3663 = [true,true,true,true,false,false,true,false,false,true,true,true]; +const UsrInt_3664 = [false,false,false,false,true,false,true,false,false,true,true,true]; +const UsrInt_3665 = [true,false,false,false,true,false,true,false,false,true,true,true]; +const UsrInt_3666 = [false,true,false,false,true,false,true,false,false,true,true,true]; +const UsrInt_3667 = [true,true,false,false,true,false,true,false,false,true,true,true]; +const UsrInt_3668 = [false,false,true,false,true,false,true,false,false,true,true,true]; +const UsrInt_3669 = [true,false,true,false,true,false,true,false,false,true,true,true]; +const UsrInt_3670 = [false,true,true,false,true,false,true,false,false,true,true,true]; +const UsrInt_3671 = [true,true,true,false,true,false,true,false,false,true,true,true]; +const UsrInt_3672 = [false,false,false,true,true,false,true,false,false,true,true,true]; +const UsrInt_3673 = [true,false,false,true,true,false,true,false,false,true,true,true]; +const UsrInt_3674 = [false,true,false,true,true,false,true,false,false,true,true,true]; +const UsrInt_3675 = [true,true,false,true,true,false,true,false,false,true,true,true]; +const UsrInt_3676 = [false,false,true,true,true,false,true,false,false,true,true,true]; +const UsrInt_3677 = [true,false,true,true,true,false,true,false,false,true,true,true]; +const UsrInt_3678 = [false,true,true,true,true,false,true,false,false,true,true,true]; +const UsrInt_3679 = [true,true,true,true,true,false,true,false,false,true,true,true]; +const UsrInt_3680 = [false,false,false,false,false,true,true,false,false,true,true,true]; +const UsrInt_3681 = [true,false,false,false,false,true,true,false,false,true,true,true]; +const UsrInt_3682 = [false,true,false,false,false,true,true,false,false,true,true,true]; +const UsrInt_3683 = [true,true,false,false,false,true,true,false,false,true,true,true]; +const UsrInt_3684 = [false,false,true,false,false,true,true,false,false,true,true,true]; +const UsrInt_3685 = [true,false,true,false,false,true,true,false,false,true,true,true]; +const UsrInt_3686 = [false,true,true,false,false,true,true,false,false,true,true,true]; +const UsrInt_3687 = [true,true,true,false,false,true,true,false,false,true,true,true]; +const UsrInt_3688 = [false,false,false,true,false,true,true,false,false,true,true,true]; +const UsrInt_3689 = [true,false,false,true,false,true,true,false,false,true,true,true]; +const UsrInt_3690 = [false,true,false,true,false,true,true,false,false,true,true,true]; +const UsrInt_3691 = [true,true,false,true,false,true,true,false,false,true,true,true]; +const UsrInt_3692 = [false,false,true,true,false,true,true,false,false,true,true,true]; +const UsrInt_3693 = [true,false,true,true,false,true,true,false,false,true,true,true]; +const UsrInt_3694 = [false,true,true,true,false,true,true,false,false,true,true,true]; +const UsrInt_3695 = [true,true,true,true,false,true,true,false,false,true,true,true]; +const UsrInt_3696 = [false,false,false,false,true,true,true,false,false,true,true,true]; +const UsrInt_3697 = [true,false,false,false,true,true,true,false,false,true,true,true]; +const UsrInt_3698 = [false,true,false,false,true,true,true,false,false,true,true,true]; +const UsrInt_3699 = [true,true,false,false,true,true,true,false,false,true,true,true]; +const UsrInt_3700 = [false,false,true,false,true,true,true,false,false,true,true,true]; +const UsrInt_3701 = [true,false,true,false,true,true,true,false,false,true,true,true]; +const UsrInt_3702 = [false,true,true,false,true,true,true,false,false,true,true,true]; +const UsrInt_3703 = [true,true,true,false,true,true,true,false,false,true,true,true]; +const UsrInt_3704 = [false,false,false,true,true,true,true,false,false,true,true,true]; +const UsrInt_3705 = [true,false,false,true,true,true,true,false,false,true,true,true]; +const UsrInt_3706 = [false,true,false,true,true,true,true,false,false,true,true,true]; +const UsrInt_3707 = [true,true,false,true,true,true,true,false,false,true,true,true]; +const UsrInt_3708 = [false,false,true,true,true,true,true,false,false,true,true,true]; +const UsrInt_3709 = [true,false,true,true,true,true,true,false,false,true,true,true]; +const UsrInt_3710 = [false,true,true,true,true,true,true,false,false,true,true,true]; +const UsrInt_3711 = [true,true,true,true,true,true,true,false,false,true,true,true]; +const UsrInt_3712 = [false,false,false,false,false,false,false,true,false,true,true,true]; +const UsrInt_3713 = [true,false,false,false,false,false,false,true,false,true,true,true]; +const UsrInt_3714 = [false,true,false,false,false,false,false,true,false,true,true,true]; +const UsrInt_3715 = [true,true,false,false,false,false,false,true,false,true,true,true]; +const UsrInt_3716 = [false,false,true,false,false,false,false,true,false,true,true,true]; +const UsrInt_3717 = [true,false,true,false,false,false,false,true,false,true,true,true]; +const UsrInt_3718 = [false,true,true,false,false,false,false,true,false,true,true,true]; +const UsrInt_3719 = [true,true,true,false,false,false,false,true,false,true,true,true]; +const UsrInt_3720 = [false,false,false,true,false,false,false,true,false,true,true,true]; +const UsrInt_3721 = [true,false,false,true,false,false,false,true,false,true,true,true]; +const UsrInt_3722 = [false,true,false,true,false,false,false,true,false,true,true,true]; +const UsrInt_3723 = [true,true,false,true,false,false,false,true,false,true,true,true]; +const UsrInt_3724 = [false,false,true,true,false,false,false,true,false,true,true,true]; +const UsrInt_3725 = [true,false,true,true,false,false,false,true,false,true,true,true]; +const UsrInt_3726 = [false,true,true,true,false,false,false,true,false,true,true,true]; +const UsrInt_3727 = [true,true,true,true,false,false,false,true,false,true,true,true]; +const UsrInt_3728 = [false,false,false,false,true,false,false,true,false,true,true,true]; +const UsrInt_3729 = [true,false,false,false,true,false,false,true,false,true,true,true]; +const UsrInt_3730 = [false,true,false,false,true,false,false,true,false,true,true,true]; +const UsrInt_3731 = [true,true,false,false,true,false,false,true,false,true,true,true]; +const UsrInt_3732 = [false,false,true,false,true,false,false,true,false,true,true,true]; +const UsrInt_3733 = [true,false,true,false,true,false,false,true,false,true,true,true]; +const UsrInt_3734 = [false,true,true,false,true,false,false,true,false,true,true,true]; +const UsrInt_3735 = [true,true,true,false,true,false,false,true,false,true,true,true]; +const UsrInt_3736 = [false,false,false,true,true,false,false,true,false,true,true,true]; +const UsrInt_3737 = [true,false,false,true,true,false,false,true,false,true,true,true]; +const UsrInt_3738 = [false,true,false,true,true,false,false,true,false,true,true,true]; +const UsrInt_3739 = [true,true,false,true,true,false,false,true,false,true,true,true]; +const UsrInt_3740 = [false,false,true,true,true,false,false,true,false,true,true,true]; +const UsrInt_3741 = [true,false,true,true,true,false,false,true,false,true,true,true]; +const UsrInt_3742 = [false,true,true,true,true,false,false,true,false,true,true,true]; +const UsrInt_3743 = [true,true,true,true,true,false,false,true,false,true,true,true]; +const UsrInt_3744 = [false,false,false,false,false,true,false,true,false,true,true,true]; +const UsrInt_3745 = [true,false,false,false,false,true,false,true,false,true,true,true]; +const UsrInt_3746 = [false,true,false,false,false,true,false,true,false,true,true,true]; +const UsrInt_3747 = [true,true,false,false,false,true,false,true,false,true,true,true]; +const UsrInt_3748 = [false,false,true,false,false,true,false,true,false,true,true,true]; +const UsrInt_3749 = [true,false,true,false,false,true,false,true,false,true,true,true]; +const UsrInt_3750 = [false,true,true,false,false,true,false,true,false,true,true,true]; +const UsrInt_3751 = [true,true,true,false,false,true,false,true,false,true,true,true]; +const UsrInt_3752 = [false,false,false,true,false,true,false,true,false,true,true,true]; +const UsrInt_3753 = [true,false,false,true,false,true,false,true,false,true,true,true]; +const UsrInt_3754 = [false,true,false,true,false,true,false,true,false,true,true,true]; +const UsrInt_3755 = [true,true,false,true,false,true,false,true,false,true,true,true]; +const UsrInt_3756 = [false,false,true,true,false,true,false,true,false,true,true,true]; +const UsrInt_3757 = [true,false,true,true,false,true,false,true,false,true,true,true]; +const UsrInt_3758 = [false,true,true,true,false,true,false,true,false,true,true,true]; +const UsrInt_3759 = [true,true,true,true,false,true,false,true,false,true,true,true]; +const UsrInt_3760 = [false,false,false,false,true,true,false,true,false,true,true,true]; +const UsrInt_3761 = [true,false,false,false,true,true,false,true,false,true,true,true]; +const UsrInt_3762 = [false,true,false,false,true,true,false,true,false,true,true,true]; +const UsrInt_3763 = [true,true,false,false,true,true,false,true,false,true,true,true]; +const UsrInt_3764 = [false,false,true,false,true,true,false,true,false,true,true,true]; +const UsrInt_3765 = [true,false,true,false,true,true,false,true,false,true,true,true]; +const UsrInt_3766 = [false,true,true,false,true,true,false,true,false,true,true,true]; +const UsrInt_3767 = [true,true,true,false,true,true,false,true,false,true,true,true]; +const UsrInt_3768 = [false,false,false,true,true,true,false,true,false,true,true,true]; +const UsrInt_3769 = [true,false,false,true,true,true,false,true,false,true,true,true]; +const UsrInt_3770 = [false,true,false,true,true,true,false,true,false,true,true,true]; +const UsrInt_3771 = [true,true,false,true,true,true,false,true,false,true,true,true]; +const UsrInt_3772 = [false,false,true,true,true,true,false,true,false,true,true,true]; +const UsrInt_3773 = [true,false,true,true,true,true,false,true,false,true,true,true]; +const UsrInt_3774 = [false,true,true,true,true,true,false,true,false,true,true,true]; +const UsrInt_3775 = [true,true,true,true,true,true,false,true,false,true,true,true]; +const UsrInt_3776 = [false,false,false,false,false,false,true,true,false,true,true,true]; +const UsrInt_3777 = [true,false,false,false,false,false,true,true,false,true,true,true]; +const UsrInt_3778 = [false,true,false,false,false,false,true,true,false,true,true,true]; +const UsrInt_3779 = [true,true,false,false,false,false,true,true,false,true,true,true]; +const UsrInt_3780 = [false,false,true,false,false,false,true,true,false,true,true,true]; +const UsrInt_3781 = [true,false,true,false,false,false,true,true,false,true,true,true]; +const UsrInt_3782 = [false,true,true,false,false,false,true,true,false,true,true,true]; +const UsrInt_3783 = [true,true,true,false,false,false,true,true,false,true,true,true]; +const UsrInt_3784 = [false,false,false,true,false,false,true,true,false,true,true,true]; +const UsrInt_3785 = [true,false,false,true,false,false,true,true,false,true,true,true]; +const UsrInt_3786 = [false,true,false,true,false,false,true,true,false,true,true,true]; +const UsrInt_3787 = [true,true,false,true,false,false,true,true,false,true,true,true]; +const UsrInt_3788 = [false,false,true,true,false,false,true,true,false,true,true,true]; +const UsrInt_3789 = [true,false,true,true,false,false,true,true,false,true,true,true]; +const UsrInt_3790 = [false,true,true,true,false,false,true,true,false,true,true,true]; +const UsrInt_3791 = [true,true,true,true,false,false,true,true,false,true,true,true]; +const UsrInt_3792 = [false,false,false,false,true,false,true,true,false,true,true,true]; +const UsrInt_3793 = [true,false,false,false,true,false,true,true,false,true,true,true]; +const UsrInt_3794 = [false,true,false,false,true,false,true,true,false,true,true,true]; +const UsrInt_3795 = [true,true,false,false,true,false,true,true,false,true,true,true]; +const UsrInt_3796 = [false,false,true,false,true,false,true,true,false,true,true,true]; +const UsrInt_3797 = [true,false,true,false,true,false,true,true,false,true,true,true]; +const UsrInt_3798 = [false,true,true,false,true,false,true,true,false,true,true,true]; +const UsrInt_3799 = [true,true,true,false,true,false,true,true,false,true,true,true]; +const UsrInt_3800 = [false,false,false,true,true,false,true,true,false,true,true,true]; +const UsrInt_3801 = [true,false,false,true,true,false,true,true,false,true,true,true]; +const UsrInt_3802 = [false,true,false,true,true,false,true,true,false,true,true,true]; +const UsrInt_3803 = [true,true,false,true,true,false,true,true,false,true,true,true]; +const UsrInt_3804 = [false,false,true,true,true,false,true,true,false,true,true,true]; +const UsrInt_3805 = [true,false,true,true,true,false,true,true,false,true,true,true]; +const UsrInt_3806 = [false,true,true,true,true,false,true,true,false,true,true,true]; +const UsrInt_3807 = [true,true,true,true,true,false,true,true,false,true,true,true]; +const UsrInt_3808 = [false,false,false,false,false,true,true,true,false,true,true,true]; +const UsrInt_3809 = [true,false,false,false,false,true,true,true,false,true,true,true]; +const UsrInt_3810 = [false,true,false,false,false,true,true,true,false,true,true,true]; +const UsrInt_3811 = [true,true,false,false,false,true,true,true,false,true,true,true]; +const UsrInt_3812 = [false,false,true,false,false,true,true,true,false,true,true,true]; +const UsrInt_3813 = [true,false,true,false,false,true,true,true,false,true,true,true]; +const UsrInt_3814 = [false,true,true,false,false,true,true,true,false,true,true,true]; +const UsrInt_3815 = [true,true,true,false,false,true,true,true,false,true,true,true]; +const UsrInt_3816 = [false,false,false,true,false,true,true,true,false,true,true,true]; +const UsrInt_3817 = [true,false,false,true,false,true,true,true,false,true,true,true]; +const UsrInt_3818 = [false,true,false,true,false,true,true,true,false,true,true,true]; +const UsrInt_3819 = [true,true,false,true,false,true,true,true,false,true,true,true]; +const UsrInt_3820 = [false,false,true,true,false,true,true,true,false,true,true,true]; +const UsrInt_3821 = [true,false,true,true,false,true,true,true,false,true,true,true]; +const UsrInt_3822 = [false,true,true,true,false,true,true,true,false,true,true,true]; +const UsrInt_3823 = [true,true,true,true,false,true,true,true,false,true,true,true]; +const UsrInt_3824 = [false,false,false,false,true,true,true,true,false,true,true,true]; +const UsrInt_3825 = [true,false,false,false,true,true,true,true,false,true,true,true]; +const UsrInt_3826 = [false,true,false,false,true,true,true,true,false,true,true,true]; +const UsrInt_3827 = [true,true,false,false,true,true,true,true,false,true,true,true]; +const UsrInt_3828 = [false,false,true,false,true,true,true,true,false,true,true,true]; +const UsrInt_3829 = [true,false,true,false,true,true,true,true,false,true,true,true]; +const UsrInt_3830 = [false,true,true,false,true,true,true,true,false,true,true,true]; +const UsrInt_3831 = [true,true,true,false,true,true,true,true,false,true,true,true]; +const UsrInt_3832 = [false,false,false,true,true,true,true,true,false,true,true,true]; +const UsrInt_3833 = [true,false,false,true,true,true,true,true,false,true,true,true]; +const UsrInt_3834 = [false,true,false,true,true,true,true,true,false,true,true,true]; +const UsrInt_3835 = [true,true,false,true,true,true,true,true,false,true,true,true]; +const UsrInt_3836 = [false,false,true,true,true,true,true,true,false,true,true,true]; +const UsrInt_3837 = [true,false,true,true,true,true,true,true,false,true,true,true]; +const UsrInt_3838 = [false,true,true,true,true,true,true,true,false,true,true,true]; +const UsrInt_3839 = [true,true,true,true,true,true,true,true,false,true,true,true]; +const UsrInt_3840 = [false,false,false,false,false,false,false,false,true,true,true,true]; +const UsrInt_3841 = [true,false,false,false,false,false,false,false,true,true,true,true]; +const UsrInt_3842 = [false,true,false,false,false,false,false,false,true,true,true,true]; +const UsrInt_3843 = [true,true,false,false,false,false,false,false,true,true,true,true]; +const UsrInt_3844 = [false,false,true,false,false,false,false,false,true,true,true,true]; +const UsrInt_3845 = [true,false,true,false,false,false,false,false,true,true,true,true]; +const UsrInt_3846 = [false,true,true,false,false,false,false,false,true,true,true,true]; +const UsrInt_3847 = [true,true,true,false,false,false,false,false,true,true,true,true]; +const UsrInt_3848 = [false,false,false,true,false,false,false,false,true,true,true,true]; +const UsrInt_3849 = [true,false,false,true,false,false,false,false,true,true,true,true]; +const UsrInt_3850 = [false,true,false,true,false,false,false,false,true,true,true,true]; +const UsrInt_3851 = [true,true,false,true,false,false,false,false,true,true,true,true]; +const UsrInt_3852 = [false,false,true,true,false,false,false,false,true,true,true,true]; +const UsrInt_3853 = [true,false,true,true,false,false,false,false,true,true,true,true]; +const UsrInt_3854 = [false,true,true,true,false,false,false,false,true,true,true,true]; +const UsrInt_3855 = [true,true,true,true,false,false,false,false,true,true,true,true]; +const UsrInt_3856 = [false,false,false,false,true,false,false,false,true,true,true,true]; +const UsrInt_3857 = [true,false,false,false,true,false,false,false,true,true,true,true]; +const UsrInt_3858 = [false,true,false,false,true,false,false,false,true,true,true,true]; +const UsrInt_3859 = [true,true,false,false,true,false,false,false,true,true,true,true]; +const UsrInt_3860 = [false,false,true,false,true,false,false,false,true,true,true,true]; +const UsrInt_3861 = [true,false,true,false,true,false,false,false,true,true,true,true]; +const UsrInt_3862 = [false,true,true,false,true,false,false,false,true,true,true,true]; +const UsrInt_3863 = [true,true,true,false,true,false,false,false,true,true,true,true]; +const UsrInt_3864 = [false,false,false,true,true,false,false,false,true,true,true,true]; +const UsrInt_3865 = [true,false,false,true,true,false,false,false,true,true,true,true]; +const UsrInt_3866 = [false,true,false,true,true,false,false,false,true,true,true,true]; +const UsrInt_3867 = [true,true,false,true,true,false,false,false,true,true,true,true]; +const UsrInt_3868 = [false,false,true,true,true,false,false,false,true,true,true,true]; +const UsrInt_3869 = [true,false,true,true,true,false,false,false,true,true,true,true]; +const UsrInt_3870 = [false,true,true,true,true,false,false,false,true,true,true,true]; +const UsrInt_3871 = [true,true,true,true,true,false,false,false,true,true,true,true]; +const UsrInt_3872 = [false,false,false,false,false,true,false,false,true,true,true,true]; +const UsrInt_3873 = [true,false,false,false,false,true,false,false,true,true,true,true]; +const UsrInt_3874 = [false,true,false,false,false,true,false,false,true,true,true,true]; +const UsrInt_3875 = [true,true,false,false,false,true,false,false,true,true,true,true]; +const UsrInt_3876 = [false,false,true,false,false,true,false,false,true,true,true,true]; +const UsrInt_3877 = [true,false,true,false,false,true,false,false,true,true,true,true]; +const UsrInt_3878 = [false,true,true,false,false,true,false,false,true,true,true,true]; +const UsrInt_3879 = [true,true,true,false,false,true,false,false,true,true,true,true]; +const UsrInt_3880 = [false,false,false,true,false,true,false,false,true,true,true,true]; +const UsrInt_3881 = [true,false,false,true,false,true,false,false,true,true,true,true]; +const UsrInt_3882 = [false,true,false,true,false,true,false,false,true,true,true,true]; +const UsrInt_3883 = [true,true,false,true,false,true,false,false,true,true,true,true]; +const UsrInt_3884 = [false,false,true,true,false,true,false,false,true,true,true,true]; +const UsrInt_3885 = [true,false,true,true,false,true,false,false,true,true,true,true]; +const UsrInt_3886 = [false,true,true,true,false,true,false,false,true,true,true,true]; +const UsrInt_3887 = [true,true,true,true,false,true,false,false,true,true,true,true]; +const UsrInt_3888 = [false,false,false,false,true,true,false,false,true,true,true,true]; +const UsrInt_3889 = [true,false,false,false,true,true,false,false,true,true,true,true]; +const UsrInt_3890 = [false,true,false,false,true,true,false,false,true,true,true,true]; +const UsrInt_3891 = [true,true,false,false,true,true,false,false,true,true,true,true]; +const UsrInt_3892 = [false,false,true,false,true,true,false,false,true,true,true,true]; +const UsrInt_3893 = [true,false,true,false,true,true,false,false,true,true,true,true]; +const UsrInt_3894 = [false,true,true,false,true,true,false,false,true,true,true,true]; +const UsrInt_3895 = [true,true,true,false,true,true,false,false,true,true,true,true]; +const UsrInt_3896 = [false,false,false,true,true,true,false,false,true,true,true,true]; +const UsrInt_3897 = [true,false,false,true,true,true,false,false,true,true,true,true]; +const UsrInt_3898 = [false,true,false,true,true,true,false,false,true,true,true,true]; +const UsrInt_3899 = [true,true,false,true,true,true,false,false,true,true,true,true]; +const UsrInt_3900 = [false,false,true,true,true,true,false,false,true,true,true,true]; +const UsrInt_3901 = [true,false,true,true,true,true,false,false,true,true,true,true]; +const UsrInt_3902 = [false,true,true,true,true,true,false,false,true,true,true,true]; +const UsrInt_3903 = [true,true,true,true,true,true,false,false,true,true,true,true]; +const UsrInt_3904 = [false,false,false,false,false,false,true,false,true,true,true,true]; +const UsrInt_3905 = [true,false,false,false,false,false,true,false,true,true,true,true]; +const UsrInt_3906 = [false,true,false,false,false,false,true,false,true,true,true,true]; +const UsrInt_3907 = [true,true,false,false,false,false,true,false,true,true,true,true]; +const UsrInt_3908 = [false,false,true,false,false,false,true,false,true,true,true,true]; +const UsrInt_3909 = [true,false,true,false,false,false,true,false,true,true,true,true]; +const UsrInt_3910 = [false,true,true,false,false,false,true,false,true,true,true,true]; +const UsrInt_3911 = [true,true,true,false,false,false,true,false,true,true,true,true]; +const UsrInt_3912 = [false,false,false,true,false,false,true,false,true,true,true,true]; +const UsrInt_3913 = [true,false,false,true,false,false,true,false,true,true,true,true]; +const UsrInt_3914 = [false,true,false,true,false,false,true,false,true,true,true,true]; +const UsrInt_3915 = [true,true,false,true,false,false,true,false,true,true,true,true]; +const UsrInt_3916 = [false,false,true,true,false,false,true,false,true,true,true,true]; +const UsrInt_3917 = [true,false,true,true,false,false,true,false,true,true,true,true]; +const UsrInt_3918 = [false,true,true,true,false,false,true,false,true,true,true,true]; +const UsrInt_3919 = [true,true,true,true,false,false,true,false,true,true,true,true]; +const UsrInt_3920 = [false,false,false,false,true,false,true,false,true,true,true,true]; +const UsrInt_3921 = [true,false,false,false,true,false,true,false,true,true,true,true]; +const UsrInt_3922 = [false,true,false,false,true,false,true,false,true,true,true,true]; +const UsrInt_3923 = [true,true,false,false,true,false,true,false,true,true,true,true]; +const UsrInt_3924 = [false,false,true,false,true,false,true,false,true,true,true,true]; +const UsrInt_3925 = [true,false,true,false,true,false,true,false,true,true,true,true]; +const UsrInt_3926 = [false,true,true,false,true,false,true,false,true,true,true,true]; +const UsrInt_3927 = [true,true,true,false,true,false,true,false,true,true,true,true]; +const UsrInt_3928 = [false,false,false,true,true,false,true,false,true,true,true,true]; +const UsrInt_3929 = [true,false,false,true,true,false,true,false,true,true,true,true]; +const UsrInt_3930 = [false,true,false,true,true,false,true,false,true,true,true,true]; +const UsrInt_3931 = [true,true,false,true,true,false,true,false,true,true,true,true]; +const UsrInt_3932 = [false,false,true,true,true,false,true,false,true,true,true,true]; +const UsrInt_3933 = [true,false,true,true,true,false,true,false,true,true,true,true]; +const UsrInt_3934 = [false,true,true,true,true,false,true,false,true,true,true,true]; +const UsrInt_3935 = [true,true,true,true,true,false,true,false,true,true,true,true]; +const UsrInt_3936 = [false,false,false,false,false,true,true,false,true,true,true,true]; +const UsrInt_3937 = [true,false,false,false,false,true,true,false,true,true,true,true]; +const UsrInt_3938 = [false,true,false,false,false,true,true,false,true,true,true,true]; +const UsrInt_3939 = [true,true,false,false,false,true,true,false,true,true,true,true]; +const UsrInt_3940 = [false,false,true,false,false,true,true,false,true,true,true,true]; +const UsrInt_3941 = [true,false,true,false,false,true,true,false,true,true,true,true]; +const UsrInt_3942 = [false,true,true,false,false,true,true,false,true,true,true,true]; +const UsrInt_3943 = [true,true,true,false,false,true,true,false,true,true,true,true]; +const UsrInt_3944 = [false,false,false,true,false,true,true,false,true,true,true,true]; +const UsrInt_3945 = [true,false,false,true,false,true,true,false,true,true,true,true]; +const UsrInt_3946 = [false,true,false,true,false,true,true,false,true,true,true,true]; +const UsrInt_3947 = [true,true,false,true,false,true,true,false,true,true,true,true]; +const UsrInt_3948 = [false,false,true,true,false,true,true,false,true,true,true,true]; +const UsrInt_3949 = [true,false,true,true,false,true,true,false,true,true,true,true]; +const UsrInt_3950 = [false,true,true,true,false,true,true,false,true,true,true,true]; +const UsrInt_3951 = [true,true,true,true,false,true,true,false,true,true,true,true]; +const UsrInt_3952 = [false,false,false,false,true,true,true,false,true,true,true,true]; +const UsrInt_3953 = [true,false,false,false,true,true,true,false,true,true,true,true]; +const UsrInt_3954 = [false,true,false,false,true,true,true,false,true,true,true,true]; +const UsrInt_3955 = [true,true,false,false,true,true,true,false,true,true,true,true]; +const UsrInt_3956 = [false,false,true,false,true,true,true,false,true,true,true,true]; +const UsrInt_3957 = [true,false,true,false,true,true,true,false,true,true,true,true]; +const UsrInt_3958 = [false,true,true,false,true,true,true,false,true,true,true,true]; +const UsrInt_3959 = [true,true,true,false,true,true,true,false,true,true,true,true]; +const UsrInt_3960 = [false,false,false,true,true,true,true,false,true,true,true,true]; +const UsrInt_3961 = [true,false,false,true,true,true,true,false,true,true,true,true]; +const UsrInt_3962 = [false,true,false,true,true,true,true,false,true,true,true,true]; +const UsrInt_3963 = [true,true,false,true,true,true,true,false,true,true,true,true]; +const UsrInt_3964 = [false,false,true,true,true,true,true,false,true,true,true,true]; +const UsrInt_3965 = [true,false,true,true,true,true,true,false,true,true,true,true]; +const UsrInt_3966 = [false,true,true,true,true,true,true,false,true,true,true,true]; +const UsrInt_3967 = [true,true,true,true,true,true,true,false,true,true,true,true]; +const UsrInt_3968 = [false,false,false,false,false,false,false,true,true,true,true,true]; +const UsrInt_3969 = [true,false,false,false,false,false,false,true,true,true,true,true]; +const UsrInt_3970 = [false,true,false,false,false,false,false,true,true,true,true,true]; +const UsrInt_3971 = [true,true,false,false,false,false,false,true,true,true,true,true]; +const UsrInt_3972 = [false,false,true,false,false,false,false,true,true,true,true,true]; +const UsrInt_3973 = [true,false,true,false,false,false,false,true,true,true,true,true]; +const UsrInt_3974 = [false,true,true,false,false,false,false,true,true,true,true,true]; +const UsrInt_3975 = [true,true,true,false,false,false,false,true,true,true,true,true]; +const UsrInt_3976 = [false,false,false,true,false,false,false,true,true,true,true,true]; +const UsrInt_3977 = [true,false,false,true,false,false,false,true,true,true,true,true]; +const UsrInt_3978 = [false,true,false,true,false,false,false,true,true,true,true,true]; +const UsrInt_3979 = [true,true,false,true,false,false,false,true,true,true,true,true]; +const UsrInt_3980 = [false,false,true,true,false,false,false,true,true,true,true,true]; +const UsrInt_3981 = [true,false,true,true,false,false,false,true,true,true,true,true]; +const UsrInt_3982 = [false,true,true,true,false,false,false,true,true,true,true,true]; +const UsrInt_3983 = [true,true,true,true,false,false,false,true,true,true,true,true]; +const UsrInt_3984 = [false,false,false,false,true,false,false,true,true,true,true,true]; +const UsrInt_3985 = [true,false,false,false,true,false,false,true,true,true,true,true]; +const UsrInt_3986 = [false,true,false,false,true,false,false,true,true,true,true,true]; +const UsrInt_3987 = [true,true,false,false,true,false,false,true,true,true,true,true]; +const UsrInt_3988 = [false,false,true,false,true,false,false,true,true,true,true,true]; +const UsrInt_3989 = [true,false,true,false,true,false,false,true,true,true,true,true]; +const UsrInt_3990 = [false,true,true,false,true,false,false,true,true,true,true,true]; +const UsrInt_3991 = [true,true,true,false,true,false,false,true,true,true,true,true]; +const UsrInt_3992 = [false,false,false,true,true,false,false,true,true,true,true,true]; +const UsrInt_3993 = [true,false,false,true,true,false,false,true,true,true,true,true]; +const UsrInt_3994 = [false,true,false,true,true,false,false,true,true,true,true,true]; +const UsrInt_3995 = [true,true,false,true,true,false,false,true,true,true,true,true]; +const UsrInt_3996 = [false,false,true,true,true,false,false,true,true,true,true,true]; +const UsrInt_3997 = [true,false,true,true,true,false,false,true,true,true,true,true]; +const UsrInt_3998 = [false,true,true,true,true,false,false,true,true,true,true,true]; +const UsrInt_3999 = [true,true,true,true,true,false,false,true,true,true,true,true]; +const UsrInt_4000 = [false,false,false,false,false,true,false,true,true,true,true,true]; +const UsrInt_4001 = [true,false,false,false,false,true,false,true,true,true,true,true]; +const UsrInt_4002 = [false,true,false,false,false,true,false,true,true,true,true,true]; +const UsrInt_4003 = [true,true,false,false,false,true,false,true,true,true,true,true]; +const UsrInt_4004 = [false,false,true,false,false,true,false,true,true,true,true,true]; +const UsrInt_4005 = [true,false,true,false,false,true,false,true,true,true,true,true]; +const UsrInt_4006 = [false,true,true,false,false,true,false,true,true,true,true,true]; +const UsrInt_4007 = [true,true,true,false,false,true,false,true,true,true,true,true]; +const UsrInt_4008 = [false,false,false,true,false,true,false,true,true,true,true,true]; +const UsrInt_4009 = [true,false,false,true,false,true,false,true,true,true,true,true]; +const UsrInt_4010 = [false,true,false,true,false,true,false,true,true,true,true,true]; +const UsrInt_4011 = [true,true,false,true,false,true,false,true,true,true,true,true]; +const UsrInt_4012 = [false,false,true,true,false,true,false,true,true,true,true,true]; +const UsrInt_4013 = [true,false,true,true,false,true,false,true,true,true,true,true]; +const UsrInt_4014 = [false,true,true,true,false,true,false,true,true,true,true,true]; +const UsrInt_4015 = [true,true,true,true,false,true,false,true,true,true,true,true]; +const UsrInt_4016 = [false,false,false,false,true,true,false,true,true,true,true,true]; +const UsrInt_4017 = [true,false,false,false,true,true,false,true,true,true,true,true]; +const UsrInt_4018 = [false,true,false,false,true,true,false,true,true,true,true,true]; +const UsrInt_4019 = [true,true,false,false,true,true,false,true,true,true,true,true]; +const UsrInt_4020 = [false,false,true,false,true,true,false,true,true,true,true,true]; +const UsrInt_4021 = [true,false,true,false,true,true,false,true,true,true,true,true]; +const UsrInt_4022 = [false,true,true,false,true,true,false,true,true,true,true,true]; +const UsrInt_4023 = [true,true,true,false,true,true,false,true,true,true,true,true]; +const UsrInt_4024 = [false,false,false,true,true,true,false,true,true,true,true,true]; +const UsrInt_4025 = [true,false,false,true,true,true,false,true,true,true,true,true]; +const UsrInt_4026 = [false,true,false,true,true,true,false,true,true,true,true,true]; +const UsrInt_4027 = [true,true,false,true,true,true,false,true,true,true,true,true]; +const UsrInt_4028 = [false,false,true,true,true,true,false,true,true,true,true,true]; +const UsrInt_4029 = [true,false,true,true,true,true,false,true,true,true,true,true]; +const UsrInt_4030 = [false,true,true,true,true,true,false,true,true,true,true,true]; +const UsrInt_4031 = [true,true,true,true,true,true,false,true,true,true,true,true]; +const UsrInt_4032 = [false,false,false,false,false,false,true,true,true,true,true,true]; +const UsrInt_4033 = [true,false,false,false,false,false,true,true,true,true,true,true]; +const UsrInt_4034 = [false,true,false,false,false,false,true,true,true,true,true,true]; +const UsrInt_4035 = [true,true,false,false,false,false,true,true,true,true,true,true]; +const UsrInt_4036 = [false,false,true,false,false,false,true,true,true,true,true,true]; +const UsrInt_4037 = [true,false,true,false,false,false,true,true,true,true,true,true]; +const UsrInt_4038 = [false,true,true,false,false,false,true,true,true,true,true,true]; +const UsrInt_4039 = [true,true,true,false,false,false,true,true,true,true,true,true]; +const UsrInt_4040 = [false,false,false,true,false,false,true,true,true,true,true,true]; +const UsrInt_4041 = [true,false,false,true,false,false,true,true,true,true,true,true]; +const UsrInt_4042 = [false,true,false,true,false,false,true,true,true,true,true,true]; +const UsrInt_4043 = [true,true,false,true,false,false,true,true,true,true,true,true]; +const UsrInt_4044 = [false,false,true,true,false,false,true,true,true,true,true,true]; +const UsrInt_4045 = [true,false,true,true,false,false,true,true,true,true,true,true]; +const UsrInt_4046 = [false,true,true,true,false,false,true,true,true,true,true,true]; +const UsrInt_4047 = [true,true,true,true,false,false,true,true,true,true,true,true]; +const UsrInt_4048 = [false,false,false,false,true,false,true,true,true,true,true,true]; +const UsrInt_4049 = [true,false,false,false,true,false,true,true,true,true,true,true]; +const UsrInt_4050 = [false,true,false,false,true,false,true,true,true,true,true,true]; +const UsrInt_4051 = [true,true,false,false,true,false,true,true,true,true,true,true]; +const UsrInt_4052 = [false,false,true,false,true,false,true,true,true,true,true,true]; +const UsrInt_4053 = [true,false,true,false,true,false,true,true,true,true,true,true]; +const UsrInt_4054 = [false,true,true,false,true,false,true,true,true,true,true,true]; +const UsrInt_4055 = [true,true,true,false,true,false,true,true,true,true,true,true]; +const UsrInt_4056 = [false,false,false,true,true,false,true,true,true,true,true,true]; +const UsrInt_4057 = [true,false,false,true,true,false,true,true,true,true,true,true]; +const UsrInt_4058 = [false,true,false,true,true,false,true,true,true,true,true,true]; +const UsrInt_4059 = [true,true,false,true,true,false,true,true,true,true,true,true]; +const UsrInt_4060 = [false,false,true,true,true,false,true,true,true,true,true,true]; +const UsrInt_4061 = [true,false,true,true,true,false,true,true,true,true,true,true]; +const UsrInt_4062 = [false,true,true,true,true,false,true,true,true,true,true,true]; +const UsrInt_4063 = [true,true,true,true,true,false,true,true,true,true,true,true]; +const UsrInt_4064 = [false,false,false,false,false,true,true,true,true,true,true,true]; +const UsrInt_4065 = [true,false,false,false,false,true,true,true,true,true,true,true]; +const UsrInt_4066 = [false,true,false,false,false,true,true,true,true,true,true,true]; +const UsrInt_4067 = [true,true,false,false,false,true,true,true,true,true,true,true]; +const UsrInt_4068 = [false,false,true,false,false,true,true,true,true,true,true,true]; +const UsrInt_4069 = [true,false,true,false,false,true,true,true,true,true,true,true]; +const UsrInt_4070 = [false,true,true,false,false,true,true,true,true,true,true,true]; +const UsrInt_4071 = [true,true,true,false,false,true,true,true,true,true,true,true]; +const UsrInt_4072 = [false,false,false,true,false,true,true,true,true,true,true,true]; +const UsrInt_4073 = [true,false,false,true,false,true,true,true,true,true,true,true]; +const UsrInt_4074 = [false,true,false,true,false,true,true,true,true,true,true,true]; +const UsrInt_4075 = [true,true,false,true,false,true,true,true,true,true,true,true]; +const UsrInt_4076 = [false,false,true,true,false,true,true,true,true,true,true,true]; +const UsrInt_4077 = [true,false,true,true,false,true,true,true,true,true,true,true]; +const UsrInt_4078 = [false,true,true,true,false,true,true,true,true,true,true,true]; +const UsrInt_4079 = [true,true,true,true,false,true,true,true,true,true,true,true]; +const UsrInt_4080 = [false,false,false,false,true,true,true,true,true,true,true,true]; +const UsrInt_4081 = [true,false,false,false,true,true,true,true,true,true,true,true]; +const UsrInt_4082 = [false,true,false,false,true,true,true,true,true,true,true,true]; +const UsrInt_4083 = [true,true,false,false,true,true,true,true,true,true,true,true]; +const UsrInt_4084 = [false,false,true,false,true,true,true,true,true,true,true,true]; +const UsrInt_4085 = [true,false,true,false,true,true,true,true,true,true,true,true]; +const UsrInt_4086 = [false,true,true,false,true,true,true,true,true,true,true,true]; +const UsrInt_4087 = [true,true,true,false,true,true,true,true,true,true,true,true]; +const UsrInt_4088 = [false,false,false,true,true,true,true,true,true,true,true,true]; +const UsrInt_4089 = [true,false,false,true,true,true,true,true,true,true,true,true]; +const UsrInt_4090 = [false,true,false,true,true,true,true,true,true,true,true,true]; +const UsrInt_4091 = [true,true,false,true,true,true,true,true,true,true,true,true]; +const UsrInt_4092 = [false,false,true,true,true,true,true,true,true,true,true,true]; +const UsrInt_4093 = [true,false,true,true,true,true,true,true,true,true,true,true]; +const UsrInt_4094 = [false,true,true,true,true,true,true,true,true,true,true,true]; +const UsrInt_4095 = [true,true,true,true,true,true,true,true,true,true,true,true]; diff --git a/salut/lib/bit-blast/binary3.lus b/salut/lib/bit-blast/binary3.lus new file mode 100644 index 0000000000000000000000000000000000000000..0e47d7da8107fd4d238fff68abcb3fdadd595af8 --- /dev/null +++ b/salut/lib/bit-blast/binary3.lus @@ -0,0 +1,15 @@ + +-- to be included BEFORE binary.lus +-- Signed binary on 5 bits +-- (range [-15, 15] + nan (0001) + +const BIN_SZ=3; + +-- const UsrInt_0 = [0, 0, 0]; +const UsrInt_1 = [1, 0, 0]; +const UsrInt_2 = [0, 1, 0]; +const UsrInt_3 = [1, 1, 0]; +const UsrInt_4 = [0, 0, 1]; +const UsrInt_5 = [1, 0, 1]; +const UsrInt_6 = [0, 1, 1]; +const UsrInt_7 = [1, 1, 1]; diff --git a/salut/lib/bit-blast/binary4.lus b/salut/lib/bit-blast/binary4.lus new file mode 100644 index 0000000000000000000000000000000000000000..6291ae71216977916aecf1295eda805d005c8742 --- /dev/null +++ b/salut/lib/bit-blast/binary4.lus @@ -0,0 +1,23 @@ + +-- to be included BEFORE binary.lus +-- Signed binary on 5 bits +-- (range [-15, 15] + nan (0001) + +const BIN_SZ=5; + +(* const UsrInt_0 = [0, 0, 0, 0, 0]; *) +const UsrInt_1 = [1, 0, 0, 0, 0]; +const UsrInt_2 = [0, 1, 0, 0, 0]; +const UsrInt_3 = [1, 1, 0, 0, 0]; +const UsrInt_4 = [0, 0, 1, 0, 0]; +const UsrInt_5 = [1, 0, 1, 0, 0]; +const UsrInt_6 = [0, 1, 1, 0, 0]; +const UsrInt_7 = [1, 1, 1, 0, 0]; +const UsrInt_8 = [0, 0, 0, 1, 0]; +const UsrInt_9 = [1, 0, 0, 1, 0]; +const UsrInt_10 = [0, 1, 0, 1, 0]; +const UsrInt_11 = [1, 1, 0, 1, 0]; +const UsrInt_12 = [0, 0, 1, 1, 0]; +const UsrInt_13 = [1, 0, 1, 1, 0]; +const UsrInt_14 = [0, 1, 1, 1, 0]; +const UsrInt_15 = [1, 1, 1, 1, 0]; diff --git a/salut/lib/bit-blast/binary5.lus b/salut/lib/bit-blast/binary5.lus new file mode 100644 index 0000000000000000000000000000000000000000..bff8d9f8da03a2cbb6ca5afc1155c4864a8b5cb0 --- /dev/null +++ b/salut/lib/bit-blast/binary5.lus @@ -0,0 +1,35 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=5; +const UsrInt_0 = [0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0]; +const UsrInt_3 = [1,1,0,0,0]; +const UsrInt_4 = [0,0,1,0,0]; +const UsrInt_5 = [1,0,1,0,0]; +const UsrInt_6 = [0,1,1,0,0]; +const UsrInt_7 = [1,1,1,0,0]; +const UsrInt_8 = [0,0,0,1,0]; +const UsrInt_9 = [1,0,0,1,0]; +const UsrInt_10 = [0,1,0,1,0]; +const UsrInt_11 = [1,1,0,1,0]; +const UsrInt_12 = [0,0,1,1,0]; +const UsrInt_13 = [1,0,1,1,0]; +const UsrInt_14 = [0,1,1,1,0]; +const UsrInt_15 = [1,1,1,1,0]; + +const nan = [0,0,0,0,1]; +const UsrInt_minus_15 = [1,0,0,0,1]; +const UsrInt_minus_14 = [0,1,0,0,1]; +const UsrInt_minus_13 = [1,1,0,0,1]; +const UsrInt_minus_12 = [0,0,1,0,1]; +const UsrInt_minus_11 = [1,0,1,0,1]; +const UsrInt_minus_10 = [0,1,1,0,1]; +const UsrInt_minus_9 = [1,1,1,0,1]; +const UsrInt_minus_8 = [0,0,0,1,1]; +const UsrInt_minus_7 = [1,0,0,1,1]; +const UsrInt_minus_6 = [0,1,0,1,1]; +const UsrInt_minus_5 = [1,1,0,1,1]; +const UsrInt_minus_4 = [0,0,1,1,1]; +const UsrInt_minus_3 = [1,0,1,1,1]; +const UsrInt_minus_2 = [0,1,1,1,1]; +const UsrInt_minus_1 = [1,1,1,1,1]; diff --git a/salut/lib/bit-blast/binary6.lus b/salut/lib/bit-blast/binary6.lus new file mode 100644 index 0000000000000000000000000000000000000000..ff44a50dffa5888fcb8931150febce6126296852 --- /dev/null +++ b/salut/lib/bit-blast/binary6.lus @@ -0,0 +1,67 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=6; +const UsrInt_0 = [0,0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0,0]; +const UsrInt_3 = [1,1,0,0,0,0]; +const UsrInt_4 = [0,0,1,0,0,0]; +const UsrInt_5 = [1,0,1,0,0,0]; +const UsrInt_6 = [0,1,1,0,0,0]; +const UsrInt_7 = [1,1,1,0,0,0]; +const UsrInt_8 = [0,0,0,1,0,0]; +const UsrInt_9 = [1,0,0,1,0,0]; +const UsrInt_10 = [0,1,0,1,0,0]; +const UsrInt_11 = [1,1,0,1,0,0]; +const UsrInt_12 = [0,0,1,1,0,0]; +const UsrInt_13 = [1,0,1,1,0,0]; +const UsrInt_14 = [0,1,1,1,0,0]; +const UsrInt_15 = [1,1,1,1,0,0]; +const UsrInt_16 = [0,0,0,0,1,0]; +const UsrInt_17 = [1,0,0,0,1,0]; +const UsrInt_18 = [0,1,0,0,1,0]; +const UsrInt_19 = [1,1,0,0,1,0]; +const UsrInt_20 = [0,0,1,0,1,0]; +const UsrInt_21 = [1,0,1,0,1,0]; +const UsrInt_22 = [0,1,1,0,1,0]; +const UsrInt_23 = [1,1,1,0,1,0]; +const UsrInt_24 = [0,0,0,1,1,0]; +const UsrInt_25 = [1,0,0,1,1,0]; +const UsrInt_26 = [0,1,0,1,1,0]; +const UsrInt_27 = [1,1,0,1,1,0]; +const UsrInt_28 = [0,0,1,1,1,0]; +const UsrInt_29 = [1,0,1,1,1,0]; +const UsrInt_30 = [0,1,1,1,1,0]; +const UsrInt_31 = [1,1,1,1,1,0]; + +const nan = [0,0,0,0,0,1]; +const UsrInt_minus_31 = [1,0,0,0,0,1]; +const UsrInt_minus_30 = [0,1,0,0,0,1]; +const UsrInt_minus_29 = [1,1,0,0,0,1]; +const UsrInt_minus_28 = [0,0,1,0,0,1]; +const UsrInt_minus_27 = [1,0,1,0,0,1]; +const UsrInt_minus_26 = [0,1,1,0,0,1]; +const UsrInt_minus_25 = [1,1,1,0,0,1]; +const UsrInt_minus_24 = [0,0,0,1,0,1]; +const UsrInt_minus_23 = [1,0,0,1,0,1]; +const UsrInt_minus_22 = [0,1,0,1,0,1]; +const UsrInt_minus_21 = [1,1,0,1,0,1]; +const UsrInt_minus_20 = [0,0,1,1,0,1]; +const UsrInt_minus_19 = [1,0,1,1,0,1]; +const UsrInt_minus_18 = [0,1,1,1,0,1]; +const UsrInt_minus_17 = [1,1,1,1,0,1]; +const UsrInt_minus_16 = [0,0,0,0,1,1]; +const UsrInt_minus_15 = [1,0,0,0,1,1]; +const UsrInt_minus_14 = [0,1,0,0,1,1]; +const UsrInt_minus_13 = [1,1,0,0,1,1]; +const UsrInt_minus_12 = [0,0,1,0,1,1]; +const UsrInt_minus_11 = [1,0,1,0,1,1]; +const UsrInt_minus_10 = [0,1,1,0,1,1]; +const UsrInt_minus_9 = [1,1,1,0,1,1]; +const UsrInt_minus_8 = [0,0,0,1,1,1]; +const UsrInt_minus_7 = [1,0,0,1,1,1]; +const UsrInt_minus_6 = [0,1,0,1,1,1]; +const UsrInt_minus_5 = [1,1,0,1,1,1]; +const UsrInt_minus_4 = [0,0,1,1,1,1]; +const UsrInt_minus_3 = [1,0,1,1,1,1]; +const UsrInt_minus_2 = [0,1,1,1,1,1]; +const UsrInt_minus_1 = [1,1,1,1,1,1]; diff --git a/salut/lib/bit-blast/binary7.lus b/salut/lib/bit-blast/binary7.lus new file mode 100644 index 0000000000000000000000000000000000000000..996abc751bff063c5f261945adcd90bc2eff4fc9 --- /dev/null +++ b/salut/lib/bit-blast/binary7.lus @@ -0,0 +1,131 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=7; +const UsrInt_0 = [0,0,0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0,0,0]; +const UsrInt_3 = [1,1,0,0,0,0,0]; +const UsrInt_4 = [0,0,1,0,0,0,0]; +const UsrInt_5 = [1,0,1,0,0,0,0]; +const UsrInt_6 = [0,1,1,0,0,0,0]; +const UsrInt_7 = [1,1,1,0,0,0,0]; +const UsrInt_8 = [0,0,0,1,0,0,0]; +const UsrInt_9 = [1,0,0,1,0,0,0]; +const UsrInt_10 = [0,1,0,1,0,0,0]; +const UsrInt_11 = [1,1,0,1,0,0,0]; +const UsrInt_12 = [0,0,1,1,0,0,0]; +const UsrInt_13 = [1,0,1,1,0,0,0]; +const UsrInt_14 = [0,1,1,1,0,0,0]; +const UsrInt_15 = [1,1,1,1,0,0,0]; +const UsrInt_16 = [0,0,0,0,1,0,0]; +const UsrInt_17 = [1,0,0,0,1,0,0]; +const UsrInt_18 = [0,1,0,0,1,0,0]; +const UsrInt_19 = [1,1,0,0,1,0,0]; +const UsrInt_20 = [0,0,1,0,1,0,0]; +const UsrInt_21 = [1,0,1,0,1,0,0]; +const UsrInt_22 = [0,1,1,0,1,0,0]; +const UsrInt_23 = [1,1,1,0,1,0,0]; +const UsrInt_24 = [0,0,0,1,1,0,0]; +const UsrInt_25 = [1,0,0,1,1,0,0]; +const UsrInt_26 = [0,1,0,1,1,0,0]; +const UsrInt_27 = [1,1,0,1,1,0,0]; +const UsrInt_28 = [0,0,1,1,1,0,0]; +const UsrInt_29 = [1,0,1,1,1,0,0]; +const UsrInt_30 = [0,1,1,1,1,0,0]; +const UsrInt_31 = [1,1,1,1,1,0,0]; +const UsrInt_32 = [0,0,0,0,0,1,0]; +const UsrInt_33 = [1,0,0,0,0,1,0]; +const UsrInt_34 = [0,1,0,0,0,1,0]; +const UsrInt_35 = [1,1,0,0,0,1,0]; +const UsrInt_36 = [0,0,1,0,0,1,0]; +const UsrInt_37 = [1,0,1,0,0,1,0]; +const UsrInt_38 = [0,1,1,0,0,1,0]; +const UsrInt_39 = [1,1,1,0,0,1,0]; +const UsrInt_40 = [0,0,0,1,0,1,0]; +const UsrInt_41 = [1,0,0,1,0,1,0]; +const UsrInt_42 = [0,1,0,1,0,1,0]; +const UsrInt_43 = [1,1,0,1,0,1,0]; +const UsrInt_44 = [0,0,1,1,0,1,0]; +const UsrInt_45 = [1,0,1,1,0,1,0]; +const UsrInt_46 = [0,1,1,1,0,1,0]; +const UsrInt_47 = [1,1,1,1,0,1,0]; +const UsrInt_48 = [0,0,0,0,1,1,0]; +const UsrInt_49 = [1,0,0,0,1,1,0]; +const UsrInt_50 = [0,1,0,0,1,1,0]; +const UsrInt_51 = [1,1,0,0,1,1,0]; +const UsrInt_52 = [0,0,1,0,1,1,0]; +const UsrInt_53 = [1,0,1,0,1,1,0]; +const UsrInt_54 = [0,1,1,0,1,1,0]; +const UsrInt_55 = [1,1,1,0,1,1,0]; +const UsrInt_56 = [0,0,0,1,1,1,0]; +const UsrInt_57 = [1,0,0,1,1,1,0]; +const UsrInt_58 = [0,1,0,1,1,1,0]; +const UsrInt_59 = [1,1,0,1,1,1,0]; +const UsrInt_60 = [0,0,1,1,1,1,0]; +const UsrInt_61 = [1,0,1,1,1,1,0]; +const UsrInt_62 = [0,1,1,1,1,1,0]; +const UsrInt_63 = [1,1,1,1,1,1,0]; + +const nan = [0,0,0,0,0,0,1]; +const UsrInt_minus_63 = [1,0,0,0,0,0,1]; +const UsrInt_minus_62 = [0,1,0,0,0,0,1]; +const UsrInt_minus_61 = [1,1,0,0,0,0,1]; +const UsrInt_minus_60 = [0,0,1,0,0,0,1]; +const UsrInt_minus_59 = [1,0,1,0,0,0,1]; +const UsrInt_minus_58 = [0,1,1,0,0,0,1]; +const UsrInt_minus_57 = [1,1,1,0,0,0,1]; +const UsrInt_minus_56 = [0,0,0,1,0,0,1]; +const UsrInt_minus_55 = [1,0,0,1,0,0,1]; +const UsrInt_minus_54 = [0,1,0,1,0,0,1]; +const UsrInt_minus_53 = [1,1,0,1,0,0,1]; +const UsrInt_minus_52 = [0,0,1,1,0,0,1]; +const UsrInt_minus_51 = [1,0,1,1,0,0,1]; +const UsrInt_minus_50 = [0,1,1,1,0,0,1]; +const UsrInt_minus_49 = [1,1,1,1,0,0,1]; +const UsrInt_minus_48 = [0,0,0,0,1,0,1]; +const UsrInt_minus_47 = [1,0,0,0,1,0,1]; +const UsrInt_minus_46 = [0,1,0,0,1,0,1]; +const UsrInt_minus_45 = [1,1,0,0,1,0,1]; +const UsrInt_minus_44 = [0,0,1,0,1,0,1]; +const UsrInt_minus_43 = [1,0,1,0,1,0,1]; +const UsrInt_minus_42 = [0,1,1,0,1,0,1]; +const UsrInt_minus_41 = [1,1,1,0,1,0,1]; +const UsrInt_minus_40 = [0,0,0,1,1,0,1]; +const UsrInt_minus_39 = [1,0,0,1,1,0,1]; +const UsrInt_minus_38 = [0,1,0,1,1,0,1]; +const UsrInt_minus_37 = [1,1,0,1,1,0,1]; +const UsrInt_minus_36 = [0,0,1,1,1,0,1]; +const UsrInt_minus_35 = [1,0,1,1,1,0,1]; +const UsrInt_minus_34 = [0,1,1,1,1,0,1]; +const UsrInt_minus_33 = [1,1,1,1,1,0,1]; +const UsrInt_minus_32 = [0,0,0,0,0,1,1]; +const UsrInt_minus_31 = [1,0,0,0,0,1,1]; +const UsrInt_minus_30 = [0,1,0,0,0,1,1]; +const UsrInt_minus_29 = [1,1,0,0,0,1,1]; +const UsrInt_minus_28 = [0,0,1,0,0,1,1]; +const UsrInt_minus_27 = [1,0,1,0,0,1,1]; +const UsrInt_minus_26 = [0,1,1,0,0,1,1]; +const UsrInt_minus_25 = [1,1,1,0,0,1,1]; +const UsrInt_minus_24 = [0,0,0,1,0,1,1]; +const UsrInt_minus_23 = [1,0,0,1,0,1,1]; +const UsrInt_minus_22 = [0,1,0,1,0,1,1]; +const UsrInt_minus_21 = [1,1,0,1,0,1,1]; +const UsrInt_minus_20 = [0,0,1,1,0,1,1]; +const UsrInt_minus_19 = [1,0,1,1,0,1,1]; +const UsrInt_minus_18 = [0,1,1,1,0,1,1]; +const UsrInt_minus_17 = [1,1,1,1,0,1,1]; +const UsrInt_minus_16 = [0,0,0,0,1,1,1]; +const UsrInt_minus_15 = [1,0,0,0,1,1,1]; +const UsrInt_minus_14 = [0,1,0,0,1,1,1]; +const UsrInt_minus_13 = [1,1,0,0,1,1,1]; +const UsrInt_minus_12 = [0,0,1,0,1,1,1]; +const UsrInt_minus_11 = [1,0,1,0,1,1,1]; +const UsrInt_minus_10 = [0,1,1,0,1,1,1]; +const UsrInt_minus_9 = [1,1,1,0,1,1,1]; +const UsrInt_minus_8 = [0,0,0,1,1,1,1]; +const UsrInt_minus_7 = [1,0,0,1,1,1,1]; +const UsrInt_minus_6 = [0,1,0,1,1,1,1]; +const UsrInt_minus_5 = [1,1,0,1,1,1,1]; +const UsrInt_minus_4 = [0,0,1,1,1,1,1]; +const UsrInt_minus_3 = [1,0,1,1,1,1,1]; +const UsrInt_minus_2 = [0,1,1,1,1,1,1]; +const UsrInt_minus_1 = [1,1,1,1,1,1,1]; diff --git a/salut/lib/bit-blast/binary8.lus b/salut/lib/bit-blast/binary8.lus new file mode 100644 index 0000000000000000000000000000000000000000..6f072837ad5ffb5f30fb0acac618e2936b3827f2 --- /dev/null +++ b/salut/lib/bit-blast/binary8.lus @@ -0,0 +1,259 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=8; +const UsrInt_0 = [0,0,0,0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0,0,0,0]; +const UsrInt_3 = [1,1,0,0,0,0,0,0]; +const UsrInt_4 = [0,0,1,0,0,0,0,0]; +const UsrInt_5 = [1,0,1,0,0,0,0,0]; +const UsrInt_6 = [0,1,1,0,0,0,0,0]; +const UsrInt_7 = [1,1,1,0,0,0,0,0]; +const UsrInt_8 = [0,0,0,1,0,0,0,0]; +const UsrInt_9 = [1,0,0,1,0,0,0,0]; +const UsrInt_10 = [0,1,0,1,0,0,0,0]; +const UsrInt_11 = [1,1,0,1,0,0,0,0]; +const UsrInt_12 = [0,0,1,1,0,0,0,0]; +const UsrInt_13 = [1,0,1,1,0,0,0,0]; +const UsrInt_14 = [0,1,1,1,0,0,0,0]; +const UsrInt_15 = [1,1,1,1,0,0,0,0]; +const UsrInt_16 = [0,0,0,0,1,0,0,0]; +const UsrInt_17 = [1,0,0,0,1,0,0,0]; +const UsrInt_18 = [0,1,0,0,1,0,0,0]; +const UsrInt_19 = [1,1,0,0,1,0,0,0]; +const UsrInt_20 = [0,0,1,0,1,0,0,0]; +const UsrInt_21 = [1,0,1,0,1,0,0,0]; +const UsrInt_22 = [0,1,1,0,1,0,0,0]; +const UsrInt_23 = [1,1,1,0,1,0,0,0]; +const UsrInt_24 = [0,0,0,1,1,0,0,0]; +const UsrInt_25 = [1,0,0,1,1,0,0,0]; +const UsrInt_26 = [0,1,0,1,1,0,0,0]; +const UsrInt_27 = [1,1,0,1,1,0,0,0]; +const UsrInt_28 = [0,0,1,1,1,0,0,0]; +const UsrInt_29 = [1,0,1,1,1,0,0,0]; +const UsrInt_30 = [0,1,1,1,1,0,0,0]; +const UsrInt_31 = [1,1,1,1,1,0,0,0]; +const UsrInt_32 = [0,0,0,0,0,1,0,0]; +const UsrInt_33 = [1,0,0,0,0,1,0,0]; +const UsrInt_34 = [0,1,0,0,0,1,0,0]; +const UsrInt_35 = [1,1,0,0,0,1,0,0]; +const UsrInt_36 = [0,0,1,0,0,1,0,0]; +const UsrInt_37 = [1,0,1,0,0,1,0,0]; +const UsrInt_38 = [0,1,1,0,0,1,0,0]; +const UsrInt_39 = [1,1,1,0,0,1,0,0]; +const UsrInt_40 = [0,0,0,1,0,1,0,0]; +const UsrInt_41 = [1,0,0,1,0,1,0,0]; +const UsrInt_42 = [0,1,0,1,0,1,0,0]; +const UsrInt_43 = [1,1,0,1,0,1,0,0]; +const UsrInt_44 = [0,0,1,1,0,1,0,0]; +const UsrInt_45 = [1,0,1,1,0,1,0,0]; +const UsrInt_46 = [0,1,1,1,0,1,0,0]; +const UsrInt_47 = [1,1,1,1,0,1,0,0]; +const UsrInt_48 = [0,0,0,0,1,1,0,0]; +const UsrInt_49 = [1,0,0,0,1,1,0,0]; +const UsrInt_50 = [0,1,0,0,1,1,0,0]; +const UsrInt_51 = [1,1,0,0,1,1,0,0]; +const UsrInt_52 = [0,0,1,0,1,1,0,0]; +const UsrInt_53 = [1,0,1,0,1,1,0,0]; +const UsrInt_54 = [0,1,1,0,1,1,0,0]; +const UsrInt_55 = [1,1,1,0,1,1,0,0]; +const UsrInt_56 = [0,0,0,1,1,1,0,0]; +const UsrInt_57 = [1,0,0,1,1,1,0,0]; +const UsrInt_58 = [0,1,0,1,1,1,0,0]; +const UsrInt_59 = [1,1,0,1,1,1,0,0]; +const UsrInt_60 = [0,0,1,1,1,1,0,0]; +const UsrInt_61 = [1,0,1,1,1,1,0,0]; +const UsrInt_62 = [0,1,1,1,1,1,0,0]; +const UsrInt_63 = [1,1,1,1,1,1,0,0]; +const UsrInt_64 = [0,0,0,0,0,0,1,0]; +const UsrInt_65 = [1,0,0,0,0,0,1,0]; +const UsrInt_66 = [0,1,0,0,0,0,1,0]; +const UsrInt_67 = [1,1,0,0,0,0,1,0]; +const UsrInt_68 = [0,0,1,0,0,0,1,0]; +const UsrInt_69 = [1,0,1,0,0,0,1,0]; +const UsrInt_70 = [0,1,1,0,0,0,1,0]; +const UsrInt_71 = [1,1,1,0,0,0,1,0]; +const UsrInt_72 = [0,0,0,1,0,0,1,0]; +const UsrInt_73 = [1,0,0,1,0,0,1,0]; +const UsrInt_74 = [0,1,0,1,0,0,1,0]; +const UsrInt_75 = [1,1,0,1,0,0,1,0]; +const UsrInt_76 = [0,0,1,1,0,0,1,0]; +const UsrInt_77 = [1,0,1,1,0,0,1,0]; +const UsrInt_78 = [0,1,1,1,0,0,1,0]; +const UsrInt_79 = [1,1,1,1,0,0,1,0]; +const UsrInt_80 = [0,0,0,0,1,0,1,0]; +const UsrInt_81 = [1,0,0,0,1,0,1,0]; +const UsrInt_82 = [0,1,0,0,1,0,1,0]; +const UsrInt_83 = [1,1,0,0,1,0,1,0]; +const UsrInt_84 = [0,0,1,0,1,0,1,0]; +const UsrInt_85 = [1,0,1,0,1,0,1,0]; +const UsrInt_86 = [0,1,1,0,1,0,1,0]; +const UsrInt_87 = [1,1,1,0,1,0,1,0]; +const UsrInt_88 = [0,0,0,1,1,0,1,0]; +const UsrInt_89 = [1,0,0,1,1,0,1,0]; +const UsrInt_90 = [0,1,0,1,1,0,1,0]; +const UsrInt_91 = [1,1,0,1,1,0,1,0]; +const UsrInt_92 = [0,0,1,1,1,0,1,0]; +const UsrInt_93 = [1,0,1,1,1,0,1,0]; +const UsrInt_94 = [0,1,1,1,1,0,1,0]; +const UsrInt_95 = [1,1,1,1,1,0,1,0]; +const UsrInt_96 = [0,0,0,0,0,1,1,0]; +const UsrInt_97 = [1,0,0,0,0,1,1,0]; +const UsrInt_98 = [0,1,0,0,0,1,1,0]; +const UsrInt_99 = [1,1,0,0,0,1,1,0]; +const UsrInt_100 = [0,0,1,0,0,1,1,0]; +const UsrInt_101 = [1,0,1,0,0,1,1,0]; +const UsrInt_102 = [0,1,1,0,0,1,1,0]; +const UsrInt_103 = [1,1,1,0,0,1,1,0]; +const UsrInt_104 = [0,0,0,1,0,1,1,0]; +const UsrInt_105 = [1,0,0,1,0,1,1,0]; +const UsrInt_106 = [0,1,0,1,0,1,1,0]; +const UsrInt_107 = [1,1,0,1,0,1,1,0]; +const UsrInt_108 = [0,0,1,1,0,1,1,0]; +const UsrInt_109 = [1,0,1,1,0,1,1,0]; +const UsrInt_110 = [0,1,1,1,0,1,1,0]; +const UsrInt_111 = [1,1,1,1,0,1,1,0]; +const UsrInt_112 = [0,0,0,0,1,1,1,0]; +const UsrInt_113 = [1,0,0,0,1,1,1,0]; +const UsrInt_114 = [0,1,0,0,1,1,1,0]; +const UsrInt_115 = [1,1,0,0,1,1,1,0]; +const UsrInt_116 = [0,0,1,0,1,1,1,0]; +const UsrInt_117 = [1,0,1,0,1,1,1,0]; +const UsrInt_118 = [0,1,1,0,1,1,1,0]; +const UsrInt_119 = [1,1,1,0,1,1,1,0]; +const UsrInt_120 = [0,0,0,1,1,1,1,0]; +const UsrInt_121 = [1,0,0,1,1,1,1,0]; +const UsrInt_122 = [0,1,0,1,1,1,1,0]; +const UsrInt_123 = [1,1,0,1,1,1,1,0]; +const UsrInt_124 = [0,0,1,1,1,1,1,0]; +const UsrInt_125 = [1,0,1,1,1,1,1,0]; +const UsrInt_126 = [0,1,1,1,1,1,1,0]; +const UsrInt_127 = [1,1,1,1,1,1,1,0]; + +const nan = [0,0,0,0,0,0,0,1]; +const UsrInt_minus_127 = [1,0,0,0,0,0,0,1]; +const UsrInt_minus_126 = [0,1,0,0,0,0,0,1]; +const UsrInt_minus_125 = [1,1,0,0,0,0,0,1]; +const UsrInt_minus_124 = [0,0,1,0,0,0,0,1]; +const UsrInt_minus_123 = [1,0,1,0,0,0,0,1]; +const UsrInt_minus_122 = [0,1,1,0,0,0,0,1]; +const UsrInt_minus_121 = [1,1,1,0,0,0,0,1]; +const UsrInt_minus_120 = [0,0,0,1,0,0,0,1]; +const UsrInt_minus_119 = [1,0,0,1,0,0,0,1]; +const UsrInt_minus_118 = [0,1,0,1,0,0,0,1]; +const UsrInt_minus_117 = [1,1,0,1,0,0,0,1]; +const UsrInt_minus_116 = [0,0,1,1,0,0,0,1]; +const UsrInt_minus_115 = [1,0,1,1,0,0,0,1]; +const UsrInt_minus_114 = [0,1,1,1,0,0,0,1]; +const UsrInt_minus_113 = [1,1,1,1,0,0,0,1]; +const UsrInt_minus_112 = [0,0,0,0,1,0,0,1]; +const UsrInt_minus_111 = [1,0,0,0,1,0,0,1]; +const UsrInt_minus_110 = [0,1,0,0,1,0,0,1]; +const UsrInt_minus_109 = [1,1,0,0,1,0,0,1]; +const UsrInt_minus_108 = [0,0,1,0,1,0,0,1]; +const UsrInt_minus_107 = [1,0,1,0,1,0,0,1]; +const UsrInt_minus_106 = [0,1,1,0,1,0,0,1]; +const UsrInt_minus_105 = [1,1,1,0,1,0,0,1]; +const UsrInt_minus_104 = [0,0,0,1,1,0,0,1]; +const UsrInt_minus_103 = [1,0,0,1,1,0,0,1]; +const UsrInt_minus_102 = [0,1,0,1,1,0,0,1]; +const UsrInt_minus_101 = [1,1,0,1,1,0,0,1]; +const UsrInt_minus_100 = [0,0,1,1,1,0,0,1]; +const UsrInt_minus_99 = [1,0,1,1,1,0,0,1]; +const UsrInt_minus_98 = [0,1,1,1,1,0,0,1]; +const UsrInt_minus_97 = [1,1,1,1,1,0,0,1]; +const UsrInt_minus_96 = [0,0,0,0,0,1,0,1]; +const UsrInt_minus_95 = [1,0,0,0,0,1,0,1]; +const UsrInt_minus_94 = [0,1,0,0,0,1,0,1]; +const UsrInt_minus_93 = [1,1,0,0,0,1,0,1]; +const UsrInt_minus_92 = [0,0,1,0,0,1,0,1]; +const UsrInt_minus_91 = [1,0,1,0,0,1,0,1]; +const UsrInt_minus_90 = [0,1,1,0,0,1,0,1]; +const UsrInt_minus_89 = [1,1,1,0,0,1,0,1]; +const UsrInt_minus_88 = [0,0,0,1,0,1,0,1]; +const UsrInt_minus_87 = [1,0,0,1,0,1,0,1]; +const UsrInt_minus_86 = [0,1,0,1,0,1,0,1]; +const UsrInt_minus_85 = [1,1,0,1,0,1,0,1]; +const UsrInt_minus_84 = [0,0,1,1,0,1,0,1]; +const UsrInt_minus_83 = [1,0,1,1,0,1,0,1]; +const UsrInt_minus_82 = [0,1,1,1,0,1,0,1]; +const UsrInt_minus_81 = [1,1,1,1,0,1,0,1]; +const UsrInt_minus_80 = [0,0,0,0,1,1,0,1]; +const UsrInt_minus_79 = [1,0,0,0,1,1,0,1]; +const UsrInt_minus_78 = [0,1,0,0,1,1,0,1]; +const UsrInt_minus_77 = [1,1,0,0,1,1,0,1]; +const UsrInt_minus_76 = [0,0,1,0,1,1,0,1]; +const UsrInt_minus_75 = [1,0,1,0,1,1,0,1]; +const UsrInt_minus_74 = [0,1,1,0,1,1,0,1]; +const UsrInt_minus_73 = [1,1,1,0,1,1,0,1]; +const UsrInt_minus_72 = [0,0,0,1,1,1,0,1]; +const UsrInt_minus_71 = [1,0,0,1,1,1,0,1]; +const UsrInt_minus_70 = [0,1,0,1,1,1,0,1]; +const UsrInt_minus_69 = [1,1,0,1,1,1,0,1]; +const UsrInt_minus_68 = [0,0,1,1,1,1,0,1]; +const UsrInt_minus_67 = [1,0,1,1,1,1,0,1]; +const UsrInt_minus_66 = [0,1,1,1,1,1,0,1]; +const UsrInt_minus_65 = [1,1,1,1,1,1,0,1]; +const UsrInt_minus_64 = [0,0,0,0,0,0,1,1]; +const UsrInt_minus_63 = [1,0,0,0,0,0,1,1]; +const UsrInt_minus_62 = [0,1,0,0,0,0,1,1]; +const UsrInt_minus_61 = [1,1,0,0,0,0,1,1]; +const UsrInt_minus_60 = [0,0,1,0,0,0,1,1]; +const UsrInt_minus_59 = [1,0,1,0,0,0,1,1]; +const UsrInt_minus_58 = [0,1,1,0,0,0,1,1]; +const UsrInt_minus_57 = [1,1,1,0,0,0,1,1]; +const UsrInt_minus_56 = [0,0,0,1,0,0,1,1]; +const UsrInt_minus_55 = [1,0,0,1,0,0,1,1]; +const UsrInt_minus_54 = [0,1,0,1,0,0,1,1]; +const UsrInt_minus_53 = [1,1,0,1,0,0,1,1]; +const UsrInt_minus_52 = [0,0,1,1,0,0,1,1]; +const UsrInt_minus_51 = [1,0,1,1,0,0,1,1]; +const UsrInt_minus_50 = [0,1,1,1,0,0,1,1]; +const UsrInt_minus_49 = [1,1,1,1,0,0,1,1]; +const UsrInt_minus_48 = [0,0,0,0,1,0,1,1]; +const UsrInt_minus_47 = [1,0,0,0,1,0,1,1]; +const UsrInt_minus_46 = [0,1,0,0,1,0,1,1]; +const UsrInt_minus_45 = [1,1,0,0,1,0,1,1]; +const UsrInt_minus_44 = [0,0,1,0,1,0,1,1]; +const UsrInt_minus_43 = [1,0,1,0,1,0,1,1]; +const UsrInt_minus_42 = [0,1,1,0,1,0,1,1]; +const UsrInt_minus_41 = [1,1,1,0,1,0,1,1]; +const UsrInt_minus_40 = [0,0,0,1,1,0,1,1]; +const UsrInt_minus_39 = [1,0,0,1,1,0,1,1]; +const UsrInt_minus_38 = [0,1,0,1,1,0,1,1]; +const UsrInt_minus_37 = [1,1,0,1,1,0,1,1]; +const UsrInt_minus_36 = [0,0,1,1,1,0,1,1]; +const UsrInt_minus_35 = [1,0,1,1,1,0,1,1]; +const UsrInt_minus_34 = [0,1,1,1,1,0,1,1]; +const UsrInt_minus_33 = [1,1,1,1,1,0,1,1]; +const UsrInt_minus_32 = [0,0,0,0,0,1,1,1]; +const UsrInt_minus_31 = [1,0,0,0,0,1,1,1]; +const UsrInt_minus_30 = [0,1,0,0,0,1,1,1]; +const UsrInt_minus_29 = [1,1,0,0,0,1,1,1]; +const UsrInt_minus_28 = [0,0,1,0,0,1,1,1]; +const UsrInt_minus_27 = [1,0,1,0,0,1,1,1]; +const UsrInt_minus_26 = [0,1,1,0,0,1,1,1]; +const UsrInt_minus_25 = [1,1,1,0,0,1,1,1]; +const UsrInt_minus_24 = [0,0,0,1,0,1,1,1]; +const UsrInt_minus_23 = [1,0,0,1,0,1,1,1]; +const UsrInt_minus_22 = [0,1,0,1,0,1,1,1]; +const UsrInt_minus_21 = [1,1,0,1,0,1,1,1]; +const UsrInt_minus_20 = [0,0,1,1,0,1,1,1]; +const UsrInt_minus_19 = [1,0,1,1,0,1,1,1]; +const UsrInt_minus_18 = [0,1,1,1,0,1,1,1]; +const UsrInt_minus_17 = [1,1,1,1,0,1,1,1]; +const UsrInt_minus_16 = [0,0,0,0,1,1,1,1]; +const UsrInt_minus_15 = [1,0,0,0,1,1,1,1]; +const UsrInt_minus_14 = [0,1,0,0,1,1,1,1]; +const UsrInt_minus_13 = [1,1,0,0,1,1,1,1]; +const UsrInt_minus_12 = [0,0,1,0,1,1,1,1]; +const UsrInt_minus_11 = [1,0,1,0,1,1,1,1]; +const UsrInt_minus_10 = [0,1,1,0,1,1,1,1]; +const UsrInt_minus_9 = [1,1,1,0,1,1,1,1]; +const UsrInt_minus_8 = [0,0,0,1,1,1,1,1]; +const UsrInt_minus_7 = [1,0,0,1,1,1,1,1]; +const UsrInt_minus_6 = [0,1,0,1,1,1,1,1]; +const UsrInt_minus_5 = [1,1,0,1,1,1,1,1]; +const UsrInt_minus_4 = [0,0,1,1,1,1,1,1]; +const UsrInt_minus_3 = [1,0,1,1,1,1,1,1]; +const UsrInt_minus_2 = [0,1,1,1,1,1,1,1]; +const UsrInt_minus_1 = [1,1,1,1,1,1,1,1]; diff --git a/salut/lib/bit-blast/gen_binary b/salut/lib/bit-blast/gen_binary new file mode 100755 index 0000000000000000000000000000000000000000..b8a161139fe96403e008b0bad16a073f93429789 Binary files /dev/null and b/salut/lib/bit-blast/gen_binary differ diff --git a/salut/lib/bit-blast/gen_binary.ml b/salut/lib/bit-blast/gen_binary.ml new file mode 100644 index 0000000000000000000000000000000000000000..2198aae9876a3c6fa810b09b1c1bc30bbe5c83dc --- /dev/null +++ b/salut/lib/bit-blast/gen_binary.ml @@ -0,0 +1,73 @@ +(* Time-stamp: <modified the 08/05/2022 (at 12:18) by Erwan Jahier> *) + +let usage = "ocaml gen_binary.ml n +will generate a binary<n>.lus file encoding integer with int arrays of size n +" + +let (int_to_bin:int -> int -> int list) = fun i n -> + let rec aux i n acc = + let r = i mod 2 in + let i = i / 2 in + let acc = r::acc in + if n = 1 then acc else aux i (n-1) acc + in + List.rev (aux i n []) + +let bstring_of_int = function + | 0 -> "0" + | 1 -> "1" + | _ -> assert false + +let rec pow2 n = if n<=0 then 1 else 2 * pow2 (n-1) + +let (do_const:bool -> int -> int -> out_channel -> unit) = + fun signed n i oc -> + let l = int_to_bin i n in + let body = String.concat "," (List.map bstring_of_int l) in + let nan = pow2 (n-1) in + if not signed then + Printf.fprintf oc "const UsrInt_%i = [%s];\n" i body + else if i < nan then + Printf.fprintf oc "const UsrInt_%i = [%s];\n" i body + else if i = nan then + Printf.fprintf oc "\nconst nan = [%s];\n" body + else + Printf.fprintf oc "const UsrInt_minus_%i = [%s];\n" (2*nan-i) body + ; + flush oc + +let gen_signed n = + let fn = Printf.sprintf "signed_binary%i.lus" n in + let oc = open_out fn in + let n2 = pow2 n in + Printf.fprintf oc "-- to be included BEFORE binary.lus\n" ; + Printf.fprintf oc "const BIN_SZ=%i;\n" n; + flush oc; + for i=0 to n2-1 do + do_const true n i oc + done; + flush oc; + close_out oc; + Printf.printf "%s has been generated\n" fn + +let gen_unsigned n = + let fn = Printf.sprintf "unsigned_binary%i.lus" n in + let oc = open_out fn in + let n2 = pow2 n in + Printf.fprintf oc "-- to be included BEFORE binary.lus\n" ; + Printf.fprintf oc "const BIN_SZ=%i;\n" n; + flush oc; + for i=0 to n2-1 do + do_const false n i oc + done; + flush oc; + close_out oc; + Printf.printf "%s has been generated\n" fn + +let _ = + try + let n = int_of_string Sys.argv.(1) in + gen_signed n; + gen_unsigned n + with _ -> print_string usage + diff --git a/salut/lib/bit-blast/signed_binary5.lus b/salut/lib/bit-blast/signed_binary5.lus new file mode 100644 index 0000000000000000000000000000000000000000..bff8d9f8da03a2cbb6ca5afc1155c4864a8b5cb0 --- /dev/null +++ b/salut/lib/bit-blast/signed_binary5.lus @@ -0,0 +1,35 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=5; +const UsrInt_0 = [0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0]; +const UsrInt_3 = [1,1,0,0,0]; +const UsrInt_4 = [0,0,1,0,0]; +const UsrInt_5 = [1,0,1,0,0]; +const UsrInt_6 = [0,1,1,0,0]; +const UsrInt_7 = [1,1,1,0,0]; +const UsrInt_8 = [0,0,0,1,0]; +const UsrInt_9 = [1,0,0,1,0]; +const UsrInt_10 = [0,1,0,1,0]; +const UsrInt_11 = [1,1,0,1,0]; +const UsrInt_12 = [0,0,1,1,0]; +const UsrInt_13 = [1,0,1,1,0]; +const UsrInt_14 = [0,1,1,1,0]; +const UsrInt_15 = [1,1,1,1,0]; + +const nan = [0,0,0,0,1]; +const UsrInt_minus_15 = [1,0,0,0,1]; +const UsrInt_minus_14 = [0,1,0,0,1]; +const UsrInt_minus_13 = [1,1,0,0,1]; +const UsrInt_minus_12 = [0,0,1,0,1]; +const UsrInt_minus_11 = [1,0,1,0,1]; +const UsrInt_minus_10 = [0,1,1,0,1]; +const UsrInt_minus_9 = [1,1,1,0,1]; +const UsrInt_minus_8 = [0,0,0,1,1]; +const UsrInt_minus_7 = [1,0,0,1,1]; +const UsrInt_minus_6 = [0,1,0,1,1]; +const UsrInt_minus_5 = [1,1,0,1,1]; +const UsrInt_minus_4 = [0,0,1,1,1]; +const UsrInt_minus_3 = [1,0,1,1,1]; +const UsrInt_minus_2 = [0,1,1,1,1]; +const UsrInt_minus_1 = [1,1,1,1,1]; diff --git a/salut/lib/bit-blast/signed_binary6.lus b/salut/lib/bit-blast/signed_binary6.lus new file mode 100644 index 0000000000000000000000000000000000000000..ff44a50dffa5888fcb8931150febce6126296852 --- /dev/null +++ b/salut/lib/bit-blast/signed_binary6.lus @@ -0,0 +1,67 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=6; +const UsrInt_0 = [0,0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0,0]; +const UsrInt_3 = [1,1,0,0,0,0]; +const UsrInt_4 = [0,0,1,0,0,0]; +const UsrInt_5 = [1,0,1,0,0,0]; +const UsrInt_6 = [0,1,1,0,0,0]; +const UsrInt_7 = [1,1,1,0,0,0]; +const UsrInt_8 = [0,0,0,1,0,0]; +const UsrInt_9 = [1,0,0,1,0,0]; +const UsrInt_10 = [0,1,0,1,0,0]; +const UsrInt_11 = [1,1,0,1,0,0]; +const UsrInt_12 = [0,0,1,1,0,0]; +const UsrInt_13 = [1,0,1,1,0,0]; +const UsrInt_14 = [0,1,1,1,0,0]; +const UsrInt_15 = [1,1,1,1,0,0]; +const UsrInt_16 = [0,0,0,0,1,0]; +const UsrInt_17 = [1,0,0,0,1,0]; +const UsrInt_18 = [0,1,0,0,1,0]; +const UsrInt_19 = [1,1,0,0,1,0]; +const UsrInt_20 = [0,0,1,0,1,0]; +const UsrInt_21 = [1,0,1,0,1,0]; +const UsrInt_22 = [0,1,1,0,1,0]; +const UsrInt_23 = [1,1,1,0,1,0]; +const UsrInt_24 = [0,0,0,1,1,0]; +const UsrInt_25 = [1,0,0,1,1,0]; +const UsrInt_26 = [0,1,0,1,1,0]; +const UsrInt_27 = [1,1,0,1,1,0]; +const UsrInt_28 = [0,0,1,1,1,0]; +const UsrInt_29 = [1,0,1,1,1,0]; +const UsrInt_30 = [0,1,1,1,1,0]; +const UsrInt_31 = [1,1,1,1,1,0]; + +const nan = [0,0,0,0,0,1]; +const UsrInt_minus_31 = [1,0,0,0,0,1]; +const UsrInt_minus_30 = [0,1,0,0,0,1]; +const UsrInt_minus_29 = [1,1,0,0,0,1]; +const UsrInt_minus_28 = [0,0,1,0,0,1]; +const UsrInt_minus_27 = [1,0,1,0,0,1]; +const UsrInt_minus_26 = [0,1,1,0,0,1]; +const UsrInt_minus_25 = [1,1,1,0,0,1]; +const UsrInt_minus_24 = [0,0,0,1,0,1]; +const UsrInt_minus_23 = [1,0,0,1,0,1]; +const UsrInt_minus_22 = [0,1,0,1,0,1]; +const UsrInt_minus_21 = [1,1,0,1,0,1]; +const UsrInt_minus_20 = [0,0,1,1,0,1]; +const UsrInt_minus_19 = [1,0,1,1,0,1]; +const UsrInt_minus_18 = [0,1,1,1,0,1]; +const UsrInt_minus_17 = [1,1,1,1,0,1]; +const UsrInt_minus_16 = [0,0,0,0,1,1]; +const UsrInt_minus_15 = [1,0,0,0,1,1]; +const UsrInt_minus_14 = [0,1,0,0,1,1]; +const UsrInt_minus_13 = [1,1,0,0,1,1]; +const UsrInt_minus_12 = [0,0,1,0,1,1]; +const UsrInt_minus_11 = [1,0,1,0,1,1]; +const UsrInt_minus_10 = [0,1,1,0,1,1]; +const UsrInt_minus_9 = [1,1,1,0,1,1]; +const UsrInt_minus_8 = [0,0,0,1,1,1]; +const UsrInt_minus_7 = [1,0,0,1,1,1]; +const UsrInt_minus_6 = [0,1,0,1,1,1]; +const UsrInt_minus_5 = [1,1,0,1,1,1]; +const UsrInt_minus_4 = [0,0,1,1,1,1]; +const UsrInt_minus_3 = [1,0,1,1,1,1]; +const UsrInt_minus_2 = [0,1,1,1,1,1]; +const UsrInt_minus_1 = [1,1,1,1,1,1]; diff --git a/salut/lib/bit-blast/test.lus b/salut/lib/bit-blast/test.lus new file mode 100644 index 0000000000000000000000000000000000000000..f9bb0ca65fd854a8a12ae361494ee918a65fbaa8 --- /dev/null +++ b/salut/lib/bit-blast/test.lus @@ -0,0 +1,4 @@ +include "binary5.lus" +include "binary.lus" + + diff --git a/salut/lib/bit-blast/unsigned_binary5.lus b/salut/lib/bit-blast/unsigned_binary5.lus new file mode 100644 index 0000000000000000000000000000000000000000..29a492386ca87e1e6237870b3e9f1260d216fd2c --- /dev/null +++ b/salut/lib/bit-blast/unsigned_binary5.lus @@ -0,0 +1,34 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=5; +const UsrInt_0 = [0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0]; +const UsrInt_3 = [1,1,0,0,0]; +const UsrInt_4 = [0,0,1,0,0]; +const UsrInt_5 = [1,0,1,0,0]; +const UsrInt_6 = [0,1,1,0,0]; +const UsrInt_7 = [1,1,1,0,0]; +const UsrInt_8 = [0,0,0,1,0]; +const UsrInt_9 = [1,0,0,1,0]; +const UsrInt_10 = [0,1,0,1,0]; +const UsrInt_11 = [1,1,0,1,0]; +const UsrInt_12 = [0,0,1,1,0]; +const UsrInt_13 = [1,0,1,1,0]; +const UsrInt_14 = [0,1,1,1,0]; +const UsrInt_15 = [1,1,1,1,0]; +const UsrInt_16 = [0,0,0,0,1]; +const UsrInt_17 = [1,0,0,0,1]; +const UsrInt_18 = [0,1,0,0,1]; +const UsrInt_19 = [1,1,0,0,1]; +const UsrInt_20 = [0,0,1,0,1]; +const UsrInt_21 = [1,0,1,0,1]; +const UsrInt_22 = [0,1,1,0,1]; +const UsrInt_23 = [1,1,1,0,1]; +const UsrInt_24 = [0,0,0,1,1]; +const UsrInt_25 = [1,0,0,1,1]; +const UsrInt_26 = [0,1,0,1,1]; +const UsrInt_27 = [1,1,0,1,1]; +const UsrInt_28 = [0,0,1,1,1]; +const UsrInt_29 = [1,0,1,1,1]; +const UsrInt_30 = [0,1,1,1,1]; +const UsrInt_31 = [1,1,1,1,1]; diff --git a/salut/lib/bit-blast/unsigned_binary6.lus b/salut/lib/bit-blast/unsigned_binary6.lus new file mode 100644 index 0000000000000000000000000000000000000000..9490f0f9e552ee15460e20800ad6b263c1c94f27 --- /dev/null +++ b/salut/lib/bit-blast/unsigned_binary6.lus @@ -0,0 +1,66 @@ +-- to be included BEFORE binary.lus +const BIN_SZ=6; +const UsrInt_0 = [0,0,0,0,0,0]; +const UsrInt_1 = [1,0,0,0,0,0]; +const UsrInt_2 = [0,1,0,0,0,0]; +const UsrInt_3 = [1,1,0,0,0,0]; +const UsrInt_4 = [0,0,1,0,0,0]; +const UsrInt_5 = [1,0,1,0,0,0]; +const UsrInt_6 = [0,1,1,0,0,0]; +const UsrInt_7 = [1,1,1,0,0,0]; +const UsrInt_8 = [0,0,0,1,0,0]; +const UsrInt_9 = [1,0,0,1,0,0]; +const UsrInt_10 = [0,1,0,1,0,0]; +const UsrInt_11 = [1,1,0,1,0,0]; +const UsrInt_12 = [0,0,1,1,0,0]; +const UsrInt_13 = [1,0,1,1,0,0]; +const UsrInt_14 = [0,1,1,1,0,0]; +const UsrInt_15 = [1,1,1,1,0,0]; +const UsrInt_16 = [0,0,0,0,1,0]; +const UsrInt_17 = [1,0,0,0,1,0]; +const UsrInt_18 = [0,1,0,0,1,0]; +const UsrInt_19 = [1,1,0,0,1,0]; +const UsrInt_20 = [0,0,1,0,1,0]; +const UsrInt_21 = [1,0,1,0,1,0]; +const UsrInt_22 = [0,1,1,0,1,0]; +const UsrInt_23 = [1,1,1,0,1,0]; +const UsrInt_24 = [0,0,0,1,1,0]; +const UsrInt_25 = [1,0,0,1,1,0]; +const UsrInt_26 = [0,1,0,1,1,0]; +const UsrInt_27 = [1,1,0,1,1,0]; +const UsrInt_28 = [0,0,1,1,1,0]; +const UsrInt_29 = [1,0,1,1,1,0]; +const UsrInt_30 = [0,1,1,1,1,0]; +const UsrInt_31 = [1,1,1,1,1,0]; +const UsrInt_32 = [0,0,0,0,0,1]; +const UsrInt_33 = [1,0,0,0,0,1]; +const UsrInt_34 = [0,1,0,0,0,1]; +const UsrInt_35 = [1,1,0,0,0,1]; +const UsrInt_36 = [0,0,1,0,0,1]; +const UsrInt_37 = [1,0,1,0,0,1]; +const UsrInt_38 = [0,1,1,0,0,1]; +const UsrInt_39 = [1,1,1,0,0,1]; +const UsrInt_40 = [0,0,0,1,0,1]; +const UsrInt_41 = [1,0,0,1,0,1]; +const UsrInt_42 = [0,1,0,1,0,1]; +const UsrInt_43 = [1,1,0,1,0,1]; +const UsrInt_44 = [0,0,1,1,0,1]; +const UsrInt_45 = [1,0,1,1,0,1]; +const UsrInt_46 = [0,1,1,1,0,1]; +const UsrInt_47 = [1,1,1,1,0,1]; +const UsrInt_48 = [0,0,0,0,1,1]; +const UsrInt_49 = [1,0,0,0,1,1]; +const UsrInt_50 = [0,1,0,0,1,1]; +const UsrInt_51 = [1,1,0,0,1,1]; +const UsrInt_52 = [0,0,1,0,1,1]; +const UsrInt_53 = [1,0,1,0,1,1]; +const UsrInt_54 = [0,1,1,0,1,1]; +const UsrInt_55 = [1,1,1,0,1,1]; +const UsrInt_56 = [0,0,0,1,1,1]; +const UsrInt_57 = [1,0,0,1,1,1]; +const UsrInt_58 = [0,1,0,1,1,1]; +const UsrInt_59 = [1,1,0,1,1,1]; +const UsrInt_60 = [0,0,1,1,1,1]; +const UsrInt_61 = [1,0,1,1,1,1]; +const UsrInt_62 = [0,1,1,1,1,1]; +const UsrInt_63 = [1,1,1,1,1,1]; diff --git a/salut/lib/bitset.lus b/salut/lib/bitset.lus new file mode 100644 index 0000000000000000000000000000000000000000..a529221e6f293bc86b2507745b937f18ec3b6af6 --- /dev/null +++ b/salut/lib/bitset.lus @@ -0,0 +1,109 @@ +include "utils.lus" + +-- The empty bitset: `false^N` + +-- A bitset with all elements: `true^N` + +-- Returns the one-hot bitset containing only x. +function one_hot<<const N:int>>(x : int) returns (s : bool^N); +let + s = map<<=,N>>(x^N, range<<N>>(true)); + assert((x >= 0 and x < N) => boolred<<1,1,N>>(s)); +tel; + +-- Returns the complement of a given bitset. +function complement<<const N:int>>(s : bool^N) returns (not_s : bool^N); +let + not_s = map<<not,N>>(s); +tel; + +-- Returns the number of elements of a bitset, aka its popcount. +function pop_count<<const N:int>>(s : bool^N) returns (c : int); +let + c = red<<+,N>>(0, map<<int_of_bool,N>>(s)); +tel; + +-- Tests whether a bitset is empty or not. +function is_empty<<const N:int>>(s : bool^N) returns (y : bool); +let + y = boolred<<0,0,N>>(s); +tel; + +-- Bitset union. +function union<<const N:int>>(a, b : bool^N) returns (y : bool^N); +let + y = map<<or,N>>(a, b); +tel; + +-- Bitset intersection. +function inter<<const N:int>>(a, b : bool^N) returns (y : bool^N); +let + y = map<<and,N>>(a, b); +tel; + +-- Bitset difference: contains the elements of s1 that are not in s2. +function diff<<const N:int>>(s1, s2 : bool^N) returns (y : bool^N); +let + y = inter<<N>>(s1, complement<<N>>(s2)); +tel; + +-- Returns a bitset containing all elements of s, plus x. +function set<<const N:int>>(s : bool^N; x : int) returns (y : bool^N); +let + y = union<<N>>(s, one_hot<<N>>(x)); +tel; + +-- Returns a bitset containing all elements of s, except x. +function unset<<const N:int>>(s : bool^N; x : int) returns (y : bool^N); +let + y = diff<<N>>(s, one_hot<<N>>(x)); +tel; + +-- no need to implement `equal` as the operator `=` works for bool arrays + +-- Test if two bitsets are disjoint. +function disjoint<<const N:int>>(a, b : bool^N) returns (y : bool); +let + y = is_empty<<N>>(inter<<N>>(a, b)); +tel; + +-- Tests whether the bitset s1 is a subset of the bitset s2. +function subset<<const N:int>>(s1, s2 : bool^N) returns (y : bool); +let + y = boolred<<N,N,N>>(map<<=>,N>>(s1, s2)); +tel; + +/* + Builds bitset of size N from a list of M elements, where each element in the + list is treated as a bit position to be set to true in the resulting bitset. +*/ +function bitset_of_list<<const N:int; const M:int>>(list : int^M) +returns (set : bool^N); +let + set = red<<set<<N>>,M>>(false^N, list); +tel; + +/* + Returns the index of the first enumerated element present in the set. + The result will be negative if the set is empty. +*/ +function first_set<<const N:int>>(s : bool^N) returns (x : int); +var + found : int; +let + found = with (N = 1) then (if s[0] then 0 else -1) + else first_set<<N-1>>(s[1 .. N-1]); + x = if s[0] then 0 + else if found < 0 then -1 + else found + 1; +tel; + +/* + Returns the index of the last enumerated element present in the set. + The result will be negative if the set is empty. +*/ +function last_set<<const N:int>>(s : bool^N) returns (x : int); +let + x = with (N = 1) then (if s[0] then 0 else -1) + else (if s[N-1] then N-1 else last_set<<N-1>>(s[0 .. N-2])); +tel; diff --git a/salut/lib/bool_arrays.lus b/salut/lib/bool_arrays.lus new file mode 100644 index 0000000000000000000000000000000000000000..105e0e54257314cff7686deba7082c0ced70057b --- /dev/null +++ b/salut/lib/bool_arrays.lus @@ -0,0 +1,112 @@ + +---------------------------------------------------------- +--bool_arrays.lus +---------------------------------------------------------- +--Lustre library for boolean arrays +---------------------------------------------------------- +--Operators from bool^n to bool +---------------------------------------------------------- +--ba_none : all elements are false +--ba_all : all elements are true +--ba_diese : at most one element true +--ba_one : exactly one element true +---------------------------------------------------------- +--Operators from bool^n x bool^n to bool +---------------------------------------------------------- +--ba_eq : test equality +---------------------------------------------------------- +--Operators from bool^n to bool^n +---------------------------------------------------------- +--ba_right_shift : res[0]=false res[t]=input[t-1] +--ba_left_shift : res[n-1]=false res[t]=input[t+1] +---------------------------------------------------------- +node ba_none(const n : int; I : bool^n) returns ( ok : bool); +var + Nor : bool^n; +let + Nor = [not I[0]] | ( Nor[0..n-2] and not I[1..n-1]); + ok = Nor[n-1]; +tel + +node ba_all(const n : int; I : bool^n) returns ( ok : bool); +var + All : bool^n; +let + All = [I[0]] | ( All[0..n-2] and I[1..n-1]); + ok = All[n-1]; +tel + +node ba_diese(const n : int; I : bool^n) returns ( ok : bool); +var + Diese, Nor : bool^n; +let + Nor = [not I[0]] | ( Nor[0..n-2] and not I[1..n-1]); + Diese = [true] | (Diese[0..n-2] and (not I[1..n-1] or Nor[0..n-2])); + ok = Diese[n-1]; +tel + +node ba_one(const n : int; I : bool^n) returns ( ok : bool); +var + Diese, Nor : bool^n; +let + Nor = [not I[0]] | ( Nor[0..n-2] and not I[1..n-1]); + Diese = [true] | (Diese[0..n-2] and (not I[1..n-1] or Nor[0..n-2])); + ok = Diese[n-1] and not Nor[n-1]; +tel + +node ba_exact(const i, n : int; I : bool^n) returns ( ok : bool); +let + ok = with (i = n) then ba_all(n, I) + else with (i > n) then false + else with (i = 0) then ba_none(n, I) + else with (n = 2) then (I[0] xor I[1]) + else if (I[0]) then ( + ba_exact(i-1, n-1, I[1..n-1]) + ) else ( + ba_exact(i, n-1, I[1..n-1]) + ); +tel + +node ba_count(const n : int; I : bool^n) returns (c : int); +let + c = (if I[0] then 1 else 0) + + with (n = 1) then 0 + else ba_count(n-1, I[1..n-1]); +tel + +node ba_count8(I : bool^8) returns (c : int); +let + c = ba_count(8, I); +tel + +(* +node test(I : bool^4) returns (ok : bool); +let + ok = ba_exact(3,4,I); + --ok = ba_eq(8, I, J); +tel +*) + +node ba_eq(const n : int; I, J : bool^n) returns ( ok : bool); +var + And : bool^n; +let + And[0] = (I[0] = J[0]); + And[1..n-1] = And[0..n-2] and (I[1..n-1] = J[1..n-1]); + ok = And[n-1]; +tel +node ba_right_shift(const n : int; I : bool^n) returns (O : bool^n); +let + O = [false] | I[0..n-2] ; +tel + +node ba_left_shift(const n : int; I : bool^n) returns (O : bool^n); +let + O = I[1..n-1] | [false] ; +tel + +node ba_flat(const m, n : bool; x : bool^m^n) returns (y : bool^(m*n)); +let + y = with (n = 1) then x[0] + else (ba_flat(m, n-1, x[0..n-2]) | x[n-1]); +tel diff --git a/salut/lib/sas.lus b/salut/lib/sas.lus new file mode 100644 index 0000000000000000000000000000000000000000..e8ea5cc1fdd13cccd90dcb6e2366387f52653d51 --- /dev/null +++ b/salut/lib/sas.lus @@ -0,0 +1,118 @@ +include "utils.lus" +include "bitset.lus" +include "../../test/lustre/round.lus" + +-- No nodes enabled, the network is silent. +function silent<<const an:int; const pn:int>>(enab: bool^an^pn) +returns (y : bool); +let + y = boolnone<<pn>>(map<<boolany<<an>>, pn>>(enab)); +tel; + +-- All nodes enabled. +function all_active<<const an:int; const pn:int>>(enab: bool^an^pn) +returns (y : bool); +let + y = boolall<<pn>>(map<<boolany<<an>>, pn>>(enab)); +tel; + +-- Any activation Ai implies Ei was previously enabled. +function activation_is_valid<<const an:int>>(acti, enab : bool^an) returns (y : bool); +let + y = boolall<<an>>(map<<=>,an>>(acti, enab)); +tel; + +node daemon_is_valid<<const an:int; const pn:int>>(acti, enab : bool^an^pn) +returns (y : bool); +let + y = boolall<<pn>>(map<<activation_is_valid<<an>>, pn>>(acti, enab)); +tel; + + +-- |A| >= 1 for non-silent states. +node daemon_is_distributed<<const an:int; const pn:int>>(acti, enab : bool^an^pn) +returns (y : bool); +let + y = daemon_is_valid<<an, pn>>(acti, enab) + and (silent<<an,pn>>(enab) or boolred<<1,pn,pn>>(map<<boolany<<an>>, pn>>(acti))); +tel; + +(*function distributed<<const an:int; const pn:int>>(enab : bool^an^pn) +returns (acti : bool^an^pn); +var + nb_enab,rng:int;*) +-- Exactly one node is activated. +node daemon_is_central<<const an:int; const pn:int>>(acti, enab : bool^an^pn) +returns (y : bool); +let + y = daemon_is_valid<<an, pn>>(acti, enab) + and (silent<<an,pn>>(enab) or boolred<<1,1,pn>>(map<<boolany<<an>>, pn>>(acti))); + +tel; + +function make_activ_tab<<const an:int>>(ain:int; elem:bool^an) +returns(aout:int; res:bool^an); +var + elem_is_true:bool; +let + elem_is_true = boolany<<an>>(elem); + res= if elem_is_true and (ain=0) then elem else false^an; + aout = if elem_is_true then ain-1 else ain; +tel; + +function if_true_add_1<<const an:int>>(ain: int; elem: bool^an) +returns(aout : int); +let + aout= if boolany<<an>>(elem) then ain+1 else ain; +tel; + +unsafe function central<<const an:int; const pn:int>>(enab : bool^an^pn) +returns (acti : bool^an^pn); +var + nb_enab,rng,temp:int; +let + nb_enab = red<<if_true_add_1<<an>>,pn>>(0,enab); + rng = random(nb_enab); + temp,acti = fillred<<make_activ_tab<<an>>,pn>>(rng,enab); +tel; + +-- No two neighboring nodes are active at once. +node daemon_is_locally_central<<const an:int; const pn:int>>( + acti, enab : bool^an^pn; + adjacency : bool^pn^pn +) returns (y : bool); +var + active : bool ^ pn; + active_adjacencies : bool ^ pn ^ pn; + no_active_adjacencies : bool ^ pn; + locally_central : bool ^ pn; +let + active = map<<boolany<<an>>, pn>>(acti); + active_adjacencies = map<<inter<<pn>>, pn>>(active^pn, adjacency); + no_active_adjacencies = map<<boolnone<<pn>>, pn>>(active_adjacencies); + locally_central = map<<=>,pn>>(active, no_active_adjacencies); + y = daemon_is_distributed<<an,pn>>(acti, enab) + and boolall<<pn>>(locally_central); +tel; + + +-- All enabled nodes are activated. +node daemon_is_synchronous<<const an:int; const pn:int>>(acti, enab : bool^an^pn) +returns (y:bool); +let + y = (acti = enab); +tel; + +node synchronous<<const an:int; const pn:int>>(enab : bool^an^pn) +returns (acti : bool^an^pn); +let + acti = enab; +tel; + +-- Measures time complexity in moves. +node move_count<<const an:int; const pn:int>>(acti : bool^an^pn) +returns (count:int); +let + count = 0 -> (pre(count) + pop_count<<pn>>(map<<boolany<<an>>, pn>>(acti))); +tel; + diff --git a/salut/lib/use_random.lus b/salut/lib/use_random.lus new file mode 100644 index 0000000000000000000000000000000000000000..975f366903e39f2139e2d7833d4577230abde205 --- /dev/null +++ b/salut/lib/use_random.lus @@ -0,0 +1,2 @@ +--Make a random function for Lustre by using C function: +unsafe extern function c_rand(x:int) returns (res:int); \ No newline at end of file diff --git a/salut/lib/utils.lus b/salut/lib/utils.lus new file mode 100644 index 0000000000000000000000000000000000000000..1568d3a716a866ec3bc0a29a2781eb8e41bd8108 --- /dev/null +++ b/salut/lib/utils.lus @@ -0,0 +1,91 @@ +include "use_random.lus" + +--Random (unsafe extern function): +unsafe function random(x:int) returns (res:int); +let + res = c_rand(x); +tel + +-- Generates an array of indexes: [0, 1, ..., N-1] +function range<<const N:int>>(_ : bool) returns (r : int^N); +let + r = with (N = 1) then [ 0 ] else range<<N-1>>(true) | [ N-1 ]; +tel; + +-- First-class if statement, since we don't have lambdas. +function choice_of_bool<<type T; const t:T; const f:T>>(b : bool) returns (y : T); +let + y = if b then t else f; +tel; + +-- |> true -> 1 | false -> 0 +function int_of_bool = choice_of_bool<<int, 1, 0>>; + +function boolnone<<const N:int>>(s : bool^N) returns (y : bool); +let + y = boolred<<0,0,N>>(s); +tel; + +-- n-ary xor: exactly 1 is true +function n_xor<<const N:int>>(s : bool^N) returns (y : bool); +let + y = boolred<<1,1,N>>(s); +tel; +-- n-ary or +function n_or<<const N:int>>(s : bool^N) returns (y : bool); +let + y = boolred<<1,N,N>>(s); +tel; +function boolany<<const N:int>>(s : bool^N) returns (y : bool); +let + y = boolred<<1,N,N>>(s); +tel; + +function boolall<<const N:int>>(s : bool^N) returns (y : bool); +let + y = boolred<<N,N,N>>(s); +tel; + +-- Whether an element is contained within an array. +function member<<type T; const N:int>>(x : T; arr : T^N) returns (y : bool); +let + y = boolany<<N>>(map<<=,N>>(x^N, arr)); +tel; + +function all_different<<type T; const N:int>>(A : T^N) returns (y : bool); +let + y = with (N <= 1) then true + else (not member<<T,N-1>>(A[0], A[1 .. N-1])) and + all_different<<T,N-1>>(A[1 .. N-1]); +tel; + +-- All element have the same value. +function same_value <<const N:int>>(T: int^N) +returns (y : bool); +let + y = boolred<<N,N,N>>(map<< = , N >>( T , (T[1..N-1] | [T[0]]) )); +tel; + +function mini(x,y:int) returns (z:int); +let + z = if x < y then x else y; +tel; + +--Useful function for neigh type: +function state (e:neigh) +returns(res : state); +let + res = e.state; +tel; + +function reply (e:neigh) +returns(res : int); +let + res = e.reply; +tel; + +function weight (e:neigh) +returns(res : int); +let + res = e.weight; +tel; \ No newline at end of file diff --git a/salut/src/Makefile b/salut/src/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..acddfef23973e57b74aa5854894fc0e921b415e8 --- /dev/null +++ b/salut/src/Makefile @@ -0,0 +1,9 @@ +.PHONY = build clean + +all: + cd ../.. ; make && make install + + +clean: + cd ../.. ; make clean + diff --git a/salut/src/dot2lus.ml b/salut/src/dot2lus.ml new file mode 100644 index 0000000000000000000000000000000000000000..602e99bf1c6757593e287696f5380be43064edc4 --- /dev/null +++ b/salut/src/dot2lus.ml @@ -0,0 +1,246 @@ +(* #use "topfind";; *) +(* #require "sasacore";; *) + +open Sasacore + +(* identifiers we expect each specific Lustre algorithm to define, once *) +let state_type = "state" +let action_type = "action" +let action_number = "actions_number" +let action_of_int = "action_of_int" + +(* global setting, parsed from command-line options *) +let clock = ref false + + +let algo_name (node : Topology.node) = Filename.remove_extension node.file +(* prints includes, graph constants and helper functions *) +let output_prelude lustre_topology lustre_const (graph : Topology.t) = + Printf.fprintf lustre_topology "-- automatically generated by salut \n"; + Printf.fprintf lustre_const "-- automatically generated by salut \n"; + + (* NOTE: b2s, array_to_string and matrix_to_string copied from genOracle.ml *) + let b2s b = if b then "t" else "f" in + + let (array_to_string : bool array -> string) = + fun a -> + let l = Array.fold_right (fun b acc -> (b2s b)::acc) a [] in + "["^(String.concat "," l)^"]" + in + let (matrix_to_string : bool array array -> string) = + fun m -> + let l = Array.fold_right (fun a acc -> (array_to_string a)::acc) m [] in + "[\n\t"^(String.concat ",\n\t" l)^"]" + in + + (* include Lustre algos *) + graph.nodes + |> List.map algo_name + |> List.sort_uniq String.compare + |> List.iter (Printf.fprintf lustre_topology "include \"%s.lus\"\n"); + + (* define graph constants *) + output_string lustre_topology "\n"; + Printf.fprintf lustre_const "const card = %d;\n" (List.length graph.nodes); + Printf.fprintf lustre_const "const links_number = %d;\n" (Topology.get_nb_link graph); + let dmin, dmax = Topology.get_degree graph in + Printf.fprintf lustre_const "const max_degree = %d;\n" dmax; + Printf.fprintf lustre_const "const min_degree = %d;\n" dmin; + Printf.fprintf lustre_const "const mean_degree = %f;\n" (Topology.get_mean_degree graph); + Printf.fprintf lustre_const "const diameter = %d;\n" (Diameter.get graph); + Printf.fprintf lustre_const "const is_directed = %b;\n" graph.directed; + Printf.fprintf lustre_const "const is_cyclic = %b;\n" (Topology.is_cyclic graph); + Printf.fprintf lustre_const "const is_connected = %b;\n" (Topology.is_connected graph); + let neigh_list = graph.nodes |> List.map (fun (n:Topology.node) -> graph.pred n.id) in + let nb_neigh_list = neigh_list |> List.map (fun n -> string_of_int (List.length n)) in + Printf.fprintf lustre_const "const nb_neighbors = %s;\n" ("["^(String.concat "," (nb_neigh_list))^"]"); + + (* dot attributes *) + let already_defined = function + | "card" + | "links_number" + | "max_degree" + | "min_degree" + | "mean_degree" + | "diameter" + | "is_directed" + | "is_cyclic" + | "is_connected" + | "f" + | "t" + | "adjacency" -> true + | _ -> false in + List.iter + (fun (name, value) -> + if not (already_defined name) + then Printf.fprintf lustre_const "const %s = %s;\n" name value) + graph.attributes; + + (* adjacency matrix *) + output_string lustre_const "const t = true;\n"; + output_string lustre_const "const f = false;\n"; + Printf.fprintf lustre_const + "const adjacency = %s;\n" + (graph |> Topology.to_adjacency |> matrix_to_string); + + (* State.lus File *) + output_string lustre_topology" +include \"state.lus\""; + + (* Neighbors type *) + output_string lustre_topology " +type neigh = struct { state:state; reply:int; weight:int };\n"; + + (* helper functions *) + output_string lustre_topology " +function dot2lus_first_set<<const N:int>>(s : bool^N) returns (x : int); +var + found : int; +let + found = + with (N = 1) then (if s[0] then 0 else -1) + else dot2lus_first_set<<N-1>>(s[1 .. N-1]); + x = + if s[0] then 0 + else if found < 0 then -1 + else found + 1; +tel;\n"; + Printf.fprintf lustre_topology " +function dot2lus_action_of_activation(activation : bool^%s) returns (action : %s); +let + action = %s(dot2lus_first_set<<%s>>(activation)); +tel; +" action_number action_type action_of_int action_number + + +(* prints the actual Lustre node that implements the input topology *) +let output_topology lustre_topology (graph : Topology.t) name = + let make_index (graph : Topology.t) : (Topology.node_id -> int) = + let index_map = Hashtbl.create (List.length graph.nodes) in + graph.nodes + |> List.map (fun (n : Topology.node) -> n.id) + |> List.iteri (fun index node_id -> Hashtbl.add index_map node_id index); + Hashtbl.find index_map (* returns the partially applied find *) in + + let sprint_neighbor_list neighbor_ids list : string = + match neighbor_ids with + | [] -> "[]" + | (n,r,w) :: ns -> + let prefix, sufix = Printf.sprintf "[ neigh { state = %s[%d]; reply = %d ; weight = %d }" list n r w, " ]" in + let concat acc (n,r,w) = acc ^ (Printf.sprintf ", neigh { state = %s[%d]; reply = %d ; weight = %d }" list n r w) in + (List.fold_left concat prefix ns) ^ sufix in + + Printf.fprintf lustre_topology + "\nnode %s(p : bool^%s^card; initials : %s^card)\n" + name action_number state_type; + + Printf.fprintf lustre_topology + "returns (p_c : %s^card; Enab_p : bool^%s^card; round:bool; round_nb:int);\n" + state_type action_number; + + output_string lustre_topology "var"; + + Printf.fprintf lustre_topology "\tprev_p_c : %s^card;\n\n" state_type; + graph.nodes + |> List.iteri (fun i _ -> Printf.fprintf lustre_topology "\tsel_%d : bool;\n" i); + + output_string lustre_topology "let + round = round<<actions_number,card>>(Enab_p, p); + round_nb = round_count(round, legitimate<<actions_number,card>>(Enab_p,p_c)); +"; + + output_string lustre_topology "\tprev_p_c = initials -> pre(p_c);\n\n"; + graph.nodes + |> List.iteri (fun i _ -> + Printf.fprintf lustre_topology + "\tsel_%d = false -> boolred<<1,%s,%s>>(p[%d]);\n" + i action_number action_number i); + + let index_of_id = make_index graph in + graph.nodes + (*liste des noms des noeuds *) + |> List.iteri (fun i n -> + let algo = algo_name n in + let neighbors = graph.pred n.id |> List.map (fun (w,id) -> (index_of_id id, (Topology.reply graph n.id id),w)) in + let deg = List.length neighbors in + let nl = sprint_neighbor_list neighbors "p_c" in + let pnl = sprint_neighbor_list neighbors "prev_p_c" in + Printf.fprintf lustre_topology + "\n\tp_c[%d] =\n\t\tif not sel_%d then prev_p_c[%d]\n\t\telse " + i i i; + if !clock then Printf.fprintf lustre_topology + "current(%s_step<<%d>>(\n\t\t\tprev_p_c[%d], \n\t\t\t%s, \n\t\t\tdot2lus_action_of_activation(p[%d])\n\t\t) when sel_%d);\n" + algo deg i pnl i i + else Printf.fprintf lustre_topology + "%s_step<<%d>>(\n\t\t\tprev_p_c[%d], \n\t\t\t%s, \n\t\t\tdot2lus_action_of_activation(p[%d])\n\t\t);\n" + algo deg i pnl i; + Printf.fprintf lustre_topology + "\tEnab_p[%d] = %s_enable<<%d>>(p_c[%d], %s);\n" + i algo deg i nl); + + Printf.fprintf lustre_topology "tel;\nnode topology = %s;\n%!" name + +(*Generate a new state.lus file*) +let state lustre_state = + output_string lustre_state "-- automatically generated by salut \n +type state = \"define_me\"; + +type action = \"define_me\"; +const actions_number = \"define_me\"; + +function action_of_int(i : int) returns (a : action); +let + a = \"define_me\"; +tel; + +function legitimate<<const actions_number:int; const card:int>>(enables : bool^actions_number^card; config: state^card) +returns (res : bool); +let + res=silent<<actions_number,card>>(enables); +tel; +" + +let dot2lus dotfile lusfile = + let graph = Topology.read dotfile in + let name = dotfile |> Filename.basename |> Filename.chop_extension in + let lustre_topology, lustre_const = + match lusfile with + | None -> open_out (name ^ ".lus"), open_out (name ^ "_const.lus") + | Some lus -> open_out lus, + open_out ((Filename.remove_extension lus) ^ "_const"^(Filename.extension lus)) + in + output_prelude lustre_topology lustre_const graph; + output_topology lustre_topology graph name; + close_out lustre_topology; + close_out lustre_const; + if Sys.file_exists "state.lus" then ( + Printf.eprintf " [salut] Warning: %s already exist.\n%!" "state.lus") + else ( + let lustre_state = open_out ("state.lus") + in + state lustre_state; + close_out lustre_state + ) + + +let _ = + let usage = "salut <dotfile> [-o lusfile] [--clock] [--help]" in + let dotfile = ref "" in + let lusfile = ref "" in + + let anon_parse arg = + match !dotfile with + | "" -> dotfile := arg + | _ -> raise (Arg.Bad "multiple input topologies not supported") + in + let speclist = + [ ("-o", Arg.Set_string lusfile, "Set output file (default is inferred from input file)"); + ("--clock", Arg.Set clock, "Generate clocked code (default is unclocked)") ] + in + Arg.parse speclist anon_parse usage; + match !dotfile with + | "" -> print_string (Arg.usage_string speclist usage); exit 1 + | dot -> + match !lusfile with + | "" -> dot2lus dot None + | lus -> dot2lus dot (Some lus) diff --git a/salut/src/dune b/salut/src/dune new file mode 100644 index 0000000000000000000000000000000000000000..f4c25e2510d78905b129b9b29d7f65c98ef05d5a --- /dev/null +++ b/salut/src/dune @@ -0,0 +1,16 @@ +;; Time-stamp: <modified the 21/11/2021 (at 17:50) by Erwan Jahier> + +(executable + (name dot2lus) + (flags -noassert) + (link_flags (-linkall)) + (libraries ocamlgraph lutils sasacore algo) +) + +(install + (section bin) + (package sasa) + (files (dot2lus.exe as salut)) +; (files sasaRun.cmxa) +) + diff --git a/salut/test/Cycle_unison/Makefile b/salut/test/Cycle_unison/Makefile new file mode 120000 index 0000000000000000000000000000000000000000..6a67edd0c6ce2c3ce3847291aaa7d9fae10d3d6c --- /dev/null +++ b/salut/test/Cycle_unison/Makefile @@ -0,0 +1 @@ +../unison/Makefile \ No newline at end of file diff --git a/salut/test/Cycle_unison/Sh/do_org_lines.sh b/salut/test/Cycle_unison/Sh/do_org_lines.sh new file mode 100644 index 0000000000000000000000000000000000000000..36176807fe33b9162c0aa3104d65ec61ac45c1c4 --- /dev/null +++ b/salut/test/Cycle_unison/Sh/do_org_lines.sh @@ -0,0 +1,67 @@ +#!/bin/bash +# Prends en argument k n topologie +# Exemple : ./search_config.sh 3 7 ring + + +set -x +if [ $# -ne 3 ] + then echo "3 arguments are expected" + echo "$0 <k> <n> <topology filename without extension" + echo "Exemple : ./search_config.sh 3 7 ring" + exit 1 +fi + +k=$1 +n=$2 +topology=$3 +log=Log/$topology${k}_$n.log + + +############################################################## +# building the org table of results using the Log/*.log files + +valid="" +invalid="" +timeout="" +stack_overflow="" + +grep "ok: valid" $log && valid="true" +grep "ok: invalid" $log && invalid="true" +grep "Wallclock timeout" $log && timeout="true" +grep "Stack overflow" $log && stack_overflow="true" + +time=`grep "total runtime" $log | cut -d ' ' -f5` + +if [ $valid = "true" ] + then resultat="legitimate" + step=`grep "ok: " $log | cut -d ' ' -f4 | tr -d ')'` +fi + +if [ "$invalid" = "true" ] + then resultat="cycle found" + step=`grep "ok: " $log | cut -d ' ' -f4` +fi + +if [ "$timeout" = "true" ] + then time="TIMEOUT" + step=`grep "ok: " $log | cut -d ' ' -f5` +fi + +if [ "$valid$invalid$timeout" = "" ] + then resultat="..." +fi + +# nb: a SO does not mean that kind2 is over +if [ "$valid$invalid" = "" -a "$stack_overflow" = "true" ] + then resultat="$resultat (SO)" +fi + + +# d=$(expr $n / 2) +d=$(expr $n / 2) +dx2m1=$(expr $d \* 2 - 1) +dx3m1=$(expr $d \* 3 - 1) + + +echo "| $topology | $k ($dx2m1) | $n | $resultat | $step | $dx3m1 | $time |" > $log.org + diff --git a/salut/test/Cycle_unison/Sh/search_config.sh b/salut/test/Cycle_unison/Sh/search_config.sh new file mode 100644 index 0000000000000000000000000000000000000000..c534d7922d0d1acdd7ebc72044bf5cc4346e64a4 --- /dev/null +++ b/salut/test/Cycle_unison/Sh/search_config.sh @@ -0,0 +1,45 @@ +#!/bin/bash +# Prends en argument k n topologie +# Exemple : ./search_config.sh 3 7 ring + + +set -x +if [ $# -ne 3 ] + then echo "3 arguments are expected" + echo "$0 <k> <n> <topology filename without extension" + echo "Exemple : ./search_config.sh 3 7 ring" + exit 1 +fi + +k=$1 +n=$2 +topology=$3 +log=Log/$topology${k}_$n.log + +clean(){ + rm -f *.cmxs *.cmx *.cmi *.o + rm -f $k.ml + rm -f *.rif *.seed + rm -f $k.lus + rm -f *_check_cycles.lv4 + rm -f *.c *.h *_const.lus *.cmt *.exec *.sh rdbg-session* *.log *.pdf + rm -f $k* + rm k.lus +} + + +if [ -z ${TIMEOUT} ]; then TIMEOUT=194400.; fi # n: 194400s = 54 hours + +clean $3$n +echo "const k = $k ;" > k.lus +make $topology$n.dot +salut $topology$n.dot +lv6 -eei ${topology}$n.lus check_cycles.lus $topology${n}_const.lus -n check_cycles -rnc --lustre-v4 -o $topology${n}_check_cycles.noexpand.lv4 +cat $topology${n}_check_cycles.noexpand.lv4 | tr '\n' '@' |sed "s/tel@/tel/g" | sed "s/@/\\n/g" | sed "s/tel-- end of node check_cycles/--%MAIN ;\n--%PROPERTY ok;\ntel\n/" > $topology${n}_check_cycles.noexpand.lv4.tmp +mv $topology${n}_check_cycles.noexpand.lv4.tmp $topology${n}_check_cycles.noexpand.lv4 +[ -d Log ] || mkdir Log +echo "time kind2 --timeout ${TIMEOUT} --color false --modular true --compositional true $topology${n}_check_cycles.noexpand.lv4" > $log +time kind2 --timeout ${TIMEOUT} --color false --modular true --compositional true $topology${n}_check_cycles.noexpand.lv4 >> $log + +############################################################## +clean $topology$n diff --git a/salut/test/Cycle_unison/check_cycles.lus b/salut/test/Cycle_unison/check_cycles.lus new file mode 100644 index 0000000000000000000000000000000000000000..9a2e1037ab98c7b7d4ce2a130e9fe27a7ece058e --- /dev/null +++ b/salut/test/Cycle_unison/check_cycles.lus @@ -0,0 +1,60 @@ +include "../../lib/sas.lus" + + + +node check_cycles(activations : bool^actions_number^card; inits : state^card) returns (ok : bool); +var config,mirror_inits : state^card; +var enables : bool^actions_number^card; +var legitimate, no_loop : bool; + lustre_round : bool; + lustre_round_nb : int; +-- all_permuts: state^card^(card-1); +let + -- forbid legitimate configurations + assert(not (legitimate<<actions_number, card>>(enables, inits))); + + -- + assert(true -> daemon_is_synchronous<<actions_number,card>>(activations, pre enables)); + assert(rangei<<0,card,k>>(inits)); + assert(true -> inits = pre inits); + + config, enables, lustre_round, lustre_round_nb = topology(activations, inits); + + legitimate = legitimate<<actions_number, card>>(enables, config); + mirror_inits = mirror<<card>>(inits); + + no_loop = true -> not (config=inits or + config=mirror_inits or + eq_forall_permutations<<card,card-1>>(inits,mirror_inits,config) + ); + ok = no_loop or legitimate ; +tel; + +--type state = int; +--node test = permutation<<2,3>>; + +function mirror<<const card:int>>(config: state^card) returns (res: state^card); +let + res = with (card=1) then [config[0]] + else mirror<<card-1>>(config[1..card-1]) | [config[0]]; +tel + +function eq_forall_permutations<< const card:int; const N:int>> +(inits,mir_inits, c:state^card) returns (res:bool); +var cp:state^card; +let + cp = c[1..card-1] | [c[0]]; + res = + with (N=1) then (cp=inits or cp=mir_inits) + else (cp=inits or cp=mir_inits) or eq_forall_permutations<<card, N-1>>(inits,mir_inits,cp); +tel + +-- all states are initially in [0; card|[ +node rangei<<const low:int; const card:int; const k:int>>(c:state^card) returns (res:bool); +var + ranges_min, ranges_max : bool^card; +let + ranges_min = map<< <= , card>>(low^card, c); + ranges_max = map<< < , card>>(c, k^card); + res = boolall<<card>>(ranges_min) and boolall<<card>>(ranges_max); +tel diff --git a/salut/test/Cycle_unison/config.ml b/salut/test/Cycle_unison/config.ml new file mode 120000 index 0000000000000000000000000000000000000000..c5a3daf4b1203ee5c4262ed4509944ea10bd920b --- /dev/null +++ b/salut/test/Cycle_unison/config.ml @@ -0,0 +1 @@ +../../../test/unison/config.ml \ No newline at end of file diff --git a/salut/test/Cycle_unison/state.lus b/salut/test/Cycle_unison/state.lus new file mode 120000 index 0000000000000000000000000000000000000000..226b86a299064c8d85a7598c7411e8c52777e517 --- /dev/null +++ b/salut/test/Cycle_unison/state.lus @@ -0,0 +1 @@ +../unison/state.lus \ No newline at end of file diff --git a/salut/test/Cycle_unison/state.ml b/salut/test/Cycle_unison/state.ml new file mode 120000 index 0000000000000000000000000000000000000000..0d0c3082ca12a60b790f8e0ffd2a51c3dfb6f200 --- /dev/null +++ b/salut/test/Cycle_unison/state.ml @@ -0,0 +1 @@ +../../../test/unison/state.ml \ No newline at end of file diff --git a/salut/test/Cycle_unison/unison.lus b/salut/test/Cycle_unison/unison.lus new file mode 120000 index 0000000000000000000000000000000000000000..d0c343947c9412b94449a41e8e1760f0a3909cb3 --- /dev/null +++ b/salut/test/Cycle_unison/unison.lus @@ -0,0 +1 @@ +../unison/unison.lus \ No newline at end of file diff --git a/salut/test/Cycle_unison/unison.ml b/salut/test/Cycle_unison/unison.ml new file mode 120000 index 0000000000000000000000000000000000000000..a0ad03b587427e13bb7504cff3ca12412f60cc39 --- /dev/null +++ b/salut/test/Cycle_unison/unison.ml @@ -0,0 +1 @@ +../../../test/unison/unison.ml \ No newline at end of file diff --git a/salut/test/Makefile b/salut/test/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..59e43fef2eef9d43c30c46066374801ec62b157e --- /dev/null +++ b/salut/test/Makefile @@ -0,0 +1,24 @@ + +test: + cd coloring/ && make clean && make test && make clean + cd dijkstra-ring/ && make clean && make test && make clean + cd unison/ && make clean && make test && make clean + cd bfs-spanning-tree/ && make clean && make test && make clean + cd rsp_tree/ && make clean && make test && make clean + cd kclustering/ && make clean && make test && make clean + echo "Every test went fine!" + +clean: + cd coloring/ && make clean + cd dijkstra-ring/ && make clean + cd unison/ && make clean + cd bfs-spanning-tree/ && make clean + cd rsp_tree/ && make clean + cd kclustering/ && make clean + +compare: + cd coloring/ && make compare_seed + cd dijkstra-ring/ && make compare_seed + cd unison/ && make compare_seed + cd bfs-spanning-tree/ && make compare_seed + cd rsp_tree/ && make compare_seed diff --git a/salut/test/Makefile.dot b/salut/test/Makefile.dot new file mode 120000 index 0000000000000000000000000000000000000000..b61cca9dc5382a9ac2cf9d7d2d29d29c14b86aea --- /dev/null +++ b/salut/test/Makefile.dot @@ -0,0 +1 @@ +../../test/Makefile.dot \ No newline at end of file diff --git a/salut/test/Makefile.inc b/salut/test/Makefile.inc new file mode 100644 index 0000000000000000000000000000000000000000..544d39d973f9b356f24ff09d2c1946d1c5f8e744 --- /dev/null +++ b/salut/test/Makefile.inc @@ -0,0 +1,172 @@ +# +# To use this file, define the following variables and `include` it: +# TOPOLOGY # graph file name, without the .dot extension +# DOT2LUSFLAGS # optional: dot2lus flags (eg. --clock) +# SASA_ALGOS # .ml files used in sasa/lurette tests +# SASAFLAGS # optional: flags passed in to sasa (eg. to define the daemon) +# + +.PHONY = build all clean test verify + +# extra ../ because this is called from within each test folder +D2L := salut + +# default rule +build: $(TOPOLOGY).lus + +all: $(TOPOLOGY).lus $(TOPOLOGY).cmxs $(TOPOLOGY)_verify.lv4 + +genclean: + rm -f *.cmxs *.cmx *.cmi *.o + rm -f $(TOPOLOGY).ml + rm -f *.rif *.seed + rm -f $(TOPOLOGY).lus + rm -f *_verify.lv4 + rm -f *.c *.h *_const.lus *.cmt *.exec *.sh rdbg-session* *.log *.pdf + +# generating lv6 files of out dot files +%_const.lus: %.dot + $(D2L) $(DOT2LUSFLAGS) $< +%.lus: %_const.lus + +LIB=-package algo +OCAMLOPT=ocamlfind ocamlopt -bin-annot +LIB_LUS=$(HOME)/sasa/test/lustre/round.lus $(HOME)/sasa/salut/lib/sas.lus + +# $(HOME)/sasa/test/lustre/oracle_utils.lus + + +##########################################################################################" +# Simulations + +%.simu: + make $*.dot $*_const.lus + luciole-rif lv6 $(LIB_LUS) $*.lus $*_const.lus -n $* -exec + +%.rdbg: + make $*.dot $*_const.lus + rdbgui4sasa -sut-nd "lv6 $(LIB_LUS) $*_const.lus $*.lus -n $* -exec" + +##########################################################################################" +# Use lurette to compare the lustre and the ocaml version of the algorithm +# nb : <dirname>/<dirname>_oracle.lus should be written + +%.lurette: + make $*.dot $*_const.lus $*.cmxs $*_oracle.lus +# make $*.dot $*_const.lus $*.cmxs + lurette -sut "sasa -seed 172317971 $*.dot $(SASAFLAGS)" -oracle "lv6 $(LIB_LUS) $*.lus $*_oracle.lus -n oracle -2c-exec" + +%.lurette_no_seed: + make $*.dot $*_const.lus $*.cmxs $*_oracle.lus +# make $*.dot $*_const.lus $*.cmxs + lurette -sut "sasa $*.dot $(SASAFLAGS)" -oracle "lv6 $(LIB_LUS) $*.lus $*_oracle.lus -n oracle -2c-exec" + +%.cmxs: %.ml + $(OCAMLOPT) $(LIB) -shared state.ml $(shell sasa -algo $*.dot) config.ml $< -o $@ + +# XXX le faire via salut +%_oracle.lus: %.cmxs + sasa -glos $*.dot || echo "" + +%.ml: %.dot + sasa -reg $< + + +##########################################################################################" +# model-checking with kind2 + +ifndef $(prop) +prop = verify +endif +ifndef $(color) +color = true +endif + +%.expand.kind2: %_verify.lv4 + time kind2 --color $(color) --modular true --compositional true $< + +%.kind2: %.dot + make $*_verify.noexpand.lv4 + time kind2 --color $(color) --modular true --compositional true $*_verify.noexpand.lv4 + +%.kind2-test: + make color=false $*.kind2 | (grep "^ok: valid" > $*-kind2.res || echo "") ; [ -s $*-kind2.res ] + +# XXX: this method of adding kind2 annotations is brittle +%_verify.lv4: %.lus %_const.lus verify.lus + lv6 -eei $(LIB_LUS) $*.lus $^ $*_const.lus -n $(prop) --lustre-v4 -en -o $@ + sed -i -e "s/tel/--%MAIN ;\n--%PROPERTY ok;\ntel/" $@ + +# Do not expand nodes +%_verify.noexpand.lv4: verify.lus + make $*_const.lus + lv6 -eei $(LIB_LUS) $*.lus $^ $*_const.lus -n $(prop) -rnc --lustre-v4 -o $@ + cat $@ | tr '\n' '@' |sed "s/tel@/tel/g" | sed "s/@/\\n/g" | sed "s/tel-- end of node verify/--%MAIN ;\n--%PROPERTY ok;\ntel\n/" > $@.tmp + mv $@.tmp $@ + +##########################################################################################" +# model-checking with lesar + +# to use lesar, perform bit-blasting via ec2ec -usrint +%_verify.ec: %.dot verify.lus + make $*_const.lus + lv6 $(LIB_LUS) $*.lus $*_const.lus verify.lus -n $(prop) -ec -o $@.tmp + echo "include \"../../lib/bit-blast/signed_binary6.lus\"" > $@.tmp2 + echo "include \"../../lib/bit-blast/binary.lus\"" >> $@.tmp2 + ec2ec -usrint $@.tmp >> $@.tmp2 + cat $@.tmp2 | tr '\n' '@' |sed "s/tel@/tel/g" | sed "s/@/\\n/g" | sed "s/tel-- end of node verify/--%MAIN ;\n--%PROPERTY ok;\ntel\n/" > $@.tmp + mv $@.tmp $@ ; rm $@.tmp2 + + +%.lesar:%_verify.ec + time lesar $< $(prop) -forward -states 10000000 + +##########################################################################################" +# Compare sasa and salut simulation perf +# the sasa version is called twice: once for generating the daemon, and once +# to perform a fair measurement wrt salut +# XXX lurette kills the process before time can write its results! +# Anyway, it's not the good way to perform time measurements. It is +# better to use internal daemon + +%.comperf.old: %.dot %.cmxs %_oracle.lus %.lus + lv6 -en -2c $*.lus $*_oracle.lus -n oracle && \ + sh oracle.sh && \ + /usr/bin/time -o sasa2.time lurette -norif -env "sasa -seed 42 -custd $*.dot $(SASAFLAGS) " \ + -sut "sasa -seed 42 $*.dot $(SASAFLAGS)" &&\ + /usr/bin/time -o salut.time lurette -norif -env "sasa -seed 42 -custd $*.dot $(SASAFLAGS) " \ + -oracle "./oracle.exec" \ + -sut "sasa -seed 42 $*.dot $(SASAFLAGS)" && \ + cat sasa.time sasa2.time salut.time + +### to compute the array in Section VIII-B +synchronous_diring500.exec: diring500.dot + make diring500.lus + cat synchronous_diring500.lus >> diring500.lus + lv6 -2c diring500.lus -n synchronous_diring500 + sh synchronous_diring500.sh + +run_synchronous_diring500.salut: synchronous_diring500.exec + for ((a=1; a <= 500 ; a++)) do echo f; done | time ./synchronous_diring500.exec > /tmp/x.rif + +run_synchronous_diring500.sasa: diring500.dot diring500.cmxs + time sasa diring500.dot -sd -l 500 > /tmp/x.rif + +run_synchronous_er500.exec: er500.dot + make er500.lus + cat synchronous_er500.lus >> er500.lus + lv6 -2c er500.lus -n synchronous_er500 + sh synchronous_er500.sh + +grid500.dot: + gg grid -w 20 -he 25 -o grid500.dot + gg-deco "0-:p.ml" grid500.dot -o grid500.dot + +run_synchronous_er500.salut: synchronous_er500.exec + for ((a=1; a <= 500 ; a++)) do echo f; done | time ./synchronous_er500.exec > /tmp/x.rif +run_synchronous_grid500.salut: synchronous_grid500.exec + for ((a=1; a <= 500 ; a++)) do echo f; done | time ./synchronous_grid500.exec > /tmp/x.rif + +run_synchronous_er500.sasa: er500.dot er500.cmxs + time sasa er500.dot -sd -l 500 > /tmp/x.rif + diff --git a/salut/test/README.org b/salut/test/README.org new file mode 100644 index 0000000000000000000000000000000000000000..528e9ca1ea9ce30c29551778e2cdb34344257cf8 --- /dev/null +++ b/salut/test/README.org @@ -0,0 +1,15 @@ +This directory contains Lustre versions of the ASM algorithms available +in Ocaml in file:../../test/ + +More precisely, each directory contains : +- a lustre implementation of an ASM algorithm +- some symbolic links to their Ocaml implementation +- a lustre oracle that checks (with lurette) that both implementations behaves the same +- a =verify.lus= that models some properties to be model-checked (with lesar or kinds2) +- a Makefile to run simulations or model-checking + +To simulate or to model-check such Lustre programs, one can use +- =gg= and =gg-deco= to generate topologies via =.dot= files +- =salut= to generate a lustre versions of the =.dot= files +- the various =Makefiles= for examples of uses + diff --git a/salut/test/bfs-spanning-tree/Makefile b/salut/test/bfs-spanning-tree/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..18ef0288f0f208005705731cc2b0325c0a863380 --- /dev/null +++ b/salut/test/bfs-spanning-tree/Makefile @@ -0,0 +1,36 @@ +TOPOLOGY ?= tree3 +DOT2LUSFLAGS ?= +SASA_ALGOS := p.ml root.ml +DECO_PATTERN="0:root.ml 1-:p.ml" + + +include ../Makefile.inc +-include ../Makefile.dot + +############################################################################## +# Non-regression tests + +test: tree3.kind2-test tree3.lurette #tree3.lesar + +clean: genclean + rm -f $(TOPOLOGY)*.* tree3*.* +############################################################################## +# Other examples of use + +## Some examples of use of ../Makefile.inc + +# run a simulation with luciole +simu: $(TOPOLOGY).simu + +# Compare the ocaml version with the lustre one (with seed) +compare_seed: $(TOPOLOGY).lurette + cat bfs-spanning-tree.rif + +# Compare the ocaml version with the lustre one (no seed) +compare: $(TOPOLOGY).lurette_no_seed + cat bfs-spanning-tree.rif + +# make diring4.simu +kind2: $(TOPOLOGY).kind2 + +lesar: $(TOPOLOGY).lesar diff --git a/salut/test/bfs-spanning-tree/bfs_spanning_tree_oracle.lus b/salut/test/bfs-spanning-tree/bfs_spanning_tree_oracle.lus new file mode 100644 index 0000000000000000000000000000000000000000..1e0cae5fe42d77c0bb34308ebd9964400600189c --- /dev/null +++ b/salut/test/bfs-spanning-tree/bfs_spanning_tree_oracle.lus @@ -0,0 +1,37 @@ + +-- Here, we use the Lustre version of the algorithm as a test oracle for the ocaml version + +include "../../lib/utils.lus" + +function to_state( par:int ; d:int) +returns(res : state); +let + res = state { par=par; d=d }; +tel; + +node bfs_spanning_tree_oracle( + legitimate : bool; + ocaml_enabled : bool^actions_number^card; + active : bool^actions_number^card; + ocaml_config : state^card; + round:bool; + round_nb:int; +) +returns (ok : bool); +var + lustre_config : state^card; + lustre_enabled : bool^actions_number^card; + lustre_round:bool; + lustre_round_nb:int; +let + lustre_config, lustre_enabled, lustre_round, lustre_round_nb = + topology(active -> pre active, -- ignored at the first step + ocaml_config -- used at the first step only + ); + ok = lustre_enabled = ocaml_enabled + -- compare the sasa dot interpretation and the salut dot to lustre compilation + and lustre_config = ocaml_config + -- and lustre_round = round + and lustre_round_nb = round_nb +; +tel diff --git a/salut/test/bfs-spanning-tree/config.ml b/salut/test/bfs-spanning-tree/config.ml new file mode 100644 index 0000000000000000000000000000000000000000..dc28042f29039af2859f552bac4167e69bb321d4 --- /dev/null +++ b/salut/test/bfs-spanning-tree/config.ml @@ -0,0 +1,9 @@ +(* Automatically generated by /home/emile/.opam/4.12.0/bin/sasa version "v4.6.0" ("opam")*) +(* on PC-Travail the 15/6/2022 at 15:53:43*) +(*sasa -reg tree7.dot*) + + +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 *) +let init_search_utils = None (* To provide to use --init-search *) diff --git a/salut/test/bfs-spanning-tree/p.lus b/salut/test/bfs-spanning-tree/p.lus new file mode 100644 index 0000000000000000000000000000000000000000..e71005378c1abf66361e644801b41d42829eaa9c --- /dev/null +++ b/salut/test/bfs-spanning-tree/p.lus @@ -0,0 +1,62 @@ +--Return the tab minimal value: +function min_tab<<const n:int>> (this : int; neighbors : int^n) +returns (new: int); +var min:int; +let + min = if this <= neighbors[0] then this else neighbors[0]; + new = with (n = 1) then min + else min_tab << n-1 >> (min, neighbors[1 .. n-1]); +tel; + +----------------------------------------------------------- +--Predicates and Macros: +function dist<<const n:int>>(neighbors:state^n) +returns(res :int); +let + res = min_tab<<n>>((diameter-1), map<<d,n>>(neighbors))+1; +tel; + +function dist_ok<<const n:int>>(this:state; neighbors: state^n) +returns(res :bool); +var md:int; +let + md = if n=1 then neighbors[0].d + else min_tab<<n>>(neighbors[0].d,map<<d,(n)>>(neighbors)); + res = ( this.d - 1 ) = md; +tel; + +function get_parent<<const n:int; const count:int>>(this:state ; neighbors: state^n) +returns(res : state); +let + res = with (count = n ) then neighbors[n-1] + else if (count = this.par) then neighbors[count] else get_parent<<n,(count+1)>>(this,neighbors); +tel; + +function cp<<const n:int>>(this : state ; neighbors :state^n) +returns(res:int); +let + res = with (n = 1) then 0 + else if (neighbors[0].d = (this.d-1)) then 0 else (1+cp<<(n-1)>>(this,neighbors[ 1 .. n-1 ])); +tel; + +----------------------------------------------------------- +--Step and Enable functions: +function p_enable<<const degree:int>>(this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); +var state_neigh:state^degree; +let + state_neigh = map<<state,degree>>(neighbors); + enabled = [ this.d <> dist<<degree>>(state_neigh) , dist_ok<<degree>>(this,state_neigh) and get_parent<<degree,0>>(this,state_neigh).d<>(this.d-1) ]; +tel; + +function p_step<<const degree:int>>( + this : state; + neighbors : neigh^degree; + action : action) +returns (new : state); +var state_neigh:state^degree; +let + state_neigh = map<<state,degree>>(neighbors); + new = if action = CD then state { d=dist<<degree>>(state_neigh); par=this.par } + else state { d=this.d; par= cp<<degree>>(this, state_neigh) }; +tel; \ No newline at end of file diff --git a/salut/test/bfs-spanning-tree/p.ml b/salut/test/bfs-spanning-tree/p.ml new file mode 120000 index 0000000000000000000000000000000000000000..ad883bb0a7b336432c0328cb553f0ef9719ef451 --- /dev/null +++ b/salut/test/bfs-spanning-tree/p.ml @@ -0,0 +1 @@ +../../../test/bfs-spanning-tree/p.ml \ No newline at end of file diff --git a/salut/test/bfs-spanning-tree/root.lus b/salut/test/bfs-spanning-tree/root.lus new file mode 100644 index 0000000000000000000000000000000000000000..4367967993cee2ad14df40890f23e4345927f1a3 --- /dev/null +++ b/salut/test/bfs-spanning-tree/root.lus @@ -0,0 +1,16 @@ +------------------------------------------------------- +--Step and Enable functions (for root): +function root_enable<<const degree:int>>(this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); +let + enabled = [ 0 <> this.d , false]; +tel; + +function root_step<<const degree:int>>( + this : state; + neighbors : neigh^degree; + action : action) +returns (new : state); +let + new = state { d=0; par=this.par }; +tel; diff --git a/salut/test/bfs-spanning-tree/root.ml b/salut/test/bfs-spanning-tree/root.ml new file mode 120000 index 0000000000000000000000000000000000000000..daedbf7bbd9eb869eebca1e9ba8ee08d69222e27 --- /dev/null +++ b/salut/test/bfs-spanning-tree/root.ml @@ -0,0 +1 @@ +../../../test/bfs-spanning-tree/root.ml \ No newline at end of file diff --git a/salut/test/bfs-spanning-tree/state.lus b/salut/test/bfs-spanning-tree/state.lus new file mode 100644 index 0000000000000000000000000000000000000000..5df8fa20bf21a57c91ad04da11b7068f035b25e6 --- /dev/null +++ b/salut/test/bfs-spanning-tree/state.lus @@ -0,0 +1,27 @@ + +type state = struct { d:int ; par:int }; + +type action = enum { CD , CP }; +const actions_number = 2; + +function action_of_int(i : int) returns (a : action); +let + a = if i = 0 then CD else CP; +tel; +function legitimate<<const actions_number:int; const card:int>>( + enables : bool^actions_number^card; config: state^card) +returns (res : bool); +let + res=silent<<actions_number,card>>(enables); +tel; + +----------------------------------------------------------- +--Usefull function for type struct: +----------------------------------------------------------- + +function d (neigh: state) +returns(res: int) +let + res=neigh.d; +tel; + diff --git a/salut/test/bfs-spanning-tree/state.ml b/salut/test/bfs-spanning-tree/state.ml new file mode 120000 index 0000000000000000000000000000000000000000..740ce359fd6da1ac92013e6d5d86eaccef5884a9 --- /dev/null +++ b/salut/test/bfs-spanning-tree/state.ml @@ -0,0 +1 @@ +../../../test/bfs-spanning-tree/state.ml \ No newline at end of file diff --git a/salut/test/bfs-spanning-tree/verify.lus b/salut/test/bfs-spanning-tree/verify.lus new file mode 100644 index 0000000000000000000000000000000000000000..04fbc273ced67f0faf1021e38c4983b3ebacdd0d --- /dev/null +++ b/salut/test/bfs-spanning-tree/verify.lus @@ -0,0 +1,59 @@ +include "../../lib/sas.lus" + +---------------------------------------------------------------------------- +-- function verify +---------------------------------------------------------------------------- +node verify(activations : bool^actions_number^card; inits : state^card) returns (ok : bool); +var + config : state^card; + enables : bool^actions_number^card; + legitimate, closure, CD_disable, lustre_round : bool; + lustre_round_nb:int; +let + assert(true -> daemon_is_valid<<actions_number,card>>(activations, pre enables)); + assert(rangei<<0,diameter,card>>(inits)); + + config, enables, lustre_round, lustre_round_nb = topology(activations, inits); + + legitimate = legitimate<<actions_number,card>>(enables,config); + closure = true -> (pre(legitimate) => legitimate); + CD_disable = all_CD_are_false(enables); + + -- verify that the execution terminates after at most |N|−1 moves: + ok = closure + and ( (lustre_round_nb>=diameter+1) => CD_disable ) + and ( (lustre_round_nb>=diameter+2) => legitimate ) +; +tel; + +---------------------------------------------------------------------------- +-- all states are initially in correctly +---------------------------------------------------------------------------- +node rangei<<const low:int; const D:int; const card:int>>(config:state^card) returns (res:bool); +var + e:state; +let + e = config[card-1]; + res = with (card=1) then (e.d >=0) and (e.d < D) and (e.par = -1) + else ((e.d >= 0) and + (e.d < D) and + (e.par >=0) and + (e.par < nb_neighbors[card-1])) and rangei<<low; D; card-1>>(config[0..card-2]); +tel + +----------------------------------------------------------------------------- +--function for CD_disable: +----------------------------------------------------------------------------- +function first_element(X:bool^actions_number) returns (res:bool); +let + res = X[0]; +tel +function first_column(X:bool^actions_number^card) returns (Z:bool^card); +let + Z = map<<first_element,card>>(X); +tel +function all_CD_are_false (tab_enab:bool^actions_number^card) returns (res:bool); +let + res = not (red<<or,card>>(false,first_column(tab_enab))) ; +tel +----------------------------------------------------------------------------- diff --git a/salut/test/coloring/Makefile b/salut/test/coloring/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..92acce3f59c5e00225221ecceeb6097aed581697 --- /dev/null +++ b/salut/test/coloring/Makefile @@ -0,0 +1,34 @@ +TOPOLOGY ?= clique3 +DOT2LUSFLAGS ?= +SASA_ALGOS := p.ml +SASAFLAGS += --locally-central-daemon +DECO_PATTERN="0-:p.ml" + +include ../Makefile.inc +-include ../Makefile.dot + +############################################################################## +# Non-regression tests + +test: clique3.kind2-test clique3.lurette + +clean: genclean + rm -f ring*.* er*.* grid*.* clique*.* + +.PRECIOUS: %.lus +.PRECIOUS: %.dot + +## Some examples of use of ../Makefile.inc + + +# run a simulation with luciole +simu: clique3.simu + +# Compare the ocaml version with the lustre one +# XXX todo : write a coloring_oracle.lus similar to ../dijkstra-ring/dijkstra_ring_oracle.lus +compare: clique3.lurette + cat coloring.rif + +kind2: clique3.kind2 + +lesar: clique3.lesar diff --git a/salut/test/coloring/coloring_oracle.lus b/salut/test/coloring/coloring_oracle.lus new file mode 100644 index 0000000000000000000000000000000000000000..03e0929abd6cf3d0a4312bb1557b32b579b92a6d --- /dev/null +++ b/salut/test/coloring/coloring_oracle.lus @@ -0,0 +1,37 @@ + +-- Here, we use the Lustre version of the algorithm as an oracle for the ocaml version + +include "../../lib/utils.lus" + +node coloring_oracle( + legitimate : bool; + ocaml_cost : real; + ocaml_enabled : bool^actions_number^card; + active : bool^actions_number^card; + ocaml_config : state^card; + round:bool; + round_nb:int; +) +returns (ok : bool); +var + lustre_config : state^card; + lustre_enabled : bool^actions_number^card; + lustre_round : bool; + lustre_round_nb : int; +-- lustre_cost:int; +let + lustre_config, lustre_enabled, lustre_round, lustre_round_nb = + topology(active -> pre active, -- ignored at the first step + ocaml_config -- used at the first step only + ); +-- lustre_cost = cost(lustre_enabled, lustre_config); + ok = lustre_enabled = ocaml_enabled + -- compare the sasa dot interpretation and the salut dot to lustre compilation + and lustre_config = ocaml_config + -- compare the lustre and the ocaml version of the processes +-- and Lustre::real2int(ocaml_cost) = lustre_cost +-- and lustre_round = round +-- and lustre_round_nb = round_nb +; + -- compare the cost functions +tel diff --git a/salut/test/coloring/config.ml b/salut/test/coloring/config.ml new file mode 120000 index 0000000000000000000000000000000000000000..69fbde97dc330f5f466f789fb7a08a84667ed763 --- /dev/null +++ b/salut/test/coloring/config.ml @@ -0,0 +1 @@ +../../../test/coloring/config.ml \ No newline at end of file diff --git a/salut/test/coloring/p.lus b/salut/test/coloring/p.lus new file mode 100644 index 0000000000000000000000000000000000000000..bed00f6adbf667db8f1aae46a360b49f63406cae --- /dev/null +++ b/salut/test/coloring/p.lus @@ -0,0 +1,18 @@ +include "../../lib/bitset.lus" + +const K = max_degree + 1; + +function p_enable<<const degree:int>>(this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); + var conflict, out_of_range : bool; +let + out_of_range = this < 0 or this >= K; + conflict = subset<<K>>(one_hot<<K>>(this), bitset_of_list<<K,degree>>(map<<state,degree>>(neighbors))); + enabled = [ out_of_range or conflict ]; +tel; + +function p_step<<const degree:int>>(this : state; neighbors : neigh^degree; action : action) +returns (new : state); +let + new = first_set<<K>>(diff<<K>>(true^K, bitset_of_list<<K,degree>>(map<<state,degree>>(neighbors)))); +tel; diff --git a/salut/test/coloring/p.ml b/salut/test/coloring/p.ml new file mode 120000 index 0000000000000000000000000000000000000000..e3cb7ec142bc6370df98569a002cb4322a835c32 --- /dev/null +++ b/salut/test/coloring/p.ml @@ -0,0 +1 @@ +../../../test/coloring/p.ml \ No newline at end of file diff --git a/salut/test/coloring/state.lus b/salut/test/coloring/state.lus new file mode 100644 index 0000000000000000000000000000000000000000..ac99865f08f4410b2fc23b3714986f030bc362b2 --- /dev/null +++ b/salut/test/coloring/state.lus @@ -0,0 +1,17 @@ +-- automatically generated by salut + +type state = int; + +type action = enum { recolor }; +const actions_number = 1; + +function action_of_int(i : int) returns (a : action); +let + a = recolor; +tel; + +function legitimate<<const actions_number:int; const card:int>>(enables : bool^actions_number^card; config: state^card) +returns (res : bool); +let + res=silent<<actions_number,card>>(enables); +tel; \ No newline at end of file diff --git a/salut/test/coloring/state.ml b/salut/test/coloring/state.ml new file mode 120000 index 0000000000000000000000000000000000000000..128aed4d721c6270f2c64aeb1cd74028e177ae5d --- /dev/null +++ b/salut/test/coloring/state.ml @@ -0,0 +1 @@ +../../../test/coloring/state.ml \ No newline at end of file diff --git a/salut/test/coloring/verify.lus b/salut/test/coloring/verify.lus new file mode 100644 index 0000000000000000000000000000000000000000..d026150e7c5f98c53e5b1b4ae936d9835f5bfe3b --- /dev/null +++ b/salut/test/coloring/verify.lus @@ -0,0 +1,40 @@ +include "../../lib/sas.lus" + +node verify(activations : bool^actions_number^card; inits : state^card) returns (ok : bool); +var + config : state^card; + enables : bool^actions_number^card; + legitimate, closure : bool; + moves : int; + pot :int; + r:bool;rn:int; +let +-- assert(true -> daemon_is_locally_central<<actions_number,card>>(activations, pre enables, adjacency)); + assert(true -> daemon_is_central<<actions_number,card>>(activations, pre enables)); + assert(rangei<<0,card>>(inits)); + + config, enables,r,rn = topology(activations, inits); + + legitimate = legitimate<<actions_number,card>>(enables,config); + closure = true -> (pre(legitimate) => legitimate); + moves = move_count<<actions_number,card>>(activations); + + pot = pop_count<<card>>(map<<n_or<<actions_number>>, card>>(enables)); + + -- verify that the execution terminates after at most |N|−1 moves: + ok = closure + and (true -> legitimate or pre(pot) > pot) -- much easier to prove +-- and (moves >= card => legitimate) +; +tel; + + +-- all states are initially in [0; card|[ +node rangei<<const low:int; const card:int>>(c:state^card) returns (res:bool); +var + ranges_min, ranges_max : bool^card; +let + ranges_min = map<< <= , card>>(low^card, c); + ranges_max = map<< < , card>>(c, card^card); + res = boolall<<card>>(ranges_min) and boolall<<card>>(ranges_max); +tel diff --git a/salut/test/dijkstra-ring/Makefile b/salut/test/dijkstra-ring/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..40153b80e5289858116eba9f3084dd2823f7cdca --- /dev/null +++ b/salut/test/dijkstra-ring/Makefile @@ -0,0 +1,34 @@ +TOPOLOGY ?= diring3 +DOT2LUSFLAGS ?= +SASA_ALGOS := p.ml root.ml +DECO_PATTERN="0:root.ml 1-:p.ml" + + +include ../Makefile.inc +-include ../Makefile.dot + +############################################################################## +# Non-regression tests + +test: diring3.kind2-test diring4.lurette + +clean: genclean + rm -f diring*.* + +############################################################################## +# Other examples of use + +## Some examples of use of ../Makefile.inc + +# run a simulation with luciole +simu: diring4.simu + +# Compare the ocaml version with the lustre one +compare: diring4.lurette + cat dijkstra-ring.rif + +# make diring4.simu +kind2: diring4.kind2 + +## do not work because there is a modulo in p.lus, which is not (yet) implemented in ../../bit-blast/*.lus +lesar: diring4.lesar diff --git a/salut/test/dijkstra-ring/config.ml b/salut/test/dijkstra-ring/config.ml new file mode 120000 index 0000000000000000000000000000000000000000..7215803d4a77c28ecd886a41315299f1dc9f4987 --- /dev/null +++ b/salut/test/dijkstra-ring/config.ml @@ -0,0 +1 @@ +../../../test/dijkstra-ring/config.ml \ No newline at end of file diff --git a/salut/test/dijkstra-ring/cost.lus b/salut/test/dijkstra-ring/cost.lus new file mode 100644 index 0000000000000000000000000000000000000000..a8357ed5940391b060edd0cee56b076e8e0ace20 --- /dev/null +++ b/salut/test/dijkstra-ring/cost.lus @@ -0,0 +1,119 @@ + +-- By convention, the root is node 0. +node is_root(pid: int) returns (res:bool); +let + res = (pid = 0); +tel + +-- Computes the value Z of the book, that is 0 if the values are convex, +-- and the minimum number of incrementations the root has to do so that its value +-- is different to every other value of the ring. +-- A configuration is convex if there is no value that is the same than the root seperated from the +-- root with another value. +-- 2 2 2 3 0 1 3 -> convex, z=0 +-- 2 4 5 3 0 1 3 -> convex, z=0 +-- 2 2 2 3 0 2 3 -> not convex, z=2 + +node compute_z(config : state^card) returns (z : int); +var + acc0, acc_end: acc_t; + _ic: idx_conf; + free: bool^card; + smallest_incre, _i:int; + index:int^card; +let + acc0 = acc_t {is_root=true;convex=true; root_val=config[0]; pval_dif=false }; + acc_end = red<<iter_z, card>>(acc0, config); + + _ic, free = fill<< is_free, card>>(idx_conf { i=0; c=config }); + + _i, index = fill<<incr_mod , card>>(0); -- [0; 1; 2; ...; card-1] + + smallest_incre = red<<get_smallest_incre, card>>(card, index, config[0]^card, free); + + z = if acc_end.convex then 0 else smallest_incre; + +tel + + +-- type ii = { i1: int; i2: int }; +type idx_conf = { + i: int; + c:state^card +}; + +node get_smallest_incre(acc:int; idx:int; root_val: int; free:bool) returns (nacc:int); +let + nacc = if free + then mini(acc, if root_val<idx then idx-root_val else idx-root_val+card) + else acc; +tel + +node is_free(acc:idx_conf) returns (nacc:idx_conf; res:bool); +let + nacc = idx_conf { i=acc.i+1; c=acc.c }; + res = not (member<<int,card>>(acc.i, acc.c)); +tel + +type acc_t = { + is_root : bool; + convex : bool; + root_val: int; -- constant + pval_dif: bool; -- exists j <= curr_idx s.t. config[j] <> config[0] +}; +node iter_z(acc:acc_t; curval : int) returns (res:acc_t); +let + res = + acc_t{ + is_root = false; + convex = acc.convex and not (acc.pval_dif and acc.root_val = curval); + root_val = acc.root_val; + pval_dif = acc.pval_dif or acc.root_val <> curval + }; +tel + + +-- Computes the sum_dist as described in the book. It is the sum of the distance +-- from each token to the root +node compute_sd(enabled_actions : bool^actions_number^card; config : state^card) returns (res : int); +var + enabled_process: bool^card; + dist_root: int^card; + _d:int; +let + enabled_process = map<<n_or<<actions_number>>,card>> (enabled_actions); + _d, dist_root = fill<<decr,card>>(card); -- [0; card-1; card-2; ...; 2; 1] + res= red<<root_distance, card>>(0, dist_root, enabled_process); +tel +-- iterated node used above +node root_distance(ptotal, index: int; enabled:bool) returns (total:int); +let + total = if index = 0 or not(enabled) then ptotal else index+ptotal; +tel + +node test_fill= fill<<decr,card>>; +node decr(px:int) returns (x,res:int); +let + x = px-1; + res = px mod card; +-- res = if px < 0 then px+card else px; -- to be able to use lesar (via ec2ec -usrint) +tel +node incr_mod(px:int) returns (x,res:int); +let +-- x = (px+1) mod card; + x = (px+1); +-- res = if px > card then px-card else px; + res = px mod card; +tel + +node cost(enabled : bool^actions_number^card; config : state^card) returns (res : int); +var + sum_dist, z, res0 : int; +let + z = compute_z(config); + sum_dist = compute_sd(enabled,config); + res0 = z * card + sum_dist - 2; + res = if z = (card - 1) + then (3 * card * (card - 1) / 2) - card - 1 + else if res0 < 0 then 0 else res0; +tel diff --git a/salut/test/dijkstra-ring/dijkstra_ring_oracle.lus b/salut/test/dijkstra-ring/dijkstra_ring_oracle.lus new file mode 100644 index 0000000000000000000000000000000000000000..c870b89df7ca391f4d45c52bee952c67521ae152 --- /dev/null +++ b/salut/test/dijkstra-ring/dijkstra_ring_oracle.lus @@ -0,0 +1,60 @@ + +-- Here, we use the Lustre version of the algorithm as an oracle for the ocaml version + +include "../../lib/utils.lus" +include "cost.lus" + +node dijkstra_ring_oracle( + legitimate : bool; + ocaml_cost : real; + ocaml_enabled : bool^actions_number^card; + active : bool^actions_number^card; + ocaml_config : state^card; + round:bool; + round_nb:int; +) +returns (ok : bool; +); +var + lustre_config : state^card; + lustre_enabled : bool^actions_number^card; + lustre_cost:int; + lustre_round:bool; + lustre_round_nb:int; +let + lustre_config, lustre_enabled, lustre_round, lustre_round_nb = + topology(active -> pre active, -- ignored at the first step + ocaml_config -- used at the first step only + ); + lustre_cost = cost(lustre_enabled, lustre_config); + ok = lustre_enabled = ocaml_enabled + -- compare the sasa dot interpretation and the salut dot to lustre compilation + and lustre_config = ocaml_config + -- compare the lustre and the ocaml version of the processes + and Lustre::real2int(ocaml_cost) = lustre_cost + and round = lustre_round + and round_nb = lustre_round_nb +; + -- compare the cost functions +tel + +node _dijkstra_ring_oracle( + legitimate : bool; + ocaml_cost : real; + ocaml_enabled : bool^actions_number^card; + active : bool^actions_number^card; + ocaml_config : state^card; +) +returns (ok : bool); +var + lustre_config : state^card; + lustre_enabled : bool^actions_number^card; + lustre_round:bool; + lustre_round_nb:int; +let + ok= lustre_enabled[0][0] or true; + lustre_config, lustre_enabled, lustre_round, lustre_round_nb = + topology(active -> pre active, -- ignored at the first step + ocaml_config -- used at the first step only + ); +tel \ No newline at end of file diff --git a/salut/test/dijkstra-ring/p.lus b/salut/test/dijkstra-ring/p.lus new file mode 100644 index 0000000000000000000000000000000000000000..71be3cd22078bd1cbab20f078c22b970554fbebd --- /dev/null +++ b/salut/test/dijkstra-ring/p.lus @@ -0,0 +1,13 @@ +function p_enable<<const degree:int>>(this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); +let + enabled = [ this <> state(neighbors[0]) ]; +tel; + +function p_step<<const degree:int>>( + this : state; + neighbors : neigh^degree; action : action) +returns (new : state); +let + new = state(neighbors[0]); +tel; diff --git a/salut/test/dijkstra-ring/p.ml b/salut/test/dijkstra-ring/p.ml new file mode 120000 index 0000000000000000000000000000000000000000..16478f3ff51ed2252d9723fc302e3bbc50f2157b --- /dev/null +++ b/salut/test/dijkstra-ring/p.ml @@ -0,0 +1 @@ +../../../test/dijkstra-ring/p.ml \ No newline at end of file diff --git a/salut/test/dijkstra-ring/root.lus b/salut/test/dijkstra-ring/root.lus new file mode 100644 index 0000000000000000000000000000000000000000..ab3ac4ee649ace5f935841e40a0f4c94c6a2e322 --- /dev/null +++ b/salut/test/dijkstra-ring/root.lus @@ -0,0 +1,16 @@ +function root_enable<<const degree:int>>(this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); +let + enabled = [ this = state(neighbors[0]) ]; +tel; + +function root_step<<const degree:int>>( + this : state; + neighbors : neigh^degree; + action : action) +returns (new : state); +let + new = if this = card-1 then 0 else (this + 1); -- to be able to use lesar (via ec2ec -usrint) +-- new = (this + 1) mod card; +tel; + diff --git a/salut/test/dijkstra-ring/root.ml b/salut/test/dijkstra-ring/root.ml new file mode 120000 index 0000000000000000000000000000000000000000..bb8f82d7ea808a5c15e83609267999e173c36a4b --- /dev/null +++ b/salut/test/dijkstra-ring/root.ml @@ -0,0 +1 @@ +../../../test/dijkstra-ring/root.ml \ No newline at end of file diff --git a/salut/test/dijkstra-ring/state.lus b/salut/test/dijkstra-ring/state.lus new file mode 100644 index 0000000000000000000000000000000000000000..7ac9ab63a1b6a7637e04da797f4376d59b23cde1 --- /dev/null +++ b/salut/test/dijkstra-ring/state.lus @@ -0,0 +1,17 @@ +-- automatically generated by salut + +type state = int; + +type action = enum { T }; +const actions_number = 1; + +function action_of_int(i : int) returns (a : action); +let + a = T; +tel; + +function legitimate<<const actions_number:int; const card:int>>(enables : bool^actions_number^card; config: state^card) +returns (res : bool); +let + res=n_xor<<card>>(map<<n_or<<actions_number>>,card>> (enables)); +tel; diff --git a/salut/test/dijkstra-ring/state.ml b/salut/test/dijkstra-ring/state.ml new file mode 120000 index 0000000000000000000000000000000000000000..205f843ce54ae17773cde1cad378666b26cede3b --- /dev/null +++ b/salut/test/dijkstra-ring/state.ml @@ -0,0 +1 @@ +../../../test/dijkstra-ring/state.ml \ No newline at end of file diff --git a/salut/test/dijkstra-ring/verify.lus b/salut/test/dijkstra-ring/verify.lus new file mode 100644 index 0000000000000000000000000000000000000000..3f6ac4046f1460687e84ae9acbe530e428fb2651 --- /dev/null +++ b/salut/test/dijkstra-ring/verify.lus @@ -0,0 +1,134 @@ +include "../../lib/sas.lus" +include "../../lib/utils.lus" + +include "cost.lus" +const worst_case=3*card*(card-1)/2 - card - 1; + +node verify( + active : bool^actions_number^card; + init_config : state^card +) +returns (ok : bool); +var + config : state^card; + enabled : bool^actions_number^card; + legitimate, at_least_1, closure, converge : bool; + steps, cost : int; + round:bool; round_nb:int; +let + assert(true -> daemon_is_distributed<<actions_number,card>>(active, pre enabled)); +-- assert(true -> daemon_is_synchronous<<actions_number,card>>(active, pre enabled)); + assert(rangei<<0,card>>(init_config)); + + config, enabled, round, round_nb = topology(active, init_config); + assert(config = init_config -> true); + + -- stability in this algo means mutual exclusion: exactly 1 node is enabled at a time + legitimate = legitimate<<actions_number,card>>(enabled,config); + at_least_1 = n_or <<card>>(map<<n_or<<actions_number>>,card>> (enabled)); + + closure = true -> (pre(legitimate) => legitimate); + + cost = cost(enabled, config); + converge = (true -> legitimate or pre(cost)>cost); + + steps = 0 -> (pre(steps) + 1); + ok = true + and at_least_1 + and closure + -- and (steps > worst_case) => legitimate -- the worst-case stabilization + and converge + -- and (steps > worst_case - 1) => legitimate -- is tigth! +; +tel; + + +node rangei<<const low:int; const card:int>>(c:state^card) returns (res:bool); +var + ranges_min, ranges_max : bool^card; +let + ranges_min = map<< <= , card>>(low^card, c); + ranges_max = map<< < , card>>(c, card^card); + res = boolall<<card>>(ranges_min) and boolall<<card>>(ranges_max); +tel + +---------------------------------------------------------------------------------------------- +-- split properties to build the perf table +node closure( + active : bool^actions_number^card; + init_config : state^card +) +returns (ok : bool); +var + config : state^card; + enabled : bool^actions_number^card; + legitimate, closure : bool; +let + assert(true -> daemon_is_distributed<<actions_number,card>>(active, pre enabled)); + assert(rangei<<0,card>>(init_config)); + + config, enabled = topology(active, init_config); + assert(config = init_config -> true); + + legitimate = n_xor<<card>>(map<<n_or<<actions_number>>,card>> (enabled)); + closure = true -> (pre(legitimate) => legitimate); + ok = closure; +tel; +node at_least1( + active : bool^actions_number^card; + init_config : state^card +) +returns (ok : bool); +var + config : state^card; + enabled : bool^actions_number^card; + at_least_1 : bool; +let + assert(true -> daemon_is_distributed<<actions_number,card>>(active, pre enabled)); + assert(rangei<<0,card>>(init_config)); + config, enabled = topology(active, init_config); + assert(config = init_config -> true); + at_least_1 = n_or <<card>>(map<<n_or<<actions_number>>,card>> (enabled)); + ok = at_least_1; +tel; +node converge_pot( + active : bool^actions_number^card; + init_config : state^card +) +returns (ok : bool); +var + config : state^card; + enabled : bool^actions_number^card; + legitimate,converge : bool; + cost : int; +let + assert(true -> daemon_is_distributed<<actions_number,card>>(active, pre enabled)); + assert(rangei<<0,card>>(init_config)); + config, enabled = topology(active, init_config); + assert(config = init_config -> true); + cost = cost(enabled, config); + legitimate = n_xor<<card>>(map<<n_or<<actions_number>>,card>> (enabled)); + converge = (true -> legitimate or pre(cost)>cost); + ok = converge; +tel; +node converge_wc( + active : bool^actions_number^card; + init_config : state^card +) +returns (ok : bool); +var + config : state^card; + enabled : bool^actions_number^card; + legitimate : bool; + steps : int; +let + assert(true -> daemon_is_distributed<<actions_number,card>>(active, pre enabled)); + assert(rangei<<0,card>>(init_config)); + + config, enabled = topology(active, init_config); + assert(config = init_config -> true); + + legitimate = n_xor<<card>>(map<<n_or<<actions_number>>,card>> (enabled)); + steps = 0 -> (pre(steps) + 1); + ok = (steps > worst_case) => legitimate; +tel; diff --git a/salut/test/kclustering/Makefile b/salut/test/kclustering/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..12f6d520f18c1bd5980d296cd535294b7d619243 --- /dev/null +++ b/salut/test/kclustering/Makefile @@ -0,0 +1,37 @@ +TOPOLOGY ?= tree5 +DOT2LUSFLAGS ?= +SASA_ALGOS := p.ml +DECO_PATTERN="0-:p.ml" + +include ../Makefile.inc +-include ../Makefile.dot + +############################################################################## +# Non-regression tests + +test: tree3.kind2-test tree3.lurette #lesar not work because of the modulo. + +clean: genclean + rm -f $(TOPOLOGY)*.* tree3*.* + +############################################################################## +# Other examples of use + +## Some examples of use of ../Makefile.inc + +# run a simulation with luciole +simu: $(TOPOLOGY).simu + +# Compare the ocaml version with the lustre one (with seed) +compare_seed: $(TOPOLOGY).lurette + cat kclustering.rif + +# Compare the ocaml version with the lustre one (no seed) +compare: $(TOPOLOGY).lurette_no_seed + cat kclustering.rif + +# make diring4.simu +kind2: $(TOPOLOGY).kind2 + +## do not work because there is a modulo in p.lus, which is not (yet) implemented in ../../bit-blast/*.lus +lesar: $(TOPOLOGY).lesar diff --git a/salut/test/kclustering/config.ml b/salut/test/kclustering/config.ml new file mode 120000 index 0000000000000000000000000000000000000000..cd1408a51b631b05fa3f56e7b1047e9d4e991254 --- /dev/null +++ b/salut/test/kclustering/config.ml @@ -0,0 +1 @@ +../../../test/k-clustering/config.ml \ No newline at end of file diff --git a/salut/test/kclustering/cost.lus b/salut/test/kclustering/cost.lus new file mode 100644 index 0000000000000000000000000000000000000000..c9d2c12119fc0338ea6c83835e6f3a01302d9bef --- /dev/null +++ b/salut/test/kclustering/cost.lus @@ -0,0 +1,33 @@ +include "p.lus" +const debug=false; + +function parentd<<const card:int;const n:int>>(p:state ; config:state^card) returns (parp:state); +let +parp=with (card=n) then config[card-1] + else if p.par=n then config[n] else parentd<<card,(n+1)>>(p,config); +tel + +node depth<<const card:int>> (p:state; config:state^card) returns (nat:int); +var parp:state; +let +parp=parentd<<card;0>>(p,config); +nat= with (card=1) then 1 + else if isRoot(p) then 1 else 1+ depth<<card-1>>(parp,config[1..(card-1)]); +tel + +node pot<<const card:int>>(p:state;config:state^card) returns (nat:int); +let +nat= if p_enable<<n>>(p,config)= [true] then depth<<card>>(p,config) else 0; +tel + +node sum<<const card:int>>(enabled : bool^actions_number^card; config : state^card) returns (pf:int); +let +pf= with (card=1) then if enabled[0][0]=true then depth<<card>>(config[0],config) else 0 + else if enabled[0][0]=true then depth<<card>>(config[0],config) + sum<<card-1>>(enabled[1..(card-1)],config[1..(card-1)]) + else sum<<card-1>>(enabled[1..(card-1)],config[1..(card-1)]); +tel + +node cost(enabled : bool^actions_number^card; config : state^card) returns (res: int); +let +res=sum<<card>>(enabled,config); +tel \ No newline at end of file diff --git a/salut/test/kclustering/kclustering_oracle.lus b/salut/test/kclustering/kclustering_oracle.lus new file mode 100644 index 0000000000000000000000000000000000000000..451322b5306a55aff7bb3ed566ee6c72063e9b14 --- /dev/null +++ b/salut/test/kclustering/kclustering_oracle.lus @@ -0,0 +1,45 @@ +-- Here, we use the Lustre version of the algorithm as an oracle for the ocaml version + +include "../../lib/utils.lus" +include "cost.lus" + +function to_state(par:int; alpha:int; isRoot:bool) +returns ( res : state); +let + res = state { isRoot=isRoot; par=par; alpha=alpha }; +tel; + +node kclustering_oracle( + legitimate : bool; + ocaml_cost : real; + ocaml_enabled : bool^actions_number^card; + active : bool^actions_number^card; + ocaml_config : state^card; + round : bool; + round_nb : int; +) +returns (ok : bool); +var + lustre_cost:int; + lustre_config : state^card; + lustre_enabled : bool^actions_number^card; + lustre_round:bool; + lustre_round_nb:int; +let + lustre_config, lustre_enabled, lustre_round, lustre_round_nb = + topology(active -> pre active, -- ignored at the first step + ocaml_config -- used at the first step only + ); + lustre_cost = cost(lustre_enabled, lustre_config); + ok = lustre_enabled = ocaml_enabled + -- compare the sasa dot interpretation and the salut dot to lustre compilation + and lustre_config = ocaml_config +-- and lustre_round = round + and lustre_round_nb = round_nb + -- compare the lustre and the ocaml version of the processes +-- and Lustre::real2int(ocaml_cost) = lustre_cost + -- compare the cost functions + ; +tel + + diff --git a/salut/test/kclustering/p.lus b/salut/test/kclustering/p.lus new file mode 100644 index 0000000000000000000000000000000000000000..40250d33904b5927c29cdc5d60e11fad25da6286 --- /dev/null +++ b/salut/test/kclustering/p.lus @@ -0,0 +1,138 @@ +const k= 2 ; + +----------------------------------------------------------------------------- +--Predicates: +function isRoot(p:state) returns (b:bool); +let + b=p.isRoot; +tel + +function isShort (p:state) returns (b:bool); +let + b= p.alpha < k; +tel + +function isTall (p:state) returns (b:bool); +let + b= p.alpha >= k; +tel + +function kDominator (p:state) returns (b:bool); +let + b= (p.alpha = k) or (isShort(p) and isRoot(p)); +tel + +----------------------------------------------------------------------------- +--Macros: +function children<<const n:int>>(p:state; nl:neigh^n) +returns (cl:bool^n); +var + elem:state; +let + elem = state(nl[0]); + cl = with (n=1) then [ elem.par=reply(nl[0]) ] + else [ elem.par=reply(nl[0]) ] | children<<n-1>>(p,nl[1..(n-1)]) +; +tel + +function shortChildren<<const n:int>>(p:state; nl:neigh^n; c:bool^n) +returns (sl:bool^n); +var + elem:state; +let + elem = state(nl[0]); + sl= with (n=1) then [c[0] and isShort(elem)] + else [(c[0] and isShort(elem))] | shortChildren <<n-1>>(p,nl[1..(n-1)],c[1..(n-1)]) +; +tel + +function tallChildren<<const n:int>>(p:state; nl: neigh^n; c: bool^n) +returns (tl:bool^n); +var + elem:state; +let + elem = state(nl[0]); + tl=with (n=1) then [c[0] and isTall(elem)] + else [c[0] and isTall(elem)] | tallChildren <<n-1>>(p,nl[1..(n-1)],c[1..(n-1)]) ; +tel + +function max<<const n:int>>(scd:bool^n; nl:neigh^n; maxi:int) +returns (m:int); +var + elem:state; +let + elem = state(nl[0]); + m=with (n=1) then if scd[0] + then if elem.alpha > maxi + then elem.alpha + else maxi + else maxi + else if scd[0] then if elem.alpha > maxi + then max<<n-1>>(scd[1..(n-1)],nl[1..(n-1)],elem.alpha) + else max<<n-1>>(scd[1..(n-1)],nl[1..(n-1)],maxi) + else max<<n-1>>(scd[1..(n-1)],nl[1..(n-1)],maxi); +tel + +function min<<const n:int>>(tcd:bool^n;nl:neigh^n;mini:int) +returns (m:int); +var + elem:state; +let + elem = state(nl[0]); + m=with (n=1) then if tcd[0] then if mini = -1 then elem.alpha + else if elem.alpha < mini + then elem.alpha + else mini + else mini + else if tcd[0] then if mini = -1 then min<<n-1>>(tcd[1..(n-1)],nl[1..(n-1)],elem.alpha) + else if elem.alpha < mini + then min<<n-1>>(tcd[1..(n-1)],nl[1..(n-1)],elem.alpha) + else min<<n-1>>(tcd[1..(n-1)],nl[1..(n-1)],mini) + else min<<n-1>>(tcd[1..(n-1)],nl[1..(n-1)],mini); +tel + +function maxAshort<<const n:int>>(p:state ; nl:neigh^n; c:bool^n) +returns (max:int); +var + scd:bool^n; +let + scd=shortChildren<<n>>(p,nl,c); + max= if boolred<<0,0,n>>(scd) then -1 else max<<n>>(scd,nl,0); +tel + +function minAtall<<const n:int>>(p:state ; nl:neigh^n; c:bool^n) +returns (min:int); +var + tcd:bool^n; +let + tcd=tallChildren<<n>>(p,nl,c); + min= if boolred<<0,0,n>>(tcd) then (2*k + 1)else min<<n>>(tcd,nl,-1); +tel + +function newAlpha<<const n:int>>(p:state; nl:neigh^n) +returns (x:int); +var + mas,mit:int; + c:bool^n; +let + c=children<<n>>(p,nl); + mas=maxAshort<<n>>(p,nl,c); + mit=minAtall<<n>>(p,nl,c); + x=if (mas + mit) <= ((2*k)-2) + then (mit + 1) + else (mas + 1); +tel + +----------------------------------------------------------------------------- +--Step and Enable function: +function p_enable<<const n:int>>(p:state ; nl:neigh^n) +returns (a:bool^actions_number); +let + a= [p.alpha <> newAlpha<<n>>(p,nl)]; +tel + +function p_step <<const n:int>>(p:state; nl:neigh^n; a:action) +returns (pnew:state); +let + pnew = state{isRoot=p.isRoot; alpha=newAlpha<<n>>(p,nl); par=p.par} ; +tel \ No newline at end of file diff --git a/salut/test/kclustering/p.ml b/salut/test/kclustering/p.ml new file mode 120000 index 0000000000000000000000000000000000000000..24d41e87e903cffbfcd1163df1318eea66157849 --- /dev/null +++ b/salut/test/kclustering/p.ml @@ -0,0 +1 @@ +../../../test/k-clustering/p.ml \ No newline at end of file diff --git a/salut/test/kclustering/state.lus b/salut/test/kclustering/state.lus new file mode 100644 index 0000000000000000000000000000000000000000..b8b89a5bfb788e9af5de375c76be7655db4ee587 --- /dev/null +++ b/salut/test/kclustering/state.lus @@ -0,0 +1,17 @@ +-- automatically generated by salut + +type state = struct{isRoot:bool; alpha:int ; par:int}; + +type action = enum{change_alpha}; +const actions_number = 1; + +function action_of_int(i : int) returns (a : action); +let + a = change_alpha; +tel; + +function legitimate<<const actions_number:int; const card:int>>(enables : bool^actions_number^card; config: state^card) +returns (res : bool); +let + res=silent<<actions_number,card>>(enables); +tel; diff --git a/salut/test/kclustering/state.ml b/salut/test/kclustering/state.ml new file mode 120000 index 0000000000000000000000000000000000000000..833567ba57004f4d7a41af22a64dbe88a0108812 --- /dev/null +++ b/salut/test/kclustering/state.ml @@ -0,0 +1 @@ +../../../test/k-clustering/state.ml \ No newline at end of file diff --git a/salut/test/kclustering/verify.lus b/salut/test/kclustering/verify.lus new file mode 100644 index 0000000000000000000000000000000000000000..6fe2c212d581ad02551a002db1c104faf40b5f2c --- /dev/null +++ b/salut/test/kclustering/verify.lus @@ -0,0 +1,75 @@ +include "../../lib/sas.lus" +include "../../lib/utils.lus" + +--include "cost.lus" +--const worst_case=3*card*(card-1)/2 - card - 1; + +node verify( + active : bool^actions_number^card; + init_config : state^card +) +returns (ok : bool); +var + config : state^card; + enables : bool^actions_number^card; + legitimate, closure, lustre_round : bool; + lustre_round_nb:int; +-- converge : bool; +-- steps, cost : int; +let + assert(rangei<<0,card,card>>(init_config) and Root_is_Valid<<card>>(init_config)); + assert(true -> daemon_is_valid<<actions_number,card>>(active, pre enables)); + + config, enables, lustre_round, lustre_round_nb = topology(active, init_config); +-- assert(config = init_config -> true); + + legitimate = legitimate<<actions_number,card>>(enables,config); + closure = true -> (pre(legitimate) => legitimate); + +-- cost = cost(enabled, config); +-- converge = (true -> legitimate or pre(cost)>cost); + +-- steps = 0 -> (pre(steps) + 1); + ok = closure +-- and converge + -- and (steps > worst_case) => legitimate -- the worst-case stabilization + + -- and (steps > worst_case - 1) => legitimate -- is tigth! +; +tel; + +---------------------------------------------------------------------------- +-- all states are initially in correctly +---------------------------------------------------------------------------- +function rangei<<const low:int; const card:int; const max:int>>(config:state^card) returns (res:bool); +var + e:state; +let + e = config[card-1]; + res = with (card=1) then ((e.alpha >= 0) and (e.alpha < card) and + if e.isRoot + then e.par = -1 + else (e.par >=0) and (e.par < nb_neighbors[card-1])) + else ((e.alpha >= 0) and + (e.alpha < card) and + if e.isRoot + then e.par = -1 + else (e.par >=0) and (e.par < nb_neighbors[card-1]) + ) and rangei<<low; card-1; max>>(config[0..card-2]); +tel + +function extract_isRoot (elem:state) +returns (res : bool); +let + res = elem.isRoot; +tel + +function Root_is_Valid<<const card:int>>(config:state^card) +returns (res:bool); +var + tab_bool:bool^card; +let + tab_bool = map<<extract_isRoot,card>>(config); + res = boolred<<1,1,card>>(tab_bool); +tel +---------------------------------------------------------------------------- \ No newline at end of file diff --git a/salut/test/rsp_tree/Makefile b/salut/test/rsp_tree/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..4297683127799871e6fe9be40f633b904431c9cf --- /dev/null +++ b/salut/test/rsp_tree/Makefile @@ -0,0 +1,37 @@ +TOPOLOGY ?= tree2 +DOT2LUSFLAGS ?= +SASA_ALGOS := p.ml root.ml +DECO_PATTERN="0:root.ml 1-:p.ml" + + +include ../Makefile.inc +-include ../Makefile.dot + +############################################################################## +# Non-regression tests + +test: tree2.kind2-test tree2.lurette #tree4.lesar + +clean: genclean + rm -f $(TOPOLOGY)*.* tree2*.* + +############################################################################## +# Other examples of use + +## Some examples of use of ../Makefile.inc + +# run a simulation with luciole +simu: $(TOPOLOGY).simu + +# Compare the ocaml version with the lustre one (with seed) +compare_seed: $(TOPOLOGY).lurette + cat rsp_tree.rif + +# Compare the ocaml version with the lustre one (no seed) +compare: $(TOPOLOGY).lurette_no_seed + cat rsp_tree.rif + +# make diring4.simu +kind2: $(TOPOLOGY).kind2 + +lesar: $(TOPOLOGY).lesar diff --git a/salut/test/rsp_tree/config.ml b/salut/test/rsp_tree/config.ml new file mode 100644 index 0000000000000000000000000000000000000000..0206e5dd253b0f3889e62590de4e0f95ef70d7b9 --- /dev/null +++ b/salut/test/rsp_tree/config.ml @@ -0,0 +1,9 @@ +(* Automatically generated by /home/emile/.opam/4.12.0/bin/sasa version "v4.6.1" ("c3dfe95")*) +(* on PC-Travail the 30/6/2022 at 16:02:39*) +(*sasa -reg tree10.dot*) + + +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 *) +let init_search_utils = None (* To provide to use --init-search *) diff --git a/salut/test/rsp_tree/p.lus b/salut/test/rsp_tree/p.lus new file mode 100644 index 0000000000000000000000000000000000000000..b0088f562305b2487e84be3138236cf6c7a67e45 --- /dev/null +++ b/salut/test/rsp_tree/p.lus @@ -0,0 +1,153 @@ +----------------------------------------------------------------- +--Get parent function: +function parent<<const n:int; const count:int>>(this : state; neighbors : neigh^n) +returns (res : neigh); +let + res = if (n<=this.par) then neighbors[n-1] + else with (count = n ) then neighbors[n-1] + else if (count = this.par) then neighbors[count] else parent<<n,(count+1)>>(this,neighbors); +tel; + +------------------------------------------------------------------ +--Predicates: +function children<<const n:int>>(u:state; neighbors:neigh^n) +returns ( res : bool^n ); +var v:state; +let + v = state (neighbors[0]); + res = with (n=1) then [ ((u.st <> I) and + (v.st <> I) and + (reply(neighbors[0]) = v.par) and + (v.d >= u.d + weight(neighbors[0])) and + ((v.st = u.st) or (u.st = EB))) ] + else [ ((u.st <> I) and + (v.st <> I) and + (reply(neighbors[0]) = v.par) and + (v.d >= u.d + weight(neighbors[0])) and + ((v.st = u.st) or (u.st = EB))) ] | children<<n-1>>(u,neighbors[1..n-1]); +tel; + +function abRoot<<const n:int>>(this : state; neighbors : neigh^n) +returns(res : bool); +var + par_u: state; + par_u_neigh:neigh; +let + par_u_neigh= parent<<n,0>>(this, neighbors); + par_u = state(par_u_neigh); + res = (this.st <> I) and ( (this.par > n) or + (par_u.st = I) or + (this.d < (par_u.d + weight(par_u_neigh) )) or + (this.st <> par_u.st and par_u.st <> EB)); +tel; + +function p_reset<<const n:int>>(this : state; neighbors: neigh^n) +returns (res : bool); +let + res = ( (this.st = EF) and (abRoot<<n>>(this,neighbors)) ); +tel; + +function condition(elem:neigh; this:state) returns(res : bool); +var + e:state; +let + e = state(elem); + res = (e.st = C) and (e.d + weight(elem) < this.d); +tel; + +function p_correction<<const n:int>>(this : state; neighbors : neigh^n) +returns(res : bool); +let + res = n_or<<n>>(map<<condition,n>>(neighbors,(this^n))); +tel; + +--------------------------------------------------------------------- +--Macro: +function argmin<<const n:int; const count:int; const indice:int>>(min:state; w:int; nl : neigh^n) +returns(res : int); +var + elem:state; +let + elem=state(nl[0]); + res = with ( n = 1) then (if elem.st = C and min.st = C then + if (elem.d + weight(nl[0])) <= (min.d + w) then count else indice + else if elem.st = C then count else indice) + else (if elem.st = C then + if min.st = C then + if (elem.d + weight(nl[0])) <= (min.d + w) then argmin<<n-1,count+1,count>>(elem,weight(nl[0]),nl[1..n-1]) + else argmin<<n-1,count+1,indice>>(min,w,nl[1..n-1]) + else + argmin<<n-1,count+1,count>>(elem,weight(nl[0]),nl[1..n-1]) + else + argmin<<n-1,count+1,indice>>(min,w,nl[1..n-1]) + ); +tel; + +function computePath<<const n:int>>(this : state ; neighbors : neigh^n) +returns(res : state); +var par_u:neigh; +let + par_u = parent<<n,0>>(this,neighbors); + res = state { st = C; + par = argmin<<n,0,0>>((state { st=EB; par=-1; d=-1 }), 1, neighbors); + d = (state(par_u).d + weight(par_u)); }; +tel; + +--------------------------------------------------------------------- +--Enable Macro function: +function for_all<<const n:int>>(neigh_list: neigh^n; bool_list: bool^n) +returns (res : bool); +var + elem:state; +let + elem = state(neigh_list[0]); + res = with (n = 1) then (if bool_list[0] = true + then elem.st = EF + else true) + else (if bool_list[0] = true + then (elem.st = EF) and (for_all<<n-1>>(neigh_list[1 .. n-1], bool_list[1 .. n-1])) + else (for_all<<n-1>>(neigh_list[1 .. n-1], bool_list[1 .. n-1]))); +tel; + +function not_equal_c (elem:neigh) +returns (res : bool); +let + res = (state(elem).st<>C); +tel; + +function equal_c (elem:neigh) +returns (res : bool); +let + res = (state(elem).st=C); +tel; +-------------------------------------------------------------------- +--Step and Enable functions: +function p_enable<<const degree:int>>(this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); +var + par_u:state; + bool_list:bool^degree; +let + par_u = state(parent<<degree,0>>(this, neighbors)); + bool_list = children<<degree>>(this, neighbors); + enabled = [ ((this.st = C) and p_correction<<degree>>(this,neighbors)), + ((this.st = C) and (not (p_correction<<degree>>(this,neighbors))) and ((abRoot<<degree>>(this,neighbors)) or (par_u.st = EB))), + ((this.st = EB) and (for_all<<degree>>(neighbors, bool_list))), + ((p_reset<<degree>>(this, neighbors)) and boolred<<degree,degree,degree>>(map<< not_equal_c , degree>>(neighbors))), + (((p_reset<<degree>>(this,neighbors)) or this.st = I) and (boolred<<1,degree,degree>>(map<< equal_c , degree>>(neighbors)))) + ]; +tel; + +function p_step<<const degree:int>>( + this : state; + neighbors : neigh^degree; + action : action) +returns (new : state); +let + new = if (action = Rc) then computePath<<degree>>(this, neighbors) + else if (action = Reb) then state { st = EB; par = this.par; d = this.d } + else if (action = Ref) then state { st = EF; par = this.par; d = this.d } + else if (action = Ri) then state { st = I; par = this.par; d = this.d } + else if (action = Rr) then computePath<<degree>>(this, neighbors) + else this; +tel; diff --git a/salut/test/rsp_tree/p.ml b/salut/test/rsp_tree/p.ml new file mode 120000 index 0000000000000000000000000000000000000000..e13d0969a16d449d2c52597c117fe513d173090e --- /dev/null +++ b/salut/test/rsp_tree/p.ml @@ -0,0 +1 @@ +../../../test/rsp-tree/p.ml \ No newline at end of file diff --git a/salut/test/rsp_tree/root.lus b/salut/test/rsp_tree/root.lus new file mode 100644 index 0000000000000000000000000000000000000000..423bb98b2429936b70f833443a37cb2dc2eaa709 --- /dev/null +++ b/salut/test/rsp_tree/root.lus @@ -0,0 +1,16 @@ +------------------------------------------------------- +--Step and Enable functions(for root): +function root_enable<<const degree:int>>(this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); +let + enabled = [ false, false, false, false, false ] ; +tel; + +function root_step<<const degree:int>>( + this : state; + neighbors : neigh^degree; + action : action) +returns (new : state); +let + new = state { st=C; par=-1; d=0 }; +tel; \ No newline at end of file diff --git a/salut/test/rsp_tree/root.ml b/salut/test/rsp_tree/root.ml new file mode 120000 index 0000000000000000000000000000000000000000..086c6666a388c7aa7ba8e824a16e6e6367017bbf --- /dev/null +++ b/salut/test/rsp_tree/root.ml @@ -0,0 +1 @@ +../../../test/rsp-tree/root.ml \ No newline at end of file diff --git a/salut/test/rsp_tree/rsp_tree_oracle.lus b/salut/test/rsp_tree/rsp_tree_oracle.lus new file mode 100644 index 0000000000000000000000000000000000000000..6b825f28fc4191edefc3b72ce54ab02517a95d1a --- /dev/null +++ b/salut/test/rsp_tree/rsp_tree_oracle.lus @@ -0,0 +1,46 @@ +-- Here, we use the Lustre version of the algorithm as an oracle for the ocaml version + +include "../../lib/utils.lus" + +function intVstatus (i:int) +returns(res :status); +let + res = if i = 0 then I + else if i = 1 then C + else if i = 2 then EB + else EF; +tel; + +function to_state( d:int; par:int; st:int) +returns ( res : state); +let + res = state { st=intVstatus(st); par=par; d=d }; +tel; + +node rsp_tree_oracle( + legitimate : bool; + ocaml_enabled : bool^actions_number^card; + active : bool^actions_number^card; + ocaml_config : state^card; + round : bool; + round_nb : int; +) +returns (ok : bool); +var + lustre_config : state^card; + lustre_enabled : bool^actions_number^card; + lustre_round:bool; + lustre_round_nb:int; +let + lustre_config, lustre_enabled, lustre_round, lustre_round_nb = + topology(active -> pre active, -- ignored at the first step + ocaml_config -- used at the first step only + ); + ok = lustre_enabled = ocaml_enabled + -- compare the sasa dot interpretation and the salut dot to lustre compilation + and lustre_config = ocaml_config +-- and lustre_round = round +-- and lustre_round_nb = round_nb +; + -- compare the lustre and the ocaml version of the processes +tel diff --git a/salut/test/rsp_tree/state.lus b/salut/test/rsp_tree/state.lus new file mode 100644 index 0000000000000000000000000000000000000000..bd50342074e49a7d2eea25c3fc28f13516fdcf8a --- /dev/null +++ b/salut/test/rsp_tree/state.lus @@ -0,0 +1,23 @@ + +-- automatically generated by salut + +type status = enum { I, C, EB, EF }; +type state = struct { st:status; par:int; d:int }; + +type action = enum { Rc,Reb,Ref,Ri,Rr }; +const actions_number = 5; + +function action_of_int(i : int ) returns (a : action); +let + a = if i = 0 then Rc + else if i = 1 then Reb + else if i = 2 then Ref + else if i = 3 then Ri + else Rr; +tel; + +function legitimate<<const actions_number:int; const card:int>>(enables : bool^actions_number^card; config: state^card) +returns (res : bool); +let + res=silent<<actions_number,card>>(enables); +tel; diff --git a/salut/test/rsp_tree/state.ml b/salut/test/rsp_tree/state.ml new file mode 120000 index 0000000000000000000000000000000000000000..ac63100f73e5f8bcf1a59ba9a370819938e57871 --- /dev/null +++ b/salut/test/rsp_tree/state.ml @@ -0,0 +1 @@ +../../../test/rsp-tree/state.ml \ No newline at end of file diff --git a/salut/test/rsp_tree/tree4.lus b/salut/test/rsp_tree/tree4.lus new file mode 100644 index 0000000000000000000000000000000000000000..cee55d5150e7f4594fa41aa2f324b822f0f49aaa --- /dev/null +++ b/salut/test/rsp_tree/tree4.lus @@ -0,0 +1,77 @@ +-- automatically generated by salut +include "p.lus" +include "root.lus" + + +function dot2lus_first_set<<const N:int>>(s : bool^N) returns (x : int); +var + found : int; +let + found = + with (N = 1) then (if s[0] then 0 else -1) + else dot2lus_first_set<<N-1>>(s[1 .. N-1]); + x = + if s[0] then 0 + else if found < 0 then -1 + else found + 1; +tel; + +function dot2lus_action_of_activation(activation : bool^actions_number) returns (action : action); +let + action = action_of_int(dot2lus_first_set<<actions_number>>(activation)); +tel; + +node tree4(p : bool^actions_number^card; initials : state^card) +returns (p_c : state^card; Enab_p : bool^actions_number^card); +var + prev_p_c : state^card; + + sel_0 : bool; + sel_1 : bool; + sel_2 : bool; + sel_3 : bool; +let + prev_p_c = initials -> pre(p_c); + + sel_0 = false -> boolred<<1,actions_number,actions_number>>(p[0]); + sel_1 = false -> boolred<<1,actions_number,actions_number>>(p[1]); + sel_2 = false -> boolred<<1,actions_number,actions_number>>(p[2]); + sel_3 = false -> boolred<<1,actions_number,actions_number>>(p[3]); + + p_c[0] = + if not sel_0 then prev_p_c[0] + else root_step<<2>>( + prev_p_c[0], + [ prev_p_c[1], prev_p_c[2] ], + dot2lus_action_of_activation(p[0]) + ); + Enab_p[0] = root_enable<<2>>(p_c[0], [ p_c[1], p_c[2] ]); + + p_c[1] = + if not sel_1 then prev_p_c[1] + else p_step<<2>>( + prev_p_c[1], + [ prev_p_c[0], prev_p_c[3] ], + dot2lus_action_of_activation(p[1]) + ); + Enab_p[1] = p_enable<<2>>(p_c[1], [ p_c[0], p_c[3] ], [0,0]); + + p_c[2] = + if not sel_2 then prev_p_c[2] + else p_step<<1>>( + prev_p_c[2], + [ prev_p_c[0] ], + dot2lus_action_of_activation(p[2]) + ); + Enab_p[2] = p_enable<<1>>(p_c[2], [ p_c[0] ],[1]); + + p_c[3] = + if not sel_3 then prev_p_c[3] + else p_step<<1>>( + prev_p_c[3], + [ prev_p_c[1] ], + dot2lus_action_of_activation(p[3]) + ); + Enab_p[3] = p_enable<<1>>(p_c[3], [ p_c[1] ],[1]); +tel; +node topology = tree4; diff --git a/salut/test/rsp_tree/tree4_oracle.lus b/salut/test/rsp_tree/tree4_oracle.lus new file mode 100644 index 0000000000000000000000000000000000000000..deb6b80e61dc3a1f1cb22b8ed13466dd2bd70925 --- /dev/null +++ b/salut/test/rsp_tree/tree4_oracle.lus @@ -0,0 +1,51 @@ +-- Automatically generated by /home/emile/.opam/4.12.0/bin/sasa version "v4.6.1" ("c3dfe95") +-- on PC-Travail the 20/6/2022 at 14:52:03 +--sasa -glos tree4.dot + +include "rsp_tree_oracle.lus" +const an=5; -- actions number +const pn=4; -- processes number +const degree=2; +const min_degree=1; +const mean_degree=1.500000; +const diameter=3; +const card=4; +const links_number=3; +const is_cyclic=false; +const is_connected=true; +const is_a_tree=true; +const f=false; +const t=true; +const adjacency=[ + [f,t,t,f], + [t,f,f,t], + [t,f,f,f], + [f,t,f,f]]; +const mean_deg=1.5; +const max_deg=2; +const is_tree=true; +const is_rooted=false; +const min_deg=1; + +node oracle(legitimate:bool; + Root_d:int;Root_par:int;Root_st:status;p1_d:int;p1_par:int;p1_st:status;p2_d:int;p2_par:int;p2_st:status;p3_d:int;p3_par:int;p3_st:status; + Enab_Root_Rcu,Enab_Root_Rebu,Enab_Root_Refu,Enab_Root_Riu,Enab_Root_Rru,Enab_p1_Rcu,Enab_p1_Rebu,Enab_p1_Refu,Enab_p1_Riu,Enab_p1_Rru,Enab_p2_Rcu,Enab_p2_Rebu,Enab_p2_Refu,Enab_p2_Riu,Enab_p2_Rru,Enab_p3_Rcu,Enab_p3_Rebu,Enab_p3_Refu,Enab_p3_Riu,Enab_p3_Rru:bool; + Root_Rcu,Root_Rebu,Root_Refu,Root_Riu,Root_Rru,p1_Rcu,p1_Rebu,p1_Refu,p1_Riu,p1_Rru,p2_Rcu,p2_Rebu,p2_Refu,p2_Riu,p2_Rru,p3_Rcu,p3_Rebu,p3_Refu,p3_Riu,p3_Rru:bool) +returns (ok:bool; lustre_config:state^4; lustre_enab:bool^an^pn); +var + Acti:bool^an^pn; + Enab:bool^an^pn; + Config:state^4; + a,b,c,d:state; +let + Acti = [[Root_Rcu,Root_Rebu,Root_Refu,Root_Riu,Root_Rru],[p1_Rcu,p1_Rebu,p1_Refu,p1_Riu,p1_Rru],[p2_Rcu,p2_Rebu,p2_Refu,p2_Riu,p2_Rru],[p3_Rcu,p3_Rebu,p3_Refu,p3_Riu,p3_Rru]]; + Enab = [[Enab_Root_Rcu,Enab_Root_Rebu,Enab_Root_Refu,Enab_Root_Riu,Enab_Root_Rru],[Enab_p1_Rcu,Enab_p1_Rebu,Enab_p1_Refu,Enab_p1_Riu,Enab_p1_Rru],[Enab_p2_Rcu,Enab_p2_Rebu,Enab_p2_Refu,Enab_p2_Riu,Enab_p2_Rru],[Enab_p3_Rcu,Enab_p3_Rebu,Enab_p3_Refu,Enab_p3_Riu,Enab_p3_Rru]]; + a=state { d=Root_d; par=Root_par; st=Root_st }; + b=state { d=p1_d; par=p1_par; st=p1_st }; + c=state { d=p2_d; par=p2_par; st=p2_st }; + d=state { d=p3_d; par=p3_par; st=p3_st }; + Config = [a,b,c,d]; + + ok,lustre_config, lustre_enab = rsp_tree_oracle(legitimate, Enab, Acti, Config); +tel +node to_state(int,int,int) returns (res:status); \ No newline at end of file diff --git a/salut/test/rsp_tree/verify.lus b/salut/test/rsp_tree/verify.lus new file mode 100644 index 0000000000000000000000000000000000000000..9e035b7333d09ad2f5d11ba965420ce12f2c801c --- /dev/null +++ b/salut/test/rsp_tree/verify.lus @@ -0,0 +1,43 @@ +include "../../lib/sas.lus" + +---------------------------------------------------------------------------- +-- function verify +---------------------------------------------------------------------------- +node verify(activations : bool^actions_number^card; inits : state^card) returns (ok : bool); +var + config : state^card; + enables : bool^actions_number^card; + legitimate, closure, lustre_round : bool; + lustre_round_nb:int; +let + assert(rangei<<0,card,card>>(inits)); + assert(true -> daemon_is_valid<<actions_number,card>>(activations, pre enables)); + + config, enables, lustre_round, lustre_round_nb = topology(activations, inits); + + legitimate = legitimate<<actions_number,card>>(enables,config); + closure = true -> (pre(legitimate) => legitimate); + + -- verify that the execution terminates after at most |N|−1 moves: + ok = closure + and ( not(legitimate) and is_connected => (lustre_round_nb < 3*card+diameter) ) +; +tel; + +---------------------------------------------------------------------------- +-- all states are initially in correctly +---------------------------------------------------------------------------- +node rangei<<const low:int; const card:int; const max:int>>(config:state^card) returns (res:bool); +var + e:state; +let + e = config[card-1]; + res = with (card=1) then (e.d = 0) and (e.st = C) and (e.par = -1) + else ((e.d >= 0) and + (e.d < card) and + (e.par >=0) and + (e.par < nb_neighbors[card-1]) and + ((e.st = I) or (e.st = C) or (e.st = EB) or (e.st = EF)) + ) and rangei<<low; card-1; max>>(config[0..card-2]); +tel +---------------------------------------------------------------------------- \ No newline at end of file diff --git a/salut/test/unison/Makefile b/salut/test/unison/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..89c56b9a85ffe134b8e61d22e031d02bd5eda0df --- /dev/null +++ b/salut/test/unison/Makefile @@ -0,0 +1,58 @@ +TOPOLOGY ?= diring4 +DOT2LUSFLAGS ?= +SASA_ALGOS := unison.ml +DECO_PATTERN="0-:unison.ml" + +include ../Makefile.inc +-include ../Makefile.dot + +############################################################################## +# Non-regression tests + +test: clique3.kind2-test clique3.lurette #lesar not work because of the modulo. + +clean: genclean + rm -f $(TOPOLOGY)*.* clique3*.* + +############################################################################## +# Other examples of use + +## Some examples of use of ../Makefile.inc + +# run a simulation with luciole +simu: $(TOPOLOGY).simu + +# Compare the ocaml version with the lustre one (with seed) +compare_seed: $(TOPOLOGY).lurette + cat unison.rif + +# Compare the ocaml version with the lustre one (no seed) +compare: $(TOPOLOGY).lurette_no_seed + cat unison.rif + +# make diring4.simu +kind2: $(TOPOLOGY).kind2 + +## do not work because there is a modulo in p.lus, which is not (yet) implemented in ../../bit-blast/*.lus +lesar: $(TOPOLOGY).lesar + +org: + echo "|-|" > resultat.org + echo "| Topology | k (2xD-1) | n | Resultat | step | 3xD-1 | time |" >> resultat.org + echo "|-|" >> resultat.org + for n in `seq 3 35`; \ + do for k in `seq 1 2 35`; do \ + [ -f Log/ring$${k}_$${n}.log ] && sh Sh/do_org_lines.sh $${k} $${n} ring && \ + cat Log/ring$${k}_$${n}.log.org >> resultat.org; \ + done; \ + echo "|-|" >> resultat.org ;\ + done + echo "|-|" >> resultat.org + + +RUN: + for i in `seq 3 35`; do sleep 2; sh Sh/search_config.sh 11 $i ring &; done + +uptime: + ps -eo pid,comm,lstart,etime,time,args| grep search_conf | grep -v grep + ps -eo pid,comm,lstart,etime,time,args| grep search_conf | grep -v grep | wc diff --git a/salut/test/unison/config.ml b/salut/test/unison/config.ml new file mode 120000 index 0000000000000000000000000000000000000000..c5a3daf4b1203ee5c4262ed4509944ea10bd920b --- /dev/null +++ b/salut/test/unison/config.ml @@ -0,0 +1 @@ +../../../test/unison/config.ml \ No newline at end of file diff --git a/salut/test/unison/k.lus b/salut/test/unison/k.lus new file mode 100644 index 0000000000000000000000000000000000000000..ffecb5d682c0a21502b85752e69ad37add7d28ac --- /dev/null +++ b/salut/test/unison/k.lus @@ -0,0 +1,2 @@ +const m0 = 2*diameter -1; +const k = if m0<2 then 2 else m0; diff --git a/salut/test/unison/state.lus b/salut/test/unison/state.lus new file mode 100644 index 0000000000000000000000000000000000000000..d524b34ffaf61f6006f1d30918e66346d91757e4 --- /dev/null +++ b/salut/test/unison/state.lus @@ -0,0 +1,18 @@ + +-- automatically generated by salut + +type state = int; + +type action = enum {T}; +const actions_number = 1; + +function action_of_int(i : int) returns (a : action); +let + a = T; +tel; + +function legitimate<<const actions_number:int; const card:int>>(enables : bool^actions_number^card; config: state^card) +returns (res : bool); +let + res=same_value<<card>>(config); +tel; diff --git a/salut/test/unison/state.ml b/salut/test/unison/state.ml new file mode 120000 index 0000000000000000000000000000000000000000..0d0c3082ca12a60b790f8e0ffd2a51c3dfb6f200 --- /dev/null +++ b/salut/test/unison/state.ml @@ -0,0 +1 @@ +../../../test/unison/state.ml \ No newline at end of file diff --git a/salut/test/unison/unison.lus b/salut/test/unison/unison.lus new file mode 100644 index 0000000000000000000000000000000000000000..7daf4a102b0ee65918d118e51396b2f37a5f110d --- /dev/null +++ b/salut/test/unison/unison.lus @@ -0,0 +1,30 @@ +include "k.lus" + +function min_clock<<const n:int>> (this : int; neighbors : neigh^n) +returns (new: int); +var min:int; +let + min = if this <= state(neighbors[0]) then this else state(neighbors[0]) ; + new = with (n = 1) then min + else min_clock<< n-1 >> (min, neighbors[1 .. n-1]); +tel; + +function newClockValue<<const n:int>> (this : int ; neighbors : neigh^n) +returns (new: state); +let + new = (min_clock<<n>>(this,neighbors)+1) mod k; +tel; + +function unison_enable<<const degree:int>> (this : state; neighbors : neigh^degree) +returns (enabled : bool^actions_number); +let + enabled= [ this <> (newClockValue<<degree>>(this,neighbors)) ]; +tel; + +function unison_step<<const degree:int>>( + this : state; + neighbors : neigh^degree; action : action) +returns (new : state); +let + new = newClockValue<<degree>>(this,neighbors); +tel; diff --git a/salut/test/unison/unison.ml b/salut/test/unison/unison.ml new file mode 120000 index 0000000000000000000000000000000000000000..a0ad03b587427e13bb7504cff3ca12412f60cc39 --- /dev/null +++ b/salut/test/unison/unison.ml @@ -0,0 +1 @@ +../../../test/unison/unison.ml \ No newline at end of file diff --git a/salut/test/unison/unison_oracle.lus b/salut/test/unison/unison_oracle.lus new file mode 100644 index 0000000000000000000000000000000000000000..ac39af1e697e4f4820ddb061c9334d84148fc3fc --- /dev/null +++ b/salut/test/unison/unison_oracle.lus @@ -0,0 +1,32 @@ +-- Here, we use the Lustre version of the algorithm as an oracle for the ocaml version + +include "../../lib/utils.lus" + +node unison_oracle( + legitimate : bool; + ocaml_enabled : bool^actions_number^card; + active : bool^actions_number^card; + ocaml_config : state^card; + round:bool; + round_nb:int; +) +returns (ok : bool); +var + lustre_config : state^card; + lustre_enabled : bool^actions_number^card; + lustre_round:bool; + lustre_round_nb:int; +let + lustre_config, lustre_enabled, lustre_round, lustre_round_nb = + topology(active -> pre active, -- ignored at the first step + ocaml_config -- used at the first step only + ); + ok = lustre_enabled = ocaml_enabled + -- compare the sasa dot interpretation and the salut dot to lustre compilation + and lustre_config = ocaml_config + and lustre_round = round + and lustre_round_nb = round_nb + +; + -- compare the lustre and the ocaml version of the processes +tel; diff --git a/salut/test/unison/verify.lus b/salut/test/unison/verify.lus new file mode 100644 index 0000000000000000000000000000000000000000..93f9cf863010e383b3da666c36af71cb8c01e78f --- /dev/null +++ b/salut/test/unison/verify.lus @@ -0,0 +1,36 @@ +include "../../lib/sas.lus" + +node verify(activations : bool^actions_number^card; inits : state^card) returns (ok : bool); +var nb_step: int; +var config : state^card; +var enables : bool^actions_number^card; +var legitimate, closure : bool; + lustre_round : bool; + lustre_round_nb : int; +let + assert(true -> daemon_is_synchronous<<actions_number,card>>(activations, pre enables)); + assert(rangei<<0,card,k>>(inits)); + + config, enables,lustre_round, lustre_round_nb = topology(activations, inits); + +-- legitimate = legitimate<<actions_number,card>>(enables,inits); + legitimate = legitimate<<actions_number,card>>(enables,config); + closure = true -> (pre(legitimate) => legitimate); + nb_step = (-1) -> pre(nb_step) + 1; + + -- verify that the execution terminates after at most |N|−1 moves: + ok = closure + and (nb_step>=(3*diameter-2) => legitimate) +; +tel; + + +-- all states are initially in [0; card|[ +node rangei<<const low:int; const card:int; const k:int>>(c:state^card) returns (res:bool); +var + ranges_min, ranges_max : bool^card; +let + ranges_min = map<< <= , card>>(low^card, c); + ranges_max = map<< < , card>>(c, k^card); + res = boolall<<card>>(ranges_min) and boolall<<card>>(ranges_max); +tel